From f461ae2f45291f92375ca30b20fee4f904836239 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Mon, 18 Jun 2018 16:11:22 -0700 Subject: [PATCH 001/109] test: move test-benchmark-path to sequential Fixes: https://github.com/nodejs/node/issues/18254 PR-URL: https://github.com/nodejs/node/pull/21393 Reviewed-By: Colin Ihrig Reviewed-By: Trivikram Kamat Reviewed-By: Gireesh Punathil Reviewed-By: Yuta Hiroto --- test/{parallel => sequential}/test-benchmark-path.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/{parallel => sequential}/test-benchmark-path.js (100%) diff --git a/test/parallel/test-benchmark-path.js b/test/sequential/test-benchmark-path.js similarity index 100% rename from test/parallel/test-benchmark-path.js rename to test/sequential/test-benchmark-path.js From 29593e20d54d6b9ecbdb70e85c6aa7a0ce73452a Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Thu, 31 May 2018 19:46:17 +0200 Subject: [PATCH 002/109] test: run misc benchmark only once in tests Prevent misc benchmark files from running more than one benchmark during tests. PR-URL: https://github.com/nodejs/node/pull/21046 Reviewed-By: Anatoli Papirovski Reviewed-By: James M Snell Reviewed-By: Anna Henningsen --- benchmark/misc/util-extend-vs-object-assign.js | 4 ++++ test/parallel/test-benchmark-misc.js | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/benchmark/misc/util-extend-vs-object-assign.js b/benchmark/misc/util-extend-vs-object-assign.js index 149619f6e1dea3..3880711b660fe1 100644 --- a/benchmark/misc/util-extend-vs-object-assign.js +++ b/benchmark/misc/util-extend-vs-object-assign.js @@ -9,6 +9,10 @@ const bench = common.createBenchmark(main, { }); function main({ n, type }) { + // Default value for tests. + if (type === '') + type = 'extend'; + let fn; if (type === 'extend') { fn = util._extend; diff --git a/test/parallel/test-benchmark-misc.js b/test/parallel/test-benchmark-misc.js index 96b3fe1fa2ed5a..fc7e340a80d0bb 100644 --- a/test/parallel/test-benchmark-misc.js +++ b/test/parallel/test-benchmark-misc.js @@ -9,6 +9,6 @@ runBenchmark('misc', [ 'dur=0.1', 'method=', 'n=1', - 'type=extend', - 'val=magyarország.icom.museum' + 'type=', + 'val=magyarország.icom.museum', ], { NODEJS_BENCHMARK_ZERO_ALLOWED: 1 }); From 9030e933f43002a1da1ecccf72d933bd86da15fd Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 15 Jun 2018 13:03:12 -0700 Subject: [PATCH 003/109] benchmark: create napi benchmark directory Move C++ benchmark useful for NAPI to its own directory. This will isolate the benchmark so it can be excluded from testing that applies to all other benchmarks but not this one. PR-URL: https://github.com/nodejs/node/pull/21046 Reviewed-By: Anatoli Papirovski Reviewed-By: James M Snell Reviewed-By: Anna Henningsen --- Makefile | 12 ++++++------ benchmark/{misc => napi}/function_call/.gitignore | 0 benchmark/{misc => napi}/function_call/binding.cc | 0 benchmark/{misc => napi}/function_call/binding.gyp | 0 benchmark/{misc => napi}/function_call/index.js | 0 .../{misc => napi}/function_call/napi_binding.c | 0 6 files changed, 6 insertions(+), 6 deletions(-) rename benchmark/{misc => napi}/function_call/.gitignore (100%) rename benchmark/{misc => napi}/function_call/binding.cc (100%) rename benchmark/{misc => napi}/function_call/binding.gyp (100%) rename benchmark/{misc => napi}/function_call/index.js (100%) rename benchmark/{misc => napi}/function_call/napi_binding.c (100%) diff --git a/Makefile b/Makefile index c2edfe59a4595a..49bcf11016b91f 100644 --- a/Makefile +++ b/Makefile @@ -274,13 +274,13 @@ test-valgrind: all test-check-deopts: all $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) --check-deopts parallel sequential -benchmark/misc/function_call/build/Release/binding.node: all \ - benchmark/misc/function_call/napi_binding.c \ - benchmark/misc/function_call/binding.cc \ - benchmark/misc/function_call/binding.gyp +benchmark/napi/function_call/build/Release/binding.node: all \ + benchmark/napi/function_call/napi_binding.c \ + benchmark/napi/function_call/binding.cc \ + benchmark/napi/function_call/binding.gyp $(NODE) deps/npm/node_modules/node-gyp/bin/node-gyp rebuild \ --python="$(PYTHON)" \ - --directory="$(shell pwd)/benchmark/misc/function_call" \ + --directory="$(shell pwd)/benchmark/napi/function_call" \ --nodedir="$(shell pwd)" # Implicitly depends on $(NODE_EXE). We don't depend on it explicitly because @@ -1115,7 +1115,7 @@ LINT_CPP_EXCLUDE += $(wildcard test/addons-napi/??_*/*.cc test/addons-napi/??_*/ LINT_CPP_EXCLUDE += src/tracing/trace_event.h src/tracing/trace_event_common.h LINT_CPP_FILES = $(filter-out $(LINT_CPP_EXCLUDE), $(wildcard \ - benchmark/misc/function_call/binding.cc \ + benchmark/napi/function_call/binding.cc \ src/*.c \ src/*.cc \ src/*.h \ diff --git a/benchmark/misc/function_call/.gitignore b/benchmark/napi/function_call/.gitignore similarity index 100% rename from benchmark/misc/function_call/.gitignore rename to benchmark/napi/function_call/.gitignore diff --git a/benchmark/misc/function_call/binding.cc b/benchmark/napi/function_call/binding.cc similarity index 100% rename from benchmark/misc/function_call/binding.cc rename to benchmark/napi/function_call/binding.cc diff --git a/benchmark/misc/function_call/binding.gyp b/benchmark/napi/function_call/binding.gyp similarity index 100% rename from benchmark/misc/function_call/binding.gyp rename to benchmark/napi/function_call/binding.gyp diff --git a/benchmark/misc/function_call/index.js b/benchmark/napi/function_call/index.js similarity index 100% rename from benchmark/misc/function_call/index.js rename to benchmark/napi/function_call/index.js diff --git a/benchmark/misc/function_call/napi_binding.c b/benchmark/napi/function_call/napi_binding.c similarity index 100% rename from benchmark/misc/function_call/napi_binding.c rename to benchmark/napi/function_call/napi_binding.c From 23f22bc614eb10185326217ad3c0ad36ffcd0088 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Wed, 30 May 2018 22:30:24 +0200 Subject: [PATCH 004/109] test: check that benchmark tests are minimal Check that benchmark tests are not running longer than necessary by confirming that they only produce one set of configs to report on per benchmark file. PR-URL: https://github.com/nodejs/node/pull/21046 Reviewed-By: Anatoli Papirovski Reviewed-By: James M Snell Reviewed-By: Anna Henningsen --- test/common/benchmark.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/test/common/benchmark.js b/test/common/benchmark.js index 1fd4476ba55a35..f8952a8b9ad647 100644 --- a/test/common/benchmark.js +++ b/test/common/benchmark.js @@ -20,10 +20,27 @@ function runBenchmark(name, args, env) { const mergedEnv = Object.assign({}, process.env, env); - const child = fork(runjs, argv, { env: mergedEnv }); + const child = fork(runjs, argv, { env: mergedEnv, stdio: 'pipe' }); + child.stdout.setEncoding('utf8'); + + let stdout = ''; + child.stdout.on('data', (line) => { + stdout += line; + }); + child.on('exit', (code, signal) => { assert.strictEqual(code, 0); assert.strictEqual(signal, null); + // This bit makes sure that each benchmark file is being sent settings such + // that the benchmark file runs just one set of options. This helps keep the + // benchmark tests from taking a long time to run. Therefore, each benchmark + // file should result in three lines of output: a blank line, a line with + // the name of the benchmark file, and a line with the only results that we + // get from testing the benchmark file. + assert.ok( + /^(?:\n.+?\n.+?\n)+$/.test(stdout), + `benchmark file not running exactly one configuration in test: ${stdout}` + ); }); } From c214403c1ab275e4a7158367c70ae5937ea6e2ff Mon Sep 17 00:00:00 2001 From: Yang Guo Date: Thu, 14 Jun 2018 15:27:27 +0200 Subject: [PATCH 005/109] build: fix building with --build-v8-with-gn MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/21330 Reviewed-By: Ben Noordhuis Reviewed-By: Anna Henningsen Reviewed-By: Colin Ihrig Reviewed-By: Richard Lau Reviewed-By: Michaël Zasso Reviewed-By: Refael Ackermann Reviewed-By: James M Snell Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Ruben Bridgewater --- common.gypi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.gypi b/common.gypi index dbf49d11ce3279..bc80c68f581e07 100644 --- a/common.gypi +++ b/common.gypi @@ -78,7 +78,7 @@ ['GENERATOR == "ninja"', { 'v8_base': '<(PRODUCT_DIR)/obj/deps/v8/gypfiles/v8_monolith.gen/gn/obj/libv8_monolith.a', }, { - 'v8_base': '<(PRODUCT_DIR)/obji.target/v8_monolith/geni/gn/obj/libv8_monolith.a', + 'v8_base': '<(PRODUCT_DIR)/obj.target/v8_monolith/geni/gn/obj/libv8_monolith.a', }], ], }], From 2d6b337df9aae31b12030b2973a0f261efd4572b Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Sun, 17 Jun 2018 23:03:39 +0800 Subject: [PATCH 006/109] process: remove unused arguments in setup() PR-URL: https://github.com/nodejs/node/pull/21377 Reviewed-By: Trivikram Kamat Reviewed-By: Gus Caplan Reviewed-By: Richard Lau Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: Daijiro Wachi Reviewed-By: Ruben Bridgewater --- lib/internal/bootstrap/node.js | 4 ---- lib/internal/process/methods.js | 3 +-- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/lib/internal/bootstrap/node.js b/lib/internal/bootstrap/node.js index a1162d384a1215..d120d8ccae14e6 100644 --- a/lib/internal/bootstrap/node.js +++ b/lib/internal/bootstrap/node.js @@ -53,10 +53,6 @@ _setupPromises); NativeModule.require('internal/process/stdio').setup(); NativeModule.require('internal/process/methods').setup(_chdir, - _cpuUsage, - _hrtime, - _memoryUsage, - _rawDebug, _umask, _initgroups, _setegid, diff --git a/lib/internal/process/methods.js b/lib/internal/process/methods.js index 77ceeafef41122..38ba5f84b5a30a 100644 --- a/lib/internal/process/methods.js +++ b/lib/internal/process/methods.js @@ -4,8 +4,7 @@ const { isMainThread } = require('internal/worker'); -function setupProcessMethods(_chdir, _cpuUsage, _hrtime, _memoryUsage, - _rawDebug, _umask, _initgroups, _setegid, +function setupProcessMethods(_chdir, _umask, _initgroups, _setegid, _seteuid, _setgid, _setuid, _setgroups) { // Non-POSIX platforms like Windows don't have certain methods. // Workers also lack these methods since they change process-global state. From 9cef72dd2142fd3095a176540b68320fb72e72dd Mon Sep 17 00:00:00 2001 From: Kevin Thomas Date: Tue, 19 Jun 2018 20:09:03 +0530 Subject: [PATCH 007/109] test: remove the third string literal argument from assert.strictEqual() Third string literal argument in assert.strictEqual() needs to be removed. Otherwise, on AssertionError it would not display the values that failed the check -- this hinders debugging. The string literals are added as comments above the check. PR-URL: https://github.com/nodejs/node/pull/21406 Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott Reviewed-By: Trivikram Kamat Reviewed-By: Ruben Bridgewater --- test/parallel/test-string-decoder-end.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-string-decoder-end.js b/test/parallel/test-string-decoder-end.js index 2762ef096289db..c686b19b713d73 100644 --- a/test/parallel/test-string-decoder-end.js +++ b/test/parallel/test-string-decoder-end.js @@ -103,8 +103,10 @@ function testBuf(encoding, buf) { // .toString() on the buffer const res3 = buf.toString(encoding); - assert.strictEqual(res1, res3, 'one byte at a time should match toString'); - assert.strictEqual(res2, res3, 'all bytes at once should match toString'); + // One byte at a time should match toString + assert.strictEqual(res1, res3); + // All bytes at once should match toString + assert.strictEqual(res2, res3); } function testEnd(encoding, incomplete, next, expected) { From aa864ba4a9fc49b62f57e27c0903aa074ab12fff Mon Sep 17 00:00:00 2001 From: cjihrig Date: Mon, 11 Jun 2018 14:56:33 -0400 Subject: [PATCH 008/109] dns: add promisified dns module PR-URL: https://github.com/nodejs/node/pull/21264 Reviewed-By: Anna Henningsen Reviewed-By: James M Snell Reviewed-By: Joyee Cheung Reviewed-By: Benjamin Gruenbaum --- doc/api/dns.md | 466 ++++++++++++++++++ lib/dns.js | 149 ++---- lib/internal/dns/promises.js | 249 ++++++++++ lib/internal/dns/utils.js | 141 ++++++ node.gyp | 2 + test/internet/test-dns-any.js | 103 ++-- test/internet/test-dns-ipv4.js | 165 ++++--- test/internet/test-dns-ipv6.js | 108 ++-- test/internet/test-dns-txt-sigsegv.js | 10 +- test/internet/test-dns.js | 258 +++++++--- test/parallel/test-c-ares.js | 36 +- test/parallel/test-dns-lookup.js | 89 +++- .../test-dns-resolveany-bad-ancount.js | 15 +- test/parallel/test-dns-resolveany.js | 21 +- test/parallel/test-dns-resolvens-typeerror.js | 11 + test/parallel/test-dns.js | 134 +++-- 16 files changed, 1551 insertions(+), 406 deletions(-) create mode 100644 lib/internal/dns/promises.js create mode 100644 lib/internal/dns/utils.js diff --git a/doc/api/dns.md b/doc/api/dns.md index 8d47556d7c94c1..624bcc279d2479 100644 --- a/doc/api/dns.md +++ b/doc/api/dns.md @@ -568,6 +568,456 @@ An error will be thrown if an invalid address is provided. The `dns.setServers()` method must not be called while a DNS query is in progress. +## DNS Promises API + +> Stability: 1 - Experimental + +The `dns.promises` API provides an alternative set of asynchronous DNS methods +that return `Promise` objects rather than using callbacks. The API is accessible +via `require('dns').promises`. + +### Class: dnsPromises.Resolver + + +An independent resolver for DNS requests. + +Note that creating a new resolver uses the default server settings. Setting +the servers used for a resolver using +[`resolver.setServers()`][`dnsPromises.setServers()`] does not affect +other resolvers: + +```js +const { Resolver } = require('dns').promises; +const resolver = new Resolver(); +resolver.setServers(['4.4.4.4']); + +// This request will use the server at 4.4.4.4, independent of global settings. +resolver.resolve4('example.org').then((addresses) => { + // ... +}); + +// Alternatively, the same code can be written using async-await style. +(async function() { + const addresses = await resolver.resolve4('example.org'); +})(); +``` + +The following methods from the `dnsPromises` API are available: + +* [`resolver.getServers()`][`dnsPromises.getServers()`] +* [`resolver.setServers()`][`dnsPromises.setServers()`] +* [`resolver.resolve()`][`dnsPromises.resolve()`] +* [`resolver.resolve4()`][`dnsPromises.resolve4()`] +* [`resolver.resolve6()`][`dnsPromises.resolve6()`] +* [`resolver.resolveAny()`][`dnsPromises.resolveAny()`] +* [`resolver.resolveCname()`][`dnsPromises.resolveCname()`] +* [`resolver.resolveMx()`][`dnsPromises.resolveMx()`] +* [`resolver.resolveNaptr()`][`dnsPromises.resolveNaptr()`] +* [`resolver.resolveNs()`][`dnsPromises.resolveNs()`] +* [`resolver.resolvePtr()`][`dnsPromises.resolvePtr()`] +* [`resolver.resolveSoa()`][`dnsPromises.resolveSoa()`] +* [`resolver.resolveSrv()`][`dnsPromises.resolveSrv()`] +* [`resolver.resolveTxt()`][`dnsPromises.resolveTxt()`] +* [`resolver.reverse()`][`dnsPromises.reverse()`] + +#### resolver.cancel() + + +Cancel all outstanding DNS queries made by this resolver. The corresponding +`Promise`s will be rejected with an error with code `ECANCELLED`. + +### dnsPromises.getServers() + + +* Returns: {string[]} + +Returns an array of IP address strings, formatted according to [rfc5952][], +that are currently configured for DNS resolution. A string will include a port +section if a custom port is used. + + +```js +[ + '4.4.4.4', + '2001:4860:4860::8888', + '4.4.4.4:1053', + '[2001:4860:4860::8888]:1053' +] +``` + +### dnsPromises.lookup(hostname[, options]) + +- `hostname` {string} +- `options` {integer | Object} + - `family` {integer} The record family. Must be `4` or `6`. IPv4 + and IPv6 addresses are both returned by default. + - `hints` {number} One or more [supported `getaddrinfo` flags][]. Multiple + flags may be passed by bitwise `OR`ing their values. + - `all` {boolean} When `true`, the `Promise` is resolved with all addresses in + an array. Otherwise, returns a single address. **Default:** `false`. + - `verbatim` {boolean} When `true`, the `Promise` is resolved with IPv4 and + IPv6 addresses in the order the DNS resolver returned them. When `false`, + IPv4 addresses are placed before IPv6 addresses. + **Default:** currently `false` (addresses are reordered) but this is + expected to change in the not too distant future. + New code should use `{ verbatim: true }`. + +Resolves a hostname (e.g. `'nodejs.org'`) into the first found A (IPv4) or +AAAA (IPv6) record. All `option` properties are optional. If `options` is an +integer, then it must be `4` or `6` – if `options` is not provided, then IPv4 +and IPv6 addresses are both returned if found. + +With the `all` option set to `true`, the `Promise` is resolved with `addresses` +being an array of objects with the properties `address` and `family`. + +On error, the `Promise` is rejected with an [`Error`][] object, where `err.code` +is the error code. +Keep in mind that `err.code` will be set to `'ENOENT'` not only when +the hostname does not exist but also when the lookup fails in other ways +such as no available file descriptors. + +[`dnsPromises.lookup()`][] does not necessarily have anything to do with the DNS +protocol. The implementation uses an operating system facility that can +associate names with addresses, and vice versa. This implementation can have +subtle but important consequences on the behavior of any Node.js program. Please +take some time to consult the [Implementation considerations section][] before +using `dnsPromises.lookup()`. + +Example usage: + +```js +const dns = require('dns'); +const dnsPromises = dns.promises; +const options = { + family: 6, + hints: dns.ADDRCONFIG | dns.V4MAPPED, +}; + +dnsPromises.lookup('example.com', options).then((result) => { + console.log('address: %j family: IPv%s', result.address, result.family); + // address: "2606:2800:220:1:248:1893:25c8:1946" family: IPv6 +}); + +// When options.all is true, the result will be an Array. +options.all = true; +dnsPromises.lookup('example.com', options).then((result) => { + console.log('addresses: %j', result); + // addresses: [{"address":"2606:2800:220:1:248:1893:25c8:1946","family":6}] +}); +``` + +### dnsPromises.lookupService(address, port) + +- `address` {string} +- `port` {number} + +Resolves the given `address` and `port` into a hostname and service using +the operating system's underlying `getnameinfo` implementation. + +If `address` is not a valid IP address, a `TypeError` will be thrown. +The `port` will be coerced to a number. If it is not a legal port, a `TypeError` +will be thrown. + +On error, the `Promise` is rejected with an [`Error`][] object, where `err.code` +is the error code. + +```js +const dnsPromises = require('dns').promises; +dnsPromises.lookupService('127.0.0.1', 22).then((result) => { + console.log(result.hostname, result.service); + // Prints: localhost ssh +}); +``` + +### dnsPromises.resolve(hostname[, rrtype]) + +- `hostname` {string} Hostname to resolve. +- `rrtype` {string} Resource record type. **Default:** `'A'`. + +Uses the DNS protocol to resolve a hostname (e.g. `'nodejs.org'`) into an array +of the resource records. When successful, the `Promise` is resolved with an +array of resource records. The type and structure of individual results vary +based on `rrtype`: + +| `rrtype` | `records` contains | Result type | Shorthand method | +|-----------|--------------------------------|-------------|--------------------------| +| `'A'` | IPv4 addresses (default) | {string} | [`dnsPromises.resolve4()`][] | +| `'AAAA'` | IPv6 addresses | {string} | [`dnsPromises.resolve6()`][] | +| `'CNAME'` | canonical name records | {string} | [`dnsPromises.resolveCname()`][] | +| `'MX'` | mail exchange records | {Object} | [`dnsPromises.resolveMx()`][] | +| `'NAPTR'` | name authority pointer records | {Object} | [`dnsPromises.resolveNaptr()`][] | +| `'NS'` | name server records | {string} | [`dnsPromises.resolveNs()`][] | +| `'PTR'` | pointer records | {string} | [`dnsPromises.resolvePtr()`][] | +| `'SOA'` | start of authority records | {Object} | [`dnsPromises.resolveSoa()`][] | +| `'SRV'` | service records | {Object} | [`dnsPromises.resolveSrv()`][] | +| `'TXT'` | text records | {string[]} | [`dnsPromises.resolveTxt()`][] | +| `'ANY'` | any records | {Object} | [`dnsPromises.resolveAny()`][] | + +On error, the `Promise` is rejected with an [`Error`][] object, where `err.code` +is one of the [DNS error codes](#dns_error_codes). + +### dnsPromises.resolve4(hostname[, options]) + +- `hostname` {string} Hostname to resolve. +- `options` {Object} + - `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record. + When `true`, the `Promise` is resolved with an array of + `{ address: '1.2.3.4', ttl: 60 }` objects rather than an array of strings, + with the TTL expressed in seconds. + +Uses the DNS protocol to resolve IPv4 addresses (`A` records) for the +`hostname`. On success, the `Promise` is resolved with an array of IPv4 +addresses (e.g. `['74.125.79.104', '74.125.79.105', '74.125.79.106']`). + +### dnsPromises.resolve6(hostname[, options]) + +- `hostname` {string} Hostname to resolve. +- `options` {Object} + - `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record. + When `true`, the `Promise` is resolved with an array of + `{ address: '0:1:2:3:4:5:6:7', ttl: 60 }` objects rather than an array of + strings, with the TTL expressed in seconds. + +Uses the DNS protocol to resolve IPv6 addresses (`AAAA` records) for the +`hostname`. On success, the `Promise` is resolved with an array of IPv6 +addresses. + +### dnsPromises.resolveCname(hostname) + +- `hostname` {string} + +Uses the DNS protocol to resolve `CNAME` records for the `hostname`. On success, +the `Promise` is resolved with an array of canonical name records available for +the `hostname` (e.g. `['bar.example.com']`). + +### dnsPromises.resolveMx(hostname) + +- `hostname` {string} + +Uses the DNS protocol to resolve mail exchange records (`MX` records) for the +`hostname`. On success, the `Promise` is resolved with an array of objects +containing both a `priority` and `exchange` property (e.g. +`[{priority: 10, exchange: 'mx.example.com'}, ...]`). + +### dnsPromises.resolveNaptr(hostname) + +- `hostname` {string} + +Uses the DNS protocol to resolve regular expression based records (`NAPTR` +records) for the `hostname`. On success, the `Promise` is resolved with an array +of objects with the following properties: + +* `flags` +* `service` +* `regexp` +* `replacement` +* `order` +* `preference` + + +```js +{ + flags: 's', + service: 'SIP+D2U', + regexp: '', + replacement: '_sip._udp.example.com', + order: 30, + preference: 100 +} +``` + +### dnsPromises.resolveNs(hostname) + +- `hostname` {string} + +Uses the DNS protocol to resolve name server records (`NS` records) for the +`hostname`. On success, the `Promise` is resolved with an array of name server +records available for `hostname` (e.g. +`['ns1.example.com', 'ns2.example.com']`). + +### dnsPromises.resolvePtr(hostname) + +- `hostname` {string} + +Uses the DNS protocol to resolve pointer records (`PTR` records) for the +`hostname`. On success, the `Promise` is resolved with an array of strings +containing the reply records. + +### dnsPromises.resolveSoa(hostname) + +- `hostname` {string} + +Uses the DNS protocol to resolve a start of authority record (`SOA` record) for +the `hostname`. On success, the `Promise` is resolved with an object with the +following properties: + +* `nsname` +* `hostmaster` +* `serial` +* `refresh` +* `retry` +* `expire` +* `minttl` + + +```js +{ + nsname: 'ns.example.com', + hostmaster: 'root.example.com', + serial: 2013101809, + refresh: 10000, + retry: 2400, + expire: 604800, + minttl: 3600 +} +``` + +### dnsPromises.resolveSrv(hostname) + +- `hostname` {string} + +Uses the DNS protocol to resolve service records (`SRV` records) for the +`hostname`. On success, the `Promise` is resolved with an array of objects with +the following properties: + +* `priority` +* `weight` +* `port` +* `name` + + +```js +{ + priority: 10, + weight: 5, + port: 21223, + name: 'service.example.com' +} +``` + +### dnsPromises.resolveTxt(hostname) + +- `hostname` {string} + +Uses the DNS protocol to resolve text queries (`TXT` records) for the +`hostname`. On success, the `Promise` is resolved with a two-dimensional array +of the text records available for `hostname` (e.g. +`[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]`). Each sub-array contains TXT chunks of +one record. Depending on the use case, these could be either joined together or +treated separately. + +### dnsPromises.resolveAny(hostname) + +- `hostname` {string} + +Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query). +On success, the `Promise` is resolved with an array containing various types of +records. Each object has a property `type` that indicates the type of the +current record. And depending on the `type`, additional properties will be +present on the object: + +| Type | Properties | +|------|------------| +| `'A'` | `address`/`ttl` | +| `'AAAA'` | `address`/`ttl` | +| `'CNAME'` | `value` | +| `'MX'` | Refer to [`dnsPromises.resolveMx()`][] | +| `'NAPTR'` | Refer to [`dnsPromises.resolveNaptr()`][] | +| `'NS'` | `value` | +| `'PTR'` | `value` | +| `'SOA'` | Refer to [`dnsPromises.resolveSoa()`][] | +| `'SRV'` | Refer to [`dnsPromises.resolveSrv()`][] | +| `'TXT'` | This type of record contains an array property called `entries` which refers to [`dnsPromises.resolveTxt()`][], e.g. `{ entries: ['...'], type: 'TXT' }` | + +Here is an example of the result object: + + +```js +[ { type: 'A', address: '127.0.0.1', ttl: 299 }, + { type: 'CNAME', value: 'example.com' }, + { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 }, + { type: 'NS', value: 'ns1.example.com' }, + { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] }, + { type: 'SOA', + nsname: 'ns1.example.com', + hostmaster: 'admin.example.com', + serial: 156696742, + refresh: 900, + retry: 900, + expire: 1800, + minttl: 60 } ] +``` + +### dnsPromises.reverse(ip) + +- `ip` {string} + +Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an +array of hostnames. + +On error, the `Promise` is rejected with an [`Error`][] object, where `err.code` +is one of the [DNS error codes](#dns_error_codes). + +### dnsPromises.setServers(servers) + +- `servers` {string[]} array of [rfc5952][] formatted addresses + +Sets the IP address and port of servers to be used when performing DNS +resolution. The `servers` argument is an array of [rfc5952][] formatted +addresses. If the port is the IANA default DNS port (53) it can be omitted. + +```js +dnsPromises.setServers([ + '4.4.4.4', + '[2001:4860:4860::8888]', + '4.4.4.4:1053', + '[2001:4860:4860::8888]:1053' +]); +``` + +An error will be thrown if an invalid address is provided. + +The `dnsPromises.setServers()` method must not be called while a DNS query is in +progress. + ## Error codes Each DNS query can return one of the following error codes: @@ -659,6 +1109,22 @@ uses. For instance, _they do not use the configuration from `/etc/hosts`_. [`dns.resolveTxt()`]: #dns_dns_resolvetxt_hostname_callback [`dns.reverse()`]: #dns_dns_reverse_ip_callback [`dns.setServers()`]: #dns_dns_setservers_servers +[`dnsPromises.getServers()`]: #dns_dnspromises_getservers +[`dnsPromises.lookup()`]: #dns_dnspromises_lookup_hostname_options +[`dnsPromises.resolve()`]: #dns_dnspromises_resolve_hostname_rrtype +[`dnsPromises.resolve4()`]: #dns_dnspromises_resolve4_hostname_options +[`dnsPromises.resolve6()`]: #dns_dnspromises_resolve6_hostname_options +[`dnsPromises.resolveAny()`]: #dns_dnspromises_resolveany_hostname +[`dnsPromises.resolveCname()`]: #dns_dnspromises_resolvecname_hostname +[`dnsPromises.resolveMx()`]: #dns_dnspromises_resolvemx_hostname +[`dnsPromises.resolveNaptr()`]: #dns_dnspromises_resolvenaptr_hostname +[`dnsPromises.resolveNs()`]: #dns_dnspromises_resolvens_hostname +[`dnsPromises.resolvePtr()`]: #dns_dnspromises_resolveptr_hostname +[`dnsPromises.resolveSoa()`]: #dns_dnspromises_resolvesoa_hostname +[`dnsPromises.resolveSrv()`]: #dns_dnspromises_resolvesrv_hostname +[`dnsPromises.resolveTxt()`]: #dns_dnspromises_resolvetxt_hostname +[`dnsPromises.reverse()`]: #dns_dnspromises_reverse_ip +[`dnsPromises.setServers()`]: #dns_dnspromises_setservers_servers [`socket.connect()`]: net.html#net_socket_connect_options_connectlistener [`util.promisify()`]: util.html#util_util_promisify_original [DNS error codes]: #dns_error_codes diff --git a/lib/dns.js b/lib/dns.js index 1f6994ba16fd21..195a0189504bc9 100644 --- a/lib/dns.js +++ b/lib/dns.js @@ -26,10 +26,15 @@ const { isIP, isIPv4, isLegalPort } = require('internal/net'); const { customPromisifyArgs } = require('internal/util'); const errors = require('internal/errors'); const { - ERR_DNS_SET_SERVERS_FAILED, + bindDefaultResolver, + getDefaultResolver, + setDefaultResolver, + Resolver, + validateHints +} = require('internal/dns/utils'); +const { ERR_INVALID_ARG_TYPE, ERR_INVALID_CALLBACK, - ERR_INVALID_IP_ADDRESS, ERR_INVALID_OPT_VALUE, ERR_MISSING_ARGS, ERR_SOCKET_BAD_PORT @@ -39,12 +44,13 @@ const { GetAddrInfoReqWrap, GetNameInfoReqWrap, QueryReqWrap, - ChannelWrap, } = cares; -const IANA_DNS_PORT = 53; const dnsException = errors.dnsException; +let promisesWarn = true; +let promises; // Lazy loaded + function onlookup(err, addresses) { if (err) { return this.callback(dnsException(err, 'getaddrinfo', this.hostname)); @@ -97,12 +103,7 @@ function lookup(hostname, options, callback) { all = options.all === true; verbatim = options.verbatim === true; - if (hints !== 0 && - hints !== cares.AI_ADDRCONFIG && - hints !== cares.AI_V4MAPPED && - hints !== (cares.AI_ADDRCONFIG | cares.AI_V4MAPPED)) { - throw new ERR_INVALID_OPT_VALUE('hints', hints); - } + validateHints(hints); } else { family = options >>> 0; } @@ -197,17 +198,6 @@ function onresolve(err, result, ttls) { this.callback(null, result); } -// Resolver instances correspond 1:1 to c-ares channels. -class Resolver { - constructor() { - this._handle = new ChannelWrap(); - } - - cancel() { - this._handle.cancel(); - } -} - function resolver(bindingName) { function query(name, /* options, */ callback) { var options; @@ -270,101 +260,15 @@ function resolve(hostname, rrtype, callback) { } } - -Resolver.prototype.getServers = getServers; -function getServers() { - const ret = this._handle.getServers(); - return ret.map((val) => { - if (!val[1] || val[1] === IANA_DNS_PORT) return val[0]; - - const host = isIP(val[0]) === 6 ? `[${val[0]}]` : val[0]; - return `${host}:${val[1]}`; - }); -} - - -Resolver.prototype.setServers = setServers; -function setServers(servers) { - // cache the original servers because in the event of an error setting the - // servers cares won't have any servers available for resolution - const orig = this._handle.getServers(); - const newSet = []; - const IPv6RE = /^\[([^[\]]*)\]/; - const addrSplitRE = /(^.+?)(?::(\d+))?$/; - - servers.forEach((serv) => { - var ipVersion = isIP(serv); - if (ipVersion !== 0) - return newSet.push([ipVersion, serv, IANA_DNS_PORT]); - - const match = serv.match(IPv6RE); - // we have an IPv6 in brackets - if (match) { - ipVersion = isIP(match[1]); - if (ipVersion !== 0) { - const port = - parseInt(serv.replace(addrSplitRE, '$2')) || - IANA_DNS_PORT; - return newSet.push([ipVersion, match[1], port]); - } - } - - // addr::port - const addrSplitMatch = serv.match(addrSplitRE); - if (addrSplitMatch) { - const hostIP = addrSplitMatch[1]; - const port = addrSplitMatch[2] || IANA_DNS_PORT; - - ipVersion = isIP(hostIP); - if (ipVersion !== 0) { - return newSet.push([ipVersion, hostIP, parseInt(port)]); - } - } - - throw new ERR_INVALID_IP_ADDRESS(serv); - }); - - const errorNumber = this._handle.setServers(newSet); - - if (errorNumber !== 0) { - // reset the servers to the old servers, because ares probably unset them - this._handle.setServers(orig.join(',')); - - var err = cares.strerror(errorNumber); - throw new ERR_DNS_SET_SERVERS_FAILED(err, servers); - } -} - -let defaultResolver = new Resolver(); - -const resolverKeys = [ - 'getServers', - 'resolve', - 'resolveAny', - 'resolve4', - 'resolve6', - 'resolveCname', - 'resolveMx', - 'resolveNs', - 'resolveTxt', - 'resolveSrv', - 'resolvePtr', - 'resolveNaptr', - 'resolveSoa', - 'reverse' -]; - -function setExportsFunctions() { - resolverKeys.forEach((key) => { - module.exports[key] = defaultResolver[key].bind(defaultResolver); - }); -} - function defaultResolverSetServers(servers) { const resolver = new Resolver(); + resolver.setServers(servers); - defaultResolver = resolver; - setExportsFunctions(); + setDefaultResolver(resolver); + bindDefaultResolver(module.exports, Resolver.prototype); + + if (promises !== undefined) + bindDefaultResolver(promises, promises.Resolver.prototype); } module.exports = { @@ -405,4 +309,21 @@ module.exports = { CANCELLED: 'ECANCELLED' }; -setExportsFunctions(); +bindDefaultResolver(module.exports, getDefaultResolver()); + +Object.defineProperties(module.exports, { + promises: { + configurable: true, + enumerable: false, + get() { + if (promisesWarn) { + promises = require('internal/dns/promises'); + promises.setServers = defaultResolverSetServers; + promisesWarn = false; + process.emitWarning('The dns.promises API is experimental', + 'ExperimentalWarning'); + } + return promises; + } + } +}); diff --git a/lib/internal/dns/promises.js b/lib/internal/dns/promises.js new file mode 100644 index 00000000000000..45e6c5ec64d541 --- /dev/null +++ b/lib/internal/dns/promises.js @@ -0,0 +1,249 @@ +'use strict'; +const { + bindDefaultResolver, + Resolver: CallbackResolver, + validateHints +} = require('internal/dns/utils'); +const { codes, dnsException } = require('internal/errors'); +const { isIP, isIPv4, isLegalPort } = require('internal/net'); +const { + getaddrinfo, + getnameinfo, + ChannelWrap, + GetAddrInfoReqWrap, + GetNameInfoReqWrap, + QueryReqWrap +} = process.binding('cares_wrap'); +const { + ERR_INVALID_ARG_TYPE, + ERR_INVALID_OPT_VALUE, + ERR_MISSING_ARGS, + ERR_SOCKET_BAD_PORT +} = codes; + + +function onlookup(err, addresses) { + if (err) { + this.reject(dnsException(err, 'getaddrinfo', this.hostname)); + return; + } + + const family = this.family ? this.family : isIPv4(addresses[0]) ? 4 : 6; + this.resolve({ address: addresses[0], family }); +} + +function onlookupall(err, addresses) { + if (err) { + this.reject(dnsException(err, 'getaddrinfo', this.hostname)); + return; + } + + const family = this.family; + + for (var i = 0; i < addresses.length; i++) { + const address = addresses[i]; + + addresses[i] = { + address, + family: family ? family : isIPv4(addresses[i]) ? 4 : 6 + }; + } + + this.resolve(addresses); +} + +function createLookupPromise(family, hostname, all, hints, verbatim) { + return new Promise((resolve, reject) => { + if (!hostname) { + if (all) + resolve([]); + else + resolve({ address: null, family: family === 6 ? 6 : 4 }); + + return; + } + + const matchedFamily = isIP(hostname); + + if (matchedFamily !== 0) { + const result = { address: hostname, family: matchedFamily }; + if (all) + resolve([result]); + else + resolve(result); + + return; + } + + const req = new GetAddrInfoReqWrap(); + + req.family = family; + req.hostname = hostname; + req.oncomplete = all ? onlookupall : onlookup; + req.resolve = resolve; + req.reject = reject; + + const err = getaddrinfo(req, hostname, family, hints, verbatim); + + if (err) { + reject(dnsException(err, 'getaddrinfo', hostname)); + } + }); +} + +function lookup(hostname, options) { + var hints = 0; + var family = -1; + var all = false; + var verbatim = false; + + // Parse arguments + if (hostname && typeof hostname !== 'string') { + throw new ERR_INVALID_ARG_TYPE('hostname', ['string', 'falsy'], hostname); + } else if (options !== null && typeof options === 'object') { + hints = options.hints >>> 0; + family = options.family >>> 0; + all = options.all === true; + verbatim = options.verbatim === true; + + validateHints(hints); + } else { + family = options >>> 0; + } + + if (family !== 0 && family !== 4 && family !== 6) + throw new ERR_INVALID_OPT_VALUE('family', family); + + return createLookupPromise(family, hostname, all, hints, verbatim); +} + + +function onlookupservice(err, hostname, service) { + if (err) { + this.reject(dnsException(err, 'getnameinfo', this.host)); + return; + } + + this.resolve({ hostname, service }); +} + +function createLookupServicePromise(host, port) { + return new Promise((resolve, reject) => { + const req = new GetNameInfoReqWrap(); + + req.host = host; + req.port = port; + req.oncomplete = onlookupservice; + req.resolve = resolve; + req.reject = reject; + + const err = getnameinfo(req, host, port); + + if (err) + reject(dnsException(err, 'getnameinfo', host)); + }); +} + +function lookupService(host, port) { + if (arguments.length !== 2) + throw new ERR_MISSING_ARGS('host', 'port'); + + if (isIP(host) === 0) + throw new ERR_INVALID_OPT_VALUE('host', host); + + if (!isLegalPort(port)) + throw new ERR_SOCKET_BAD_PORT(port); + + return createLookupServicePromise(host, +port); +} + + +function onresolve(err, result, ttls) { + if (err) { + this.reject(dnsException(err, this.bindingName, this.hostname)); + return; + } + + if (ttls && this.ttl) + result = result.map((address, index) => ({ address, ttl: ttls[index] })); + + this.resolve(result); +} + +function createResolverPromise(resolver, bindingName, hostname, ttl) { + return new Promise((resolve, reject) => { + const req = new QueryReqWrap(); + + req.bindingName = bindingName; + req.hostname = hostname; + req.oncomplete = onresolve; + req.resolve = resolve; + req.reject = reject; + req.ttl = ttl; + + const err = resolver._handle[bindingName](req, hostname); + + if (err) + reject(dnsException(err, bindingName, hostname)); + }); +} + +function resolver(bindingName) { + function query(name, options) { + if (typeof name !== 'string') { + throw new ERR_INVALID_ARG_TYPE('name', 'string', name); + } + + const ttl = !!(options && options.ttl); + return createResolverPromise(this, bindingName, name, ttl); + } + + Object.defineProperty(query, 'name', { value: bindingName }); + return query; +} + + +const resolveMap = Object.create(null); + +// Resolver instances correspond 1:1 to c-ares channels. +class Resolver { + constructor() { + this._handle = new ChannelWrap(); + } +} + +Resolver.prototype.cancel = CallbackResolver.prototype.cancel; +Resolver.prototype.getServers = CallbackResolver.prototype.getServers; +Resolver.prototype.setServers = CallbackResolver.prototype.setServers; +Resolver.prototype.resolveAny = resolveMap.ANY = resolver('queryAny'); +Resolver.prototype.resolve4 = resolveMap.A = resolver('queryA'); +Resolver.prototype.resolve6 = resolveMap.AAAA = resolver('queryAaaa'); +Resolver.prototype.resolveCname = resolveMap.CNAME = resolver('queryCname'); +Resolver.prototype.resolveMx = resolveMap.MX = resolver('queryMx'); +Resolver.prototype.resolveNs = resolveMap.NS = resolver('queryNs'); +Resolver.prototype.resolveTxt = resolveMap.TXT = resolver('queryTxt'); +Resolver.prototype.resolveSrv = resolveMap.SRV = resolver('querySrv'); +Resolver.prototype.resolvePtr = resolveMap.PTR = resolver('queryPtr'); +Resolver.prototype.resolveNaptr = resolveMap.NAPTR = resolver('queryNaptr'); +Resolver.prototype.resolveSoa = resolveMap.SOA = resolver('querySoa'); +Resolver.prototype.reverse = resolver('getHostByAddr'); +Resolver.prototype.resolve = function resolve(hostname, rrtype) { + var resolver; + + if (typeof rrtype === 'string') { + resolver = resolveMap[rrtype]; + + if (typeof resolver !== 'function') + throw new ERR_INVALID_OPT_VALUE('rrtype', rrtype); + } else if (rrtype === undefined) { + resolver = resolveMap.A; + } else { + throw new ERR_INVALID_ARG_TYPE('rrtype', 'string', rrtype); + } + + return resolver.call(this, hostname); +}; + + +module.exports = { lookup, lookupService, Resolver }; +bindDefaultResolver(module.exports, Resolver.prototype); diff --git a/lib/internal/dns/utils.js b/lib/internal/dns/utils.js new file mode 100644 index 00000000000000..43b65418848f85 --- /dev/null +++ b/lib/internal/dns/utils.js @@ -0,0 +1,141 @@ +'use strict'; +const errors = require('internal/errors'); +const { isIP } = require('internal/net'); +const { + ChannelWrap, + strerror, + AI_ADDRCONFIG, + AI_V4MAPPED +} = process.binding('cares_wrap'); +const IANA_DNS_PORT = 53; +const IPv6RE = /^\[([^[\]]*)\]/; +const addrSplitRE = /(^.+?)(?::(\d+))?$/; +const { + ERR_DNS_SET_SERVERS_FAILED, + ERR_INVALID_IP_ADDRESS, + ERR_INVALID_OPT_VALUE +} = errors.codes; + +// Resolver instances correspond 1:1 to c-ares channels. +class Resolver { + constructor() { + this._handle = new ChannelWrap(); + } + + cancel() { + this._handle.cancel(); + } + + getServers() { + return this._handle.getServers().map((val) => { + if (!val[1] || val[1] === IANA_DNS_PORT) + return val[0]; + + const host = isIP(val[0]) === 6 ? `[${val[0]}]` : val[0]; + return `${host}:${val[1]}`; + }); + } + + setServers(servers) { + // Cache the original servers because in the event of an error while + // setting the servers, c-ares won't have any servers available for + // resolution. + const orig = this._handle.getServers(); + const newSet = []; + + servers.forEach((serv) => { + var ipVersion = isIP(serv); + + if (ipVersion !== 0) + return newSet.push([ipVersion, serv, IANA_DNS_PORT]); + + const match = serv.match(IPv6RE); + + // Check for an IPv6 in brackets. + if (match) { + ipVersion = isIP(match[1]); + + if (ipVersion !== 0) { + const port = + parseInt(serv.replace(addrSplitRE, '$2')) || + IANA_DNS_PORT; + return newSet.push([ipVersion, match[1], port]); + } + } + + // addr::port + const addrSplitMatch = serv.match(addrSplitRE); + + if (addrSplitMatch) { + const hostIP = addrSplitMatch[1]; + const port = addrSplitMatch[2] || IANA_DNS_PORT; + + ipVersion = isIP(hostIP); + + if (ipVersion !== 0) { + return newSet.push([ipVersion, hostIP, parseInt(port)]); + } + } + + throw new ERR_INVALID_IP_ADDRESS(serv); + }); + + const errorNumber = this._handle.setServers(newSet); + + if (errorNumber !== 0) { + // Reset the servers to the old servers, because ares probably unset them. + this._handle.setServers(orig.join(',')); + const err = strerror(errorNumber); + throw new ERR_DNS_SET_SERVERS_FAILED(err, servers); + } + } +} + +let defaultResolver = new Resolver(); +const resolverKeys = [ + 'getServers', + 'resolve', + 'resolveAny', + 'resolve4', + 'resolve6', + 'resolveCname', + 'resolveMx', + 'resolveNs', + 'resolveTxt', + 'resolveSrv', + 'resolvePtr', + 'resolveNaptr', + 'resolveSoa', + 'reverse' +]; + +function getDefaultResolver() { + return defaultResolver; +} + +function setDefaultResolver(resolver) { + defaultResolver = resolver; +} + +function bindDefaultResolver(target, source) { + resolverKeys.forEach((key) => { + target[key] = source[key].bind(defaultResolver); + }); +} + +function validateHints(hints) { + if (hints !== 0 && + hints !== AI_ADDRCONFIG && + hints !== AI_V4MAPPED && + hints !== (AI_ADDRCONFIG | AI_V4MAPPED)) { + throw new ERR_INVALID_OPT_VALUE('hints', hints); + } +} + +module.exports = { + bindDefaultResolver, + getDefaultResolver, + setDefaultResolver, + validateHints, + Resolver +}; diff --git a/node.gyp b/node.gyp index 9e1ce57b394f44..47df9ba388887f 100644 --- a/node.gyp +++ b/node.gyp @@ -101,6 +101,8 @@ 'lib/internal/crypto/sig.js', 'lib/internal/crypto/util.js', 'lib/internal/constants.js', + 'lib/internal/dns/promises.js', + 'lib/internal/dns/utils.js', 'lib/internal/encoding.js', 'lib/internal/errors.js', 'lib/internal/error-serdes.js', diff --git a/test/internet/test-dns-any.js b/test/internet/test-dns-any.js index a83040801f38f4..be5fc4b1addefc 100644 --- a/test/internet/test-dns-any.js +++ b/test/internet/test-dns-any.js @@ -9,6 +9,9 @@ const net = require('net'); let running = false; const queue = []; +common.crashOnUnhandledRejection(); + +const dnsPromises = dns.promises; const isIPv4 = net.isIPv4; const isIPv6 = net.isIPv6; @@ -101,93 +104,95 @@ function TEST(f) { } } -TEST(function test_google(done) { +function processResult(res) { + assert.ok(Array.isArray(res)); + assert.ok(res.length > 0); + + const types = {}; + res.forEach((obj) => { + types[obj.type] = true; + checkers[`check${obj.type}`](obj); + }); + + return types; +} + +TEST(async function test_google(done) { + function validateResult(res) { + const types = processResult(res); + assert.ok( + types.A && types.AAAA && types.MX && + types.NS && types.TXT && types.SOA); + } + + validateResult(await dnsPromises.resolve('google.com', 'ANY')); + const req = dns.resolve( 'google.com', 'ANY', common.mustCall(function(err, ret) { assert.ifError(err); - assert.ok(Array.isArray(ret)); - assert.ok(ret.length > 0); - - /* current google.com has A / AAAA / MX / NS / TXT and SOA records */ - const types = {}; - ret.forEach((obj) => { - types[obj.type] = true; - checkers[`check${obj.type}`](obj); - }); - assert.ok( - types.A && types.AAAA && types.MX && - types.NS && types.TXT && types.SOA); - + validateResult(ret); done(); })); checkWrap(req); }); -TEST(function test_sip2sip_for_naptr(done) { +TEST(async function test_sip2sip_for_naptr(done) { + function validateResult(res) { + const types = processResult(res); + assert.ok(types.A && types.NS && types.NAPTR && types.SOA); + } + + validateResult(await dnsPromises.resolve('sip2sip.info', 'ANY')); + const req = dns.resolve( 'sip2sip.info', 'ANY', common.mustCall(function(err, ret) { assert.ifError(err); - assert.ok(Array.isArray(ret)); - assert.ok(ret.length > 0); - - /* current sip2sip.info has A / NS / NAPTR and SOA records */ - const types = {}; - ret.forEach((obj) => { - types[obj.type] = true; - checkers[`check${obj.type}`](obj); - }); - assert.ok(types.A && types.NS && types.NAPTR && types.SOA); - + validateResult(ret); done(); })); checkWrap(req); }); -TEST(function test_google_for_cname_and_srv(done) { +TEST(async function test_google_for_cname_and_srv(done) { + function validateResult(res) { + const types = processResult(res); + assert.ok(types.SRV); + } + + validateResult(await dnsPromises.resolve('_jabber._tcp.google.com', 'ANY')); + const req = dns.resolve( '_jabber._tcp.google.com', 'ANY', common.mustCall(function(err, ret) { assert.ifError(err); - assert.ok(Array.isArray(ret)); - assert.ok(ret.length > 0); - - const types = {}; - ret.forEach((obj) => { - types[obj.type] = true; - checkers[`check${obj.type}`](obj); - }); - assert.ok(types.SRV); - + validateResult(ret); done(); })); checkWrap(req); }); -TEST(function test_ptr(done) { +TEST(async function test_ptr(done) { + function validateResult(res) { + const types = processResult(res); + assert.ok(types.PTR); + } + + validateResult(await dnsPromises.resolve('8.8.8.8.in-addr.arpa', 'ANY')); + const req = dns.resolve( '8.8.8.8.in-addr.arpa', 'ANY', common.mustCall(function(err, ret) { assert.ifError(err); - assert.ok(Array.isArray(ret)); - assert.ok(ret.length > 0); - - /* current 8.8.8.8.in-addr.arpa has PTR record */ - const types = {}; - ret.forEach((obj) => { - types[obj.type] = true; - checkers[`check${obj.type}`](obj); - }); - assert.ok(types.PTR); - + validateResult(ret); done(); })); diff --git a/test/internet/test-dns-ipv4.js b/test/internet/test-dns-ipv4.js index 4c6e0ae6865e3f..837d45f2ad4128 100644 --- a/test/internet/test-dns-ipv4.js +++ b/test/internet/test-dns-ipv4.js @@ -9,6 +9,7 @@ const isIPv4 = net.isIPv4; common.crashOnUnhandledRejection(); +const dnsPromises = dns.promises; let running = false; const queue = []; @@ -38,139 +39,187 @@ function checkWrap(req) { assert.ok(typeof req === 'object'); } -TEST(function test_resolve4(done) { +TEST(async function test_resolve4(done) { + function validateResult(res) { + assert.ok(res.length > 0); + + for (let i = 0; i < res.length; i++) { + assert.ok(isIPv4(res[i])); + } + } + + validateResult(await dnsPromises.resolve4(addresses.INET4_HOST)); + const req = dns.resolve4( addresses.INET4_HOST, common.mustCall((err, ips) => { assert.ifError(err); - - assert.ok(ips.length > 0); - - for (let i = 0; i < ips.length; i++) { - assert.ok(isIPv4(ips[i])); - } - + validateResult(ips); done(); })); checkWrap(req); }); -TEST(function test_reverse_ipv4(done) { +TEST(async function test_reverse_ipv4(done) { + function validateResult(res) { + assert.ok(res.length > 0); + + for (let i = 0; i < res.length; i++) { + assert.ok(res[i]); + assert.ok(typeof res[i] === 'string'); + } + } + + validateResult(await dnsPromises.reverse(addresses.INET4_IP)); + const req = dns.reverse( addresses.INET4_IP, common.mustCall((err, domains) => { assert.ifError(err); - - assert.ok(domains.length > 0); - - for (let i = 0; i < domains.length; i++) { - assert.ok(domains[i]); - assert.ok(typeof domains[i] === 'string'); - } - + validateResult(domains); done(); })); checkWrap(req); }); -TEST(function test_lookup_ipv4_explicit(done) { +TEST(async function test_lookup_ipv4_explicit(done) { + function validateResult(res) { + assert.ok(net.isIPv4(res.address)); + assert.strictEqual(res.family, 4); + } + + validateResult(await dnsPromises.lookup(addresses.INET4_HOST, 4)); + const req = dns.lookup( addresses.INET4_HOST, 4, common.mustCall((err, ip, family) => { assert.ifError(err); - assert.ok(net.isIPv4(ip)); - assert.strictEqual(family, 4); - + validateResult({ address: ip, family }); done(); })); checkWrap(req); }); -TEST(function test_lookup_ipv4_implicit(done) { +TEST(async function test_lookup_ipv4_implicit(done) { + function validateResult(res) { + assert.ok(net.isIPv4(res.address)); + assert.strictEqual(res.family, 4); + } + + validateResult(await dnsPromises.lookup(addresses.INET4_HOST)); + const req = dns.lookup( addresses.INET4_HOST, common.mustCall((err, ip, family) => { assert.ifError(err); - assert.ok(net.isIPv4(ip)); - assert.strictEqual(family, 4); - + validateResult({ address: ip, family }); done(); })); checkWrap(req); }); -TEST(function test_lookup_ipv4_explicit_object(done) { +TEST(async function test_lookup_ipv4_explicit_object(done) { + function validateResult(res) { + assert.ok(net.isIPv4(res.address)); + assert.strictEqual(res.family, 4); + } + + validateResult(await dnsPromises.lookup(addresses.INET4_HOST, { family: 4 })); + const req = dns.lookup(addresses.INET4_HOST, { family: 4 }, common.mustCall((err, ip, family) => { assert.ifError(err); - assert.ok(net.isIPv4(ip)); - assert.strictEqual(family, 4); - + validateResult({ address: ip, family }); done(); })); checkWrap(req); }); -TEST(function test_lookup_ipv4_hint_addrconfig(done) { +TEST(async function test_lookup_ipv4_hint_addrconfig(done) { + function validateResult(res) { + assert.ok(net.isIPv4(res.address)); + assert.strictEqual(res.family, 4); + } + + validateResult(await dnsPromises.lookup(addresses.INET4_HOST, { + hints: dns.ADDRCONFIG + })); + const req = dns.lookup(addresses.INET4_HOST, { hints: dns.ADDRCONFIG }, common.mustCall((err, ip, family) => { assert.ifError(err); - assert.ok(net.isIPv4(ip)); - assert.strictEqual(family, 4); - + validateResult({ address: ip, family }); done(); })); checkWrap(req); }); -TEST(function test_lookup_ip_ipv4(done) { +TEST(async function test_lookup_ip_ipv4(done) { + function validateResult(res) { + assert.strictEqual(res.address, '127.0.0.1'); + assert.strictEqual(res.family, 4); + } + + validateResult(await dnsPromises.lookup('127.0.0.1')); + const req = dns.lookup('127.0.0.1', common.mustCall((err, ip, family) => { assert.ifError(err); - assert.strictEqual(ip, '127.0.0.1'); - assert.strictEqual(family, 4); - + validateResult({ address: ip, family }); done(); })); checkWrap(req); }); -TEST(function test_lookup_localhost_ipv4(done) { +TEST(async function test_lookup_localhost_ipv4(done) { + function validateResult(res) { + assert.strictEqual(res.address, '127.0.0.1'); + assert.strictEqual(res.family, 4); + } + + validateResult(await dnsPromises.lookup('localhost', 4)); + const req = dns.lookup('localhost', 4, common.mustCall((err, ip, family) => { assert.ifError(err); - assert.strictEqual(ip, '127.0.0.1'); - assert.strictEqual(family, 4); - + validateResult({ address: ip, family }); done(); })); checkWrap(req); }); -TEST(function test_lookup_all_ipv4(done) { +TEST(async function test_lookup_all_ipv4(done) { + function validateResult(res) { + assert.ok(Array.isArray(res)); + assert.ok(res.length > 0); + + res.forEach((ip) => { + assert.ok(isIPv4(ip.address)); + assert.strictEqual(ip.family, 4); + }); + } + + validateResult(await dnsPromises.lookup(addresses.INET4_HOST, { + all: true, + family: 4 + })); + const req = dns.lookup( addresses.INET4_HOST, { all: true, family: 4 }, common.mustCall((err, ips) => { assert.ifError(err); - assert.ok(Array.isArray(ips)); - assert.ok(ips.length > 0); - - ips.forEach((ip) => { - assert.ok(isIPv4(ip.address)); - assert.strictEqual(ip.family, 4); - }); - + validateResult(ips); done(); }) ); @@ -178,14 +227,20 @@ TEST(function test_lookup_all_ipv4(done) { checkWrap(req); }); -TEST(function test_lookupservice_ip_ipv4(done) { +TEST(async function test_lookupservice_ip_ipv4(done) { + function validateResult(res) { + assert.strictEqual(typeof res.hostname, 'string'); + assert(res.hostname); + assert(['http', 'www', '80'].includes(res.service)); + } + + validateResult(await dnsPromises.lookupService('127.0.0.1', 80)); + const req = dns.lookupService( '127.0.0.1', 80, - common.mustCall((err, host, service) => { + common.mustCall((err, hostname, service) => { assert.ifError(err); - assert.strictEqual(typeof host, 'string'); - assert(host); - assert(['http', 'www', '80'].includes(service)); + validateResult({ hostname, service }); done(); }) ); diff --git a/test/internet/test-dns-ipv6.js b/test/internet/test-dns-ipv6.js index 8b1a8936802729..283b182390ae72 100644 --- a/test/internet/test-dns-ipv6.js +++ b/test/internet/test-dns-ipv6.js @@ -4,9 +4,12 @@ const { addresses } = require('../common/internet'); if (!common.hasIPv6) common.skip('this test, no IPv6 support'); +common.crashOnUnhandledRejection(); + const assert = require('assert'); const dns = require('dns'); const net = require('net'); +const dnsPromises = dns.promises; const isIPv6 = net.isIPv6; let running = false; @@ -38,49 +41,64 @@ function checkWrap(req) { assert.ok(typeof req === 'object'); } -TEST(function test_resolve6(done) { +TEST(async function test_resolve6(done) { + function validateResult(res) { + assert.ok(res.length > 0); + + for (let i = 0; i < res.length; i++) { + assert.ok(isIPv6(res[i])); + } + } + + validateResult(await dnsPromises.resolve6(addresses.INET6_HOST)); + const req = dns.resolve6( addresses.INET6_HOST, common.mustCall((err, ips) => { assert.ifError(err); - - assert.ok(ips.length > 0); - - for (let i = 0; i < ips.length; i++) - assert.ok(isIPv6(ips[i])); - + validateResult(ips); done(); })); checkWrap(req); }); -TEST(function test_reverse_ipv6(done) { +TEST(async function test_reverse_ipv6(done) { + function validateResult(res) { + assert.ok(res.length > 0); + + for (let i = 0; i < res.length; i++) { + assert.ok(typeof res[i] === 'string'); + } + } + + validateResult(await dnsPromises.reverse(addresses.INET6_IP)); + const req = dns.reverse( addresses.INET6_IP, common.mustCall((err, domains) => { assert.ifError(err); - - assert.ok(domains.length > 0); - - for (let i = 0; i < domains.length; i++) - assert.ok(typeof domains[i] === 'string'); - + validateResult(domains); done(); })); checkWrap(req); }); -TEST(function test_lookup_ipv6_explicit(done) { +TEST(async function test_lookup_ipv6_explicit(done) { + function validateResult(res) { + assert.ok(isIPv6(res.address)); + assert.strictEqual(res.family, 6); + } + + validateResult(await dnsPromises.lookup(addresses.INET6_HOST, 6)); + const req = dns.lookup( addresses.INET6_HOST, 6, common.mustCall((err, ip, family) => { assert.ifError(err); - assert.ok(isIPv6(ip)); - assert.strictEqual(family, 6); - + validateResult({ address: ip, family }); done(); })); @@ -101,14 +119,19 @@ TEST(function test_lookup_ipv6_implicit(done) { }); */ -TEST(function test_lookup_ipv6_explicit_object(done) { +TEST(async function test_lookup_ipv6_explicit_object(done) { + function validateResult(res) { + assert.ok(isIPv6(res.address)); + assert.strictEqual(res.family, 6); + } + + validateResult(await dnsPromises.lookup(addresses.INET6_HOST, { family: 6 })); + const req = dns.lookup(addresses.INET6_HOST, { family: 6 }, common.mustCall((err, ip, family) => { assert.ifError(err); - assert.ok(isIPv6(ip)); - assert.strictEqual(family, 6); - + validateResult({ address: ip, family }); done(); })); @@ -143,35 +166,48 @@ TEST(function test_lookup_ipv6_hint(done) { checkWrap(req); }); -TEST(function test_lookup_ip_ipv6(done) { +TEST(async function test_lookup_ip_ipv6(done) { + function validateResult(res) { + assert.ok(isIPv6(res.address)); + assert.strictEqual(res.family, 6); + } + + validateResult(await dnsPromises.lookup('::1')); + const req = dns.lookup( '::1', common.mustCall((err, ip, family) => { assert.ifError(err); - assert.ok(isIPv6(ip)); - assert.strictEqual(family, 6); - + validateResult({ address: ip, family }); done(); })); checkWrap(req); }); -TEST(function test_lookup_all_ipv6(done) { +TEST(async function test_lookup_all_ipv6(done) { + function validateResult(res) { + assert.ok(Array.isArray(res)); + assert.ok(res.length > 0); + + res.forEach((ip) => { + assert.ok(isIPv6(ip.address), + `Invalid IPv6: ${ip.address.toString()}`); + assert.strictEqual(ip.family, 6); + }); + } + + validateResult(await dnsPromises.lookup(addresses.INET6_HOST, { + all: true, + family: 6 + })); + const req = dns.lookup( addresses.INET6_HOST, { all: true, family: 6 }, common.mustCall((err, ips) => { assert.ifError(err); - assert.ok(Array.isArray(ips)); - assert.ok(ips.length > 0); - - ips.forEach((ip) => { - assert.ok(isIPv6(ip.address), - `Invalid IPv6: ${ip.address.toString()}`); - assert.strictEqual(ip.family, 6); - }); - + validateResult(ips); done(); }) ); diff --git a/test/internet/test-dns-txt-sigsegv.js b/test/internet/test-dns-txt-sigsegv.js index 54cc4648510ed7..b572c6bb7fb421 100644 --- a/test/internet/test-dns-txt-sigsegv.js +++ b/test/internet/test-dns-txt-sigsegv.js @@ -1,7 +1,15 @@ 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const dns = require('dns'); +const dnsPromises = dns.promises; + +common.crashOnUnhandledRejection(); + +(async function() { + const result = await dnsPromises.resolveTxt('www.microsoft.com'); + assert.strictEqual(result.length, 0); +})(); dns.resolveTxt('www.microsoft.com', function(err, records) { assert.strictEqual(err, null); diff --git a/test/internet/test-dns.js b/test/internet/test-dns.js index 56fa370fce01cf..593d621e82f5b1 100644 --- a/test/internet/test-dns.js +++ b/test/internet/test-dns.js @@ -28,6 +28,7 @@ const net = require('net'); const isIPv4 = net.isIPv4; const isIPv6 = net.isIPv6; const util = require('util'); +const dnsPromises = dns.promises; common.crashOnUnhandledRejection(); @@ -68,17 +69,18 @@ function checkWrap(req) { TEST(function test_reverse_bogus(done) { + dnsPromises.reverse('bogus ip') + .then(common.mustNotCall()) + .catch(common.expectsError({ errno: 'EINVAL' })); + assert.throws(() => { dns.reverse('bogus ip', common.mustNotCall()); }, /^Error: getHostByAddr EINVAL bogus ip$/); done(); }); -TEST(function test_resolve4_ttl(done) { - const req = dns.resolve4(addresses.INET4_HOST, { - ttl: true - }, function(err, result) { - assert.ifError(err); +TEST(async function test_resolve4_ttl(done) { + function validateResult(result) { assert.ok(result.length > 0); for (let i = 0; i < result.length; i++) { @@ -90,18 +92,25 @@ TEST(function test_resolve4_ttl(done) { assert.ok(item.ttl > 0); assert.ok(isIPv4(item.address)); } + } + + validateResult(await dnsPromises.resolve4(addresses.INET4_HOST, { + ttl: true + })); + const req = dns.resolve4(addresses.INET4_HOST, { + ttl: true + }, function(err, result) { + assert.ifError(err); + validateResult(result); done(); }); checkWrap(req); }); -TEST(function test_resolve6_ttl(done) { - const req = dns.resolve6(addresses.INET6_HOST, { - ttl: true - }, function(err, result) { - assert.ifError(err); +TEST(async function test_resolve6_ttl(done) { + function validateResult(result) { assert.ok(result.length > 0); for (let i = 0; i < result.length; i++) { @@ -113,29 +122,42 @@ TEST(function test_resolve6_ttl(done) { assert.ok(item.ttl > 0); assert.ok(isIPv6(item.address)); } + } + + validateResult(await dnsPromises.resolve6(addresses.INET6_HOST, { + ttl: true + })); + const req = dns.resolve6(addresses.INET6_HOST, { + ttl: true + }, function(err, result) { + assert.ifError(err); + validateResult(result); done(); }); checkWrap(req); }); -TEST(function test_resolveMx(done) { - const req = dns.resolveMx(addresses.MX_HOST, function(err, result) { - assert.ifError(err); +TEST(async function test_resolveMx(done) { + function validateResult(result) { assert.ok(result.length > 0); for (let i = 0; i < result.length; i++) { const item = result[i]; assert.ok(item); assert.strictEqual(typeof item, 'object'); - assert.ok(item.exchange); assert.strictEqual(typeof item.exchange, 'string'); - assert.strictEqual(typeof item.priority, 'number'); } + } + validateResult(await dnsPromises.resolveMx(addresses.MX_HOST)); + + const req = dns.resolveMx(addresses.MX_HOST, function(err, result) { + assert.ifError(err); + validateResult(result); done(); }); @@ -143,6 +165,10 @@ TEST(function test_resolveMx(done) { }); TEST(function test_resolveMx_failure(done) { + dnsPromises.resolveMx(addresses.INVALID_HOST) + .then(common.mustNotCall()) + .catch(common.expectsError({ errno: 'ENOTFOUND' })); + const req = dns.resolveMx(addresses.INVALID_HOST, function(err, result) { assert.ok(err instanceof Error); assert.strictEqual(err.errno, 'ENOTFOUND'); @@ -155,17 +181,23 @@ TEST(function test_resolveMx_failure(done) { checkWrap(req); }); -TEST(function test_resolveNs(done) { - const req = dns.resolveNs(addresses.NS_HOST, function(err, names) { - assert.ifError(err); - assert.ok(names.length > 0); +TEST(async function test_resolveNs(done) { + function validateResult(result) { + assert.ok(result.length > 0); - for (let i = 0; i < names.length; i++) { - const name = names[i]; - assert.ok(name); - assert.strictEqual(typeof name, 'string'); + for (let i = 0; i < result.length; i++) { + const item = result[i]; + + assert.ok(item); + assert.strictEqual(typeof item, 'string'); } + } + validateResult(await dnsPromises.resolveNs(addresses.NS_HOST)); + + const req = dns.resolveNs(addresses.NS_HOST, function(err, names) { + assert.ifError(err); + validateResult(names); done(); }); @@ -173,6 +205,10 @@ TEST(function test_resolveNs(done) { }); TEST(function test_resolveNs_failure(done) { + dnsPromises.resolveNs(addresses.INVALID_HOST) + .then(common.mustNotCall()) + .catch(common.expectsError({ errno: 'ENOTFOUND' })); + const req = dns.resolveNs(addresses.INVALID_HOST, function(err, result) { assert.ok(err instanceof Error); assert.strictEqual(err.errno, 'ENOTFOUND'); @@ -185,9 +221,8 @@ TEST(function test_resolveNs_failure(done) { checkWrap(req); }); -TEST(function test_resolveSrv(done) { - const req = dns.resolveSrv(addresses.SRV_HOST, function(err, result) { - assert.ifError(err); +TEST(async function test_resolveSrv(done) { + function validateResult(result) { assert.ok(result.length > 0); for (let i = 0; i < result.length; i++) { @@ -202,7 +237,13 @@ TEST(function test_resolveSrv(done) { assert.strictEqual(typeof item.priority, 'number'); assert.strictEqual(typeof item.weight, 'number'); } + } + validateResult(await dnsPromises.resolveSrv(addresses.SRV_HOST)); + + const req = dns.resolveSrv(addresses.SRV_HOST, function(err, result) { + assert.ifError(err); + validateResult(result); done(); }); @@ -210,6 +251,10 @@ TEST(function test_resolveSrv(done) { }); TEST(function test_resolveSrv_failure(done) { + dnsPromises.resolveSrv(addresses.INVALID_HOST) + .then(common.mustNotCall()) + .catch(common.expectsError({ errno: 'ENOTFOUND' })); + const req = dns.resolveSrv(addresses.INVALID_HOST, function(err, result) { assert.ok(err instanceof Error); assert.strictEqual(err.errno, 'ENOTFOUND'); @@ -222,9 +267,8 @@ TEST(function test_resolveSrv_failure(done) { checkWrap(req); }); -TEST(function test_resolvePtr(done) { - const req = dns.resolvePtr(addresses.PTR_HOST, function(err, result) { - assert.ifError(err); +TEST(async function test_resolvePtr(done) { + function validateResult(result) { assert.ok(result.length > 0); for (let i = 0; i < result.length; i++) { @@ -232,7 +276,13 @@ TEST(function test_resolvePtr(done) { assert.ok(item); assert.strictEqual(typeof item, 'string'); } + } + + validateResult(await dnsPromises.resolvePtr(addresses.PTR_HOST)); + const req = dns.resolvePtr(addresses.PTR_HOST, function(err, result) { + assert.ifError(err); + validateResult(result); done(); }); @@ -240,6 +290,10 @@ TEST(function test_resolvePtr(done) { }); TEST(function test_resolvePtr_failure(done) { + dnsPromises.resolvePtr(addresses.INVALID_HOST) + .then(common.mustNotCall()) + .catch(common.expectsError({ errno: 'ENOTFOUND' })); + const req = dns.resolvePtr(addresses.INVALID_HOST, function(err, result) { assert.ok(err instanceof Error); assert.strictEqual(err.errno, 'ENOTFOUND'); @@ -252,16 +306,14 @@ TEST(function test_resolvePtr_failure(done) { checkWrap(req); }); -TEST(function test_resolveNaptr(done) { - const req = dns.resolveNaptr(addresses.NAPTR_HOST, function(err, result) { - assert.ifError(err); +TEST(async function test_resolveNaptr(done) { + function validateResult(result) { assert.ok(result.length > 0); for (let i = 0; i < result.length; i++) { const item = result[i]; assert.ok(item); assert.strictEqual(typeof item, 'object'); - assert.strictEqual(typeof item.flags, 'string'); assert.strictEqual(typeof item.service, 'string'); assert.strictEqual(typeof item.regexp, 'string'); @@ -269,7 +321,13 @@ TEST(function test_resolveNaptr(done) { assert.strictEqual(typeof item.order, 'number'); assert.strictEqual(typeof item.preference, 'number'); } + } + validateResult(await dnsPromises.resolveNaptr(addresses.NAPTR_HOST)); + + const req = dns.resolveNaptr(addresses.NAPTR_HOST, function(err, result) { + assert.ifError(err); + validateResult(result); done(); }); @@ -277,6 +335,10 @@ TEST(function test_resolveNaptr(done) { }); TEST(function test_resolveNaptr_failure(done) { + dnsPromises.resolveNaptr(addresses.INVALID_HOST) + .then(common.mustNotCall()) + .catch(common.expectsError({ errno: 'ENOTFOUND' })); + const req = dns.resolveNaptr(addresses.INVALID_HOST, function(err, result) { assert.ok(err instanceof Error); assert.strictEqual(err.errno, 'ENOTFOUND'); @@ -289,33 +351,31 @@ TEST(function test_resolveNaptr_failure(done) { checkWrap(req); }); -TEST(function test_resolveSoa(done) { - const req = dns.resolveSoa(addresses.SOA_HOST, function(err, result) { - assert.ifError(err); +TEST(async function test_resolveSoa(done) { + function validateResult(result) { assert.ok(result); assert.strictEqual(typeof result, 'object'); - assert.strictEqual(typeof result.nsname, 'string'); assert.ok(result.nsname.length > 0); - assert.strictEqual(typeof result.hostmaster, 'string'); assert.ok(result.hostmaster.length > 0); - assert.strictEqual(typeof result.serial, 'number'); assert.ok((result.serial > 0) && (result.serial < 4294967295)); - assert.strictEqual(typeof result.refresh, 'number'); assert.ok((result.refresh > 0) && (result.refresh < 2147483647)); - assert.strictEqual(typeof result.retry, 'number'); assert.ok((result.retry > 0) && (result.retry < 2147483647)); - assert.strictEqual(typeof result.expire, 'number'); assert.ok((result.expire > 0) && (result.expire < 2147483647)); - assert.strictEqual(typeof result.minttl, 'number'); assert.ok((result.minttl >= 0) && (result.minttl < 2147483647)); + } + validateResult(await dnsPromises.resolveSoa(addresses.SOA_HOST)); + + const req = dns.resolveSoa(addresses.SOA_HOST, function(err, result) { + assert.ifError(err); + validateResult(result); done(); }); @@ -323,6 +383,10 @@ TEST(function test_resolveSoa(done) { }); TEST(function test_resolveSoa_failure(done) { + dnsPromises.resolveSoa(addresses.INVALID_HOST) + .then(common.mustNotCall()) + .catch(common.expectsError({ errno: 'ENOTFOUND' })); + const req = dns.resolveSoa(addresses.INVALID_HOST, function(err, result) { assert.ok(err instanceof Error); assert.strictEqual(err.errno, 'ENOTFOUND'); @@ -335,17 +399,22 @@ TEST(function test_resolveSoa_failure(done) { checkWrap(req); }); -TEST(function test_resolveCname(done) { - const req = dns.resolveCname(addresses.CNAME_HOST, function(err, names) { - assert.ifError(err); - assert.ok(names.length > 0); +TEST(async function test_resolveCname(done) { + function validateResult(result) { + assert.ok(result.length > 0); - for (let i = 0; i < names.length; i++) { - const name = names[i]; + for (let i = 0; i < result.length; i++) { + const name = result[i]; assert.ok(name); assert.strictEqual(typeof name, 'string'); } + } + + validateResult(await dnsPromises.resolveCname(addresses.CNAME_HOST)); + const req = dns.resolveCname(addresses.CNAME_HOST, function(err, names) { + assert.ifError(err); + validateResult(names); done(); }); @@ -353,6 +422,10 @@ TEST(function test_resolveCname(done) { }); TEST(function test_resolveCname_failure(done) { + dnsPromises.resolveCname(addresses.INVALID_HOST) + .then(common.mustNotCall()) + .catch(common.expectsError({ errno: 'ENOTFOUND' })); + const req = dns.resolveCname(addresses.INVALID_HOST, function(err, result) { assert.ok(err instanceof Error); assert.strictEqual(err.errno, 'ENOTFOUND'); @@ -366,12 +439,18 @@ TEST(function test_resolveCname_failure(done) { }); -TEST(function test_resolveTxt(done) { +TEST(async function test_resolveTxt(done) { + function validateResult(result) { + assert.ok(Array.isArray(result[0])); + assert.strictEqual(result.length, 1); + assert(result[0][0].startsWith('v=spf1')); + } + + validateResult(await dnsPromises.resolveTxt(addresses.TXT_HOST)); + const req = dns.resolveTxt(addresses.TXT_HOST, function(err, records) { assert.ifError(err); - assert.strictEqual(records.length, 1); - assert.ok(util.isArray(records[0])); - assert(records[0][0].startsWith('v=spf1')); + validateResult(records); done(); }); @@ -379,6 +458,10 @@ TEST(function test_resolveTxt(done) { }); TEST(function test_resolveTxt_failure(done) { + dnsPromises.resolveTxt(addresses.INVALID_HOST) + .then(common.mustNotCall()) + .catch(common.expectsError({ errno: 'ENOTFOUND' })); + const req = dns.resolveTxt(addresses.INVALID_HOST, function(err, result) { assert.ok(err instanceof Error); assert.strictEqual(err.errno, 'ENOTFOUND'); @@ -393,6 +476,10 @@ TEST(function test_resolveTxt_failure(done) { TEST(function test_lookup_failure(done) { + dnsPromises.lookup(addresses.INVALID_HOST, 4) + .then(common.mustNotCall()) + .catch(common.expectsError({ errno: dns.NOTFOUND })); + const req = dns.lookup(addresses.INVALID_HOST, 4, (err, ip, family) => { assert.ok(err instanceof Error); assert.strictEqual(err.errno, dns.NOTFOUND); @@ -407,17 +494,23 @@ TEST(function test_lookup_failure(done) { }); -TEST(function test_lookup_ip_all(done) { +TEST(async function test_lookup_ip_all(done) { + function validateResult(result) { + assert.ok(Array.isArray(result)); + assert.ok(result.length > 0); + assert.strictEqual(result[0].address, '127.0.0.1'); + assert.strictEqual(result[0].family, 4); + } + + validateResult(await dnsPromises.lookup('127.0.0.1', { all: true })); + const req = dns.lookup( '127.0.0.1', { all: true }, function(err, ips, family) { assert.ifError(err); - assert.ok(Array.isArray(ips)); - assert.ok(ips.length > 0); - assert.strictEqual(ips[0].address, '127.0.0.1'); - assert.strictEqual(ips[0].family, 4); - + assert.strictEqual(family, undefined); + validateResult(ips); done(); } ); @@ -452,7 +545,9 @@ TEST(function test_lookup_ip_promise(done) { }); -TEST(function test_lookup_null_all(done) { +TEST(async function test_lookup_null_all(done) { + assert.deepStrictEqual(await dnsPromises.lookup(null, { all: true }), []); + const req = dns.lookup(null, { all: true }, function(err, ips, family) { assert.ifError(err); assert.ok(Array.isArray(ips)); @@ -465,15 +560,12 @@ TEST(function test_lookup_null_all(done) { }); -TEST(function test_lookup_all_mixed(done) { - const req = dns.lookup(addresses.INET_HOST, { - all: true - }, function(err, ips) { - assert.ifError(err); - assert.ok(Array.isArray(ips)); - assert.ok(ips.length > 0); +TEST(async function test_lookup_all_mixed(done) { + function validateResult(result) { + assert.ok(Array.isArray(result)); + assert.ok(result.length > 0); - ips.forEach(function(ip) { + result.forEach(function(ip) { if (isIPv4(ip.address)) assert.strictEqual(ip.family, 4); else if (isIPv6(ip.address)) @@ -481,7 +573,15 @@ TEST(function test_lookup_all_mixed(done) { else assert.fail('unexpected IP address'); }); + } + + validateResult(await dnsPromises.lookup(addresses.INET_HOST, { all: true })); + const req = dns.lookup(addresses.INET_HOST, { + all: true + }, function(err, ips) { + assert.ifError(err); + validateResult(ips); done(); }); @@ -490,6 +590,10 @@ TEST(function test_lookup_all_mixed(done) { TEST(function test_lookupservice_invalid(done) { + dnsPromises.lookupService('1.2.3.4', 80) + .then(common.mustNotCall()) + .catch(common.expectsError({ code: 'ENOTFOUND' })); + const req = dns.lookupService('1.2.3.4', 80, function(err, host, service) { assert(err instanceof Error); assert.strictEqual(err.code, 'ENOTFOUND'); @@ -503,6 +607,13 @@ TEST(function test_lookupservice_invalid(done) { TEST(function test_reverse_failure(done) { + dnsPromises.reverse('203.0.113.0') + .then(common.mustNotCall()) + .catch(common.expectsError({ + code: 'ENOTFOUND', + hostname: '203.0.113.0' + })); + // 203.0.113.0/24 are addresses reserved for (RFC) documentation use only const req = dns.reverse('203.0.113.0', function(err) { assert(err instanceof Error); @@ -518,6 +629,13 @@ TEST(function test_reverse_failure(done) { TEST(function test_lookup_failure(done) { + dnsPromises.lookup(addresses.INVALID_HOST) + .then(common.mustNotCall()) + .catch(common.expectsError({ + code: 'ENOTFOUND', + hostname: addresses.INVALID_HOST + })); + const req = dns.lookup(addresses.INVALID_HOST, (err) => { assert(err instanceof Error); assert.strictEqual(err.code, 'ENOTFOUND'); // Silly error code... @@ -584,3 +702,7 @@ dns.lookup(addresses.INET6_HOST, 6, common.mustCall()); dns.lookup(addresses.INET_HOST, {}, common.mustCall()); dns.lookupService('0.0.0.0', '0', common.mustCall()); dns.lookupService('0.0.0.0', 0, common.mustCall()); +(async function() { + await dnsPromises.lookup(addresses.INET6_HOST, 6); + await dnsPromises.lookup(addresses.INET_HOST, {}); +})(); diff --git a/test/parallel/test-c-ares.js b/test/parallel/test-c-ares.js index 8ba221ca99ee4b..59ae40b2b82568 100644 --- a/test/parallel/test-c-ares.js +++ b/test/parallel/test-c-ares.js @@ -23,8 +23,26 @@ const common = require('../common'); const assert = require('assert'); +common.crashOnUnhandledRejection(); + const dns = require('dns'); +const dnsPromises = dns.promises; + +(async function() { + let res; + + res = await dnsPromises.lookup(null); + assert.strictEqual(res.address, null); + assert.strictEqual(res.family, 4); + + res = await dnsPromises.lookup('127.0.0.1'); + assert.strictEqual(res.address, '127.0.0.1'); + assert.strictEqual(res.family, 4); + res = await dnsPromises.lookup('::1'); + assert.strictEqual(res.address, '::1'); + assert.strictEqual(res.family, 6); +})(); // Try resolution without callback @@ -52,14 +70,18 @@ dns.lookup('::1', common.mustCall((error, result, addressType) => { // Try calling resolve with an unsupported type that's an object key 'toString' ].forEach((val) => { + const err = { + code: 'ERR_INVALID_OPT_VALUE', + type: TypeError, + message: `The value "${val}" is invalid for option "rrtype"` + }; + common.expectsError( () => dns.resolve('www.google.com', val), - { - code: 'ERR_INVALID_OPT_VALUE', - type: TypeError, - message: `The value "${val}" is invalid for option "rrtype"` - } + err ); + + common.expectsError(() => dnsPromises.resolve('www.google.com', val), err); }); // Windows doesn't usually have an entry for localhost 127.0.0.1 in @@ -70,4 +92,8 @@ if (!common.isWindows) { assert.ifError(error); assert.ok(Array.isArray(domains)); })); + + (async function() { + assert.ok(Array.isArray(await dnsPromises.reverse('127.0.0.1'))); + })(); } diff --git a/test/parallel/test-dns-lookup.js b/test/parallel/test-dns-lookup.js index b9c0dfc6dff7a5..5ee3bc7051e521 100644 --- a/test/parallel/test-dns-lookup.js +++ b/test/parallel/test-dns-lookup.js @@ -3,17 +3,23 @@ const common = require('../common'); const assert = require('assert'); const cares = process.binding('cares_wrap'); const dns = require('dns'); +const dnsPromises = dns.promises; + +common.crashOnUnhandledRejection(); // Stub `getaddrinfo` to *always* error. cares.getaddrinfo = () => process.binding('uv').UV_ENOENT; -common.expectsError(() => { - dns.lookup(1, {}); -}, { - code: 'ERR_INVALID_ARG_TYPE', - type: TypeError, - message: /^The "hostname" argument must be one of type string or falsy/ -}); +{ + const err = { + code: 'ERR_INVALID_ARG_TYPE', + type: TypeError, + message: /^The "hostname" argument must be one of type string or falsy/ + }; + + common.expectsError(() => dns.lookup(1, {}), err); + common.expectsError(() => dnsPromises.lookup(1, {}), err); +} common.expectsError(() => { dns.lookup(false, 'cb'); @@ -29,29 +35,66 @@ common.expectsError(() => { type: TypeError }); -common.expectsError(() => { - dns.lookup(false, { +{ + const err = { + code: 'ERR_INVALID_OPT_VALUE', + type: TypeError, + message: 'The value "100" is invalid for option "hints"' + }; + const options = { hints: 100, family: 0, all: false - }, common.mustNotCall()); -}, { - code: 'ERR_INVALID_OPT_VALUE', - type: TypeError, - message: 'The value "100" is invalid for option "hints"' -}); + }; -common.expectsError(() => { - dns.lookup(false, { + common.expectsError(() => { dnsPromises.lookup(false, options); }, err); + common.expectsError(() => { + dns.lookup(false, options, common.mustNotCall()); + }, err); +} + +{ + const err = { + code: 'ERR_INVALID_OPT_VALUE', + type: TypeError, + message: 'The value "20" is invalid for option "family"' + }; + const options = { hints: 0, family: 20, all: false - }, common.mustNotCall()); -}, { - code: 'ERR_INVALID_OPT_VALUE', - type: TypeError, - message: 'The value "20" is invalid for option "family"' -}); + }; + + common.expectsError(() => { dnsPromises.lookup(false, options); }, err); + common.expectsError(() => { + dns.lookup(false, options, common.mustNotCall()); + }, err); +} + +(async function() { + let res; + + res = await dnsPromises.lookup(false, { + hints: 0, + family: 0, + all: true + }); + assert.deepStrictEqual(res, []); + + res = await dnsPromises.lookup('127.0.0.1', { + hints: 0, + family: 4, + all: true + }); + assert.deepStrictEqual(res, [{ address: '127.0.0.1', family: 4 }]); + + res = await dnsPromises.lookup('127.0.0.1', { + hints: 0, + family: 4, + all: false + }); + assert.deepStrictEqual(res, { address: '127.0.0.1', family: 4 }); +})(); dns.lookup(false, { hints: 0, diff --git a/test/parallel/test-dns-resolveany-bad-ancount.js b/test/parallel/test-dns-resolveany-bad-ancount.js index 63ed1774b11933..d48d9385b84b90 100644 --- a/test/parallel/test-dns-resolveany-bad-ancount.js +++ b/test/parallel/test-dns-resolveany-bad-ancount.js @@ -4,6 +4,9 @@ const dnstools = require('../common/dns'); const dns = require('dns'); const assert = require('assert'); const dgram = require('dgram'); +const dnsPromises = dns.promises; + +common.crashOnUnhandledRejection(); const server = dgram.createSocket('udp4'); @@ -20,12 +23,20 @@ server.on('message', common.mustCall((msg, { address, port }) => { // Overwrite the # of answers with 2, which is incorrect. buf.writeUInt16LE(2, 6); server.send(buf, port, address); -})); +}, 2)); -server.bind(0, common.mustCall(() => { +server.bind(0, common.mustCall(async () => { const address = server.address(); dns.setServers([`127.0.0.1:${address.port}`]); + dnsPromises.resolveAny('example.org') + .then(common.mustNotCall()) + .catch(common.expectsError({ + code: 'EBADRESP', + syscall: 'queryAny', + hostname: 'example.org' + })); + dns.resolveAny('example.org', common.mustCall((err) => { assert.strictEqual(err.code, 'EBADRESP'); assert.strictEqual(err.syscall, 'queryAny'); diff --git a/test/parallel/test-dns-resolveany.js b/test/parallel/test-dns-resolveany.js index 82f589147f58c9..f9a6399cef52d0 100644 --- a/test/parallel/test-dns-resolveany.js +++ b/test/parallel/test-dns-resolveany.js @@ -4,6 +4,9 @@ const dnstools = require('../common/dns'); const dns = require('dns'); const assert = require('assert'); const dgram = require('dgram'); +const dnsPromises = dns.promises; + +common.crashOnUnhandledRejection(); const answers = [ { type: 'A', address: '1.2.3.4', ttl: 123 }, @@ -36,18 +39,24 @@ server.on('message', common.mustCall((msg, { address, port }) => { questions: parsed.questions, answers: answers.map((answer) => Object.assign({ domain }, answer)), }), port, address); -})); +}, 2)); -server.bind(0, common.mustCall(() => { +server.bind(0, common.mustCall(async () => { const address = server.address(); dns.setServers([`127.0.0.1:${address.port}`]); + validateResults(await dnsPromises.resolveAny('example.org')); + dns.resolveAny('example.org', common.mustCall((err, res) => { assert.ifError(err); - // Compare copies with ttl removed, c-ares fiddles with that value. - assert.deepStrictEqual( - res.map((r) => Object.assign({}, r, { ttl: null })), - answers.map((r) => Object.assign({}, r, { ttl: null }))); + validateResults(res); server.close(); })); })); + +function validateResults(res) { + // Compare copies with ttl removed, c-ares fiddles with that value. + assert.deepStrictEqual( + res.map((r) => Object.assign({}, r, { ttl: null })), + answers.map((r) => Object.assign({}, r, { ttl: null }))); +} diff --git a/test/parallel/test-dns-resolvens-typeerror.js b/test/parallel/test-dns-resolvens-typeerror.js index 8da7d3a489da23..ec57bba6148742 100644 --- a/test/parallel/test-dns-resolvens-typeerror.js +++ b/test/parallel/test-dns-resolvens-typeerror.js @@ -27,7 +27,18 @@ const common = require('../common'); // Issue https://github.com/nodejs/node-v0.x-archive/issues/7070 const dns = require('dns'); +const dnsPromises = dns.promises; +common.crashOnUnhandledRejection(); + +common.expectsError( + () => dnsPromises.resolveNs([]), // bad name + { + code: 'ERR_INVALID_ARG_TYPE', + type: TypeError, + message: /^The "name" argument must be of type string/ + } +); common.expectsError( () => dns.resolveNs([]), // bad name { diff --git a/test/parallel/test-dns.js b/test/parallel/test-dns.js index f50b9464f102cc..9acf18994e6fe7 100644 --- a/test/parallel/test-dns.js +++ b/test/parallel/test-dns.js @@ -24,6 +24,9 @@ const common = require('../common'); const assert = require('assert'); const dns = require('dns'); +const dnsPromises = dns.promises; + +common.crashOnUnhandledRejection(); const existing = dns.getServers(); assert(existing.length > 0); @@ -149,7 +152,7 @@ common.expectsError(() => { code: 'ERR_INVALID_ARG_TYPE', type: TypeError, message: /^The "hostname" argument must be one of type string or falsy/ - }, 5); + }, 10); assert.throws(() => dns.lookup({}, common.mustNotCall()), errorReg); @@ -161,6 +164,12 @@ common.expectsError(() => { assert.throws(() => dns.lookup(common.mustNotCall(), common.mustNotCall()), errorReg); + + assert.throws(() => dnsPromises.lookup({}), errorReg); + assert.throws(() => dnsPromises.lookup([]), errorReg); + assert.throws(() => dnsPromises.lookup(true), errorReg); + assert.throws(() => dnsPromises.lookup(1), errorReg); + assert.throws(() => dnsPromises.lookup(common.mustNotCall()), errorReg); } // dns.lookup should accept falsey values @@ -171,30 +180,37 @@ common.expectsError(() => { assert.strictEqual(family, 4); }; - dns.lookup('', common.mustCall(checkCallback)); - dns.lookup(null, common.mustCall(checkCallback)); - dns.lookup(undefined, common.mustCall(checkCallback)); - dns.lookup(0, common.mustCall(checkCallback)); - dns.lookup(NaN, common.mustCall(checkCallback)); + ['', null, undefined, 0, NaN].forEach(async (value) => { + const res = await dnsPromises.lookup(value); + assert.deepStrictEqual(res, { address: null, family: 4 }); + dns.lookup(value, common.mustCall(checkCallback)); + }); } -/* - * Make sure that dns.lookup throws if hints does not represent a valid flag. - * (dns.V4MAPPED | dns.ADDRCONFIG) + 1 is invalid because: - * - it's different from dns.V4MAPPED and dns.ADDRCONFIG. - * - it's different from them bitwise ored. - * - it's different from 0. - * - it's an odd number different than 1, and thus is invalid, because - * flags are either === 1 or even. - */ -common.expectsError(() => { - dns.lookup('nodejs.org', { hints: (dns.V4MAPPED | dns.ADDRCONFIG) + 1 }, - common.mustNotCall()); -}, { - code: 'ERR_INVALID_OPT_VALUE', - type: TypeError, - message: /The value "\d+" is invalid for option "hints"/ -}); +{ + /* + * Make sure that dns.lookup throws if hints does not represent a valid flag. + * (dns.V4MAPPED | dns.ADDRCONFIG) + 1 is invalid because: + * - it's different from dns.V4MAPPED and dns.ADDRCONFIG. + * - it's different from them bitwise ored. + * - it's different from 0. + * - it's an odd number different than 1, and thus is invalid, because + * flags are either === 1 or even. + */ + const hints = (dns.V4MAPPED | dns.ADDRCONFIG) + 1; + const err = { + code: 'ERR_INVALID_OPT_VALUE', + type: TypeError, + message: /The value "\d+" is invalid for option "hints"/ + }; + + common.expectsError(() => { + dnsPromises.lookup('nodejs.org', { hints }); + }, err); + common.expectsError(() => { + dns.lookup('nodejs.org', { hints }, common.mustNotCall()); + }, err); +} common.expectsError(() => dns.lookup('nodejs.org'), { code: 'ERR_INVALID_CALLBACK', @@ -219,33 +235,57 @@ dns.lookup('', { hints: dns.ADDRCONFIG | dns.V4MAPPED }, common.mustCall()); -common.expectsError(() => dns.lookupService('0.0.0.0'), { - code: 'ERR_MISSING_ARGS', - type: TypeError, - message: 'The "host", "port", and "callback" arguments must be specified' -}); +(async function() { + await dnsPromises.lookup('', { family: 4, hints: 0 }); + await dnsPromises.lookup('', { family: 6, hints: dns.ADDRCONFIG }); + await dnsPromises.lookup('', { hints: dns.V4MAPPED }); + await dnsPromises.lookup('', { hints: dns.ADDRCONFIG | dns.V4MAPPED }); +})(); -const invalidHost = 'fasdfdsaf'; -common.expectsError(() => { - dns.lookupService(invalidHost, 0, common.mustNotCall()); -}, { - code: 'ERR_INVALID_OPT_VALUE', - type: TypeError, - message: `The value "${invalidHost}" is invalid for option "host"` -}); +{ + const err = { + code: 'ERR_MISSING_ARGS', + type: TypeError, + message: 'The "host", "port", and "callback" arguments must be specified' + }; + + common.expectsError(() => dns.lookupService('0.0.0.0'), err); + err.message = 'The "host" and "port" arguments must be specified'; + common.expectsError(() => dnsPromises.lookupService('0.0.0.0'), err); +} + +{ + const invalidHost = 'fasdfdsaf'; + const err = { + code: 'ERR_INVALID_OPT_VALUE', + type: TypeError, + message: `The value "${invalidHost}" is invalid for option "host"` + }; + + common.expectsError(() => { + dnsPromises.lookupService(invalidHost, 0); + }, err); + + common.expectsError(() => { + dns.lookupService(invalidHost, 0, common.mustNotCall()); + }, err); +} const portErr = (port) => { - common.expectsError( - () => { - dns.lookupService('0.0.0.0', port, common.mustNotCall()); - }, - { - code: 'ERR_SOCKET_BAD_PORT', - message: - `Port should be > 0 and < 65536. Received ${port}.`, - type: RangeError - } - ); + const err = { + code: 'ERR_SOCKET_BAD_PORT', + message: + `Port should be > 0 and < 65536. Received ${port}.`, + type: RangeError + }; + + common.expectsError(() => { + dnsPromises.lookupService('0.0.0.0', port); + }, err); + + common.expectsError(() => { + dns.lookupService('0.0.0.0', port, common.mustNotCall()); + }, err); }; portErr(null); portErr(undefined); From 18179f8ae956bdefb465f90164ce71f5d88d5511 Mon Sep 17 00:00:00 2001 From: cjihrig Date: Wed, 20 Jun 2018 09:19:12 -0400 Subject: [PATCH 009/109] dns: remove Resolver#cancel() from promises API Because reasons. PR-URL: https://github.com/nodejs/node/pull/21264 Reviewed-By: Anna Henningsen Reviewed-By: James M Snell Reviewed-By: Joyee Cheung Reviewed-By: Benjamin Gruenbaum --- doc/api/dns.md | 8 -------- lib/internal/dns/promises.js | 1 - 2 files changed, 9 deletions(-) diff --git a/doc/api/dns.md b/doc/api/dns.md index 624bcc279d2479..4ac7925ca84535 100644 --- a/doc/api/dns.md +++ b/doc/api/dns.md @@ -622,14 +622,6 @@ The following methods from the `dnsPromises` API are available: * [`resolver.resolveTxt()`][`dnsPromises.resolveTxt()`] * [`resolver.reverse()`][`dnsPromises.reverse()`] -#### resolver.cancel() - - -Cancel all outstanding DNS queries made by this resolver. The corresponding -`Promise`s will be rejected with an error with code `ECANCELLED`. - ### dnsPromises.getServers() - `buffer` {Buffer} -- `options` {Object} +- `options` {Object} [`stream.transform` options][] + - `plaintextLength` {number} - Returns: {Cipher} for method chaining. When using an authenticated encryption mode (only `GCM` and `CCM` are currently @@ -398,7 +399,7 @@ Once the `decipher.final()` method has been called, the `Decipher` object can no longer be used to decrypt data. Attempts to call `decipher.final()` more than once will result in an error being thrown. -### decipher.setAAD(buffer) +### decipher.setAAD(buffer[, options]) - `buffer` {Buffer | TypedArray | DataView} -- Returns: {Cipher} for method chaining. +- `options` {Object} [`stream.transform` options][] + - `plaintextLength` {number} +- Returns: {Decipher} for method chaining. When using an authenticated encryption mode (only `GCM` and `CCM` are currently supported), the `decipher.setAAD()` method sets the value used for the _additional authenticated data_ (AAD) input parameter. +The `options` argument is optional for `GCM`. When using `CCM`, the +`plaintextLength` option must be specified and its value must match the length +of the plaintext in bytes. See [CCM mode][]. + The `decipher.setAAD()` method must be called before [`decipher.update()`][]. ### decipher.setAuthTag(buffer) @@ -424,7 +431,7 @@ changes: description: This method now returns a reference to `decipher`. --> - `buffer` {Buffer | TypedArray | DataView} -- Returns: {Cipher} for method chaining. +- Returns: {Decipher} for method chaining. When using an authenticated encryption mode (only `GCM` and `CCM` are currently supported), the `decipher.setAuthTag()` method is used to pass in the @@ -448,7 +455,7 @@ The `decipher.setAuthTag()` method must be called before added: v0.7.1 --> - `autoPadding` {boolean} **Default:** `true` -- Returns: {Cipher} for method chaining. +- Returns: {Decipher} for method chaining. When data has been encrypted without standard block padding, calling `decipher.setAutoPadding(false)` will disable automatic padding to prevent From 91f111fcb2af3f9d235245de2c62c5772e189fd9 Mon Sep 17 00:00:00 2001 From: Fernando Doglio Date: Tue, 12 Jun 2018 14:53:54 -0300 Subject: [PATCH 040/109] test: remove string error from strictEqual Removes the string error from the assertion call to improve the error message shown on screen when the test fails. PR-URL: https://github.com/nodejs/node/pull/21292 Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat Reviewed-By: James M Snell Reviewed-By: Ruben Bridgewater --- .../test-stream-writableState-uncorked-bufferedRequestCount.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/parallel/test-stream-writableState-uncorked-bufferedRequestCount.js b/test/parallel/test-stream-writableState-uncorked-bufferedRequestCount.js index dbd306c53f9ccb..86dd7aed1b1403 100644 --- a/test/parallel/test-stream-writableState-uncorked-bufferedRequestCount.js +++ b/test/parallel/test-stream-writableState-uncorked-bufferedRequestCount.js @@ -7,7 +7,7 @@ const stream = require('stream'); const writable = new stream.Writable(); writable._writev = common.mustCall((chunks, cb) => { - assert.strictEqual(chunks.length, 2, 'two chunks to write'); + assert.strictEqual(chunks.length, 2); cb(); }, 1); From 140836a1bcbcaf79adb1450bfbc59bef220443ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Wed, 20 Jun 2018 15:10:56 +0200 Subject: [PATCH 041/109] util: fix comment typos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the deep(Strict)Equal comparison functions were moved to an internal module, a variable named `current` was replaced with `val1`. That accidentally also replaced a few "currently"s in comments. Refs: https://github.com/nodejs/node/pull/16084 PR-URL: https://github.com/nodejs/node/pull/21436 Reviewed-By: Daniel Bevenius Reviewed-By: Weijia Wang Reviewed-By: Colin Ihrig Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell Reviewed-By: Tobias Nießen Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat --- lib/internal/util/comparisons.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/internal/util/comparisons.js b/lib/internal/util/comparisons.js index 119fb66611a7c6..f4491f070f18d6 100644 --- a/lib/internal/util/comparisons.js +++ b/lib/internal/util/comparisons.js @@ -287,7 +287,7 @@ function setHasEqualElement(set, val1, strict, memo) { return false; } -// Note: we val1ly run this multiple times for each loose key! +// Note: we currently run this multiple times for each loose key! // This is done to prevent slowing down the average case. function setHasLoosePrim(a, b, val) { const altValues = findLooseMatchingPrimitives(val); @@ -381,9 +381,9 @@ function findLooseMatchingPrimitives(prim) { } // This is a ugly but relatively fast way to determine if a loose equal entry -// val1ly has a correspondent matching entry. Otherwise checking for such +// currently has a correspondent matching entry. Otherwise checking for such // values would be way more expensive (O(n^2)). -// Note: we val1ly run this multiple times for each loose key! +// Note: we currently run this multiple times for each loose key! // This is done to prevent slowing down the average case. function mapHasLoosePrim(a, b, key1, memo, item1, item2) { const altKeys = findLooseMatchingPrimitives(key1); From bfac7beaf56e06225ead53078942f246147daba6 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Thu, 21 Jun 2018 20:51:52 -0700 Subject: [PATCH 042/109] test: move net bytes-per-chunk test to sequential The test is timing out on FreeBSD 10 in CI. It takes less than half as long to run when it is in sequential on that platform instead of parallel. Refs: https://github.com/nodejs/node/pull/21322#issuecomment-399311718 PR-URL: https://github.com/nodejs/node/pull/21457 Reviewed-By: Trivikram Kamat Reviewed-By: Anna Henningsen Reviewed-By: Colin Ihrig Reviewed-By: James M Snell --- .../test-net-bytes-per-incoming-chunk-overhead.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/{parallel => sequential}/test-net-bytes-per-incoming-chunk-overhead.js (100%) diff --git a/test/parallel/test-net-bytes-per-incoming-chunk-overhead.js b/test/sequential/test-net-bytes-per-incoming-chunk-overhead.js similarity index 100% rename from test/parallel/test-net-bytes-per-incoming-chunk-overhead.js rename to test/sequential/test-net-bytes-per-incoming-chunk-overhead.js From 357eaf3c9569e444628f169267040814a61958f2 Mon Sep 17 00:00:00 2001 From: cjihrig Date: Sun, 20 May 2018 15:16:25 -0400 Subject: [PATCH 043/109] test: lint fixes for ESLint update This commit introduces changes required for the ESLint 5 update. PR-URL: https://github.com/nodejs/node/pull/20855 Reviewed-By: Rich Trott --- test/es-module/test-esm-forbidden-globals.mjs | 1 + test/parallel/test-console-is-a-namespace.js | 3 ++- test/parallel/test-http2-socket-proxy.js | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/test/es-module/test-esm-forbidden-globals.mjs b/test/es-module/test-esm-forbidden-globals.mjs index 840a7ea54138fe..4e777412a346fd 100644 --- a/test/es-module/test-esm-forbidden-globals.mjs +++ b/test/es-module/test-esm-forbidden-globals.mjs @@ -1,6 +1,7 @@ // Flags: --experimental-modules import '../common'; +// eslint-disable-next-line no-undef if (typeof arguments !== 'undefined') { throw new Error('not an ESM'); } diff --git a/test/parallel/test-console-is-a-namespace.js b/test/parallel/test-console-is-a-namespace.js index 95c652abdd4424..82665411879ca9 100644 --- a/test/parallel/test-console-is-a-namespace.js +++ b/test/parallel/test-console-is-a-namespace.js @@ -5,7 +5,8 @@ require('../common'); const { test, assert_equals, assert_true, assert_false } = require('../common/wpt'); -global.console = global.console; // Should not throw. +// Assigning to itself should not throw. +global.console = global.console; // eslint-disable-line no-self-assign const self = global; diff --git a/test/parallel/test-http2-socket-proxy.js b/test/parallel/test-http2-socket-proxy.js index 71429b3db2f196..f7d97a3bb11e8a 100644 --- a/test/parallel/test-http2-socket-proxy.js +++ b/test/parallel/test-http2-socket-proxy.js @@ -52,8 +52,8 @@ server.on('stream', common.mustCall(function(stream, headers) { common.expectsError(() => (socket.write = undefined), errMsg); // Resetting the socket listeners to their own value should not throw. - socket.on = socket.on; - socket.once = socket.once; + socket.on = socket.on; // eslint-disable-line no-self-assign + socket.once = socket.once; // eslint-disable-line no-self-assign stream.respond(); From 21d73a5869f23c40cb875029c37ef41796b73e7b Mon Sep 17 00:00:00 2001 From: cjihrig Date: Fri, 22 Jun 2018 23:05:00 -0400 Subject: [PATCH 044/109] tools: update ESLint to 5.0.0 This is a new major release of ESLint. PR-URL: https://github.com/nodejs/node/pull/20855 Reviewed-By: Rich Trott --- tools/node_modules/eslint/README.md | 285 +- tools/node_modules/eslint/bin/eslint.js | 17 +- .../eslint/conf/blank-script.json | 21 - .../eslint/conf/default-cli-options.js | 3 +- .../node_modules/eslint/conf/environments.js | 130 +- .../eslint/conf/eslint-recommended.js | 7 +- tools/node_modules/eslint/lib/api.js | 14 +- tools/node_modules/eslint/lib/cli-engine.js | 19 +- tools/node_modules/eslint/lib/cli.js | 15 +- .../code-path-analysis/code-path-analyzer.js | 30 +- tools/node_modules/eslint/lib/config.js | 8 +- .../eslint/lib/config/config-file.js | 33 +- .../eslint/lib/config/config-initializer.js | 126 +- .../eslint/lib/config/config-ops.js | 9 +- .../eslint/lib/config/config-validator.js | 47 +- .../node_modules/eslint/lib/config/plugins.js | 23 +- tools/node_modules/eslint/lib/file-finder.js | 2 +- .../lib/formatters/html-template-message.html | 2 +- .../node_modules/eslint/lib/ignored-paths.js | 18 +- tools/node_modules/eslint/lib/linter.js | 210 +- tools/node_modules/eslint/lib/logging.js | 8 +- .../eslint/lib/report-translator.js | 59 +- .../eslint/lib/rules/array-element-newline.js | 27 +- .../eslint/lib/rules/arrow-body-style.js | 2 + .../eslint/lib/rules/camelcase.js | 38 +- .../eslint/lib/rules/comma-style.js | 8 +- .../eslint/lib/rules/for-direction.js | 2 +- .../eslint/lib/rules/func-name-matching.js | 56 +- .../eslint/lib/rules/getter-return.js | 2 +- .../eslint/lib/rules/max-classes-per-file.js | 60 + .../lib/rules/max-lines-per-function.js | 218 + .../eslint/lib/rules/no-case-declarations.js | 2 +- .../eslint/lib/rules/no-catch-shadow.js | 2 +- .../eslint/lib/rules/no-cond-assign.js | 3 +- .../eslint/lib/rules/no-extra-parens.js | 2 +- .../lib/rules/no-irregular-whitespace.js | 2 +- .../eslint/lib/rules/no-return-await.js | 1 - .../eslint/lib/rules/no-self-assign.js | 3 +- .../lib/rules/no-shadow-restricted-names.js | 48 +- .../eslint/lib/rules/no-shadow.js | 2 +- .../eslint/lib/rules/no-undefined.js | 2 +- .../eslint/lib/rules/no-unneeded-ternary.js | 2 +- .../eslint/lib/rules/no-unused-vars.js | 31 +- .../eslint/lib/rules/no-use-before-define.js | 43 +- .../eslint/lib/rules/no-useless-escape.js | 2 +- .../eslint/lib/rules/no-warning-comments.js | 21 +- .../eslint/lib/rules/object-curly-newline.js | 2 +- .../eslint/lib/rules/object-shorthand.js | 4 + .../node_modules/eslint/lib/rules/one-var.js | 106 +- .../eslint/lib/rules/prefer-const.js | 104 +- .../eslint/lib/rules/prefer-object-spread.js | 304 + .../eslint/lib/rules/prefer-template.js | 59 +- tools/node_modules/eslint/lib/rules/quotes.js | 3 +- .../eslint/lib/rules/valid-jsdoc.js | 8 +- .../eslint/lib/testers/rule-tester.js | 67 +- tools/node_modules/eslint/lib/timing.js | 4 +- tools/node_modules/eslint/lib/util/ajv.js | 3 +- .../lib/util/apply-disable-directives.js | 1 - .../node_modules/eslint/lib/util/glob-util.js | 219 +- .../eslint/lib/util/module-resolver.js | 4 +- tools/node_modules/eslint/lib/util/naming.js | 46 +- .../node_modules/eslint/lib/util/npm-util.js | 10 +- .../eslint/lib/util/safe-emitter.js | 6 +- .../eslint/lib/util/source-code-util.js | 5 +- .../eslint/lib/util/source-code.js | 8 +- .../eslint/messages/all-files-ignored.txt | 8 + .../eslint/messages/failed-to-read-json.txt | 3 + .../eslint/messages/file-not-found.txt | 2 + .../eslint/messages/plugin-missing.txt | 2 + .../eslint/node_modules/acorn-jsx/LICENSE | 2 +- .../eslint/node_modules/acorn-jsx/inject.js | 30 +- .../node_modules/acorn/.tern-project | 6 - .../acorn-jsx/node_modules/acorn/AUTHORS | 59 - .../acorn-jsx/node_modules/acorn/README.md | 407 - .../acorn-jsx/node_modules/acorn/bin/acorn | 65 - .../acorn/bin/generate-identifier-regex.js | 55 - .../node_modules/acorn/bin/update_authors.sh | 6 - .../node_modules/acorn/dist/acorn.es.js | 3112 --- .../node_modules/acorn/dist/acorn.js | 3142 --- .../node_modules/acorn/dist/acorn_loose.es.js | 1261 - .../node_modules/acorn/dist/acorn_loose.js | 1273 - .../node_modules/acorn/dist/walk.es.js | 342 - .../acorn-jsx/node_modules/acorn/dist/walk.js | 360 - .../acorn-jsx/node_modules/acorn/package.json | 250 - .../node_modules/acorn/rollup/config.bin.js | 15 - .../node_modules/acorn/rollup/config.loose.js | 20 - .../node_modules/acorn/rollup/config.main.js | 11 - .../node_modules/acorn/rollup/config.walk.js | 11 - .../node_modules/acorn/src/bin/acorn.js | 58 - .../node_modules/acorn/src/expression.js | 701 - .../node_modules/acorn/src/identifier.js | 82 - .../acorn-jsx/node_modules/acorn/src/index.js | 67 - .../node_modules/acorn/src/location.js | 26 - .../node_modules/acorn/src/locutil.js | 42 - .../acorn/src/loose/expression.js | 514 - .../node_modules/acorn/src/loose/index.js | 50 - .../node_modules/acorn/src/loose/parseutil.js | 1 - .../node_modules/acorn/src/loose/state.js | 160 - .../node_modules/acorn/src/loose/statement.js | 425 - .../node_modules/acorn/src/loose/tokenize.js | 108 - .../acorn-jsx/node_modules/acorn/src/lval.js | 216 - .../acorn-jsx/node_modules/acorn/src/node.js | 50 - .../node_modules/acorn/src/options.js | 121 - .../node_modules/acorn/src/parseutil.js | 109 - .../acorn-jsx/node_modules/acorn/src/state.js | 104 - .../node_modules/acorn/src/statement.js | 654 - .../node_modules/acorn/src/tokencontext.js | 110 - .../node_modules/acorn/src/tokenize.js | 696 - .../node_modules/acorn/src/tokentype.js | 147 - .../acorn-jsx/node_modules/acorn/src/util.js | 9 - .../node_modules/acorn/src/walk/index.js | 342 - .../node_modules/acorn/src/whitespace.js | 13 - .../node_modules/acorn-jsx/package.json | 26 +- .../eslint/node_modules/acorn/AUTHORS | 2 + .../eslint/node_modules/acorn/README.md | 8 +- .../eslint/node_modules/acorn/bin/_acorn.js | 24 +- .../node_modules/acorn/bin/run_test262.js | 5 +- .../node_modules/acorn/dist/acorn.es.js | 140 +- .../eslint/node_modules/acorn/dist/acorn.js | 140 +- .../node_modules/acorn/dist/acorn_loose.es.js | 72 +- .../node_modules/acorn/dist/acorn_loose.js | 72 +- .../eslint/node_modules/acorn/dist/walk.es.js | 90 +- .../eslint/node_modules/acorn/dist/walk.js | 90 +- .../eslint/node_modules/acorn/package.json | 37 +- .../eslint/node_modules/acorn/yarn-error.log | 91 - .../node_modules/ajv-keywords/README.md | 95 +- .../node_modules/ajv-keywords/keywords/if.js | 21 - .../ajv-keywords/keywords/index.js | 4 +- .../ajv-keywords/keywords/instanceof.js | 4 + .../ajv-keywords/keywords/transform.js | 79 + .../node_modules/ajv-keywords/package.json | 30 +- .../eslint/node_modules/ajv/LICENSE | 2 +- .../eslint/node_modules/ajv/README.md | 251 +- .../node_modules/ajv/dist/ajv.bundle.js | 3689 ++- .../eslint/node_modules/ajv/dist/ajv.min.js | 4 +- .../node_modules/ajv/dist/ajv.min.js.map | 2 +- .../node_modules/ajv/dist/nodent.min.js | 2 - .../node_modules/ajv/dist/regenerator.min.js | 2 - .../eslint/node_modules/ajv/lib/ajv.d.ts | 51 +- .../eslint/node_modules/ajv/lib/ajv.js | 29 +- .../node_modules/ajv/lib/compile/_rules.js | 31 - .../node_modules/ajv/lib/compile/formats.js | 36 +- .../node_modules/ajv/lib/compile/index.js | 9 +- .../node_modules/ajv/lib/compile/resolve.js | 19 +- .../node_modules/ajv/lib/compile/rules.js | 20 +- .../ajv/lib/{$data.js => data.js} | 2 +- .../node_modules/ajv/lib/dot/_limit.jst | 8 + .../node_modules/ajv/lib/dot/comment.jst | 9 + .../node_modules/ajv/lib/dot/custom.jst | 4 +- .../node_modules/ajv/lib/dot/errors.def | 12 +- .../node_modules/ajv/lib/dot/format.jst | 4 +- .../eslint/node_modules/ajv/lib/dot/if.jst | 75 + .../eslint/node_modules/ajv/lib/dot/oneOf.jst | 24 +- .../node_modules/ajv/lib/dot/properties.jst | 89 +- .../eslint/node_modules/ajv/lib/dot/ref.jst | 4 +- .../node_modules/ajv/lib/dot/uniqueItems.jst | 42 +- .../node_modules/ajv/lib/dot/validate.jst | 37 +- .../node_modules/ajv/lib/dotjs/_limit.js | 8 +- .../node_modules/ajv/lib/dotjs/comment.js | 14 + .../node_modules/ajv/lib/dotjs/const.js | 2 +- .../node_modules/ajv/lib/dotjs/custom.js | 4 +- .../node_modules/ajv/lib/dotjs/format.js | 4 +- .../eslint/node_modules/ajv/lib/dotjs/if.js | 103 + .../node_modules/ajv/lib/dotjs/index.js | 33 + .../node_modules/ajv/lib/dotjs/oneOf.js | 12 +- .../node_modules/ajv/lib/dotjs/properties.js | 184 +- .../eslint/node_modules/ajv/lib/dotjs/ref.js | 4 +- .../node_modules/ajv/lib/dotjs/uniqueItems.js | 16 +- .../node_modules/ajv/lib/dotjs/validate.js | 29 +- .../eslint/node_modules/ajv/lib/keyword.js | 2 +- .../node_modules/ajv/lib/patternGroups.js | 36 - .../ajv/lib/refs/{$data.json => data.json} | 6 +- .../ajv/lib/refs/json-schema-draft-07.json | 168 + .../ajv/lib/refs/json-schema-v5.json | 250 - .../eslint/node_modules/ajv/package.json | 69 +- .../ajv/scripts/publish-built-version | 32 + .../eslint/node_modules/ansi-escapes/index.js | 28 +- .../node_modules/ansi-escapes/package.json | 12 +- .../node_modules/ansi-escapes/readme.md | 6 + .../node_modules/ansi-regex/package.json | 2 +- .../node_modules/ansi-styles/package.json | 2 +- .../eslint/node_modules/argparse/package.json | 2 +- .../node_modules/array-union/package.json | 2 +- .../node_modules/array-uniq/package.json | 2 +- .../eslint/node_modules/arrify/package.json | 2 +- .../node_modules/chalk/package.json | 2 +- .../node_modules/strip-ansi/package.json | 2 +- .../babel-code-frame/package.json | 12 +- .../eslint/node_modules/bail/index.js | 6 +- .../eslint/node_modules/bail/package.json | 42 +- .../eslint/node_modules/bail/readme.md | 6 +- .../node_modules/balanced-match/package.json | 2 +- .../node_modules/brace-expansion/package.json | 2 +- .../eslint/node_modules/buffer-from/index.js | 69 - .../node_modules/buffer-from/package.json | 49 - .../eslint/node_modules/buffer-from/readme.md | 69 - .../node_modules/caller-path/package.json | 2 +- .../node_modules/callsites/package.json | 2 +- .../eslint/node_modules/chalk/index.js.flow | 93 + .../node_modules/ansi-styles/package.json | 2 +- .../node_modules/supports-color/index.js | 4 - .../node_modules/supports-color/package.json | 12 +- .../eslint/node_modules/chalk/package.json | 23 +- .../eslint/node_modules/chalk/readme.md | 7 +- .../character-entities-legacy/package.json | 44 +- .../character-entities-legacy/readme.md | 8 +- .../character-entities/package.json | 43 +- .../node_modules/character-entities/readme.md | 8 +- .../character-reference-invalid/package.json | 43 +- .../character-reference-invalid/readme.md | 8 +- .../eslint/node_modules/chardet/package.json | 2 +- .../node_modules/circular-json/package.json | 2 +- .../node_modules/cli-cursor/package.json | 2 +- .../node_modules/cli-width/package.json | 2 +- .../eslint/node_modules/co/Readme.md | 212 - .../eslint/node_modules/co/index.js | 237 - .../eslint/node_modules/co/package.json | 66 - .../collapse-white-space/index.js | 6 +- .../collapse-white-space/package.json | 47 +- .../collapse-white-space/readme.md | 4 +- .../node_modules/color-convert/conversions.js | 65 +- .../node_modules/color-convert/package.json | 18 +- .../node_modules/color-name/.eslintrc.json | 43 - .../eslint/node_modules/color-name/README.md | 4 +- .../eslint/node_modules/color-name/index.js | 4 +- .../node_modules/color-name/package.json | 29 +- .../node_modules/concat-map/package.json | 2 +- .../eslint/node_modules/concat-stream/LICENSE | 24 - .../node_modules/concat-stream/index.js | 144 - .../node_modules/concat-stream/package.json | 84 - .../node_modules/concat-stream/readme.md | 102 - .../eslint/node_modules/core-util-is/LICENSE | 19 - .../node_modules/core-util-is/README.md | 3 - .../node_modules/core-util-is/float.patch | 604 - .../node_modules/core-util-is/lib/util.js | 107 - .../node_modules/core-util-is/package.json | 62 - .../eslint/node_modules/cross-spawn/LICENSE | 12 +- .../eslint/node_modules/cross-spawn/README.md | 59 +- .../eslint/node_modules/cross-spawn/index.js | 36 +- .../node_modules/cross-spawn/lib/enoent.js | 56 +- .../node_modules/cross-spawn/lib/parse.js | 114 +- .../cross-spawn/lib/util/escape.js | 45 + .../cross-spawn/lib/util/escapeArgument.js | 30 - .../cross-spawn/lib/util/escapeCommand.js | 12 - .../lib/util/hasEmptyArgumentBug.js | 18 - .../cross-spawn/lib/util/readShebang.js | 39 +- .../cross-spawn/lib/util/resolveCommand.js | 56 +- .../node_modules/cross-spawn/package.json | 92 +- .../eslint/node_modules/debug/package.json | 2 +- .../eslint/node_modules/deep-is/package.json | 2 +- .../acorn => define-properties}/LICENSE | 6 +- .../node_modules/define-properties/README.md | 86 + .../node_modules/define-properties/index.js | 56 + .../define-properties/package.json | 97 + .../eslint/node_modules/del/package.json | 2 +- .../eslint/node_modules/doctrine/package.json | 2 +- .../eslint/node_modules/es-abstract/.nycrc | 14 + .../node_modules/es-abstract/GetIntrinsic.js | 177 + .../eslint/node_modules/es-abstract/LICENSE | 21 + .../eslint/node_modules/es-abstract/Makefile | 61 + .../eslint/node_modules/es-abstract/README.md | 44 + .../eslint/node_modules/es-abstract/es2015.js | 693 + .../eslint/node_modules/es-abstract/es2016.js | 16 + .../eslint/node_modules/es-abstract/es2017.js | 25 + .../eslint/node_modules/es-abstract/es5.js | 242 + .../eslint/node_modules/es-abstract/es6.js | 3 + .../eslint/node_modules/es-abstract/es7.js | 3 + .../es-abstract/helpers/assign.js | 17 + .../es-abstract/helpers/isFinite.js | 3 + .../node_modules/es-abstract/helpers/isNaN.js | 3 + .../es-abstract/helpers/isPrimitive.js | 3 + .../node_modules/es-abstract/helpers/mod.js | 4 + .../node_modules/es-abstract/helpers/sign.js | 3 + .../eslint/node_modules/es-abstract/index.js | 22 + .../es-abstract/operations/2015.js | 78 + .../es-abstract/operations/2016.js | 80 + .../es-abstract/operations/2017.js | 82 + .../es-abstract/operations/es5.js | 10 + .../node_modules/es-abstract/package.json | 127 + .../license.md => es-to-primitive/LICENSE} | 9 +- .../node_modules/es-to-primitive/Makefile | 61 + .../node_modules/es-to-primitive/README.md | 53 + .../node_modules/es-to-primitive/es5.js | 37 + .../node_modules/es-to-primitive/es6.js | 74 + .../es-to-primitive/helpers/isPrimitive.js | 3 + .../node_modules/es-to-primitive/index.js | 14 + .../node_modules/es-to-primitive/package.json | 102 + .../escape-string-regexp/package.json | 2 +- .../eslint-plugin-markdown/lib/processor.js | 7 +- .../eslint-plugin-markdown/package.json | 12 +- .../eslint/node_modules/eslint-scope/LICENSE | 1 - .../eslint-scope/lib/referencer.js | 84 +- .../eslint-scope/lib/scope-manager.js | 8 - .../node_modules/eslint-scope/lib/scope.js | 70 +- .../node_modules/eslint-scope/lib/variable.js | 1 - .../node_modules/eslint-scope/package.json | 25 +- .../eslint-visitor-keys/package.json | 2 +- .../eslint/node_modules/espree/README.md | 26 +- .../eslint/node_modules/espree/espree.js | 152 +- .../node_modules/espree/lib/ast-node-types.js | 2 - .../node_modules/espree/lib/features.js | 5 +- .../node_modules/espree/lib/visitor-keys.js | 6 +- .../eslint/node_modules/espree/package.json | 35 +- .../eslint/node_modules/esprima/package.json | 2 +- .../eslint/node_modules/esquery/esquery.js | 26 +- .../eslint/node_modules/esquery/package.json | 24 +- .../eslint/node_modules/esquery/parser.js | 88 +- .../node_modules/esrecurse/package.json | 2 +- .../node_modules/estraverse/package.json | 2 +- .../eslint/node_modules/esutils/package.json | 2 +- .../eslint/node_modules/extend/package.json | 2 +- .../node_modules/external-editor/README.md | 10 +- .../external-editor/example_sync.js | 4 + .../external-editor/main/index.js | 44 +- .../node_modules/external-editor/package.json | 22 +- .../node_modules/fast-deep-equal/README.md | 19 +- .../node_modules/fast-deep-equal/index.js | 52 +- .../node_modules/fast-deep-equal/package.json | 35 +- .../fast-json-stable-stringify/package.json | 2 +- .../fast-levenshtein/package.json | 2 +- .../eslint/node_modules/figures/package.json | 2 +- .../file-entry-cache/package.json | 2 +- .../node_modules/flat-cache/package.json | 2 +- .../{util-deprecate => foreach}/LICENSE | 4 +- .../eslint/node_modules/foreach/Makefile | 11 + .../eslint/node_modules/foreach/Readme.md | 30 + .../eslint/node_modules/foreach/index.js | 22 + .../eslint/node_modules/foreach/package.json | 88 + .../node_modules/fs.realpath/package.json | 2 +- .../node_modules/function-bind/package.json | 18 +- .../functional-red-black-tree/package.json | 2 +- .../eslint/node_modules/glob/package.json | 2 +- .../eslint/node_modules/globals/globals.json | 16 +- .../eslint/node_modules/globals/package.json | 26 +- .../eslint/node_modules/globby/package.json | 2 +- .../node_modules/graceful-fs/package.json | 2 +- .../eslint/node_modules/has-ansi/package.json | 2 +- .../eslint/node_modules/has-flag/package.json | 2 +- .../{x-is-function => has-symbols}/LICENSE | 2 +- .../eslint/node_modules/has-symbols/README.md | 45 + .../eslint/node_modules/has-symbols/index.js | 13 + .../node_modules/has-symbols/package.json | 107 + .../eslint/node_modules/has-symbols/shams.js | 42 + .../has/{README.mkd => README.md} | 0 .../eslint/node_modules/has/package.json | 40 +- .../eslint/node_modules/has/src/index.js | 2 + .../eslint/node_modules/iconv-lite/README.md | 6 +- .../iconv-lite/encodings/dbcs-codec.js | 12 +- .../iconv-lite/encodings/internal.js | 12 +- .../iconv-lite/encodings/sbcs-codec.js | 11 +- .../iconv-lite/encodings/utf16.js | 6 +- .../node_modules/iconv-lite/encodings/utf7.js | 22 +- .../iconv-lite/lib/extend-node.js | 4 +- .../node_modules/iconv-lite/lib/index.d.ts | 4 +- .../node_modules/iconv-lite/lib/index.js | 11 +- .../node_modules/iconv-lite/package.json | 73 +- .../eslint/node_modules/ignore/ignore.js | 4 +- .../eslint/node_modules/ignore/index.d.ts | 12 +- .../eslint/node_modules/ignore/package.json | 22 +- .../node_modules/imurmurhash/package.json | 2 +- .../eslint/node_modules/inflight/package.json | 2 +- .../eslint/node_modules/inherits/package.json | 16 +- .../eslint/node_modules/inquirer/README.md | 47 +- .../node_modules/inquirer/lib/inquirer.js | 15 +- .../inquirer/lib/objects/choice.js | 42 +- .../inquirer/lib/objects/choices.js | 174 +- .../inquirer/lib/objects/separator.js | 29 +- .../node_modules/inquirer/lib/prompts/base.js | 224 +- .../inquirer/lib/prompts/checkbox.js | 305 +- .../inquirer/lib/prompts/confirm.js | 137 +- .../inquirer/lib/prompts/editor.js | 153 +- .../inquirer/lib/prompts/expand.js | 372 +- .../inquirer/lib/prompts/input.js | 146 +- .../node_modules/inquirer/lib/prompts/list.js | 211 +- .../inquirer/lib/prompts/password.js | 145 +- .../inquirer/lib/prompts/rawlist.js | 219 +- .../node_modules/inquirer/lib/ui/baseUI.js | 95 +- .../inquirer/lib/ui/bottom-bar.js | 165 +- .../node_modules/inquirer/lib/ui/prompt.js | 190 +- .../node_modules/inquirer/lib/utils/events.js | 63 +- .../inquirer/lib/utils/paginator.js | 63 +- .../inquirer/lib/utils/readline.js | 10 +- .../inquirer/lib/utils/screen-manager.js | 219 +- .../node_modules/inquirer/lib/utils/utils.js | 12 +- .../eslint/node_modules/inquirer/package.json | 104 +- .../node_modules/is-alphabetical/index.js | 13 +- .../node_modules/is-alphabetical/package.json | 40 +- .../node_modules/is-alphabetical/readme.md | 10 +- .../node_modules/is-alphanumerical/index.js | 10 +- .../is-alphanumerical/package.json | 42 +- .../node_modules/is-alphanumerical/readme.md | 12 +- .../node_modules/is-buffer/package.json | 2 +- .../eslint/node_modules/is-callable/LICENSE | 22 + .../eslint/node_modules/is-callable/Makefile | 61 + .../eslint/node_modules/is-callable/README.md | 59 + .../eslint/node_modules/is-callable/index.js | 39 + .../node_modules/is-callable/package.json | 114 + .../node_modules/is-date-object/LICENSE | 22 + .../node_modules/is-date-object/Makefile | 61 + .../node_modules/is-date-object/README.md | 53 + .../node_modules/is-date-object/index.js | 20 + .../node_modules/is-date-object/package.json | 93 + .../eslint/node_modules/is-decimal/index.js | 9 +- .../node_modules/is-decimal/package.json | 42 +- .../eslint/node_modules/is-decimal/readme.md | 10 +- .../is-fullwidth-code-point/package.json | 2 +- .../node_modules/is-hexadecimal/index.js | 15 +- .../node_modules/is-hexadecimal/package.json | 42 +- .../node_modules/is-hexadecimal/readme.md | 10 +- .../node_modules/is-path-cwd/package.json | 2 +- .../node_modules/is-path-in-cwd/license | 21 + .../node_modules/is-path-in-cwd/package.json | 12 +- .../node_modules/is-path-in-cwd/readme.md | 3 + .../node_modules/is-path-inside/package.json | 2 +- .../node_modules/is-plain-obj/package.json | 2 +- .../node_modules/is-promise/package.json | 2 +- .../eslint/node_modules/is-regex/LICENSE | 20 + .../eslint/node_modules/is-regex/Makefile | 61 + .../eslint/node_modules/is-regex/README.md | 54 + .../eslint/node_modules/is-regex/index.js | 39 + .../eslint/node_modules/is-regex/package.json | 100 + .../node_modules/is-resolvable/README.md | 4 +- .../node_modules/is-resolvable/package.json | 12 +- .../eslint/node_modules/is-symbol/.nvmrc | 1 + .../eslint/node_modules/is-symbol/LICENSE | 22 + .../eslint/node_modules/is-symbol/Makefile | 61 + .../eslint/node_modules/is-symbol/README.md | 46 + .../eslint/node_modules/is-symbol/index.js | 27 + .../node_modules/is-symbol/package.json | 85 + .../is-whitespace-character/index.js | 10 +- .../is-whitespace-character/package.json | 42 +- .../is-whitespace-character/readme.md | 16 +- .../node_modules/is-word-character/index.js | 10 +- .../is-word-character/package.json | 42 +- .../node_modules/is-word-character/readme.md | 16 +- .../eslint/node_modules/isarray/Makefile | 6 - .../eslint/node_modules/isarray/README.md | 60 - .../eslint/node_modules/isarray/index.js | 5 - .../eslint/node_modules/isarray/package.json | 73 - .../eslint/node_modules/isexe/package.json | 2 +- .../node_modules/js-tokens/package.json | 2 +- .../node_modules/js-yaml/dist/js-yaml.js | 22 +- .../node_modules/js-yaml/dist/js-yaml.min.js | 2 +- .../js-yaml/lib/js-yaml/dumper.js | 10 +- .../js-yaml/lib/js-yaml/type/js/function.js | 8 +- .../eslint/node_modules/js-yaml/package.json | 27 +- .../json-schema-traverse/README.md | 20 +- .../json-schema-traverse/index.js | 20 +- .../json-schema-traverse/package.json | 22 +- .../package.json | 2 +- .../eslint/node_modules/levn/package.json | 2 +- .../eslint/node_modules/lodash/README.md | 4 +- .../eslint/node_modules/lodash/_nodeUtil.js | 8 + .../eslint/node_modules/lodash/core.js | 2 +- .../eslint/node_modules/lodash/core.min.js | 4 +- .../eslint/node_modules/lodash/lodash.js | 10 +- .../eslint/node_modules/lodash/lodash.min.js | 138 +- .../eslint/node_modules/lodash/package.json | 22 +- .../eslint/node_modules/lru-cache/LICENSE | 15 - .../eslint/node_modules/lru-cache/README.md | 158 - .../eslint/node_modules/lru-cache/index.js | 467 - .../node_modules/lru-cache/package.json | 68 - .../node_modules/markdown-escapes/index.js | 24 +- .../markdown-escapes/package.json | 42 +- .../eslint/node_modules/mimic-fn/package.json | 2 +- .../node_modules/minimatch/package.json | 12 +- .../eslint/node_modules/minimist/package.json | 2 +- .../eslint/node_modules/mkdirp/package.json | 2 +- .../eslint/node_modules/ms/package.json | 2 +- .../node_modules/mute-stream/package.json | 2 +- .../node_modules/natural-compare/package.json | 2 +- .../{safe-buffer => nice-try}/LICENSE | 2 +- .../eslint/node_modules/nice-try/README.md | 32 + .../eslint/node_modules/nice-try/package.json | 62 + .../eslint/node_modules/nice-try/src/index.js | 13 + .../node_modules/object-assign/package.json | 2 +- .../eslint/node_modules/object-keys/LICENSE | 21 + .../eslint/node_modules/object-keys/README.md | 76 + .../eslint/node_modules/object-keys/index.js | 141 + .../node_modules/object-keys/isArguments.js | 17 + .../node_modules/object-keys/package.json | 119 + .../eslint/node_modules/once/package.json | 2 +- .../eslint/node_modules/onetime/package.json | 2 +- .../node_modules/optionator/package.json | 2 +- .../node_modules/os-tmpdir/package.json | 2 +- .../node_modules/parse-entities/index.js | 455 +- .../node_modules/parse-entities/package.json | 44 +- .../node_modules/parse-entities/readme.md | 175 +- .../path-is-absolute/package.json | 2 +- .../node_modules/path-is-inside/package.json | 2 +- .../eslint/node_modules/path-key/index.js | 13 + .../eslint/node_modules/path-key/license | 21 + .../eslint/node_modules/path-key/package.json | 71 + .../eslint/node_modules/path-key/readme.md | 51 + .../eslint/node_modules/pify/package.json | 2 +- .../node_modules/pinkie-promise/package.json | 2 +- .../eslint/node_modules/pinkie/package.json | 2 +- .../node_modules/pluralize/package.json | 2 +- .../node_modules/prelude-ls/package.json | 2 +- .../process-nextick-args/index.js | 43 - .../process-nextick-args/package.json | 50 - .../process-nextick-args/readme.md | 18 - .../eslint/node_modules/progress/package.json | 2 +- .../eslint/node_modules/pseudomap/LICENSE | 15 - .../eslint/node_modules/pseudomap/README.md | 60 - .../eslint/node_modules/pseudomap/map.js | 9 - .../node_modules/pseudomap/package.json | 54 - .../node_modules/pseudomap/pseudomap.js | 113 - .../{co/LICENSE => punycode/LICENSE-MIT.txt} | 18 +- .../eslint/node_modules/punycode/README.md | 122 + .../eslint/node_modules/punycode/package.json | 85 + .../node_modules/punycode/punycode.es6.js | 441 + .../eslint/node_modules/punycode/punycode.js | 440 + .../readable-stream/GOVERNANCE.md | 136 - .../node_modules/readable-stream/LICENSE | 47 - .../node_modules/readable-stream/README.md | 58 - .../readable-stream/duplex-browser.js | 1 - .../node_modules/readable-stream/duplex.js | 1 - .../readable-stream/lib/_stream_duplex.js | 124 - .../lib/_stream_passthrough.js | 47 - .../readable-stream/lib/_stream_readable.js | 1015 - .../readable-stream/lib/_stream_transform.js | 214 - .../readable-stream/lib/_stream_writable.js | 677 - .../lib/internal/streams/BufferList.js | 79 - .../lib/internal/streams/destroy.js | 74 - .../lib/internal/streams/stream-browser.js | 1 - .../lib/internal/streams/stream.js | 1 - .../node_modules/readable-stream/package.json | 85 - .../readable-stream/passthrough.js | 1 - .../readable-stream/readable-browser.js | 7 - .../node_modules/readable-stream/readable.js | 19 - .../node_modules/readable-stream/transform.js | 1 - .../readable-stream/writable-browser.js | 1 - .../node_modules/readable-stream/writable.js | 8 - .../regexp.prototype.flags/LICENSE | 21 + .../regexp.prototype.flags/README.md | 54 + .../regexp.prototype.flags/implementation.js | 30 + .../regexp.prototype.flags/index.js | 17 + .../regexp.prototype.flags/package.json | 104 + .../regexp.prototype.flags/polyfill.js | 20 + .../regexp.prototype.flags/shim.js | 26 + .../eslint/node_modules/regexpp/index.d.ts | 403 +- .../eslint/node_modules/regexpp/index.js | 8009 ++---- .../eslint/node_modules/regexpp/index.js.map | 2 +- .../eslint/node_modules/regexpp/index.mjs | 6785 ++++++ .../eslint/node_modules/regexpp/index.mjs.map | 1 + .../eslint/node_modules/regexpp/package.json | 39 +- .../node_modules/remark-parse/package.json | 2 +- .../node_modules/repeat-string/package.json | 2 +- .../node_modules/replace-ext/package.json | 2 +- .../require-uncached/package.json | 2 +- .../node_modules/resolve-from/package.json | 2 +- .../node_modules/restore-cursor/package.json | 2 +- .../eslint/node_modules/rimraf/package.json | 2 +- .../node_modules/run-async/package.json | 2 +- .../rx-lite-aggregates/package.json | 67 - .../node_modules/rx-lite-aggregates/readme.md | 85 - .../rx-lite-aggregates/rx.lite.aggregates.js | 1365 -- .../rx-lite-aggregates/rx.lite.aggregates.map | 1 - .../rx.lite.aggregates.min.js | 3 - .../eslint/node_modules/rx-lite/package.json | 66 - .../eslint/node_modules/rx-lite/readme.md | 173 - .../eslint/node_modules/rx-lite/rx.lite.js | 7054 ------ .../eslint/node_modules/rx-lite/rx.lite.map | 1 - .../node_modules/rx-lite/rx.lite.min.js | 5 - .../node_modules/rxjs/AsyncSubject.d.ts | 15 + .../eslint/node_modules/rxjs/AsyncSubject.js | 53 + .../node_modules/rxjs/AsyncSubject.js.map | 1 + .../node_modules/rxjs/BehaviorSubject.d.ts | 14 + .../node_modules/rxjs/BehaviorSubject.js | 49 + .../node_modules/rxjs/BehaviorSubject.js.map | 1 + .../node_modules/rxjs/InnerSubscriber.d.ts | 17 + .../node_modules/rxjs/InnerSubscriber.js | 36 + .../node_modules/rxjs/InnerSubscriber.js.map | 1 + .../eslint/node_modules/rxjs/LICENSE.txt | 202 + .../node_modules/rxjs/Notification.d.ts | 77 + .../eslint/node_modules/rxjs/Notification.js | 127 + .../node_modules/rxjs/Notification.js.map | 1 + .../eslint/node_modules/rxjs/Observable.d.ts | 76 + .../eslint/node_modules/rxjs/Observable.js | 305 + .../node_modules/rxjs/Observable.js.map | 1 + .../eslint/node_modules/rxjs/Observer.d.ts | 26 + .../eslint/node_modules/rxjs/Observer.js | 8 + .../eslint/node_modules/rxjs/Observer.js.map | 1 + .../eslint/node_modules/rxjs/Operator.d.ts | 5 + .../eslint/node_modules/rxjs/Operator.js | 2 + .../eslint/node_modules/rxjs/Operator.js.map | 1 + .../node_modules/rxjs/OuterSubscriber.d.ts | 12 + .../node_modules/rxjs/OuterSubscriber.js | 30 + .../node_modules/rxjs/OuterSubscriber.js.map | 1 + .../eslint/node_modules/rxjs/README.md | 204 + .../node_modules/rxjs/ReplaySubject.d.ts | 18 + .../eslint/node_modules/rxjs/ReplaySubject.js | 102 + .../node_modules/rxjs/ReplaySubject.js.map | 1 + .../eslint/node_modules/rxjs/Rx.d.ts | 195 + .../eslint/node_modules/rxjs/Rx.js | 233 + .../eslint/node_modules/rxjs/Rx.js.map | 1 + .../eslint/node_modules/rxjs/Scheduler.d.ts | 54 + .../eslint/node_modules/rxjs/Scheduler.js | 49 + .../eslint/node_modules/rxjs/Scheduler.js.map | 1 + .../eslint/node_modules/rxjs/Subject.d.ts | 43 + .../eslint/node_modules/rxjs/Subject.js | 168 + .../eslint/node_modules/rxjs/Subject.js.map | 1 + .../rxjs/SubjectSubscription.d.ts | 15 + .../node_modules/rxjs/SubjectSubscription.js | 40 + .../rxjs/SubjectSubscription.js.map | 1 + .../eslint/node_modules/rxjs/Subscriber.d.ts | 68 + .../eslint/node_modules/rxjs/Subscriber.js | 271 + .../node_modules/rxjs/Subscriber.js.map | 1 + .../node_modules/rxjs/Subscription.d.ts | 70 + .../eslint/node_modules/rxjs/Subscription.js | 193 + .../node_modules/rxjs/Subscription.js.map | 1 + .../rxjs/_esm2015/AsyncSubject.js | 44 + .../rxjs/_esm2015/AsyncSubject.js.map | 1 + .../rxjs/_esm2015/BehaviorSubject.js | 36 + .../rxjs/_esm2015/BehaviorSubject.js.map | 1 + .../rxjs/_esm2015/InnerSubscriber.js | 27 + .../rxjs/_esm2015/InnerSubscriber.js.map | 1 + .../node_modules/rxjs/_esm2015/LICENSE.txt | 202 + .../rxjs/_esm2015/Notification.js | 124 + .../rxjs/_esm2015/Notification.js.map | 1 + .../node_modules/rxjs/_esm2015/Observable.js | 296 + .../rxjs/_esm2015/Observable.js.map | 1 + .../node_modules/rxjs/_esm2015/Observer.js | 7 + .../rxjs/_esm2015/Observer.js.map | 1 + .../node_modules/rxjs/_esm2015/Operator.js | 1 + .../rxjs/_esm2015/Operator.js.map | 1 + .../rxjs/_esm2015/OuterSubscriber.js | 18 + .../rxjs/_esm2015/OuterSubscriber.js.map | 1 + .../node_modules/rxjs/_esm2015/README.md | 204 + .../rxjs/_esm2015/ReplaySubject.js | 90 + .../rxjs/_esm2015/ReplaySubject.js.map | 1 + .../eslint/node_modules/rxjs/_esm2015/Rx.js | 204 + .../node_modules/rxjs/_esm2015/Rx.js.map | 1 + .../node_modules/rxjs/_esm2015/Scheduler.js | 44 + .../rxjs/_esm2015/Scheduler.js.map | 1 + .../node_modules/rxjs/_esm2015/Subject.js | 153 + .../node_modules/rxjs/_esm2015/Subject.js.map | 1 + .../rxjs/_esm2015/SubjectSubscription.js | 31 + .../rxjs/_esm2015/SubjectSubscription.js.map | 1 + .../node_modules/rxjs/_esm2015/Subscriber.js | 259 + .../rxjs/_esm2015/Subscriber.js.map | 1 + .../rxjs/_esm2015/Subscription.js | 190 + .../rxjs/_esm2015/Subscription.js.map | 1 + .../_esm2015/add/observable/bindCallback.js | 4 + .../add/observable/bindCallback.js.map | 1 + .../add/observable/bindNodeCallback.js | 4 + .../add/observable/bindNodeCallback.js.map | 1 + .../_esm2015/add/observable/combineLatest.js | 4 + .../add/observable/combineLatest.js.map | 1 + .../rxjs/_esm2015/add/observable/concat.js | 4 + .../_esm2015/add/observable/concat.js.map | 1 + .../rxjs/_esm2015/add/observable/defer.js | 4 + .../rxjs/_esm2015/add/observable/defer.js.map | 1 + .../rxjs/_esm2015/add/observable/dom/ajax.js | 4 + .../_esm2015/add/observable/dom/ajax.js.map | 1 + .../_esm2015/add/observable/dom/webSocket.js | 4 + .../add/observable/dom/webSocket.js.map | 1 + .../rxjs/_esm2015/add/observable/empty.js | 4 + .../rxjs/_esm2015/add/observable/empty.js.map | 1 + .../rxjs/_esm2015/add/observable/forkJoin.js | 4 + .../_esm2015/add/observable/forkJoin.js.map | 1 + .../rxjs/_esm2015/add/observable/from.js | 4 + .../rxjs/_esm2015/add/observable/from.js.map | 1 + .../rxjs/_esm2015/add/observable/fromEvent.js | 4 + .../_esm2015/add/observable/fromEvent.js.map | 1 + .../add/observable/fromEventPattern.js | 4 + .../add/observable/fromEventPattern.js.map | 1 + .../_esm2015/add/observable/fromPromise.js | 4 + .../add/observable/fromPromise.js.map | 1 + .../rxjs/_esm2015/add/observable/generate.js | 4 + .../_esm2015/add/observable/generate.js.map | 1 + .../rxjs/_esm2015/add/observable/if.js | 4 + .../rxjs/_esm2015/add/observable/if.js.map | 1 + .../rxjs/_esm2015/add/observable/interval.js | 4 + .../_esm2015/add/observable/interval.js.map | 1 + .../rxjs/_esm2015/add/observable/merge.js | 4 + .../rxjs/_esm2015/add/observable/merge.js.map | 1 + .../rxjs/_esm2015/add/observable/never.js | 4 + .../rxjs/_esm2015/add/observable/never.js.map | 1 + .../rxjs/_esm2015/add/observable/of.js | 4 + .../rxjs/_esm2015/add/observable/of.js.map | 1 + .../add/observable/onErrorResumeNext.js | 4 + .../add/observable/onErrorResumeNext.js.map | 1 + .../rxjs/_esm2015/add/observable/pairs.js | 4 + .../rxjs/_esm2015/add/observable/pairs.js.map | 1 + .../rxjs/_esm2015/add/observable/race.js | 4 + .../rxjs/_esm2015/add/observable/race.js.map | 1 + .../rxjs/_esm2015/add/observable/range.js | 4 + .../rxjs/_esm2015/add/observable/range.js.map | 1 + .../rxjs/_esm2015/add/observable/throw.js | 4 + .../rxjs/_esm2015/add/observable/throw.js.map | 1 + .../rxjs/_esm2015/add/observable/timer.js | 4 + .../rxjs/_esm2015/add/observable/timer.js.map | 1 + .../rxjs/_esm2015/add/observable/using.js | 4 + .../rxjs/_esm2015/add/observable/using.js.map | 1 + .../rxjs/_esm2015/add/observable/zip.js | 4 + .../rxjs/_esm2015/add/observable/zip.js.map | 1 + .../rxjs/_esm2015/add/operator/audit.js | 4 + .../rxjs/_esm2015/add/operator/audit.js.map | 1 + .../rxjs/_esm2015/add/operator/auditTime.js | 4 + .../_esm2015/add/operator/auditTime.js.map | 1 + .../rxjs/_esm2015/add/operator/buffer.js | 4 + .../rxjs/_esm2015/add/operator/buffer.js.map | 1 + .../rxjs/_esm2015/add/operator/bufferCount.js | 4 + .../_esm2015/add/operator/bufferCount.js.map | 1 + .../rxjs/_esm2015/add/operator/bufferTime.js | 4 + .../_esm2015/add/operator/bufferTime.js.map | 1 + .../_esm2015/add/operator/bufferToggle.js | 4 + .../_esm2015/add/operator/bufferToggle.js.map | 1 + .../rxjs/_esm2015/add/operator/bufferWhen.js | 4 + .../_esm2015/add/operator/bufferWhen.js.map | 1 + .../rxjs/_esm2015/add/operator/catch.js | 5 + .../rxjs/_esm2015/add/operator/catch.js.map | 1 + .../rxjs/_esm2015/add/operator/combineAll.js | 4 + .../_esm2015/add/operator/combineAll.js.map | 1 + .../_esm2015/add/operator/combineLatest.js | 4 + .../add/operator/combineLatest.js.map | 1 + .../rxjs/_esm2015/add/operator/concat.js | 4 + .../rxjs/_esm2015/add/operator/concat.js.map | 1 + .../rxjs/_esm2015/add/operator/concatAll.js | 4 + .../_esm2015/add/operator/concatAll.js.map | 1 + .../rxjs/_esm2015/add/operator/concatMap.js | 4 + .../_esm2015/add/operator/concatMap.js.map | 1 + .../rxjs/_esm2015/add/operator/concatMapTo.js | 4 + .../_esm2015/add/operator/concatMapTo.js.map | 1 + .../rxjs/_esm2015/add/operator/count.js | 4 + .../rxjs/_esm2015/add/operator/count.js.map | 1 + .../rxjs/_esm2015/add/operator/debounce.js | 4 + .../_esm2015/add/operator/debounce.js.map | 1 + .../_esm2015/add/operator/debounceTime.js | 4 + .../_esm2015/add/operator/debounceTime.js.map | 1 + .../_esm2015/add/operator/defaultIfEmpty.js | 4 + .../add/operator/defaultIfEmpty.js.map | 1 + .../rxjs/_esm2015/add/operator/delay.js | 4 + .../rxjs/_esm2015/add/operator/delay.js.map | 1 + .../rxjs/_esm2015/add/operator/delayWhen.js | 4 + .../_esm2015/add/operator/delayWhen.js.map | 1 + .../_esm2015/add/operator/dematerialize.js | 4 + .../add/operator/dematerialize.js.map | 1 + .../rxjs/_esm2015/add/operator/distinct.js | 4 + .../_esm2015/add/operator/distinct.js.map | 1 + .../add/operator/distinctUntilChanged.js | 4 + .../add/operator/distinctUntilChanged.js.map | 1 + .../add/operator/distinctUntilKeyChanged.js | 4 + .../operator/distinctUntilKeyChanged.js.map | 1 + .../rxjs/_esm2015/add/operator/do.js | 5 + .../rxjs/_esm2015/add/operator/do.js.map | 1 + .../rxjs/_esm2015/add/operator/elementAt.js | 4 + .../_esm2015/add/operator/elementAt.js.map | 1 + .../rxjs/_esm2015/add/operator/every.js | 4 + .../rxjs/_esm2015/add/operator/every.js.map | 1 + .../rxjs/_esm2015/add/operator/exhaust.js | 4 + .../rxjs/_esm2015/add/operator/exhaust.js.map | 1 + .../rxjs/_esm2015/add/operator/exhaustMap.js | 4 + .../_esm2015/add/operator/exhaustMap.js.map | 1 + .../rxjs/_esm2015/add/operator/expand.js | 4 + .../rxjs/_esm2015/add/operator/expand.js.map | 1 + .../rxjs/_esm2015/add/operator/filter.js | 4 + .../rxjs/_esm2015/add/operator/filter.js.map | 1 + .../rxjs/_esm2015/add/operator/finally.js | 5 + .../rxjs/_esm2015/add/operator/finally.js.map | 1 + .../rxjs/_esm2015/add/operator/find.js | 4 + .../rxjs/_esm2015/add/operator/find.js.map | 1 + .../rxjs/_esm2015/add/operator/findIndex.js | 4 + .../_esm2015/add/operator/findIndex.js.map | 1 + .../rxjs/_esm2015/add/operator/first.js | 4 + .../rxjs/_esm2015/add/operator/first.js.map | 1 + .../rxjs/_esm2015/add/operator/groupBy.js | 4 + .../rxjs/_esm2015/add/operator/groupBy.js.map | 1 + .../_esm2015/add/operator/ignoreElements.js | 4 + .../add/operator/ignoreElements.js.map | 1 + .../rxjs/_esm2015/add/operator/isEmpty.js | 4 + .../rxjs/_esm2015/add/operator/isEmpty.js.map | 1 + .../rxjs/_esm2015/add/operator/last.js | 4 + .../rxjs/_esm2015/add/operator/last.js.map | 1 + .../rxjs/_esm2015/add/operator/let.js | 5 + .../rxjs/_esm2015/add/operator/let.js.map | 1 + .../rxjs/_esm2015/add/operator/map.js | 4 + .../rxjs/_esm2015/add/operator/map.js.map | 1 + .../rxjs/_esm2015/add/operator/mapTo.js | 4 + .../rxjs/_esm2015/add/operator/mapTo.js.map | 1 + .../rxjs/_esm2015/add/operator/materialize.js | 4 + .../_esm2015/add/operator/materialize.js.map | 1 + .../rxjs/_esm2015/add/operator/max.js | 4 + .../rxjs/_esm2015/add/operator/max.js.map | 1 + .../rxjs/_esm2015/add/operator/merge.js | 4 + .../rxjs/_esm2015/add/operator/merge.js.map | 1 + .../rxjs/_esm2015/add/operator/mergeAll.js | 4 + .../_esm2015/add/operator/mergeAll.js.map | 1 + .../rxjs/_esm2015/add/operator/mergeMap.js | 5 + .../_esm2015/add/operator/mergeMap.js.map | 1 + .../rxjs/_esm2015/add/operator/mergeMapTo.js | 5 + .../_esm2015/add/operator/mergeMapTo.js.map | 1 + .../rxjs/_esm2015/add/operator/mergeScan.js | 4 + .../_esm2015/add/operator/mergeScan.js.map | 1 + .../rxjs/_esm2015/add/operator/min.js | 4 + .../rxjs/_esm2015/add/operator/min.js.map | 1 + .../rxjs/_esm2015/add/operator/multicast.js | 4 + .../_esm2015/add/operator/multicast.js.map | 1 + .../rxjs/_esm2015/add/operator/observeOn.js | 4 + .../_esm2015/add/operator/observeOn.js.map | 1 + .../add/operator/onErrorResumeNext.js | 4 + .../add/operator/onErrorResumeNext.js.map | 1 + .../rxjs/_esm2015/add/operator/pairwise.js | 4 + .../_esm2015/add/operator/pairwise.js.map | 1 + .../rxjs/_esm2015/add/operator/partition.js | 4 + .../_esm2015/add/operator/partition.js.map | 1 + .../rxjs/_esm2015/add/operator/pluck.js | 4 + .../rxjs/_esm2015/add/operator/pluck.js.map | 1 + .../rxjs/_esm2015/add/operator/publish.js | 4 + .../rxjs/_esm2015/add/operator/publish.js.map | 1 + .../_esm2015/add/operator/publishBehavior.js | 4 + .../add/operator/publishBehavior.js.map | 1 + .../rxjs/_esm2015/add/operator/publishLast.js | 4 + .../_esm2015/add/operator/publishLast.js.map | 1 + .../_esm2015/add/operator/publishReplay.js | 4 + .../add/operator/publishReplay.js.map | 1 + .../rxjs/_esm2015/add/operator/race.js | 4 + .../rxjs/_esm2015/add/operator/race.js.map | 1 + .../rxjs/_esm2015/add/operator/reduce.js | 4 + .../rxjs/_esm2015/add/operator/reduce.js.map | 1 + .../rxjs/_esm2015/add/operator/repeat.js | 4 + .../rxjs/_esm2015/add/operator/repeat.js.map | 1 + .../rxjs/_esm2015/add/operator/repeatWhen.js | 4 + .../_esm2015/add/operator/repeatWhen.js.map | 1 + .../rxjs/_esm2015/add/operator/retry.js | 4 + .../rxjs/_esm2015/add/operator/retry.js.map | 1 + .../rxjs/_esm2015/add/operator/retryWhen.js | 4 + .../_esm2015/add/operator/retryWhen.js.map | 1 + .../rxjs/_esm2015/add/operator/sample.js | 4 + .../rxjs/_esm2015/add/operator/sample.js.map | 1 + .../rxjs/_esm2015/add/operator/sampleTime.js | 4 + .../_esm2015/add/operator/sampleTime.js.map | 1 + .../rxjs/_esm2015/add/operator/scan.js | 4 + .../rxjs/_esm2015/add/operator/scan.js.map | 1 + .../_esm2015/add/operator/sequenceEqual.js | 4 + .../add/operator/sequenceEqual.js.map | 1 + .../rxjs/_esm2015/add/operator/share.js | 4 + .../rxjs/_esm2015/add/operator/share.js.map | 1 + .../rxjs/_esm2015/add/operator/shareReplay.js | 4 + .../_esm2015/add/operator/shareReplay.js.map | 1 + .../rxjs/_esm2015/add/operator/single.js | 4 + .../rxjs/_esm2015/add/operator/single.js.map | 1 + .../rxjs/_esm2015/add/operator/skip.js | 4 + .../rxjs/_esm2015/add/operator/skip.js.map | 1 + .../rxjs/_esm2015/add/operator/skipLast.js | 4 + .../_esm2015/add/operator/skipLast.js.map | 1 + .../rxjs/_esm2015/add/operator/skipUntil.js | 4 + .../_esm2015/add/operator/skipUntil.js.map | 1 + .../rxjs/_esm2015/add/operator/skipWhile.js | 4 + .../_esm2015/add/operator/skipWhile.js.map | 1 + .../rxjs/_esm2015/add/operator/startWith.js | 4 + .../_esm2015/add/operator/startWith.js.map | 1 + .../rxjs/_esm2015/add/operator/subscribeOn.js | 4 + .../_esm2015/add/operator/subscribeOn.js.map | 1 + .../rxjs/_esm2015/add/operator/switch.js | 5 + .../rxjs/_esm2015/add/operator/switch.js.map | 1 + .../rxjs/_esm2015/add/operator/switchMap.js | 4 + .../_esm2015/add/operator/switchMap.js.map | 1 + .../rxjs/_esm2015/add/operator/switchMapTo.js | 4 + .../_esm2015/add/operator/switchMapTo.js.map | 1 + .../rxjs/_esm2015/add/operator/take.js | 4 + .../rxjs/_esm2015/add/operator/take.js.map | 1 + .../rxjs/_esm2015/add/operator/takeLast.js | 4 + .../_esm2015/add/operator/takeLast.js.map | 1 + .../rxjs/_esm2015/add/operator/takeUntil.js | 4 + .../_esm2015/add/operator/takeUntil.js.map | 1 + .../rxjs/_esm2015/add/operator/takeWhile.js | 4 + .../_esm2015/add/operator/takeWhile.js.map | 1 + .../rxjs/_esm2015/add/operator/throttle.js | 4 + .../_esm2015/add/operator/throttle.js.map | 1 + .../_esm2015/add/operator/throttleTime.js | 4 + .../_esm2015/add/operator/throttleTime.js.map | 1 + .../_esm2015/add/operator/timeInterval.js | 4 + .../_esm2015/add/operator/timeInterval.js.map | 1 + .../rxjs/_esm2015/add/operator/timeout.js | 4 + .../rxjs/_esm2015/add/operator/timeout.js.map | 1 + .../rxjs/_esm2015/add/operator/timeoutWith.js | 4 + .../_esm2015/add/operator/timeoutWith.js.map | 1 + .../rxjs/_esm2015/add/operator/timestamp.js | 4 + .../_esm2015/add/operator/timestamp.js.map | 1 + .../rxjs/_esm2015/add/operator/toArray.js | 4 + .../rxjs/_esm2015/add/operator/toArray.js.map | 1 + .../rxjs/_esm2015/add/operator/toPromise.js | 3 + .../_esm2015/add/operator/toPromise.js.map | 1 + .../rxjs/_esm2015/add/operator/window.js | 4 + .../rxjs/_esm2015/add/operator/window.js.map | 1 + .../rxjs/_esm2015/add/operator/windowCount.js | 4 + .../_esm2015/add/operator/windowCount.js.map | 1 + .../rxjs/_esm2015/add/operator/windowTime.js | 4 + .../_esm2015/add/operator/windowTime.js.map | 1 + .../_esm2015/add/operator/windowToggle.js | 4 + .../_esm2015/add/operator/windowToggle.js.map | 1 + .../rxjs/_esm2015/add/operator/windowWhen.js | 4 + .../_esm2015/add/operator/windowWhen.js.map | 1 + .../_esm2015/add/operator/withLatestFrom.js | 4 + .../add/operator/withLatestFrom.js.map | 1 + .../rxjs/_esm2015/add/operator/zip.js | 4 + .../rxjs/_esm2015/add/operator/zip.js.map | 1 + .../rxjs/_esm2015/add/operator/zipAll.js | 4 + .../rxjs/_esm2015/add/operator/zipAll.js.map | 1 + .../node_modules/rxjs/_esm2015/interfaces.js | 1 + .../rxjs/_esm2015/interfaces.js.map | 1 + .../observable/ArrayLikeObservable.js | 61 + .../observable/ArrayLikeObservable.js.map | 1 + .../_esm2015/observable/ArrayObservable.js | 109 + .../observable/ArrayObservable.js.map | 1 + .../observable/BoundCallbackObservable.js | 242 + .../observable/BoundCallbackObservable.js.map | 1 + .../observable/BoundNodeCallbackObservable.js | 241 + .../BoundNodeCallbackObservable.js.map | 1 + .../observable/ConnectableObservable.js | 157 + .../observable/ConnectableObservable.js.map | 1 + .../_esm2015/observable/DeferObservable.js | 88 + .../observable/DeferObservable.js.map | 1 + .../_esm2015/observable/EmptyObservable.js | 72 + .../observable/EmptyObservable.js.map | 1 + .../_esm2015/observable/ErrorObservable.js | 74 + .../observable/ErrorObservable.js.map | 1 + .../_esm2015/observable/ForkJoinObservable.js | 187 + .../observable/ForkJoinObservable.js.map | 1 + .../observable/FromEventObservable.js | 203 + .../observable/FromEventObservable.js.map | 1 + .../observable/FromEventPatternObservable.js | 99 + .../FromEventPatternObservable.js.map | 1 + .../_esm2015/observable/FromObservable.js | 113 + .../_esm2015/observable/FromObservable.js.map | 1 + .../_esm2015/observable/GenerateObservable.js | 126 + .../observable/GenerateObservable.js.map | 1 + .../rxjs/_esm2015/observable/IfObservable.js | 50 + .../_esm2015/observable/IfObservable.js.map | 1 + .../_esm2015/observable/IntervalObservable.js | 75 + .../observable/IntervalObservable.js.map | 1 + .../_esm2015/observable/IteratorObservable.js | 148 + .../observable/IteratorObservable.js.map | 1 + .../_esm2015/observable/NeverObservable.js | 50 + .../observable/NeverObservable.js.map | 1 + .../_esm2015/observable/PairsObservable.js | 76 + .../observable/PairsObservable.js.map | 1 + .../_esm2015/observable/PromiseObservable.js | 111 + .../observable/PromiseObservable.js.map | 1 + .../_esm2015/observable/RangeObservable.js | 85 + .../observable/RangeObservable.js.map | 1 + .../_esm2015/observable/ScalarObservable.js | 49 + .../observable/ScalarObservable.js.map | 1 + .../observable/SubscribeOnObservable.js | 38 + .../observable/SubscribeOnObservable.js.map | 1 + .../_esm2015/observable/TimerObservable.js | 96 + .../observable/TimerObservable.js.map | 1 + .../_esm2015/observable/UsingObservable.js | 50 + .../observable/UsingObservable.js.map | 1 + .../rxjs/_esm2015/observable/bindCallback.js | 3 + .../_esm2015/observable/bindCallback.js.map | 1 + .../_esm2015/observable/bindNodeCallback.js | 3 + .../observable/bindNodeCallback.js.map | 1 + .../rxjs/_esm2015/observable/combineLatest.js | 130 + .../_esm2015/observable/combineLatest.js.map | 1 + .../rxjs/_esm2015/observable/concat.js | 105 + .../rxjs/_esm2015/observable/concat.js.map | 1 + .../rxjs/_esm2015/observable/defer.js | 3 + .../rxjs/_esm2015/observable/defer.js.map | 1 + .../_esm2015/observable/dom/AjaxObservable.js | 399 + .../observable/dom/AjaxObservable.js.map | 1 + .../observable/dom/WebSocketSubject.js | 239 + .../observable/dom/WebSocketSubject.js.map | 1 + .../rxjs/_esm2015/observable/dom/ajax.js | 3 + .../rxjs/_esm2015/observable/dom/ajax.js.map | 1 + .../rxjs/_esm2015/observable/dom/webSocket.js | 3 + .../_esm2015/observable/dom/webSocket.js.map | 1 + .../rxjs/_esm2015/observable/empty.js | 3 + .../rxjs/_esm2015/observable/empty.js.map | 1 + .../rxjs/_esm2015/observable/forkJoin.js | 3 + .../rxjs/_esm2015/observable/forkJoin.js.map | 1 + .../rxjs/_esm2015/observable/from.js | 3 + .../rxjs/_esm2015/observable/from.js.map | 1 + .../rxjs/_esm2015/observable/fromEvent.js | 3 + .../rxjs/_esm2015/observable/fromEvent.js.map | 1 + .../_esm2015/observable/fromEventPattern.js | 3 + .../observable/fromEventPattern.js.map | 1 + .../rxjs/_esm2015/observable/fromPromise.js | 3 + .../_esm2015/observable/fromPromise.js.map | 1 + .../rxjs/_esm2015/observable/generate.js | 3 + .../rxjs/_esm2015/observable/generate.js.map | 1 + .../rxjs/_esm2015/observable/if.js | 3 + .../rxjs/_esm2015/observable/if.js.map | 1 + .../rxjs/_esm2015/observable/interval.js | 3 + .../rxjs/_esm2015/observable/interval.js.map | 1 + .../rxjs/_esm2015/observable/merge.js | 84 + .../rxjs/_esm2015/observable/merge.js.map | 1 + .../rxjs/_esm2015/observable/never.js | 3 + .../rxjs/_esm2015/observable/never.js.map | 1 + .../rxjs/_esm2015/observable/of.js | 3 + .../rxjs/_esm2015/observable/of.js.map | 1 + .../_esm2015/observable/onErrorResumeNext.js | 3 + .../observable/onErrorResumeNext.js.map | 1 + .../rxjs/_esm2015/observable/pairs.js | 3 + .../rxjs/_esm2015/observable/pairs.js.map | 1 + .../rxjs/_esm2015/observable/race.js | 71 + .../rxjs/_esm2015/observable/race.js.map | 1 + .../rxjs/_esm2015/observable/range.js | 3 + .../rxjs/_esm2015/observable/range.js.map | 1 + .../rxjs/_esm2015/observable/throw.js | 3 + .../rxjs/_esm2015/observable/throw.js.map | 1 + .../rxjs/_esm2015/observable/timer.js | 3 + .../rxjs/_esm2015/observable/timer.js.map | 1 + .../rxjs/_esm2015/observable/using.js | 3 + .../rxjs/_esm2015/observable/using.js.map | 1 + .../rxjs/_esm2015/observable/zip.js | 3 + .../rxjs/_esm2015/observable/zip.js.map | 1 + .../rxjs/_esm2015/operator/audit.js | 45 + .../rxjs/_esm2015/operator/audit.js.map | 1 + .../rxjs/_esm2015/operator/auditTime.js | 48 + .../rxjs/_esm2015/operator/auditTime.js.map | 1 + .../rxjs/_esm2015/operator/buffer.js | 37 + .../rxjs/_esm2015/operator/buffer.js.map | 1 + .../rxjs/_esm2015/operator/bufferCount.js | 46 + .../rxjs/_esm2015/operator/bufferCount.js.map | 1 + .../rxjs/_esm2015/operator/bufferTime.js | 65 + .../rxjs/_esm2015/operator/bufferTime.js.map | 1 + .../rxjs/_esm2015/operator/bufferToggle.js | 43 + .../_esm2015/operator/bufferToggle.js.map | 1 + .../rxjs/_esm2015/operator/bufferWhen.js | 38 + .../rxjs/_esm2015/operator/bufferWhen.js.map | 1 + .../rxjs/_esm2015/operator/catch.js | 64 + .../rxjs/_esm2015/operator/catch.js.map | 1 + .../rxjs/_esm2015/operator/combineAll.js | 45 + .../rxjs/_esm2015/operator/combineAll.js.map | 1 + .../rxjs/_esm2015/operator/combineLatest.js | 49 + .../_esm2015/operator/combineLatest.js.map | 1 + .../rxjs/_esm2015/operator/concat.js | 56 + .../rxjs/_esm2015/operator/concat.js.map | 1 + .../rxjs/_esm2015/operator/concatAll.js | 54 + .../rxjs/_esm2015/operator/concatAll.js.map | 1 + .../rxjs/_esm2015/operator/concatMap.js | 65 + .../rxjs/_esm2015/operator/concatMap.js.map | 1 + .../rxjs/_esm2015/operator/concatMapTo.js | 62 + .../rxjs/_esm2015/operator/concatMapTo.js.map | 1 + .../rxjs/_esm2015/operator/count.js | 53 + .../rxjs/_esm2015/operator/count.js.map | 1 + .../rxjs/_esm2015/operator/debounce.js | 47 + .../rxjs/_esm2015/operator/debounce.js.map | 1 + .../rxjs/_esm2015/operator/debounceTime.js | 52 + .../_esm2015/operator/debounceTime.js.map | 1 + .../rxjs/_esm2015/operator/defaultIfEmpty.js | 36 + .../_esm2015/operator/defaultIfEmpty.js.map | 1 + .../rxjs/_esm2015/operator/delay.js | 45 + .../rxjs/_esm2015/operator/delay.js.map | 1 + .../rxjs/_esm2015/operator/delayWhen.js | 50 + .../rxjs/_esm2015/operator/delayWhen.js.map | 1 + .../rxjs/_esm2015/operator/dematerialize.js | 45 + .../_esm2015/operator/dematerialize.js.map | 1 + .../rxjs/_esm2015/operator/distinct.js | 50 + .../rxjs/_esm2015/operator/distinct.js.map | 1 + .../_esm2015/operator/distinctUntilChanged.js | 45 + .../operator/distinctUntilChanged.js.map | 1 + .../operator/distinctUntilKeyChanged.js | 63 + .../operator/distinctUntilKeyChanged.js.map | 1 + .../node_modules/rxjs/_esm2015/operator/do.js | 49 + .../rxjs/_esm2015/operator/do.js.map | 1 + .../rxjs/_esm2015/operator/elementAt.js | 47 + .../rxjs/_esm2015/operator/elementAt.js.map | 1 + .../rxjs/_esm2015/operator/every.js | 19 + .../rxjs/_esm2015/operator/every.js.map | 1 + .../rxjs/_esm2015/operator/exhaust.js | 40 + .../rxjs/_esm2015/operator/exhaust.js.map | 1 + .../rxjs/_esm2015/operator/exhaustMap.js | 51 + .../rxjs/_esm2015/operator/exhaustMap.js.map | 1 + .../rxjs/_esm2015/operator/expand.js | 52 + .../rxjs/_esm2015/operator/expand.js.map | 1 + .../rxjs/_esm2015/operator/filter.js | 45 + .../rxjs/_esm2015/operator/filter.js.map | 1 + .../rxjs/_esm2015/operator/finally.js | 13 + .../rxjs/_esm2015/operator/finally.js.map | 1 + .../rxjs/_esm2015/operator/find.js | 39 + .../rxjs/_esm2015/operator/find.js.map | 1 + .../rxjs/_esm2015/operator/findIndex.js | 39 + .../rxjs/_esm2015/operator/findIndex.js.map | 1 + .../rxjs/_esm2015/operator/first.js | 54 + .../rxjs/_esm2015/operator/first.js.map | 1 + .../rxjs/_esm2015/operator/groupBy.js | 74 + .../rxjs/_esm2015/operator/groupBy.js.map | 1 + .../rxjs/_esm2015/operator/ignoreElements.js | 16 + .../_esm2015/operator/ignoreElements.js.map | 1 + .../rxjs/_esm2015/operator/isEmpty.js | 14 + .../rxjs/_esm2015/operator/isEmpty.js.map | 1 + .../rxjs/_esm2015/operator/last.js | 23 + .../rxjs/_esm2015/operator/last.js.map | 1 + .../rxjs/_esm2015/operator/let.js | 10 + .../rxjs/_esm2015/operator/let.js.map | 1 + .../rxjs/_esm2015/operator/map.js | 38 + .../rxjs/_esm2015/operator/map.js.map | 1 + .../rxjs/_esm2015/operator/mapTo.js | 31 + .../rxjs/_esm2015/operator/mapTo.js.map | 1 + .../rxjs/_esm2015/operator/materialize.js | 49 + .../rxjs/_esm2015/operator/materialize.js.map | 1 + .../rxjs/_esm2015/operator/max.js | 36 + .../rxjs/_esm2015/operator/max.js.map | 1 + .../rxjs/_esm2015/operator/merge.js | 53 + .../rxjs/_esm2015/operator/merge.js.map | 1 + .../rxjs/_esm2015/operator/mergeAll.js | 49 + .../rxjs/_esm2015/operator/mergeAll.js.map | 1 + .../rxjs/_esm2015/operator/mergeMap.js | 64 + .../rxjs/_esm2015/operator/mergeMap.js.map | 1 + .../rxjs/_esm2015/operator/mergeMapTo.js | 49 + .../rxjs/_esm2015/operator/mergeMapTo.js.map | 1 + .../rxjs/_esm2015/operator/mergeScan.js | 36 + .../rxjs/_esm2015/operator/mergeScan.js.map | 1 + .../rxjs/_esm2015/operator/min.js | 36 + .../rxjs/_esm2015/operator/min.js.map | 1 + .../rxjs/_esm2015/operator/multicast.js | 100 + .../rxjs/_esm2015/operator/multicast.js.map | 1 + .../rxjs/_esm2015/operator/observeOn.js | 51 + .../rxjs/_esm2015/operator/observeOn.js.map | 1 + .../_esm2015/operator/onErrorResumeNext.js | 67 + .../operator/onErrorResumeNext.js.map | 1 + .../rxjs/_esm2015/operator/pairwise.js | 40 + .../rxjs/_esm2015/operator/pairwise.js.map | 1 + .../rxjs/_esm2015/operator/partition.js | 46 + .../rxjs/_esm2015/operator/partition.js.map | 1 + .../rxjs/_esm2015/operator/pluck.js | 31 + .../rxjs/_esm2015/operator/pluck.js.map | 1 + .../rxjs/_esm2015/operator/publish.js | 19 + .../rxjs/_esm2015/operator/publish.js.map | 1 + .../rxjs/_esm2015/operator/publishBehavior.js | 11 + .../_esm2015/operator/publishBehavior.js.map | 1 + .../rxjs/_esm2015/operator/publishLast.js | 11 + .../rxjs/_esm2015/operator/publishLast.js.map | 1 + .../rxjs/_esm2015/operator/publishReplay.js | 15 + .../_esm2015/operator/publishReplay.js.map | 1 + .../rxjs/_esm2015/operator/race.js | 16 + .../rxjs/_esm2015/operator/race.js.map | 1 + .../rxjs/_esm2015/operator/reduce.js | 58 + .../rxjs/_esm2015/operator/reduce.js.map | 1 + .../rxjs/_esm2015/operator/repeat.js | 17 + .../rxjs/_esm2015/operator/repeat.js.map | 1 + .../rxjs/_esm2015/operator/repeatWhen.js | 19 + .../rxjs/_esm2015/operator/repeatWhen.js.map | 1 + .../rxjs/_esm2015/operator/retry.js | 21 + .../rxjs/_esm2015/operator/retry.js.map | 1 + .../rxjs/_esm2015/operator/retryWhen.js | 19 + .../rxjs/_esm2015/operator/retryWhen.js.map | 1 + .../rxjs/_esm2015/operator/sample.js | 39 + .../rxjs/_esm2015/operator/sample.js.map | 1 + .../rxjs/_esm2015/operator/sampleTime.js | 42 + .../rxjs/_esm2015/operator/sampleTime.js.map | 1 + .../rxjs/_esm2015/operator/scan.js | 46 + .../rxjs/_esm2015/operator/scan.js.map | 1 + .../rxjs/_esm2015/operator/sequenceEqual.js | 57 + .../_esm2015/operator/sequenceEqual.js.map | 1 + .../rxjs/_esm2015/operator/share.js | 22 + .../rxjs/_esm2015/operator/share.js.map | 1 + .../rxjs/_esm2015/operator/shareReplay.js | 10 + .../rxjs/_esm2015/operator/shareReplay.js.map | 1 + .../rxjs/_esm2015/operator/single.js | 21 + .../rxjs/_esm2015/operator/single.js.map | 1 + .../rxjs/_esm2015/operator/skip.js | 16 + .../rxjs/_esm2015/operator/skip.js.map | 1 + .../rxjs/_esm2015/operator/skipLast.js | 37 + .../rxjs/_esm2015/operator/skipLast.js.map | 1 + .../rxjs/_esm2015/operator/skipUntil.js | 17 + .../rxjs/_esm2015/operator/skipUntil.js.map | 1 + .../rxjs/_esm2015/operator/skipWhile.js | 17 + .../rxjs/_esm2015/operator/skipWhile.js.map | 1 + .../rxjs/_esm2015/operator/startWith.js | 20 + .../rxjs/_esm2015/operator/startWith.js.map | 1 + .../rxjs/_esm2015/operator/subscribeOn.js | 16 + .../rxjs/_esm2015/operator/subscribeOn.js.map | 1 + .../rxjs/_esm2015/operator/switch.js | 47 + .../rxjs/_esm2015/operator/switch.js.map | 1 + .../rxjs/_esm2015/operator/switchMap.js | 53 + .../rxjs/_esm2015/operator/switchMap.js.map | 1 + .../rxjs/_esm2015/operator/switchMapTo.js | 48 + .../rxjs/_esm2015/operator/switchMapTo.js.map | 1 + .../rxjs/_esm2015/operator/take.js | 38 + .../rxjs/_esm2015/operator/take.js.map | 1 + .../rxjs/_esm2015/operator/takeLast.js | 41 + .../rxjs/_esm2015/operator/takeLast.js.map | 1 + .../rxjs/_esm2015/operator/takeUntil.js | 38 + .../rxjs/_esm2015/operator/takeUntil.js.map | 1 + .../rxjs/_esm2015/operator/takeWhile.js | 41 + .../rxjs/_esm2015/operator/takeWhile.js.map | 1 + .../rxjs/_esm2015/operator/throttle.js | 45 + .../rxjs/_esm2015/operator/throttle.js.map | 1 + .../rxjs/_esm2015/operator/throttleTime.js | 46 + .../_esm2015/operator/throttleTime.js.map | 1 + .../rxjs/_esm2015/operator/timeInterval.js | 13 + .../_esm2015/operator/timeInterval.js.map | 1 + .../rxjs/_esm2015/operator/timeout.js | 71 + .../rxjs/_esm2015/operator/timeout.js.map | 1 + .../rxjs/_esm2015/operator/timeoutWith.js | 54 + .../rxjs/_esm2015/operator/timeoutWith.js.map | 1 + .../rxjs/_esm2015/operator/timestamp.js | 12 + .../rxjs/_esm2015/operator/timestamp.js.map | 1 + .../rxjs/_esm2015/operator/toArray.js | 28 + .../rxjs/_esm2015/operator/toArray.js.map | 1 + .../rxjs/_esm2015/operator/toPromise.js | 5 + .../rxjs/_esm2015/operator/toPromise.js.map | 1 + .../rxjs/_esm2015/operator/window.js | 41 + .../rxjs/_esm2015/operator/window.js.map | 1 + .../rxjs/_esm2015/operator/windowCount.js | 53 + .../rxjs/_esm2015/operator/windowCount.js.map | 1 + .../rxjs/_esm2015/operator/windowTime.js | 26 + .../rxjs/_esm2015/operator/windowTime.js.map | 1 + .../rxjs/_esm2015/operator/windowToggle.js | 46 + .../_esm2015/operator/windowToggle.js.map | 1 + .../rxjs/_esm2015/operator/windowWhen.js | 43 + .../rxjs/_esm2015/operator/windowWhen.js.map | 1 + .../rxjs/_esm2015/operator/withLatestFrom.js | 44 + .../_esm2015/operator/withLatestFrom.js.map | 1 + .../rxjs/_esm2015/operator/zip.js | 12 + .../rxjs/_esm2015/operator/zip.js.map | 1 + .../rxjs/_esm2015/operator/zipAll.js | 11 + .../rxjs/_esm2015/operator/zipAll.js.map | 1 + .../node_modules/rxjs/_esm2015/operators.js | 109 + .../rxjs/_esm2015/operators.js.map | 1 + .../rxjs/_esm2015/operators/audit.js | 108 + .../rxjs/_esm2015/operators/audit.js.map | 1 + .../rxjs/_esm2015/operators/auditTime.js | 49 + .../rxjs/_esm2015/operators/auditTime.js.map | 1 + .../rxjs/_esm2015/operators/buffer.js | 68 + .../rxjs/_esm2015/operators/buffer.js.map | 1 + .../rxjs/_esm2015/operators/bufferCount.js | 129 + .../_esm2015/operators/bufferCount.js.map | 1 + .../rxjs/_esm2015/operators/bufferTime.js | 190 + .../rxjs/_esm2015/operators/bufferTime.js.map | 1 + .../rxjs/_esm2015/operators/bufferToggle.js | 144 + .../_esm2015/operators/bufferToggle.js.map | 1 + .../rxjs/_esm2015/operators/bufferWhen.js | 114 + .../rxjs/_esm2015/operators/bufferWhen.js.map | 1 + .../rxjs/_esm2015/operators/catchError.js | 106 + .../rxjs/_esm2015/operators/catchError.js.map | 1 + .../rxjs/_esm2015/operators/combineAll.js | 5 + .../rxjs/_esm2015/operators/combineAll.js.map | 1 + .../rxjs/_esm2015/operators/combineLatest.js | 135 + .../_esm2015/operators/combineLatest.js.map | 1 + .../rxjs/_esm2015/operators/concat.js | 56 + .../rxjs/_esm2015/operators/concat.js.map | 1 + .../rxjs/_esm2015/operators/concatAll.js | 53 + .../rxjs/_esm2015/operators/concatAll.js.map | 1 + .../rxjs/_esm2015/operators/concatMap.js | 65 + .../rxjs/_esm2015/operators/concatMap.js.map | 1 + .../rxjs/_esm2015/operators/concatMapTo.js | 62 + .../_esm2015/operators/concatMapTo.js.map | 1 + .../rxjs/_esm2015/operators/count.js | 101 + .../rxjs/_esm2015/operators/count.js.map | 1 + .../rxjs/_esm2015/operators/debounce.js | 117 + .../rxjs/_esm2015/operators/debounce.js.map | 1 + .../rxjs/_esm2015/operators/debounceTime.js | 105 + .../_esm2015/operators/debounceTime.js.map | 1 + .../rxjs/_esm2015/operators/defaultIfEmpty.js | 66 + .../_esm2015/operators/defaultIfEmpty.js.map | 1 + .../rxjs/_esm2015/operators/delay.js | 124 + .../rxjs/_esm2015/operators/delay.js.map | 1 + .../rxjs/_esm2015/operators/delayWhen.js | 178 + .../rxjs/_esm2015/operators/delayWhen.js.map | 1 + .../rxjs/_esm2015/operators/dematerialize.js | 65 + .../_esm2015/operators/dematerialize.js.map | 1 + .../rxjs/_esm2015/operators/distinct.js | 109 + .../rxjs/_esm2015/operators/distinct.js.map | 1 + .../operators/distinctUntilChanged.js | 98 + .../operators/distinctUntilChanged.js.map | 1 + .../operators/distinctUntilKeyChanged.js | 63 + .../operators/distinctUntilKeyChanged.js.map | 1 + .../rxjs/_esm2015/operators/elementAt.js | 90 + .../rxjs/_esm2015/operators/elementAt.js.map | 1 + .../rxjs/_esm2015/operators/every.js | 64 + .../rxjs/_esm2015/operators/every.js.map | 1 + .../rxjs/_esm2015/operators/exhaust.js | 77 + .../rxjs/_esm2015/operators/exhaust.js.map | 1 + .../rxjs/_esm2015/operators/exhaustMap.js | 128 + .../rxjs/_esm2015/operators/exhaustMap.js.map | 1 + .../rxjs/_esm2015/operators/expand.js | 137 + .../rxjs/_esm2015/operators/expand.js.map | 1 + .../rxjs/_esm2015/operators/filter.js | 84 + .../rxjs/_esm2015/operators/filter.js.map | 1 + .../rxjs/_esm2015/operators/finalize.js | 33 + .../rxjs/_esm2015/operators/finalize.js.map | 1 + .../rxjs/_esm2015/operators/find.js | 88 + .../rxjs/_esm2015/operators/find.js.map | 1 + .../rxjs/_esm2015/operators/findIndex.js | 39 + .../rxjs/_esm2015/operators/findIndex.js.map | 1 + .../rxjs/_esm2015/operators/first.js | 142 + .../rxjs/_esm2015/operators/first.js.map | 1 + .../rxjs/_esm2015/operators/groupBy.js | 257 + .../rxjs/_esm2015/operators/groupBy.js.map | 1 + .../rxjs/_esm2015/operators/ignoreElements.js | 33 + .../_esm2015/operators/ignoreElements.js.map | 1 + .../rxjs/_esm2015/operators/isEmpty.js | 31 + .../rxjs/_esm2015/operators/isEmpty.js.map | 1 + .../rxjs/_esm2015/operators/last.js | 109 + .../rxjs/_esm2015/operators/last.js.map | 1 + .../rxjs/_esm2015/operators/map.js | 78 + .../rxjs/_esm2015/operators/map.js.map | 1 + .../rxjs/_esm2015/operators/mapTo.js | 53 + .../rxjs/_esm2015/operators/mapTo.js.map | 1 + .../rxjs/_esm2015/operators/materialize.js | 80 + .../_esm2015/operators/materialize.js.map | 1 + .../rxjs/_esm2015/operators/max.js | 39 + .../rxjs/_esm2015/operators/max.js.map | 1 + .../rxjs/_esm2015/operators/merge.js | 53 + .../rxjs/_esm2015/operators/merge.js.map | 1 + .../rxjs/_esm2015/operators/mergeAll.js | 50 + .../rxjs/_esm2015/operators/mergeAll.js.map | 1 + .../rxjs/_esm2015/operators/mergeMap.js | 158 + .../rxjs/_esm2015/operators/mergeMap.js.map | 1 + .../rxjs/_esm2015/operators/mergeMapTo.js | 140 + .../rxjs/_esm2015/operators/mergeMapTo.js.map | 1 + .../rxjs/_esm2015/operators/mergeScan.js | 116 + .../rxjs/_esm2015/operators/mergeScan.js.map | 1 + .../rxjs/_esm2015/operators/min.js | 39 + .../rxjs/_esm2015/operators/min.js.map | 1 + .../rxjs/_esm2015/operators/multicast.js | 55 + .../rxjs/_esm2015/operators/multicast.js.map | 1 + .../rxjs/_esm2015/operators/observeOn.js | 98 + .../rxjs/_esm2015/operators/observeOn.js.map | 1 + .../_esm2015/operators/onErrorResumeNext.js | 118 + .../operators/onErrorResumeNext.js.map | 1 + .../rxjs/_esm2015/operators/pairwise.js | 65 + .../rxjs/_esm2015/operators/pairwise.js.map | 1 + .../rxjs/_esm2015/operators/partition.js | 50 + .../rxjs/_esm2015/operators/partition.js.map | 1 + .../rxjs/_esm2015/operators/pluck.js | 51 + .../rxjs/_esm2015/operators/pluck.js.map | 1 + .../rxjs/_esm2015/operators/publish.js | 22 + .../rxjs/_esm2015/operators/publish.js.map | 1 + .../_esm2015/operators/publishBehavior.js | 12 + .../_esm2015/operators/publishBehavior.js.map | 1 + .../rxjs/_esm2015/operators/publishLast.js | 6 + .../_esm2015/operators/publishLast.js.map | 1 + .../rxjs/_esm2015/operators/publishReplay.js | 12 + .../_esm2015/operators/publishReplay.js.map | 1 + .../rxjs/_esm2015/operators/race.js | 22 + .../rxjs/_esm2015/operators/race.js.map | 1 + .../rxjs/_esm2015/operators/reduce.js | 67 + .../rxjs/_esm2015/operators/reduce.js.map | 1 + .../rxjs/_esm2015/operators/refCount.js | 75 + .../rxjs/_esm2015/operators/refCount.js.map | 1 + .../rxjs/_esm2015/operators/repeat.js | 61 + .../rxjs/_esm2015/operators/repeat.js.map | 1 + .../rxjs/_esm2015/operators/repeatWhen.js | 98 + .../rxjs/_esm2015/operators/repeatWhen.js.map | 1 + .../rxjs/_esm2015/operators/retry.js | 54 + .../rxjs/_esm2015/operators/retry.js.map | 1 + .../rxjs/_esm2015/operators/retryWhen.js | 91 + .../rxjs/_esm2015/operators/retryWhen.js.map | 1 + .../rxjs/_esm2015/operators/sample.js | 78 + .../rxjs/_esm2015/operators/sample.js.map | 1 + .../rxjs/_esm2015/operators/sampleTime.js | 80 + .../rxjs/_esm2015/operators/sampleTime.js.map | 1 + .../rxjs/_esm2015/operators/scan.js | 106 + .../rxjs/_esm2015/operators/scan.js.map | 1 + .../rxjs/_esm2015/operators/sequenceEqual.js | 150 + .../_esm2015/operators/sequenceEqual.js.map | 1 + .../rxjs/_esm2015/operators/share.js | 23 + .../rxjs/_esm2015/operators/share.js.map | 1 + .../rxjs/_esm2015/operators/shareReplay.js | 43 + .../_esm2015/operators/shareReplay.js.map | 1 + .../rxjs/_esm2015/operators/single.js | 83 + .../rxjs/_esm2015/operators/single.js.map | 1 + .../rxjs/_esm2015/operators/skip.js | 41 + .../rxjs/_esm2015/operators/skip.js.map | 1 + .../rxjs/_esm2015/operators/skipLast.js | 83 + .../rxjs/_esm2015/operators/skipLast.js.map | 1 + .../rxjs/_esm2015/operators/skipUntil.js | 61 + .../rxjs/_esm2015/operators/skipUntil.js.map | 1 + .../rxjs/_esm2015/operators/skipWhile.js | 56 + .../rxjs/_esm2015/operators/skipWhile.js.map | 1 + .../rxjs/_esm2015/operators/startWith.js | 42 + .../rxjs/_esm2015/operators/startWith.js.map | 1 + .../rxjs/_esm2015/operators/subscribeOn.js | 27 + .../_esm2015/operators/subscribeOn.js.map | 1 + .../rxjs/_esm2015/operators/switchAll.js | 6 + .../rxjs/_esm2015/operators/switchAll.js.map | 1 + .../rxjs/_esm2015/operators/switchMap.js | 132 + .../rxjs/_esm2015/operators/switchMap.js.map | 1 + .../rxjs/_esm2015/operators/switchMapTo.js | 115 + .../_esm2015/operators/switchMapTo.js.map | 1 + .../rxjs/_esm2015/operators/take.js | 81 + .../rxjs/_esm2015/operators/take.js.map | 1 + .../rxjs/_esm2015/operators/takeLast.js | 99 + .../rxjs/_esm2015/operators/takeLast.js.map | 1 + .../rxjs/_esm2015/operators/takeUntil.js | 65 + .../rxjs/_esm2015/operators/takeUntil.js.map | 1 + .../rxjs/_esm2015/operators/takeWhile.js | 82 + .../rxjs/_esm2015/operators/takeWhile.js.map | 1 + .../rxjs/_esm2015/operators/tap.js | 103 + .../rxjs/_esm2015/operators/tap.js.map | 1 + .../rxjs/_esm2015/operators/throttle.js | 131 + .../rxjs/_esm2015/operators/throttle.js.map | 1 + .../rxjs/_esm2015/operators/throttleTime.js | 104 + .../_esm2015/operators/throttleTime.js.map | 1 + .../rxjs/_esm2015/operators/timeInterval.js | 40 + .../_esm2015/operators/timeInterval.js.map | 1 + .../rxjs/_esm2015/operators/timeout.js | 130 + .../rxjs/_esm2015/operators/timeout.js.map | 1 + .../rxjs/_esm2015/operators/timeoutWith.js | 117 + .../_esm2015/operators/timeoutWith.js.map | 1 + .../rxjs/_esm2015/operators/timestamp.js | 20 + .../rxjs/_esm2015/operators/timestamp.js.map | 1 + .../rxjs/_esm2015/operators/toArray.js | 12 + .../rxjs/_esm2015/operators/toArray.js.map | 1 + .../rxjs/_esm2015/operators/window.js | 102 + .../rxjs/_esm2015/operators/window.js.map | 1 + .../rxjs/_esm2015/operators/windowCount.js | 122 + .../_esm2015/operators/windowCount.js.map | 1 + .../rxjs/_esm2015/operators/windowTime.js | 147 + .../rxjs/_esm2015/operators/windowTime.js.map | 1 + .../rxjs/_esm2015/operators/windowToggle.js | 170 + .../_esm2015/operators/windowToggle.js.map | 1 + .../rxjs/_esm2015/operators/windowWhen.js | 118 + .../rxjs/_esm2015/operators/windowWhen.js.map | 1 + .../rxjs/_esm2015/operators/withLatestFrom.js | 118 + .../_esm2015/operators/withLatestFrom.js.map | 1 + .../rxjs/_esm2015/operators/zip.js | 255 + .../rxjs/_esm2015/operators/zip.js.map | 1 + .../rxjs/_esm2015/operators/zipAll.js | 5 + .../rxjs/_esm2015/operators/zipAll.js.map | 1 + .../rxjs/_esm2015/path-mapping.js | 465 + .../rxjs/_esm2015/scheduler/Action.js | 34 + .../rxjs/_esm2015/scheduler/Action.js.map | 1 + .../scheduler/AnimationFrameAction.js | 44 + .../scheduler/AnimationFrameAction.js.map | 1 + .../scheduler/AnimationFrameScheduler.js | 25 + .../scheduler/AnimationFrameScheduler.js.map | 1 + .../rxjs/_esm2015/scheduler/AsapAction.js | 44 + .../rxjs/_esm2015/scheduler/AsapAction.js.map | 1 + .../rxjs/_esm2015/scheduler/AsapScheduler.js | 25 + .../_esm2015/scheduler/AsapScheduler.js.map | 1 + .../rxjs/_esm2015/scheduler/AsyncAction.js | 130 + .../_esm2015/scheduler/AsyncAction.js.map | 1 + .../rxjs/_esm2015/scheduler/AsyncScheduler.js | 42 + .../_esm2015/scheduler/AsyncScheduler.js.map | 1 + .../rxjs/_esm2015/scheduler/QueueAction.js | 38 + .../_esm2015/scheduler/QueueAction.js.map | 1 + .../rxjs/_esm2015/scheduler/QueueScheduler.js | 4 + .../_esm2015/scheduler/QueueScheduler.js.map | 1 + .../scheduler/VirtualTimeScheduler.js | 94 + .../scheduler/VirtualTimeScheduler.js.map | 1 + .../rxjs/_esm2015/scheduler/animationFrame.js | 34 + .../_esm2015/scheduler/animationFrame.js.map | 1 + .../rxjs/_esm2015/scheduler/asap.js | 38 + .../rxjs/_esm2015/scheduler/asap.js.map | 1 + .../rxjs/_esm2015/scheduler/async.js | 46 + .../rxjs/_esm2015/scheduler/async.js.map | 1 + .../rxjs/_esm2015/scheduler/queue.js | 65 + .../rxjs/_esm2015/scheduler/queue.js.map | 1 + .../rxjs/_esm2015/symbol/iterator.js | 36 + .../rxjs/_esm2015/symbol/iterator.js.map | 1 + .../rxjs/_esm2015/symbol/observable.js | 24 + .../rxjs/_esm2015/symbol/observable.js.map | 1 + .../rxjs/_esm2015/symbol/rxSubscriber.js | 9 + .../rxjs/_esm2015/symbol/rxSubscriber.js.map | 1 + .../rxjs/_esm2015/testing/ColdObservable.js | 34 + .../_esm2015/testing/ColdObservable.js.map | 1 + .../rxjs/_esm2015/testing/HotObservable.js | 39 + .../_esm2015/testing/HotObservable.js.map | 1 + .../rxjs/_esm2015/testing/SubscriptionLog.js | 7 + .../_esm2015/testing/SubscriptionLog.js.map | 1 + .../_esm2015/testing/SubscriptionLoggable.js | 16 + .../testing/SubscriptionLoggable.js.map | 1 + .../rxjs/_esm2015/testing/TestMessage.js | 1 + .../rxjs/_esm2015/testing/TestMessage.js.map | 1 + .../rxjs/_esm2015/testing/TestScheduler.js | 208 + .../_esm2015/testing/TestScheduler.js.map | 1 + .../rxjs/_esm2015/util/AnimationFrame.js | 31 + .../rxjs/_esm2015/util/AnimationFrame.js.map | 1 + .../_esm2015/util/ArgumentOutOfRangeError.js | 19 + .../util/ArgumentOutOfRangeError.js.map | 1 + .../rxjs/_esm2015/util/EmptyError.js | 19 + .../rxjs/_esm2015/util/EmptyError.js.map | 1 + .../rxjs/_esm2015/util/FastMap.js | 28 + .../rxjs/_esm2015/util/FastMap.js.map | 1 + .../rxjs/_esm2015/util/Immediate.js | 201 + .../rxjs/_esm2015/util/Immediate.js.map | 1 + .../node_modules/rxjs/_esm2015/util/Map.js | 4 + .../rxjs/_esm2015/util/Map.js.map | 1 + .../rxjs/_esm2015/util/MapPolyfill.js | 44 + .../rxjs/_esm2015/util/MapPolyfill.js.map | 1 + .../_esm2015/util/ObjectUnsubscribedError.js | 18 + .../util/ObjectUnsubscribedError.js.map | 1 + .../node_modules/rxjs/_esm2015/util/Set.js | 27 + .../rxjs/_esm2015/util/Set.js.map | 1 + .../rxjs/_esm2015/util/TimeoutError.js | 16 + .../rxjs/_esm2015/util/TimeoutError.js.map | 1 + .../rxjs/_esm2015/util/UnsubscriptionError.js | 17 + .../_esm2015/util/UnsubscriptionError.js.map | 1 + .../rxjs/_esm2015/util/applyMixins.js | 11 + .../rxjs/_esm2015/util/applyMixins.js.map | 1 + .../node_modules/rxjs/_esm2015/util/assign.js | 19 + .../rxjs/_esm2015/util/assign.js.map | 1 + .../rxjs/_esm2015/util/errorObject.js | 3 + .../rxjs/_esm2015/util/errorObject.js.map | 1 + .../rxjs/_esm2015/util/identity.js | 4 + .../rxjs/_esm2015/util/identity.js.map | 1 + .../rxjs/_esm2015/util/isArray.js | 2 + .../rxjs/_esm2015/util/isArray.js.map | 1 + .../rxjs/_esm2015/util/isArrayLike.js | 2 + .../rxjs/_esm2015/util/isArrayLike.js.map | 1 + .../node_modules/rxjs/_esm2015/util/isDate.js | 4 + .../rxjs/_esm2015/util/isDate.js.map | 1 + .../rxjs/_esm2015/util/isFunction.js | 4 + .../rxjs/_esm2015/util/isFunction.js.map | 1 + .../rxjs/_esm2015/util/isNumeric.js | 10 + .../rxjs/_esm2015/util/isNumeric.js.map | 1 + .../rxjs/_esm2015/util/isObject.js | 4 + .../rxjs/_esm2015/util/isObject.js.map | 1 + .../rxjs/_esm2015/util/isPromise.js | 4 + .../rxjs/_esm2015/util/isPromise.js.map | 1 + .../rxjs/_esm2015/util/isScheduler.js | 4 + .../rxjs/_esm2015/util/isScheduler.js.map | 1 + .../node_modules/rxjs/_esm2015/util/noop.js | 3 + .../rxjs/_esm2015/util/noop.js.map | 1 + .../node_modules/rxjs/_esm2015/util/not.js | 9 + .../rxjs/_esm2015/util/not.js.map | 1 + .../node_modules/rxjs/_esm2015/util/pipe.js | 18 + .../rxjs/_esm2015/util/pipe.js.map | 1 + .../node_modules/rxjs/_esm2015/util/root.js | 18 + .../rxjs/_esm2015/util/root.js.map | 1 + .../rxjs/_esm2015/util/subscribeToResult.js | 77 + .../_esm2015/util/subscribeToResult.js.map | 1 + .../rxjs/_esm2015/util/toSubscriber.js | 18 + .../rxjs/_esm2015/util/toSubscriber.js.map | 1 + .../rxjs/_esm2015/util/tryCatch.js | 17 + .../rxjs/_esm2015/util/tryCatch.js.map | 1 + .../node_modules/rxjs/_esm5/AsyncSubject.js | 54 + .../rxjs/_esm5/AsyncSubject.js.map | 1 + .../rxjs/_esm5/BehaviorSubject.js | 50 + .../rxjs/_esm5/BehaviorSubject.js.map | 1 + .../rxjs/_esm5/InnerSubscriber.js | 37 + .../rxjs/_esm5/InnerSubscriber.js.map | 1 + .../node_modules/rxjs/_esm5/LICENSE.txt | 202 + .../node_modules/rxjs/_esm5/Notification.js | 126 + .../rxjs/_esm5/Notification.js.map | 1 + .../node_modules/rxjs/_esm5/Observable.js | 304 + .../node_modules/rxjs/_esm5/Observable.js.map | 1 + .../node_modules/rxjs/_esm5/Observer.js | 8 + .../node_modules/rxjs/_esm5/Observer.js.map | 1 + .../node_modules/rxjs/_esm5/Operator.js | 1 + .../node_modules/rxjs/_esm5/Operator.js.map | 1 + .../rxjs/_esm5/OuterSubscriber.js | 31 + .../rxjs/_esm5/OuterSubscriber.js.map | 1 + .../eslint/node_modules/rxjs/_esm5/README.md | 204 + .../node_modules/rxjs/_esm5/ReplaySubject.js | 107 + .../rxjs/_esm5/ReplaySubject.js.map | 1 + .../eslint/node_modules/rxjs/_esm5/Rx.js | 205 + .../eslint/node_modules/rxjs/_esm5/Rx.js.map | 1 + .../node_modules/rxjs/_esm5/Scheduler.js | 51 + .../node_modules/rxjs/_esm5/Scheduler.js.map | 1 + .../eslint/node_modules/rxjs/_esm5/Subject.js | 167 + .../node_modules/rxjs/_esm5/Subject.js.map | 1 + .../rxjs/_esm5/SubjectSubscription.js | 41 + .../rxjs/_esm5/SubjectSubscription.js.map | 1 + .../node_modules/rxjs/_esm5/Subscriber.js | 272 + .../node_modules/rxjs/_esm5/Subscriber.js.map | 1 + .../node_modules/rxjs/_esm5/Subscription.js | 192 + .../rxjs/_esm5/Subscription.js.map | 1 + .../rxjs/_esm5/add/observable/bindCallback.js | 5 + .../_esm5/add/observable/bindCallback.js.map | 1 + .../_esm5/add/observable/bindNodeCallback.js | 5 + .../add/observable/bindNodeCallback.js.map | 1 + .../_esm5/add/observable/combineLatest.js | 5 + .../_esm5/add/observable/combineLatest.js.map | 1 + .../rxjs/_esm5/add/observable/concat.js | 5 + .../rxjs/_esm5/add/observable/concat.js.map | 1 + .../rxjs/_esm5/add/observable/defer.js | 5 + .../rxjs/_esm5/add/observable/defer.js.map | 1 + .../rxjs/_esm5/add/observable/dom/ajax.js | 5 + .../rxjs/_esm5/add/observable/dom/ajax.js.map | 1 + .../_esm5/add/observable/dom/webSocket.js | 5 + .../_esm5/add/observable/dom/webSocket.js.map | 1 + .../rxjs/_esm5/add/observable/empty.js | 5 + .../rxjs/_esm5/add/observable/empty.js.map | 1 + .../rxjs/_esm5/add/observable/forkJoin.js | 5 + .../rxjs/_esm5/add/observable/forkJoin.js.map | 1 + .../rxjs/_esm5/add/observable/from.js | 5 + .../rxjs/_esm5/add/observable/from.js.map | 1 + .../rxjs/_esm5/add/observable/fromEvent.js | 5 + .../_esm5/add/observable/fromEvent.js.map | 1 + .../_esm5/add/observable/fromEventPattern.js | 5 + .../add/observable/fromEventPattern.js.map | 1 + .../rxjs/_esm5/add/observable/fromPromise.js | 5 + .../_esm5/add/observable/fromPromise.js.map | 1 + .../rxjs/_esm5/add/observable/generate.js | 5 + .../rxjs/_esm5/add/observable/generate.js.map | 1 + .../rxjs/_esm5/add/observable/if.js | 5 + .../rxjs/_esm5/add/observable/if.js.map | 1 + .../rxjs/_esm5/add/observable/interval.js | 5 + .../rxjs/_esm5/add/observable/interval.js.map | 1 + .../rxjs/_esm5/add/observable/merge.js | 5 + .../rxjs/_esm5/add/observable/merge.js.map | 1 + .../rxjs/_esm5/add/observable/never.js | 5 + .../rxjs/_esm5/add/observable/never.js.map | 1 + .../rxjs/_esm5/add/observable/of.js | 5 + .../rxjs/_esm5/add/observable/of.js.map | 1 + .../_esm5/add/observable/onErrorResumeNext.js | 5 + .../add/observable/onErrorResumeNext.js.map | 1 + .../rxjs/_esm5/add/observable/pairs.js | 5 + .../rxjs/_esm5/add/observable/pairs.js.map | 1 + .../rxjs/_esm5/add/observable/race.js | 5 + .../rxjs/_esm5/add/observable/race.js.map | 1 + .../rxjs/_esm5/add/observable/range.js | 5 + .../rxjs/_esm5/add/observable/range.js.map | 1 + .../rxjs/_esm5/add/observable/throw.js | 5 + .../rxjs/_esm5/add/observable/throw.js.map | 1 + .../rxjs/_esm5/add/observable/timer.js | 5 + .../rxjs/_esm5/add/observable/timer.js.map | 1 + .../rxjs/_esm5/add/observable/using.js | 5 + .../rxjs/_esm5/add/observable/using.js.map | 1 + .../rxjs/_esm5/add/observable/zip.js | 5 + .../rxjs/_esm5/add/observable/zip.js.map | 1 + .../rxjs/_esm5/add/operator/audit.js | 5 + .../rxjs/_esm5/add/operator/audit.js.map | 1 + .../rxjs/_esm5/add/operator/auditTime.js | 5 + .../rxjs/_esm5/add/operator/auditTime.js.map | 1 + .../rxjs/_esm5/add/operator/buffer.js | 5 + .../rxjs/_esm5/add/operator/buffer.js.map | 1 + .../rxjs/_esm5/add/operator/bufferCount.js | 5 + .../_esm5/add/operator/bufferCount.js.map | 1 + .../rxjs/_esm5/add/operator/bufferTime.js | 5 + .../rxjs/_esm5/add/operator/bufferTime.js.map | 1 + .../rxjs/_esm5/add/operator/bufferToggle.js | 5 + .../_esm5/add/operator/bufferToggle.js.map | 1 + .../rxjs/_esm5/add/operator/bufferWhen.js | 5 + .../rxjs/_esm5/add/operator/bufferWhen.js.map | 1 + .../rxjs/_esm5/add/operator/catch.js | 6 + .../rxjs/_esm5/add/operator/catch.js.map | 1 + .../rxjs/_esm5/add/operator/combineAll.js | 5 + .../rxjs/_esm5/add/operator/combineAll.js.map | 1 + .../rxjs/_esm5/add/operator/combineLatest.js | 5 + .../_esm5/add/operator/combineLatest.js.map | 1 + .../rxjs/_esm5/add/operator/concat.js | 5 + .../rxjs/_esm5/add/operator/concat.js.map | 1 + .../rxjs/_esm5/add/operator/concatAll.js | 5 + .../rxjs/_esm5/add/operator/concatAll.js.map | 1 + .../rxjs/_esm5/add/operator/concatMap.js | 5 + .../rxjs/_esm5/add/operator/concatMap.js.map | 1 + .../rxjs/_esm5/add/operator/concatMapTo.js | 5 + .../_esm5/add/operator/concatMapTo.js.map | 1 + .../rxjs/_esm5/add/operator/count.js | 5 + .../rxjs/_esm5/add/operator/count.js.map | 1 + .../rxjs/_esm5/add/operator/debounce.js | 5 + .../rxjs/_esm5/add/operator/debounce.js.map | 1 + .../rxjs/_esm5/add/operator/debounceTime.js | 5 + .../_esm5/add/operator/debounceTime.js.map | 1 + .../rxjs/_esm5/add/operator/defaultIfEmpty.js | 5 + .../_esm5/add/operator/defaultIfEmpty.js.map | 1 + .../rxjs/_esm5/add/operator/delay.js | 5 + .../rxjs/_esm5/add/operator/delay.js.map | 1 + .../rxjs/_esm5/add/operator/delayWhen.js | 5 + .../rxjs/_esm5/add/operator/delayWhen.js.map | 1 + .../rxjs/_esm5/add/operator/dematerialize.js | 5 + .../_esm5/add/operator/dematerialize.js.map | 1 + .../rxjs/_esm5/add/operator/distinct.js | 5 + .../rxjs/_esm5/add/operator/distinct.js.map | 1 + .../add/operator/distinctUntilChanged.js | 5 + .../add/operator/distinctUntilChanged.js.map | 1 + .../add/operator/distinctUntilKeyChanged.js | 5 + .../operator/distinctUntilKeyChanged.js.map | 1 + .../rxjs/_esm5/add/operator/do.js | 6 + .../rxjs/_esm5/add/operator/do.js.map | 1 + .../rxjs/_esm5/add/operator/elementAt.js | 5 + .../rxjs/_esm5/add/operator/elementAt.js.map | 1 + .../rxjs/_esm5/add/operator/every.js | 5 + .../rxjs/_esm5/add/operator/every.js.map | 1 + .../rxjs/_esm5/add/operator/exhaust.js | 5 + .../rxjs/_esm5/add/operator/exhaust.js.map | 1 + .../rxjs/_esm5/add/operator/exhaustMap.js | 5 + .../rxjs/_esm5/add/operator/exhaustMap.js.map | 1 + .../rxjs/_esm5/add/operator/expand.js | 5 + .../rxjs/_esm5/add/operator/expand.js.map | 1 + .../rxjs/_esm5/add/operator/filter.js | 5 + .../rxjs/_esm5/add/operator/filter.js.map | 1 + .../rxjs/_esm5/add/operator/finally.js | 6 + .../rxjs/_esm5/add/operator/finally.js.map | 1 + .../rxjs/_esm5/add/operator/find.js | 5 + .../rxjs/_esm5/add/operator/find.js.map | 1 + .../rxjs/_esm5/add/operator/findIndex.js | 5 + .../rxjs/_esm5/add/operator/findIndex.js.map | 1 + .../rxjs/_esm5/add/operator/first.js | 5 + .../rxjs/_esm5/add/operator/first.js.map | 1 + .../rxjs/_esm5/add/operator/groupBy.js | 5 + .../rxjs/_esm5/add/operator/groupBy.js.map | 1 + .../rxjs/_esm5/add/operator/ignoreElements.js | 5 + .../_esm5/add/operator/ignoreElements.js.map | 1 + .../rxjs/_esm5/add/operator/isEmpty.js | 5 + .../rxjs/_esm5/add/operator/isEmpty.js.map | 1 + .../rxjs/_esm5/add/operator/last.js | 5 + .../rxjs/_esm5/add/operator/last.js.map | 1 + .../rxjs/_esm5/add/operator/let.js | 6 + .../rxjs/_esm5/add/operator/let.js.map | 1 + .../rxjs/_esm5/add/operator/map.js | 5 + .../rxjs/_esm5/add/operator/map.js.map | 1 + .../rxjs/_esm5/add/operator/mapTo.js | 5 + .../rxjs/_esm5/add/operator/mapTo.js.map | 1 + .../rxjs/_esm5/add/operator/materialize.js | 5 + .../_esm5/add/operator/materialize.js.map | 1 + .../rxjs/_esm5/add/operator/max.js | 5 + .../rxjs/_esm5/add/operator/max.js.map | 1 + .../rxjs/_esm5/add/operator/merge.js | 5 + .../rxjs/_esm5/add/operator/merge.js.map | 1 + .../rxjs/_esm5/add/operator/mergeAll.js | 5 + .../rxjs/_esm5/add/operator/mergeAll.js.map | 1 + .../rxjs/_esm5/add/operator/mergeMap.js | 6 + .../rxjs/_esm5/add/operator/mergeMap.js.map | 1 + .../rxjs/_esm5/add/operator/mergeMapTo.js | 6 + .../rxjs/_esm5/add/operator/mergeMapTo.js.map | 1 + .../rxjs/_esm5/add/operator/mergeScan.js | 5 + .../rxjs/_esm5/add/operator/mergeScan.js.map | 1 + .../rxjs/_esm5/add/operator/min.js | 5 + .../rxjs/_esm5/add/operator/min.js.map | 1 + .../rxjs/_esm5/add/operator/multicast.js | 5 + .../rxjs/_esm5/add/operator/multicast.js.map | 1 + .../rxjs/_esm5/add/operator/observeOn.js | 5 + .../rxjs/_esm5/add/operator/observeOn.js.map | 1 + .../_esm5/add/operator/onErrorResumeNext.js | 5 + .../add/operator/onErrorResumeNext.js.map | 1 + .../rxjs/_esm5/add/operator/pairwise.js | 5 + .../rxjs/_esm5/add/operator/pairwise.js.map | 1 + .../rxjs/_esm5/add/operator/partition.js | 5 + .../rxjs/_esm5/add/operator/partition.js.map | 1 + .../rxjs/_esm5/add/operator/pluck.js | 5 + .../rxjs/_esm5/add/operator/pluck.js.map | 1 + .../rxjs/_esm5/add/operator/publish.js | 5 + .../rxjs/_esm5/add/operator/publish.js.map | 1 + .../_esm5/add/operator/publishBehavior.js | 5 + .../_esm5/add/operator/publishBehavior.js.map | 1 + .../rxjs/_esm5/add/operator/publishLast.js | 5 + .../_esm5/add/operator/publishLast.js.map | 1 + .../rxjs/_esm5/add/operator/publishReplay.js | 5 + .../_esm5/add/operator/publishReplay.js.map | 1 + .../rxjs/_esm5/add/operator/race.js | 5 + .../rxjs/_esm5/add/operator/race.js.map | 1 + .../rxjs/_esm5/add/operator/reduce.js | 5 + .../rxjs/_esm5/add/operator/reduce.js.map | 1 + .../rxjs/_esm5/add/operator/repeat.js | 5 + .../rxjs/_esm5/add/operator/repeat.js.map | 1 + .../rxjs/_esm5/add/operator/repeatWhen.js | 5 + .../rxjs/_esm5/add/operator/repeatWhen.js.map | 1 + .../rxjs/_esm5/add/operator/retry.js | 5 + .../rxjs/_esm5/add/operator/retry.js.map | 1 + .../rxjs/_esm5/add/operator/retryWhen.js | 5 + .../rxjs/_esm5/add/operator/retryWhen.js.map | 1 + .../rxjs/_esm5/add/operator/sample.js | 5 + .../rxjs/_esm5/add/operator/sample.js.map | 1 + .../rxjs/_esm5/add/operator/sampleTime.js | 5 + .../rxjs/_esm5/add/operator/sampleTime.js.map | 1 + .../rxjs/_esm5/add/operator/scan.js | 5 + .../rxjs/_esm5/add/operator/scan.js.map | 1 + .../rxjs/_esm5/add/operator/sequenceEqual.js | 5 + .../_esm5/add/operator/sequenceEqual.js.map | 1 + .../rxjs/_esm5/add/operator/share.js | 5 + .../rxjs/_esm5/add/operator/share.js.map | 1 + .../rxjs/_esm5/add/operator/shareReplay.js | 5 + .../_esm5/add/operator/shareReplay.js.map | 1 + .../rxjs/_esm5/add/operator/single.js | 5 + .../rxjs/_esm5/add/operator/single.js.map | 1 + .../rxjs/_esm5/add/operator/skip.js | 5 + .../rxjs/_esm5/add/operator/skip.js.map | 1 + .../rxjs/_esm5/add/operator/skipLast.js | 5 + .../rxjs/_esm5/add/operator/skipLast.js.map | 1 + .../rxjs/_esm5/add/operator/skipUntil.js | 5 + .../rxjs/_esm5/add/operator/skipUntil.js.map | 1 + .../rxjs/_esm5/add/operator/skipWhile.js | 5 + .../rxjs/_esm5/add/operator/skipWhile.js.map | 1 + .../rxjs/_esm5/add/operator/startWith.js | 5 + .../rxjs/_esm5/add/operator/startWith.js.map | 1 + .../rxjs/_esm5/add/operator/subscribeOn.js | 5 + .../_esm5/add/operator/subscribeOn.js.map | 1 + .../rxjs/_esm5/add/operator/switch.js | 6 + .../rxjs/_esm5/add/operator/switch.js.map | 1 + .../rxjs/_esm5/add/operator/switchMap.js | 5 + .../rxjs/_esm5/add/operator/switchMap.js.map | 1 + .../rxjs/_esm5/add/operator/switchMapTo.js | 5 + .../_esm5/add/operator/switchMapTo.js.map | 1 + .../rxjs/_esm5/add/operator/take.js | 5 + .../rxjs/_esm5/add/operator/take.js.map | 1 + .../rxjs/_esm5/add/operator/takeLast.js | 5 + .../rxjs/_esm5/add/operator/takeLast.js.map | 1 + .../rxjs/_esm5/add/operator/takeUntil.js | 5 + .../rxjs/_esm5/add/operator/takeUntil.js.map | 1 + .../rxjs/_esm5/add/operator/takeWhile.js | 5 + .../rxjs/_esm5/add/operator/takeWhile.js.map | 1 + .../rxjs/_esm5/add/operator/throttle.js | 5 + .../rxjs/_esm5/add/operator/throttle.js.map | 1 + .../rxjs/_esm5/add/operator/throttleTime.js | 5 + .../_esm5/add/operator/throttleTime.js.map | 1 + .../rxjs/_esm5/add/operator/timeInterval.js | 5 + .../_esm5/add/operator/timeInterval.js.map | 1 + .../rxjs/_esm5/add/operator/timeout.js | 5 + .../rxjs/_esm5/add/operator/timeout.js.map | 1 + .../rxjs/_esm5/add/operator/timeoutWith.js | 5 + .../_esm5/add/operator/timeoutWith.js.map | 1 + .../rxjs/_esm5/add/operator/timestamp.js | 5 + .../rxjs/_esm5/add/operator/timestamp.js.map | 1 + .../rxjs/_esm5/add/operator/toArray.js | 5 + .../rxjs/_esm5/add/operator/toArray.js.map | 1 + .../rxjs/_esm5/add/operator/toPromise.js | 3 + .../rxjs/_esm5/add/operator/toPromise.js.map | 1 + .../rxjs/_esm5/add/operator/window.js | 5 + .../rxjs/_esm5/add/operator/window.js.map | 1 + .../rxjs/_esm5/add/operator/windowCount.js | 5 + .../_esm5/add/operator/windowCount.js.map | 1 + .../rxjs/_esm5/add/operator/windowTime.js | 5 + .../rxjs/_esm5/add/operator/windowTime.js.map | 1 + .../rxjs/_esm5/add/operator/windowToggle.js | 5 + .../_esm5/add/operator/windowToggle.js.map | 1 + .../rxjs/_esm5/add/operator/windowWhen.js | 5 + .../rxjs/_esm5/add/operator/windowWhen.js.map | 1 + .../rxjs/_esm5/add/operator/withLatestFrom.js | 5 + .../_esm5/add/operator/withLatestFrom.js.map | 1 + .../rxjs/_esm5/add/operator/zip.js | 5 + .../rxjs/_esm5/add/operator/zip.js.map | 1 + .../rxjs/_esm5/add/operator/zipAll.js | 5 + .../rxjs/_esm5/add/operator/zipAll.js.map | 1 + .../node_modules/rxjs/_esm5/interfaces.js | 1 + .../node_modules/rxjs/_esm5/interfaces.js.map | 1 + .../_esm5/observable/ArrayLikeObservable.js | 71 + .../observable/ArrayLikeObservable.js.map | 1 + .../rxjs/_esm5/observable/ArrayObservable.js | 123 + .../_esm5/observable/ArrayObservable.js.map | 1 + .../observable/BoundCallbackObservable.js | 267 + .../observable/BoundCallbackObservable.js.map | 1 + .../observable/BoundNodeCallbackObservable.js | 266 + .../BoundNodeCallbackObservable.js.map | 1 + .../_esm5/observable/ConnectableObservable.js | 172 + .../observable/ConnectableObservable.js.map | 1 + .../rxjs/_esm5/observable/DeferObservable.js | 100 + .../_esm5/observable/DeferObservable.js.map | 1 + .../rxjs/_esm5/observable/EmptyObservable.js | 82 + .../_esm5/observable/EmptyObservable.js.map | 1 + .../rxjs/_esm5/observable/ErrorObservable.js | 84 + .../_esm5/observable/ErrorObservable.js.map | 1 + .../_esm5/observable/ForkJoinObservable.js | 203 + .../observable/ForkJoinObservable.js.map | 1 + .../_esm5/observable/FromEventObservable.js | 217 + .../observable/FromEventObservable.js.map | 1 + .../observable/FromEventPatternObservable.js | 114 + .../FromEventPatternObservable.js.map | 1 + .../rxjs/_esm5/observable/FromObservable.js | 123 + .../_esm5/observable/FromObservable.js.map | 1 + .../_esm5/observable/GenerateObservable.js | 137 + .../observable/GenerateObservable.js.map | 1 + .../rxjs/_esm5/observable/IfObservable.js | 62 + .../rxjs/_esm5/observable/IfObservable.js.map | 1 + .../_esm5/observable/IntervalObservable.js | 97 + .../observable/IntervalObservable.js.map | 1 + .../_esm5/observable/IteratorObservable.js | 172 + .../observable/IteratorObservable.js.map | 1 + .../rxjs/_esm5/observable/NeverObservable.js | 60 + .../_esm5/observable/NeverObservable.js.map | 1 + .../rxjs/_esm5/observable/PairsObservable.js | 86 + .../_esm5/observable/PairsObservable.js.map | 1 + .../_esm5/observable/PromiseObservable.js | 122 + .../_esm5/observable/PromiseObservable.js.map | 1 + .../rxjs/_esm5/observable/RangeObservable.js | 101 + .../_esm5/observable/RangeObservable.js.map | 1 + .../rxjs/_esm5/observable/ScalarObservable.js | 59 + .../_esm5/observable/ScalarObservable.js.map | 1 + .../_esm5/observable/SubscribeOnObservable.js | 60 + .../observable/SubscribeOnObservable.js.map | 1 + .../rxjs/_esm5/observable/TimerObservable.js | 112 + .../_esm5/observable/TimerObservable.js.map | 1 + .../rxjs/_esm5/observable/UsingObservable.js | 62 + .../_esm5/observable/UsingObservable.js.map | 1 + .../rxjs/_esm5/observable/bindCallback.js | 4 + .../rxjs/_esm5/observable/bindCallback.js.map | 1 + .../rxjs/_esm5/observable/bindNodeCallback.js | 4 + .../_esm5/observable/bindNodeCallback.js.map | 1 + .../rxjs/_esm5/observable/combineLatest.js | 135 + .../_esm5/observable/combineLatest.js.map | 1 + .../rxjs/_esm5/observable/concat.js | 110 + .../rxjs/_esm5/observable/concat.js.map | 1 + .../rxjs/_esm5/observable/defer.js | 4 + .../rxjs/_esm5/observable/defer.js.map | 1 + .../_esm5/observable/dom/AjaxObservable.js | 419 + .../observable/dom/AjaxObservable.js.map | 1 + .../_esm5/observable/dom/WebSocketSubject.js | 251 + .../observable/dom/WebSocketSubject.js.map | 1 + .../rxjs/_esm5/observable/dom/ajax.js | 4 + .../rxjs/_esm5/observable/dom/ajax.js.map | 1 + .../rxjs/_esm5/observable/dom/webSocket.js | 4 + .../_esm5/observable/dom/webSocket.js.map | 1 + .../rxjs/_esm5/observable/empty.js | 4 + .../rxjs/_esm5/observable/empty.js.map | 1 + .../rxjs/_esm5/observable/forkJoin.js | 4 + .../rxjs/_esm5/observable/forkJoin.js.map | 1 + .../rxjs/_esm5/observable/from.js | 4 + .../rxjs/_esm5/observable/from.js.map | 1 + .../rxjs/_esm5/observable/fromEvent.js | 4 + .../rxjs/_esm5/observable/fromEvent.js.map | 1 + .../rxjs/_esm5/observable/fromEventPattern.js | 4 + .../_esm5/observable/fromEventPattern.js.map | 1 + .../rxjs/_esm5/observable/fromPromise.js | 4 + .../rxjs/_esm5/observable/fromPromise.js.map | 1 + .../rxjs/_esm5/observable/generate.js | 4 + .../rxjs/_esm5/observable/generate.js.map | 1 + .../node_modules/rxjs/_esm5/observable/if.js | 4 + .../rxjs/_esm5/observable/if.js.map | 1 + .../rxjs/_esm5/observable/interval.js | 4 + .../rxjs/_esm5/observable/interval.js.map | 1 + .../rxjs/_esm5/observable/merge.js | 89 + .../rxjs/_esm5/observable/merge.js.map | 1 + .../rxjs/_esm5/observable/never.js | 4 + .../rxjs/_esm5/observable/never.js.map | 1 + .../node_modules/rxjs/_esm5/observable/of.js | 4 + .../rxjs/_esm5/observable/of.js.map | 1 + .../_esm5/observable/onErrorResumeNext.js | 4 + .../_esm5/observable/onErrorResumeNext.js.map | 1 + .../rxjs/_esm5/observable/pairs.js | 4 + .../rxjs/_esm5/observable/pairs.js.map | 1 + .../rxjs/_esm5/observable/race.js | 88 + .../rxjs/_esm5/observable/race.js.map | 1 + .../rxjs/_esm5/observable/range.js | 4 + .../rxjs/_esm5/observable/range.js.map | 1 + .../rxjs/_esm5/observable/throw.js | 4 + .../rxjs/_esm5/observable/throw.js.map | 1 + .../rxjs/_esm5/observable/timer.js | 4 + .../rxjs/_esm5/observable/timer.js.map | 1 + .../rxjs/_esm5/observable/using.js | 4 + .../rxjs/_esm5/observable/using.js.map | 1 + .../node_modules/rxjs/_esm5/observable/zip.js | 4 + .../rxjs/_esm5/observable/zip.js.map | 1 + .../node_modules/rxjs/_esm5/operator/audit.js | 46 + .../rxjs/_esm5/operator/audit.js.map | 1 + .../rxjs/_esm5/operator/auditTime.js | 52 + .../rxjs/_esm5/operator/auditTime.js.map | 1 + .../rxjs/_esm5/operator/buffer.js | 38 + .../rxjs/_esm5/operator/buffer.js.map | 1 + .../rxjs/_esm5/operator/bufferCount.js | 50 + .../rxjs/_esm5/operator/bufferCount.js.map | 1 + .../rxjs/_esm5/operator/bufferTime.js | 66 + .../rxjs/_esm5/operator/bufferTime.js.map | 1 + .../rxjs/_esm5/operator/bufferToggle.js | 44 + .../rxjs/_esm5/operator/bufferToggle.js.map | 1 + .../rxjs/_esm5/operator/bufferWhen.js | 39 + .../rxjs/_esm5/operator/bufferWhen.js.map | 1 + .../node_modules/rxjs/_esm5/operator/catch.js | 65 + .../rxjs/_esm5/operator/catch.js.map | 1 + .../rxjs/_esm5/operator/combineAll.js | 46 + .../rxjs/_esm5/operator/combineAll.js.map | 1 + .../rxjs/_esm5/operator/combineLatest.js | 54 + .../rxjs/_esm5/operator/combineLatest.js.map | 1 + .../rxjs/_esm5/operator/concat.js | 61 + .../rxjs/_esm5/operator/concat.js.map | 1 + .../rxjs/_esm5/operator/concatAll.js | 55 + .../rxjs/_esm5/operator/concatAll.js.map | 1 + .../rxjs/_esm5/operator/concatMap.js | 66 + .../rxjs/_esm5/operator/concatMap.js.map | 1 + .../rxjs/_esm5/operator/concatMapTo.js | 63 + .../rxjs/_esm5/operator/concatMapTo.js.map | 1 + .../node_modules/rxjs/_esm5/operator/count.js | 54 + .../rxjs/_esm5/operator/count.js.map | 1 + .../rxjs/_esm5/operator/debounce.js | 48 + .../rxjs/_esm5/operator/debounce.js.map | 1 + .../rxjs/_esm5/operator/debounceTime.js | 56 + .../rxjs/_esm5/operator/debounceTime.js.map | 1 + .../rxjs/_esm5/operator/defaultIfEmpty.js | 40 + .../rxjs/_esm5/operator/defaultIfEmpty.js.map | 1 + .../node_modules/rxjs/_esm5/operator/delay.js | 49 + .../rxjs/_esm5/operator/delay.js.map | 1 + .../rxjs/_esm5/operator/delayWhen.js | 51 + .../rxjs/_esm5/operator/delayWhen.js.map | 1 + .../rxjs/_esm5/operator/dematerialize.js | 46 + .../rxjs/_esm5/operator/dematerialize.js.map | 1 + .../rxjs/_esm5/operator/distinct.js | 51 + .../rxjs/_esm5/operator/distinct.js.map | 1 + .../_esm5/operator/distinctUntilChanged.js | 46 + .../operator/distinctUntilChanged.js.map | 1 + .../_esm5/operator/distinctUntilKeyChanged.js | 64 + .../operator/distinctUntilKeyChanged.js.map | 1 + .../node_modules/rxjs/_esm5/operator/do.js | 50 + .../rxjs/_esm5/operator/do.js.map | 1 + .../rxjs/_esm5/operator/elementAt.js | 48 + .../rxjs/_esm5/operator/elementAt.js.map | 1 + .../node_modules/rxjs/_esm5/operator/every.js | 20 + .../rxjs/_esm5/operator/every.js.map | 1 + .../rxjs/_esm5/operator/exhaust.js | 41 + .../rxjs/_esm5/operator/exhaust.js.map | 1 + .../rxjs/_esm5/operator/exhaustMap.js | 52 + .../rxjs/_esm5/operator/exhaustMap.js.map | 1 + .../rxjs/_esm5/operator/expand.js | 59 + .../rxjs/_esm5/operator/expand.js.map | 1 + .../rxjs/_esm5/operator/filter.js | 46 + .../rxjs/_esm5/operator/filter.js.map | 1 + .../rxjs/_esm5/operator/finally.js | 14 + .../rxjs/_esm5/operator/finally.js.map | 1 + .../node_modules/rxjs/_esm5/operator/find.js | 40 + .../rxjs/_esm5/operator/find.js.map | 1 + .../rxjs/_esm5/operator/findIndex.js | 40 + .../rxjs/_esm5/operator/findIndex.js.map | 1 + .../node_modules/rxjs/_esm5/operator/first.js | 55 + .../rxjs/_esm5/operator/first.js.map | 1 + .../rxjs/_esm5/operator/groupBy.js | 75 + .../rxjs/_esm5/operator/groupBy.js.map | 1 + .../rxjs/_esm5/operator/ignoreElements.js | 17 + .../rxjs/_esm5/operator/ignoreElements.js.map | 1 + .../rxjs/_esm5/operator/isEmpty.js | 15 + .../rxjs/_esm5/operator/isEmpty.js.map | 1 + .../node_modules/rxjs/_esm5/operator/last.js | 24 + .../rxjs/_esm5/operator/last.js.map | 1 + .../node_modules/rxjs/_esm5/operator/let.js | 11 + .../rxjs/_esm5/operator/let.js.map | 1 + .../node_modules/rxjs/_esm5/operator/map.js | 39 + .../rxjs/_esm5/operator/map.js.map | 1 + .../node_modules/rxjs/_esm5/operator/mapTo.js | 32 + .../rxjs/_esm5/operator/mapTo.js.map | 1 + .../rxjs/_esm5/operator/materialize.js | 50 + .../rxjs/_esm5/operator/materialize.js.map | 1 + .../node_modules/rxjs/_esm5/operator/max.js | 37 + .../rxjs/_esm5/operator/max.js.map | 1 + .../node_modules/rxjs/_esm5/operator/merge.js | 58 + .../rxjs/_esm5/operator/merge.js.map | 1 + .../rxjs/_esm5/operator/mergeAll.js | 53 + .../rxjs/_esm5/operator/mergeAll.js.map | 1 + .../rxjs/_esm5/operator/mergeMap.js | 68 + .../rxjs/_esm5/operator/mergeMap.js.map | 1 + .../rxjs/_esm5/operator/mergeMapTo.js | 53 + .../rxjs/_esm5/operator/mergeMapTo.js.map | 1 + .../rxjs/_esm5/operator/mergeScan.js | 40 + .../rxjs/_esm5/operator/mergeScan.js.map | 1 + .../node_modules/rxjs/_esm5/operator/min.js | 37 + .../rxjs/_esm5/operator/min.js.map | 1 + .../rxjs/_esm5/operator/multicast.js | 101 + .../rxjs/_esm5/operator/multicast.js.map | 1 + .../rxjs/_esm5/operator/observeOn.js | 55 + .../rxjs/_esm5/operator/observeOn.js.map | 1 + .../rxjs/_esm5/operator/onErrorResumeNext.js | 72 + .../_esm5/operator/onErrorResumeNext.js.map | 1 + .../rxjs/_esm5/operator/pairwise.js | 41 + .../rxjs/_esm5/operator/pairwise.js.map | 1 + .../rxjs/_esm5/operator/partition.js | 47 + .../rxjs/_esm5/operator/partition.js.map | 1 + .../node_modules/rxjs/_esm5/operator/pluck.js | 36 + .../rxjs/_esm5/operator/pluck.js.map | 1 + .../rxjs/_esm5/operator/publish.js | 20 + .../rxjs/_esm5/operator/publish.js.map | 1 + .../rxjs/_esm5/operator/publishBehavior.js | 12 + .../_esm5/operator/publishBehavior.js.map | 1 + .../rxjs/_esm5/operator/publishLast.js | 12 + .../rxjs/_esm5/operator/publishLast.js.map | 1 + .../rxjs/_esm5/operator/publishReplay.js | 16 + .../rxjs/_esm5/operator/publishReplay.js.map | 1 + .../node_modules/rxjs/_esm5/operator/race.js | 21 + .../rxjs/_esm5/operator/race.js.map | 1 + .../rxjs/_esm5/operator/reduce.js | 59 + .../rxjs/_esm5/operator/reduce.js.map | 1 + .../rxjs/_esm5/operator/repeat.js | 21 + .../rxjs/_esm5/operator/repeat.js.map | 1 + .../rxjs/_esm5/operator/repeatWhen.js | 20 + .../rxjs/_esm5/operator/repeatWhen.js.map | 1 + .../node_modules/rxjs/_esm5/operator/retry.js | 25 + .../rxjs/_esm5/operator/retry.js.map | 1 + .../rxjs/_esm5/operator/retryWhen.js | 20 + .../rxjs/_esm5/operator/retryWhen.js.map | 1 + .../rxjs/_esm5/operator/sample.js | 40 + .../rxjs/_esm5/operator/sample.js.map | 1 + .../rxjs/_esm5/operator/sampleTime.js | 46 + .../rxjs/_esm5/operator/sampleTime.js.map | 1 + .../node_modules/rxjs/_esm5/operator/scan.js | 47 + .../rxjs/_esm5/operator/scan.js.map | 1 + .../rxjs/_esm5/operator/sequenceEqual.js | 58 + .../rxjs/_esm5/operator/sequenceEqual.js.map | 1 + .../node_modules/rxjs/_esm5/operator/share.js | 23 + .../rxjs/_esm5/operator/share.js.map | 1 + .../rxjs/_esm5/operator/shareReplay.js | 11 + .../rxjs/_esm5/operator/shareReplay.js.map | 1 + .../rxjs/_esm5/operator/single.js | 22 + .../rxjs/_esm5/operator/single.js.map | 1 + .../node_modules/rxjs/_esm5/operator/skip.js | 17 + .../rxjs/_esm5/operator/skip.js.map | 1 + .../rxjs/_esm5/operator/skipLast.js | 38 + .../rxjs/_esm5/operator/skipLast.js.map | 1 + .../rxjs/_esm5/operator/skipUntil.js | 18 + .../rxjs/_esm5/operator/skipUntil.js.map | 1 + .../rxjs/_esm5/operator/skipWhile.js | 18 + .../rxjs/_esm5/operator/skipWhile.js.map | 1 + .../rxjs/_esm5/operator/startWith.js | 25 + .../rxjs/_esm5/operator/startWith.js.map | 1 + .../rxjs/_esm5/operator/subscribeOn.js | 20 + .../rxjs/_esm5/operator/subscribeOn.js.map | 1 + .../rxjs/_esm5/operator/switch.js | 48 + .../rxjs/_esm5/operator/switch.js.map | 1 + .../rxjs/_esm5/operator/switchMap.js | 54 + .../rxjs/_esm5/operator/switchMap.js.map | 1 + .../rxjs/_esm5/operator/switchMapTo.js | 49 + .../rxjs/_esm5/operator/switchMapTo.js.map | 1 + .../node_modules/rxjs/_esm5/operator/take.js | 39 + .../rxjs/_esm5/operator/take.js.map | 1 + .../rxjs/_esm5/operator/takeLast.js | 42 + .../rxjs/_esm5/operator/takeLast.js.map | 1 + .../rxjs/_esm5/operator/takeUntil.js | 39 + .../rxjs/_esm5/operator/takeUntil.js.map | 1 + .../rxjs/_esm5/operator/takeWhile.js | 42 + .../rxjs/_esm5/operator/takeWhile.js.map | 1 + .../rxjs/_esm5/operator/throttle.js | 49 + .../rxjs/_esm5/operator/throttle.js.map | 1 + .../rxjs/_esm5/operator/throttleTime.js | 53 + .../rxjs/_esm5/operator/throttleTime.js.map | 1 + .../rxjs/_esm5/operator/timeInterval.js | 17 + .../rxjs/_esm5/operator/timeInterval.js.map | 1 + .../rxjs/_esm5/operator/timeout.js | 75 + .../rxjs/_esm5/operator/timeout.js.map | 1 + .../rxjs/_esm5/operator/timeoutWith.js | 58 + .../rxjs/_esm5/operator/timeoutWith.js.map | 1 + .../rxjs/_esm5/operator/timestamp.js | 16 + .../rxjs/_esm5/operator/timestamp.js.map | 1 + .../rxjs/_esm5/operator/toArray.js | 29 + .../rxjs/_esm5/operator/toArray.js.map | 1 + .../rxjs/_esm5/operator/toPromise.js | 6 + .../rxjs/_esm5/operator/toPromise.js.map | 1 + .../rxjs/_esm5/operator/window.js | 42 + .../rxjs/_esm5/operator/window.js.map | 1 + .../rxjs/_esm5/operator/windowCount.js | 57 + .../rxjs/_esm5/operator/windowCount.js.map | 1 + .../rxjs/_esm5/operator/windowTime.js | 27 + .../rxjs/_esm5/operator/windowTime.js.map | 1 + .../rxjs/_esm5/operator/windowToggle.js | 47 + .../rxjs/_esm5/operator/windowToggle.js.map | 1 + .../rxjs/_esm5/operator/windowWhen.js | 44 + .../rxjs/_esm5/operator/windowWhen.js.map | 1 + .../rxjs/_esm5/operator/withLatestFrom.js | 49 + .../rxjs/_esm5/operator/withLatestFrom.js.map | 1 + .../node_modules/rxjs/_esm5/operator/zip.js | 17 + .../rxjs/_esm5/operator/zip.js.map | 1 + .../rxjs/_esm5/operator/zipAll.js | 12 + .../rxjs/_esm5/operator/zipAll.js.map | 1 + .../node_modules/rxjs/_esm5/operators.js | 110 + .../node_modules/rxjs/_esm5/operators.js.map | 1 + .../rxjs/_esm5/operators/audit.js | 119 + .../rxjs/_esm5/operators/audit.js.map | 1 + .../rxjs/_esm5/operators/auditTime.js | 53 + .../rxjs/_esm5/operators/auditTime.js.map | 1 + .../rxjs/_esm5/operators/buffer.js | 79 + .../rxjs/_esm5/operators/buffer.js.map | 1 + .../rxjs/_esm5/operators/bufferCount.js | 145 + .../rxjs/_esm5/operators/bufferCount.js.map | 1 + .../rxjs/_esm5/operators/bufferTime.js | 202 + .../rxjs/_esm5/operators/bufferTime.js.map | 1 + .../rxjs/_esm5/operators/bufferToggle.js | 155 + .../rxjs/_esm5/operators/bufferToggle.js.map | 1 + .../rxjs/_esm5/operators/bufferWhen.js | 125 + .../rxjs/_esm5/operators/bufferWhen.js.map | 1 + .../rxjs/_esm5/operators/catchError.js | 117 + .../rxjs/_esm5/operators/catchError.js.map | 1 + .../rxjs/_esm5/operators/combineAll.js | 6 + .../rxjs/_esm5/operators/combineAll.js.map | 1 + .../rxjs/_esm5/operators/combineLatest.js | 150 + .../rxjs/_esm5/operators/combineLatest.js.map | 1 + .../rxjs/_esm5/operators/concat.js | 61 + .../rxjs/_esm5/operators/concat.js.map | 1 + .../rxjs/_esm5/operators/concatAll.js | 54 + .../rxjs/_esm5/operators/concatAll.js.map | 1 + .../rxjs/_esm5/operators/concatMap.js | 66 + .../rxjs/_esm5/operators/concatMap.js.map | 1 + .../rxjs/_esm5/operators/concatMapTo.js | 63 + .../rxjs/_esm5/operators/concatMapTo.js.map | 1 + .../rxjs/_esm5/operators/count.js | 112 + .../rxjs/_esm5/operators/count.js.map | 1 + .../rxjs/_esm5/operators/debounce.js | 128 + .../rxjs/_esm5/operators/debounce.js.map | 1 + .../rxjs/_esm5/operators/debounceTime.js | 119 + .../rxjs/_esm5/operators/debounceTime.js.map | 1 + .../rxjs/_esm5/operators/defaultIfEmpty.js | 80 + .../_esm5/operators/defaultIfEmpty.js.map | 1 + .../rxjs/_esm5/operators/delay.js | 139 + .../rxjs/_esm5/operators/delay.js.map | 1 + .../rxjs/_esm5/operators/delayWhen.js | 195 + .../rxjs/_esm5/operators/delayWhen.js.map | 1 + .../rxjs/_esm5/operators/dematerialize.js | 78 + .../rxjs/_esm5/operators/dematerialize.js.map | 1 + .../rxjs/_esm5/operators/distinct.js | 120 + .../rxjs/_esm5/operators/distinct.js.map | 1 + .../_esm5/operators/distinctUntilChanged.js | 109 + .../operators/distinctUntilChanged.js.map | 1 + .../operators/distinctUntilKeyChanged.js | 64 + .../operators/distinctUntilKeyChanged.js.map | 1 + .../rxjs/_esm5/operators/elementAt.js | 101 + .../rxjs/_esm5/operators/elementAt.js.map | 1 + .../rxjs/_esm5/operators/every.js | 75 + .../rxjs/_esm5/operators/every.js.map | 1 + .../rxjs/_esm5/operators/exhaust.js | 90 + .../rxjs/_esm5/operators/exhaust.js.map | 1 + .../rxjs/_esm5/operators/exhaustMap.js | 139 + .../rxjs/_esm5/operators/exhaustMap.js.map | 1 + .../rxjs/_esm5/operators/expand.js | 154 + .../rxjs/_esm5/operators/expand.js.map | 1 + .../rxjs/_esm5/operators/filter.js | 95 + .../rxjs/_esm5/operators/filter.js.map | 1 + .../rxjs/_esm5/operators/finalize.js | 44 + .../rxjs/_esm5/operators/finalize.js.map | 1 + .../node_modules/rxjs/_esm5/operators/find.js | 99 + .../rxjs/_esm5/operators/find.js.map | 1 + .../rxjs/_esm5/operators/findIndex.js | 40 + .../rxjs/_esm5/operators/findIndex.js.map | 1 + .../rxjs/_esm5/operators/first.js | 153 + .../rxjs/_esm5/operators/first.js.map | 1 + .../rxjs/_esm5/operators/groupBy.js | 276 + .../rxjs/_esm5/operators/groupBy.js.map | 1 + .../rxjs/_esm5/operators/ignoreElements.js | 49 + .../_esm5/operators/ignoreElements.js.map | 1 + .../rxjs/_esm5/operators/isEmpty.js | 44 + .../rxjs/_esm5/operators/isEmpty.js.map | 1 + .../node_modules/rxjs/_esm5/operators/last.js | 120 + .../rxjs/_esm5/operators/last.js.map | 1 + .../node_modules/rxjs/_esm5/operators/map.js | 89 + .../rxjs/_esm5/operators/map.js.map | 1 + .../rxjs/_esm5/operators/mapTo.js | 64 + .../rxjs/_esm5/operators/mapTo.js.map | 1 + .../rxjs/_esm5/operators/materialize.js | 93 + .../rxjs/_esm5/operators/materialize.js.map | 1 + .../node_modules/rxjs/_esm5/operators/max.js | 40 + .../rxjs/_esm5/operators/max.js.map | 1 + .../rxjs/_esm5/operators/merge.js | 58 + .../rxjs/_esm5/operators/merge.js.map | 1 + .../rxjs/_esm5/operators/mergeAll.js | 54 + .../rxjs/_esm5/operators/mergeAll.js.map | 1 + .../rxjs/_esm5/operators/mergeMap.js | 178 + .../rxjs/_esm5/operators/mergeMap.js.map | 1 + .../rxjs/_esm5/operators/mergeMapTo.js | 160 + .../rxjs/_esm5/operators/mergeMapTo.js.map | 1 + .../rxjs/_esm5/operators/mergeScan.js | 130 + .../rxjs/_esm5/operators/mergeScan.js.map | 1 + .../node_modules/rxjs/_esm5/operators/min.js | 40 + .../rxjs/_esm5/operators/min.js.map | 1 + .../rxjs/_esm5/operators/multicast.js | 57 + .../rxjs/_esm5/operators/multicast.js.map | 1 + .../rxjs/_esm5/operators/observeOn.js | 119 + .../rxjs/_esm5/operators/observeOn.js.map | 1 + .../rxjs/_esm5/operators/onErrorResumeNext.js | 137 + .../_esm5/operators/onErrorResumeNext.js.map | 1 + .../rxjs/_esm5/operators/pairwise.js | 78 + .../rxjs/_esm5/operators/pairwise.js.map | 1 + .../rxjs/_esm5/operators/partition.js | 53 + .../rxjs/_esm5/operators/partition.js.map | 1 + .../rxjs/_esm5/operators/pluck.js | 56 + .../rxjs/_esm5/operators/pluck.js.map | 1 + .../rxjs/_esm5/operators/publish.js | 23 + .../rxjs/_esm5/operators/publish.js.map | 1 + .../rxjs/_esm5/operators/publishBehavior.js | 13 + .../_esm5/operators/publishBehavior.js.map | 1 + .../rxjs/_esm5/operators/publishLast.js | 7 + .../rxjs/_esm5/operators/publishLast.js.map | 1 + .../rxjs/_esm5/operators/publishReplay.js | 13 + .../rxjs/_esm5/operators/publishReplay.js.map | 1 + .../node_modules/rxjs/_esm5/operators/race.js | 27 + .../rxjs/_esm5/operators/race.js.map | 1 + .../rxjs/_esm5/operators/reduce.js | 68 + .../rxjs/_esm5/operators/reduce.js.map | 1 + .../rxjs/_esm5/operators/refCount.js | 86 + .../rxjs/_esm5/operators/refCount.js.map | 1 + .../rxjs/_esm5/operators/repeat.js | 75 + .../rxjs/_esm5/operators/repeat.js.map | 1 + .../rxjs/_esm5/operators/repeatWhen.js | 109 + .../rxjs/_esm5/operators/repeatWhen.js.map | 1 + .../rxjs/_esm5/operators/retry.js | 68 + .../rxjs/_esm5/operators/retry.js.map | 1 + .../rxjs/_esm5/operators/retryWhen.js | 102 + .../rxjs/_esm5/operators/retryWhen.js.map | 1 + .../rxjs/_esm5/operators/sample.js | 89 + .../rxjs/_esm5/operators/sample.js.map | 1 + .../rxjs/_esm5/operators/sampleTime.js | 94 + .../rxjs/_esm5/operators/sampleTime.js.map | 1 + .../node_modules/rxjs/_esm5/operators/scan.js | 124 + .../rxjs/_esm5/operators/scan.js.map | 1 + .../rxjs/_esm5/operators/sequenceEqual.js | 163 + .../rxjs/_esm5/operators/sequenceEqual.js.map | 1 + .../rxjs/_esm5/operators/share.js | 24 + .../rxjs/_esm5/operators/share.js.map | 1 + .../rxjs/_esm5/operators/shareReplay.js | 44 + .../rxjs/_esm5/operators/shareReplay.js.map | 1 + .../rxjs/_esm5/operators/single.js | 94 + .../rxjs/_esm5/operators/single.js.map | 1 + .../node_modules/rxjs/_esm5/operators/skip.js | 52 + .../rxjs/_esm5/operators/skip.js.map | 1 + .../rxjs/_esm5/operators/skipLast.js | 94 + .../rxjs/_esm5/operators/skipLast.js.map | 1 + .../rxjs/_esm5/operators/skipUntil.js | 72 + .../rxjs/_esm5/operators/skipUntil.js.map | 1 + .../rxjs/_esm5/operators/skipWhile.js | 67 + .../rxjs/_esm5/operators/skipWhile.js.map | 1 + .../rxjs/_esm5/operators/startWith.js | 47 + .../rxjs/_esm5/operators/startWith.js.map | 1 + .../rxjs/_esm5/operators/subscribeOn.js | 32 + .../rxjs/_esm5/operators/subscribeOn.js.map | 1 + .../rxjs/_esm5/operators/switchAll.js | 7 + .../rxjs/_esm5/operators/switchAll.js.map | 1 + .../rxjs/_esm5/operators/switchMap.js | 143 + .../rxjs/_esm5/operators/switchMap.js.map | 1 + .../rxjs/_esm5/operators/switchMapTo.js | 126 + .../rxjs/_esm5/operators/switchMapTo.js.map | 1 + .../node_modules/rxjs/_esm5/operators/take.js | 92 + .../rxjs/_esm5/operators/take.js.map | 1 + .../rxjs/_esm5/operators/takeLast.js | 110 + .../rxjs/_esm5/operators/takeLast.js.map | 1 + .../rxjs/_esm5/operators/takeUntil.js | 76 + .../rxjs/_esm5/operators/takeUntil.js.map | 1 + .../rxjs/_esm5/operators/takeWhile.js | 93 + .../rxjs/_esm5/operators/takeWhile.js.map | 1 + .../node_modules/rxjs/_esm5/operators/tap.js | 114 + .../rxjs/_esm5/operators/tap.js.map | 1 + .../rxjs/_esm5/operators/throttle.js | 145 + .../rxjs/_esm5/operators/throttle.js.map | 1 + .../rxjs/_esm5/operators/throttleTime.js | 121 + .../rxjs/_esm5/operators/throttleTime.js.map | 1 + .../rxjs/_esm5/operators/timeInterval.js | 55 + .../rxjs/_esm5/operators/timeInterval.js.map | 1 + .../rxjs/_esm5/operators/timeout.js | 144 + .../rxjs/_esm5/operators/timeout.js.map | 1 + .../rxjs/_esm5/operators/timeoutWith.js | 131 + .../rxjs/_esm5/operators/timeoutWith.js.map | 1 + .../rxjs/_esm5/operators/timestamp.js | 25 + .../rxjs/_esm5/operators/timestamp.js.map | 1 + .../rxjs/_esm5/operators/toArray.js | 13 + .../rxjs/_esm5/operators/toArray.js.map | 1 + .../rxjs/_esm5/operators/window.js | 113 + .../rxjs/_esm5/operators/window.js.map | 1 + .../rxjs/_esm5/operators/windowCount.js | 136 + .../rxjs/_esm5/operators/windowCount.js.map | 1 + .../rxjs/_esm5/operators/windowTime.js | 164 + .../rxjs/_esm5/operators/windowTime.js.map | 1 + .../rxjs/_esm5/operators/windowToggle.js | 181 + .../rxjs/_esm5/operators/windowToggle.js.map | 1 + .../rxjs/_esm5/operators/windowWhen.js | 132 + .../rxjs/_esm5/operators/windowWhen.js.map | 1 + .../rxjs/_esm5/operators/withLatestFrom.js | 133 + .../_esm5/operators/withLatestFrom.js.map | 1 + .../node_modules/rxjs/_esm5/operators/zip.js | 281 + .../rxjs/_esm5/operators/zip.js.map | 1 + .../rxjs/_esm5/operators/zipAll.js | 6 + .../rxjs/_esm5/operators/zipAll.js.map | 1 + .../node_modules/rxjs/_esm5/path-mapping.js | 465 + .../rxjs/_esm5/scheduler/Action.js | 47 + .../rxjs/_esm5/scheduler/Action.js.map | 1 + .../_esm5/scheduler/AnimationFrameAction.js | 60 + .../scheduler/AnimationFrameAction.js.map | 1 + .../scheduler/AnimationFrameScheduler.js | 38 + .../scheduler/AnimationFrameScheduler.js.map | 1 + .../rxjs/_esm5/scheduler/AsapAction.js | 60 + .../rxjs/_esm5/scheduler/AsapAction.js.map | 1 + .../rxjs/_esm5/scheduler/AsapScheduler.js | 38 + .../rxjs/_esm5/scheduler/AsapScheduler.js.map | 1 + .../rxjs/_esm5/scheduler/AsyncAction.js | 149 + .../rxjs/_esm5/scheduler/AsyncAction.js.map | 1 + .../rxjs/_esm5/scheduler/AsyncScheduler.js | 52 + .../_esm5/scheduler/AsyncScheduler.js.map | 1 + .../rxjs/_esm5/scheduler/QueueAction.js | 54 + .../rxjs/_esm5/scheduler/QueueAction.js.map | 1 + .../rxjs/_esm5/scheduler/QueueScheduler.js | 17 + .../_esm5/scheduler/QueueScheduler.js.map | 1 + .../_esm5/scheduler/VirtualTimeScheduler.js | 125 + .../scheduler/VirtualTimeScheduler.js.map | 1 + .../rxjs/_esm5/scheduler/animationFrame.js | 35 + .../_esm5/scheduler/animationFrame.js.map | 1 + .../node_modules/rxjs/_esm5/scheduler/asap.js | 39 + .../rxjs/_esm5/scheduler/asap.js.map | 1 + .../rxjs/_esm5/scheduler/async.js | 47 + .../rxjs/_esm5/scheduler/async.js.map | 1 + .../rxjs/_esm5/scheduler/queue.js | 66 + .../rxjs/_esm5/scheduler/queue.js.map | 1 + .../rxjs/_esm5/symbol/iterator.js | 37 + .../rxjs/_esm5/symbol/iterator.js.map | 1 + .../rxjs/_esm5/symbol/observable.js | 25 + .../rxjs/_esm5/symbol/observable.js.map | 1 + .../rxjs/_esm5/symbol/rxSubscriber.js | 10 + .../rxjs/_esm5/symbol/rxSubscriber.js.map | 1 + .../rxjs/_esm5/testing/ColdObservable.js | 47 + .../rxjs/_esm5/testing/ColdObservable.js.map | 1 + .../rxjs/_esm5/testing/HotObservable.js | 49 + .../rxjs/_esm5/testing/HotObservable.js.map | 1 + .../rxjs/_esm5/testing/SubscriptionLog.js | 11 + .../rxjs/_esm5/testing/SubscriptionLog.js.map | 1 + .../_esm5/testing/SubscriptionLoggable.js | 18 + .../_esm5/testing/SubscriptionLoggable.js.map | 1 + .../rxjs/_esm5/testing/TestMessage.js | 1 + .../rxjs/_esm5/testing/TestMessage.js.map | 1 + .../rxjs/_esm5/testing/TestScheduler.js | 228 + .../rxjs/_esm5/testing/TestScheduler.js.map | 1 + .../rxjs/_esm5/util/AnimationFrame.js | 33 + .../rxjs/_esm5/util/AnimationFrame.js.map | 1 + .../_esm5/util/ArgumentOutOfRangeError.js | 29 + .../_esm5/util/ArgumentOutOfRangeError.js.map | 1 + .../rxjs/_esm5/util/EmptyError.js | 29 + .../rxjs/_esm5/util/EmptyError.js.map | 1 + .../node_modules/rxjs/_esm5/util/FastMap.js | 29 + .../rxjs/_esm5/util/FastMap.js.map | 1 + .../node_modules/rxjs/_esm5/util/Immediate.js | 208 + .../rxjs/_esm5/util/Immediate.js.map | 1 + .../node_modules/rxjs/_esm5/util/Map.js | 5 + .../node_modules/rxjs/_esm5/util/Map.js.map | 1 + .../rxjs/_esm5/util/MapPolyfill.js | 45 + .../rxjs/_esm5/util/MapPolyfill.js.map | 1 + .../_esm5/util/ObjectUnsubscribedError.js | 28 + .../_esm5/util/ObjectUnsubscribedError.js.map | 1 + .../node_modules/rxjs/_esm5/util/Set.js | 32 + .../node_modules/rxjs/_esm5/util/Set.js.map | 1 + .../rxjs/_esm5/util/TimeoutError.js | 26 + .../rxjs/_esm5/util/TimeoutError.js.map | 1 + .../rxjs/_esm5/util/UnsubscriptionError.js | 26 + .../_esm5/util/UnsubscriptionError.js.map | 1 + .../rxjs/_esm5/util/applyMixins.js | 12 + .../rxjs/_esm5/util/applyMixins.js.map | 1 + .../node_modules/rxjs/_esm5/util/assign.js | 24 + .../rxjs/_esm5/util/assign.js.map | 1 + .../rxjs/_esm5/util/errorObject.js | 4 + .../rxjs/_esm5/util/errorObject.js.map | 1 + .../node_modules/rxjs/_esm5/util/identity.js | 5 + .../rxjs/_esm5/util/identity.js.map | 1 + .../node_modules/rxjs/_esm5/util/isArray.js | 3 + .../rxjs/_esm5/util/isArray.js.map | 1 + .../rxjs/_esm5/util/isArrayLike.js | 3 + .../rxjs/_esm5/util/isArrayLike.js.map | 1 + .../node_modules/rxjs/_esm5/util/isDate.js | 5 + .../rxjs/_esm5/util/isDate.js.map | 1 + .../rxjs/_esm5/util/isFunction.js | 5 + .../rxjs/_esm5/util/isFunction.js.map | 1 + .../node_modules/rxjs/_esm5/util/isNumeric.js | 11 + .../rxjs/_esm5/util/isNumeric.js.map | 1 + .../node_modules/rxjs/_esm5/util/isObject.js | 5 + .../rxjs/_esm5/util/isObject.js.map | 1 + .../node_modules/rxjs/_esm5/util/isPromise.js | 5 + .../rxjs/_esm5/util/isPromise.js.map | 1 + .../rxjs/_esm5/util/isScheduler.js | 5 + .../rxjs/_esm5/util/isScheduler.js.map | 1 + .../node_modules/rxjs/_esm5/util/noop.js | 4 + .../node_modules/rxjs/_esm5/util/noop.js.map | 1 + .../node_modules/rxjs/_esm5/util/not.js | 10 + .../node_modules/rxjs/_esm5/util/not.js.map | 1 + .../node_modules/rxjs/_esm5/util/pipe.js | 23 + .../node_modules/rxjs/_esm5/util/pipe.js.map | 1 + .../node_modules/rxjs/_esm5/util/root.js | 19 + .../node_modules/rxjs/_esm5/util/root.js.map | 1 + .../rxjs/_esm5/util/subscribeToResult.js | 78 + .../rxjs/_esm5/util/subscribeToResult.js.map | 1 + .../rxjs/_esm5/util/toSubscriber.js | 19 + .../rxjs/_esm5/util/toSubscriber.js.map | 1 + .../node_modules/rxjs/_esm5/util/tryCatch.js | 18 + .../rxjs/_esm5/util/tryCatch.js.map | 1 + .../rxjs/add/observable/bindCallback.d.ts | 6 + .../rxjs/add/observable/bindCallback.js | 5 + .../rxjs/add/observable/bindCallback.js.map | 1 + .../rxjs/add/observable/bindNodeCallback.d.ts | 6 + .../rxjs/add/observable/bindNodeCallback.js | 5 + .../add/observable/bindNodeCallback.js.map | 1 + .../rxjs/add/observable/combineLatest.d.ts | 6 + .../rxjs/add/observable/combineLatest.js | 5 + .../rxjs/add/observable/combineLatest.js.map | 1 + .../rxjs/add/observable/concat.d.ts | 6 + .../rxjs/add/observable/concat.js | 5 + .../rxjs/add/observable/concat.js.map | 1 + .../rxjs/add/observable/defer.d.ts | 6 + .../node_modules/rxjs/add/observable/defer.js | 5 + .../rxjs/add/observable/defer.js.map | 1 + .../rxjs/add/observable/dom/ajax.d.ts | 6 + .../rxjs/add/observable/dom/ajax.js | 5 + .../rxjs/add/observable/dom/ajax.js.map | 1 + .../rxjs/add/observable/dom/webSocket.d.ts | 6 + .../rxjs/add/observable/dom/webSocket.js | 5 + .../rxjs/add/observable/dom/webSocket.js.map | 1 + .../rxjs/add/observable/empty.d.ts | 6 + .../node_modules/rxjs/add/observable/empty.js | 5 + .../rxjs/add/observable/empty.js.map | 1 + .../rxjs/add/observable/forkJoin.d.ts | 6 + .../rxjs/add/observable/forkJoin.js | 5 + .../rxjs/add/observable/forkJoin.js.map | 1 + .../rxjs/add/observable/from.d.ts | 6 + .../node_modules/rxjs/add/observable/from.js | 5 + .../rxjs/add/observable/from.js.map | 1 + .../rxjs/add/observable/fromEvent.d.ts | 6 + .../rxjs/add/observable/fromEvent.js | 5 + .../rxjs/add/observable/fromEvent.js.map | 1 + .../rxjs/add/observable/fromEventPattern.d.ts | 6 + .../rxjs/add/observable/fromEventPattern.js | 5 + .../add/observable/fromEventPattern.js.map | 1 + .../rxjs/add/observable/fromPromise.d.ts | 6 + .../rxjs/add/observable/fromPromise.js | 5 + .../rxjs/add/observable/fromPromise.js.map | 1 + .../rxjs/add/observable/generate.d.ts | 6 + .../rxjs/add/observable/generate.js | 5 + .../rxjs/add/observable/generate.js.map | 1 + .../.keep => rxjs/add/observable/if.d.ts} | 0 .../node_modules/rxjs/add/observable/if.js | 5 + .../rxjs/add/observable/if.js.map | 1 + .../rxjs/add/observable/interval.d.ts | 6 + .../rxjs/add/observable/interval.js | 5 + .../rxjs/add/observable/interval.js.map | 1 + .../rxjs/add/observable/merge.d.ts | 6 + .../node_modules/rxjs/add/observable/merge.js | 5 + .../rxjs/add/observable/merge.js.map | 1 + .../rxjs/add/observable/never.d.ts | 6 + .../node_modules/rxjs/add/observable/never.js | 5 + .../rxjs/add/observable/never.js.map | 1 + .../node_modules/rxjs/add/observable/of.d.ts | 6 + .../node_modules/rxjs/add/observable/of.js | 5 + .../rxjs/add/observable/of.js.map | 1 + .../add/observable/onErrorResumeNext.d.ts | 6 + .../rxjs/add/observable/onErrorResumeNext.js | 5 + .../add/observable/onErrorResumeNext.js.map | 1 + .../rxjs/add/observable/pairs.d.ts | 6 + .../node_modules/rxjs/add/observable/pairs.js | 5 + .../rxjs/add/observable/pairs.js.map | 1 + .../rxjs/add/observable/race.d.ts | 6 + .../node_modules/rxjs/add/observable/race.js | 5 + .../rxjs/add/observable/race.js.map | 1 + .../rxjs/add/observable/range.d.ts | 6 + .../node_modules/rxjs/add/observable/range.js | 5 + .../rxjs/add/observable/range.js.map | 1 + .../rxjs/add/observable/throw.d.ts | 0 .../node_modules/rxjs/add/observable/throw.js | 5 + .../rxjs/add/observable/throw.js.map | 1 + .../rxjs/add/observable/timer.d.ts | 6 + .../node_modules/rxjs/add/observable/timer.js | 5 + .../rxjs/add/observable/timer.js.map | 1 + .../rxjs/add/observable/using.d.ts | 6 + .../node_modules/rxjs/add/observable/using.js | 5 + .../rxjs/add/observable/using.js.map | 1 + .../node_modules/rxjs/add/observable/zip.d.ts | 6 + .../node_modules/rxjs/add/observable/zip.js | 5 + .../rxjs/add/observable/zip.js.map | 1 + .../node_modules/rxjs/add/operator/audit.d.ts | 6 + .../node_modules/rxjs/add/operator/audit.js | 5 + .../rxjs/add/operator/audit.js.map | 1 + .../rxjs/add/operator/auditTime.d.ts | 6 + .../rxjs/add/operator/auditTime.js | 5 + .../rxjs/add/operator/auditTime.js.map | 1 + .../rxjs/add/operator/buffer.d.ts | 6 + .../node_modules/rxjs/add/operator/buffer.js | 5 + .../rxjs/add/operator/buffer.js.map | 1 + .../rxjs/add/operator/bufferCount.d.ts | 6 + .../rxjs/add/operator/bufferCount.js | 5 + .../rxjs/add/operator/bufferCount.js.map | 1 + .../rxjs/add/operator/bufferTime.d.ts | 6 + .../rxjs/add/operator/bufferTime.js | 5 + .../rxjs/add/operator/bufferTime.js.map | 1 + .../rxjs/add/operator/bufferToggle.d.ts | 6 + .../rxjs/add/operator/bufferToggle.js | 5 + .../rxjs/add/operator/bufferToggle.js.map | 1 + .../rxjs/add/operator/bufferWhen.d.ts | 6 + .../rxjs/add/operator/bufferWhen.js | 5 + .../rxjs/add/operator/bufferWhen.js.map | 1 + .../node_modules/rxjs/add/operator/catch.d.ts | 7 + .../node_modules/rxjs/add/operator/catch.js | 6 + .../rxjs/add/operator/catch.js.map | 1 + .../rxjs/add/operator/combineAll.d.ts | 6 + .../rxjs/add/operator/combineAll.js | 5 + .../rxjs/add/operator/combineAll.js.map | 1 + .../rxjs/add/operator/combineLatest.d.ts | 6 + .../rxjs/add/operator/combineLatest.js | 5 + .../rxjs/add/operator/combineLatest.js.map | 1 + .../rxjs/add/operator/concat.d.ts | 6 + .../node_modules/rxjs/add/operator/concat.js | 5 + .../rxjs/add/operator/concat.js.map | 1 + .../rxjs/add/operator/concatAll.d.ts | 6 + .../rxjs/add/operator/concatAll.js | 5 + .../rxjs/add/operator/concatAll.js.map | 1 + .../rxjs/add/operator/concatMap.d.ts | 6 + .../rxjs/add/operator/concatMap.js | 5 + .../rxjs/add/operator/concatMap.js.map | 1 + .../rxjs/add/operator/concatMapTo.d.ts | 6 + .../rxjs/add/operator/concatMapTo.js | 5 + .../rxjs/add/operator/concatMapTo.js.map | 1 + .../node_modules/rxjs/add/operator/count.d.ts | 6 + .../node_modules/rxjs/add/operator/count.js | 5 + .../rxjs/add/operator/count.js.map | 1 + .../rxjs/add/operator/debounce.d.ts | 6 + .../rxjs/add/operator/debounce.js | 5 + .../rxjs/add/operator/debounce.js.map | 1 + .../rxjs/add/operator/debounceTime.d.ts | 6 + .../rxjs/add/operator/debounceTime.js | 5 + .../rxjs/add/operator/debounceTime.js.map | 1 + .../rxjs/add/operator/defaultIfEmpty.d.ts | 6 + .../rxjs/add/operator/defaultIfEmpty.js | 5 + .../rxjs/add/operator/defaultIfEmpty.js.map | 1 + .../node_modules/rxjs/add/operator/delay.d.ts | 6 + .../node_modules/rxjs/add/operator/delay.js | 5 + .../rxjs/add/operator/delay.js.map | 1 + .../rxjs/add/operator/delayWhen.d.ts | 6 + .../rxjs/add/operator/delayWhen.js | 5 + .../rxjs/add/operator/delayWhen.js.map | 1 + .../rxjs/add/operator/dematerialize.d.ts | 6 + .../rxjs/add/operator/dematerialize.js | 5 + .../rxjs/add/operator/dematerialize.js.map | 1 + .../rxjs/add/operator/distinct.d.ts | 6 + .../rxjs/add/operator/distinct.js | 5 + .../rxjs/add/operator/distinct.js.map | 1 + .../add/operator/distinctUntilChanged.d.ts | 6 + .../rxjs/add/operator/distinctUntilChanged.js | 5 + .../add/operator/distinctUntilChanged.js.map | 1 + .../add/operator/distinctUntilKeyChanged.d.ts | 6 + .../add/operator/distinctUntilKeyChanged.js | 5 + .../operator/distinctUntilKeyChanged.js.map | 1 + .../node_modules/rxjs/add/operator/do.d.ts | 7 + .../node_modules/rxjs/add/operator/do.js | 6 + .../node_modules/rxjs/add/operator/do.js.map | 1 + .../rxjs/add/operator/elementAt.d.ts | 6 + .../rxjs/add/operator/elementAt.js | 5 + .../rxjs/add/operator/elementAt.js.map | 1 + .../node_modules/rxjs/add/operator/every.d.ts | 6 + .../node_modules/rxjs/add/operator/every.js | 5 + .../rxjs/add/operator/every.js.map | 1 + .../rxjs/add/operator/exhaust.d.ts | 6 + .../node_modules/rxjs/add/operator/exhaust.js | 5 + .../rxjs/add/operator/exhaust.js.map | 1 + .../rxjs/add/operator/exhaustMap.d.ts | 6 + .../rxjs/add/operator/exhaustMap.js | 5 + .../rxjs/add/operator/exhaustMap.js.map | 1 + .../rxjs/add/operator/expand.d.ts | 6 + .../node_modules/rxjs/add/operator/expand.js | 5 + .../rxjs/add/operator/expand.js.map | 1 + .../rxjs/add/operator/filter.d.ts | 6 + .../node_modules/rxjs/add/operator/filter.js | 5 + .../rxjs/add/operator/filter.js.map | 1 + .../rxjs/add/operator/finally.d.ts | 7 + .../node_modules/rxjs/add/operator/finally.js | 6 + .../rxjs/add/operator/finally.js.map | 1 + .../node_modules/rxjs/add/operator/find.d.ts | 6 + .../node_modules/rxjs/add/operator/find.js | 5 + .../rxjs/add/operator/find.js.map | 1 + .../rxjs/add/operator/findIndex.d.ts | 6 + .../rxjs/add/operator/findIndex.js | 5 + .../rxjs/add/operator/findIndex.js.map | 1 + .../node_modules/rxjs/add/operator/first.d.ts | 6 + .../node_modules/rxjs/add/operator/first.js | 5 + .../rxjs/add/operator/first.js.map | 1 + .../rxjs/add/operator/groupBy.d.ts | 6 + .../node_modules/rxjs/add/operator/groupBy.js | 5 + .../rxjs/add/operator/groupBy.js.map | 1 + .../rxjs/add/operator/ignoreElements.d.ts | 6 + .../rxjs/add/operator/ignoreElements.js | 5 + .../rxjs/add/operator/ignoreElements.js.map | 1 + .../rxjs/add/operator/isEmpty.d.ts | 6 + .../node_modules/rxjs/add/operator/isEmpty.js | 5 + .../rxjs/add/operator/isEmpty.js.map | 1 + .../node_modules/rxjs/add/operator/last.d.ts | 6 + .../node_modules/rxjs/add/operator/last.js | 5 + .../rxjs/add/operator/last.js.map | 1 + .../node_modules/rxjs/add/operator/let.d.ts | 7 + .../node_modules/rxjs/add/operator/let.js | 6 + .../node_modules/rxjs/add/operator/let.js.map | 1 + .../node_modules/rxjs/add/operator/map.d.ts | 6 + .../node_modules/rxjs/add/operator/map.js | 5 + .../node_modules/rxjs/add/operator/map.js.map | 1 + .../node_modules/rxjs/add/operator/mapTo.d.ts | 6 + .../node_modules/rxjs/add/operator/mapTo.js | 5 + .../rxjs/add/operator/mapTo.js.map | 1 + .../rxjs/add/operator/materialize.d.ts | 6 + .../rxjs/add/operator/materialize.js | 5 + .../rxjs/add/operator/materialize.js.map | 1 + .../node_modules/rxjs/add/operator/max.d.ts | 6 + .../node_modules/rxjs/add/operator/max.js | 5 + .../node_modules/rxjs/add/operator/max.js.map | 1 + .../node_modules/rxjs/add/operator/merge.d.ts | 6 + .../node_modules/rxjs/add/operator/merge.js | 5 + .../rxjs/add/operator/merge.js.map | 1 + .../rxjs/add/operator/mergeAll.d.ts | 6 + .../rxjs/add/operator/mergeAll.js | 5 + .../rxjs/add/operator/mergeAll.js.map | 1 + .../rxjs/add/operator/mergeMap.d.ts | 7 + .../rxjs/add/operator/mergeMap.js | 6 + .../rxjs/add/operator/mergeMap.js.map | 1 + .../rxjs/add/operator/mergeMapTo.d.ts | 7 + .../rxjs/add/operator/mergeMapTo.js | 6 + .../rxjs/add/operator/mergeMapTo.js.map | 1 + .../rxjs/add/operator/mergeScan.d.ts | 6 + .../rxjs/add/operator/mergeScan.js | 5 + .../rxjs/add/operator/mergeScan.js.map | 1 + .../node_modules/rxjs/add/operator/min.d.ts | 6 + .../node_modules/rxjs/add/operator/min.js | 5 + .../node_modules/rxjs/add/operator/min.js.map | 1 + .../rxjs/add/operator/multicast.d.ts | 6 + .../rxjs/add/operator/multicast.js | 5 + .../rxjs/add/operator/multicast.js.map | 1 + .../rxjs/add/operator/observeOn.d.ts | 6 + .../rxjs/add/operator/observeOn.js | 5 + .../rxjs/add/operator/observeOn.js.map | 1 + .../rxjs/add/operator/onErrorResumeNext.d.ts | 6 + .../rxjs/add/operator/onErrorResumeNext.js | 5 + .../add/operator/onErrorResumeNext.js.map | 1 + .../rxjs/add/operator/pairwise.d.ts | 6 + .../rxjs/add/operator/pairwise.js | 5 + .../rxjs/add/operator/pairwise.js.map | 1 + .../rxjs/add/operator/partition.d.ts | 6 + .../rxjs/add/operator/partition.js | 5 + .../rxjs/add/operator/partition.js.map | 1 + .../node_modules/rxjs/add/operator/pluck.d.ts | 6 + .../node_modules/rxjs/add/operator/pluck.js | 5 + .../rxjs/add/operator/pluck.js.map | 1 + .../rxjs/add/operator/publish.d.ts | 6 + .../node_modules/rxjs/add/operator/publish.js | 5 + .../rxjs/add/operator/publish.js.map | 1 + .../rxjs/add/operator/publishBehavior.d.ts | 6 + .../rxjs/add/operator/publishBehavior.js | 5 + .../rxjs/add/operator/publishBehavior.js.map | 1 + .../rxjs/add/operator/publishLast.d.ts | 6 + .../rxjs/add/operator/publishLast.js | 5 + .../rxjs/add/operator/publishLast.js.map | 1 + .../rxjs/add/operator/publishReplay.d.ts | 6 + .../rxjs/add/operator/publishReplay.js | 5 + .../rxjs/add/operator/publishReplay.js.map | 1 + .../node_modules/rxjs/add/operator/race.d.ts | 6 + .../node_modules/rxjs/add/operator/race.js | 5 + .../rxjs/add/operator/race.js.map | 1 + .../rxjs/add/operator/reduce.d.ts | 6 + .../node_modules/rxjs/add/operator/reduce.js | 5 + .../rxjs/add/operator/reduce.js.map | 1 + .../rxjs/add/operator/repeat.d.ts | 6 + .../node_modules/rxjs/add/operator/repeat.js | 5 + .../rxjs/add/operator/repeat.js.map | 1 + .../rxjs/add/operator/repeatWhen.d.ts | 6 + .../rxjs/add/operator/repeatWhen.js | 5 + .../rxjs/add/operator/repeatWhen.js.map | 1 + .../node_modules/rxjs/add/operator/retry.d.ts | 6 + .../node_modules/rxjs/add/operator/retry.js | 5 + .../rxjs/add/operator/retry.js.map | 1 + .../rxjs/add/operator/retryWhen.d.ts | 6 + .../rxjs/add/operator/retryWhen.js | 5 + .../rxjs/add/operator/retryWhen.js.map | 1 + .../rxjs/add/operator/sample.d.ts | 6 + .../node_modules/rxjs/add/operator/sample.js | 5 + .../rxjs/add/operator/sample.js.map | 1 + .../rxjs/add/operator/sampleTime.d.ts | 6 + .../rxjs/add/operator/sampleTime.js | 5 + .../rxjs/add/operator/sampleTime.js.map | 1 + .../node_modules/rxjs/add/operator/scan.d.ts | 6 + .../node_modules/rxjs/add/operator/scan.js | 5 + .../rxjs/add/operator/scan.js.map | 1 + .../rxjs/add/operator/sequenceEqual.d.ts | 6 + .../rxjs/add/operator/sequenceEqual.js | 5 + .../rxjs/add/operator/sequenceEqual.js.map | 1 + .../node_modules/rxjs/add/operator/share.d.ts | 6 + .../node_modules/rxjs/add/operator/share.js | 5 + .../rxjs/add/operator/share.js.map | 1 + .../rxjs/add/operator/shareReplay.d.ts | 6 + .../rxjs/add/operator/shareReplay.js | 5 + .../rxjs/add/operator/shareReplay.js.map | 1 + .../rxjs/add/operator/single.d.ts | 6 + .../node_modules/rxjs/add/operator/single.js | 5 + .../rxjs/add/operator/single.js.map | 1 + .../node_modules/rxjs/add/operator/skip.d.ts | 6 + .../node_modules/rxjs/add/operator/skip.js | 5 + .../rxjs/add/operator/skip.js.map | 1 + .../rxjs/add/operator/skipLast.d.ts | 6 + .../rxjs/add/operator/skipLast.js | 5 + .../rxjs/add/operator/skipLast.js.map | 1 + .../rxjs/add/operator/skipUntil.d.ts | 6 + .../rxjs/add/operator/skipUntil.js | 5 + .../rxjs/add/operator/skipUntil.js.map | 1 + .../rxjs/add/operator/skipWhile.d.ts | 6 + .../rxjs/add/operator/skipWhile.js | 5 + .../rxjs/add/operator/skipWhile.js.map | 1 + .../rxjs/add/operator/startWith.d.ts | 6 + .../rxjs/add/operator/startWith.js | 5 + .../rxjs/add/operator/startWith.js.map | 1 + .../rxjs/add/operator/subscribeOn.d.ts | 6 + .../rxjs/add/operator/subscribeOn.js | 5 + .../rxjs/add/operator/subscribeOn.js.map | 1 + .../rxjs/add/operator/switch.d.ts | 7 + .../node_modules/rxjs/add/operator/switch.js | 6 + .../rxjs/add/operator/switch.js.map | 1 + .../rxjs/add/operator/switchMap.d.ts | 6 + .../rxjs/add/operator/switchMap.js | 5 + .../rxjs/add/operator/switchMap.js.map | 1 + .../rxjs/add/operator/switchMapTo.d.ts | 6 + .../rxjs/add/operator/switchMapTo.js | 5 + .../rxjs/add/operator/switchMapTo.js.map | 1 + .../node_modules/rxjs/add/operator/take.d.ts | 6 + .../node_modules/rxjs/add/operator/take.js | 5 + .../rxjs/add/operator/take.js.map | 1 + .../rxjs/add/operator/takeLast.d.ts | 6 + .../rxjs/add/operator/takeLast.js | 5 + .../rxjs/add/operator/takeLast.js.map | 1 + .../rxjs/add/operator/takeUntil.d.ts | 6 + .../rxjs/add/operator/takeUntil.js | 5 + .../rxjs/add/operator/takeUntil.js.map | 1 + .../rxjs/add/operator/takeWhile.d.ts | 6 + .../rxjs/add/operator/takeWhile.js | 5 + .../rxjs/add/operator/takeWhile.js.map | 1 + .../rxjs/add/operator/throttle.d.ts | 6 + .../rxjs/add/operator/throttle.js | 5 + .../rxjs/add/operator/throttle.js.map | 1 + .../rxjs/add/operator/throttleTime.d.ts | 6 + .../rxjs/add/operator/throttleTime.js | 5 + .../rxjs/add/operator/throttleTime.js.map | 1 + .../rxjs/add/operator/timeInterval.d.ts | 6 + .../rxjs/add/operator/timeInterval.js | 5 + .../rxjs/add/operator/timeInterval.js.map | 1 + .../rxjs/add/operator/timeout.d.ts | 6 + .../node_modules/rxjs/add/operator/timeout.js | 5 + .../rxjs/add/operator/timeout.js.map | 1 + .../rxjs/add/operator/timeoutWith.d.ts | 6 + .../rxjs/add/operator/timeoutWith.js | 5 + .../rxjs/add/operator/timeoutWith.js.map | 1 + .../rxjs/add/operator/timestamp.d.ts | 6 + .../rxjs/add/operator/timestamp.js | 5 + .../rxjs/add/operator/timestamp.js.map | 1 + .../rxjs/add/operator/toArray.d.ts | 6 + .../node_modules/rxjs/add/operator/toArray.js | 5 + .../rxjs/add/operator/toArray.js.map | 1 + .../rxjs/add/operator/toPromise.d.ts | 0 .../rxjs/add/operator/toPromise.js | 3 + .../rxjs/add/operator/toPromise.js.map | 1 + .../rxjs/add/operator/window.d.ts | 6 + .../node_modules/rxjs/add/operator/window.js | 5 + .../rxjs/add/operator/window.js.map | 1 + .../rxjs/add/operator/windowCount.d.ts | 6 + .../rxjs/add/operator/windowCount.js | 5 + .../rxjs/add/operator/windowCount.js.map | 1 + .../rxjs/add/operator/windowTime.d.ts | 6 + .../rxjs/add/operator/windowTime.js | 5 + .../rxjs/add/operator/windowTime.js.map | 1 + .../rxjs/add/operator/windowToggle.d.ts | 6 + .../rxjs/add/operator/windowToggle.js | 5 + .../rxjs/add/operator/windowToggle.js.map | 1 + .../rxjs/add/operator/windowWhen.d.ts | 6 + .../rxjs/add/operator/windowWhen.js | 5 + .../rxjs/add/operator/windowWhen.js.map | 1 + .../rxjs/add/operator/withLatestFrom.d.ts | 6 + .../rxjs/add/operator/withLatestFrom.js | 5 + .../rxjs/add/operator/withLatestFrom.js.map | 1 + .../node_modules/rxjs/add/operator/zip.d.ts | 6 + .../node_modules/rxjs/add/operator/zip.js | 5 + .../node_modules/rxjs/add/operator/zip.js.map | 1 + .../rxjs/add/operator/zipAll.d.ts | 6 + .../node_modules/rxjs/add/operator/zipAll.js | 5 + .../rxjs/add/operator/zipAll.js.map | 1 + .../eslint/node_modules/rxjs/bundles/Rx.js | 20262 ++++++++++++++++ .../node_modules/rxjs/bundles/Rx.js.map | 1 + .../node_modules/rxjs/bundles/Rx.min.js | 315 + .../node_modules/rxjs/bundles/Rx.min.js.map | 8 + .../eslint/node_modules/rxjs/interfaces.d.ts | 5 + .../eslint/node_modules/rxjs/interfaces.js | 2 + .../node_modules/rxjs/interfaces.js.map | 1 + .../rxjs/observable/ArrayLikeObservable.d.ts | 18 + .../rxjs/observable/ArrayLikeObservable.js | 70 + .../observable/ArrayLikeObservable.js.map | 1 + .../rxjs/observable/ArrayObservable.d.ts | 25 + .../rxjs/observable/ArrayObservable.js | 122 + .../rxjs/observable/ArrayObservable.js.map | 1 + .../observable/BoundCallbackObservable.d.ts | 42 + .../observable/BoundCallbackObservable.js | 264 + .../observable/BoundCallbackObservable.js.map | 1 + .../BoundNodeCallbackObservable.d.ts | 29 + .../observable/BoundNodeCallbackObservable.js | 263 + .../BoundNodeCallbackObservable.js.map | 1 + .../observable/ConnectableObservable.d.ts | 22 + .../rxjs/observable/ConnectableObservable.js | 171 + .../observable/ConnectableObservable.js.map | 1 + .../rxjs/observable/DeferObservable.d.ts | 60 + .../rxjs/observable/DeferObservable.js | 99 + .../rxjs/observable/DeferObservable.js.map | 1 + .../rxjs/observable/EmptyObservable.d.ts | 62 + .../rxjs/observable/EmptyObservable.js | 81 + .../rxjs/observable/EmptyObservable.js.map | 1 + .../rxjs/observable/ErrorObservable.d.ts | 61 + .../rxjs/observable/ErrorObservable.js | 83 + .../rxjs/observable/ErrorObservable.js.map | 1 + .../rxjs/observable/ForkJoinObservable.d.ts | 31 + .../rxjs/observable/ForkJoinObservable.js | 202 + .../rxjs/observable/ForkJoinObservable.js.map | 1 + .../rxjs/observable/FromEventObservable.d.ts | 36 + .../rxjs/observable/FromEventObservable.js | 216 + .../observable/FromEventObservable.js.map | 1 + .../FromEventPatternObservable.d.ts | 65 + .../observable/FromEventPatternObservable.js | 113 + .../FromEventPatternObservable.js.map | 1 + .../rxjs/observable/FromObservable.d.ts | 16 + .../rxjs/observable/FromObservable.js | 122 + .../rxjs/observable/FromObservable.js.map | 1 + .../rxjs/observable/GenerateObservable.d.ts | 144 + .../rxjs/observable/GenerateObservable.js | 135 + .../rxjs/observable/GenerateObservable.js.map | 1 + .../rxjs/observable/IfObservable.d.ts | 16 + .../rxjs/observable/IfObservable.js | 61 + .../rxjs/observable/IfObservable.js.map | 1 + .../rxjs/observable/IntervalObservable.d.ts | 49 + .../rxjs/observable/IntervalObservable.js | 88 + .../rxjs/observable/IntervalObservable.js.map | 1 + .../rxjs/observable/IteratorObservable.d.ts | 17 + .../rxjs/observable/IteratorObservable.js | 163 + .../rxjs/observable/IteratorObservable.js.map | 1 + .../rxjs/observable/NeverObservable.d.ts | 43 + .../rxjs/observable/NeverObservable.js | 59 + .../rxjs/observable/NeverObservable.js.map | 1 + .../rxjs/observable/PairsObservable.d.ts | 48 + .../rxjs/observable/PairsObservable.js | 85 + .../rxjs/observable/PairsObservable.js.map | 1 + .../rxjs/observable/PromiseObservable.d.ts | 43 + .../rxjs/observable/PromiseObservable.js | 121 + .../rxjs/observable/PromiseObservable.js.map | 1 + .../rxjs/observable/RangeObservable.d.ts | 48 + .../rxjs/observable/RangeObservable.js | 96 + .../rxjs/observable/RangeObservable.js.map | 1 + .../rxjs/observable/ScalarObservable.d.ts | 18 + .../rxjs/observable/ScalarObservable.js | 58 + .../rxjs/observable/ScalarObservable.js.map | 1 + .../observable/SubscribeOnObservable.d.ts | 23 + .../rxjs/observable/SubscribeOnObservable.js | 51 + .../observable/SubscribeOnObservable.js.map | 1 + .../rxjs/observable/TimerObservable.d.ts | 60 + .../rxjs/observable/TimerObservable.js | 107 + .../rxjs/observable/TimerObservable.js.map | 1 + .../rxjs/observable/UsingObservable.d.ts | 15 + .../rxjs/observable/UsingObservable.js | 61 + .../rxjs/observable/UsingObservable.js.map | 1 + .../rxjs/observable/bindCallback.d.ts | 2 + .../rxjs/observable/bindCallback.js | 4 + .../rxjs/observable/bindCallback.js.map | 1 + .../rxjs/observable/bindNodeCallback.d.ts | 2 + .../rxjs/observable/bindNodeCallback.js | 4 + .../rxjs/observable/bindNodeCallback.js.map | 1 + .../rxjs/observable/combineLatest.d.ts | 20 + .../rxjs/observable/combineLatest.js | 136 + .../rxjs/observable/combineLatest.js.map | 1 + .../node_modules/rxjs/observable/concat.d.ts | 10 + .../node_modules/rxjs/observable/concat.js | 111 + .../rxjs/observable/concat.js.map | 1 + .../node_modules/rxjs/observable/defer.d.ts | 2 + .../node_modules/rxjs/observable/defer.js | 4 + .../node_modules/rxjs/observable/defer.js.map | 1 + .../rxjs/observable/dom/AjaxObservable.d.ts | 137 + .../rxjs/observable/dom/AjaxObservable.js | 426 + .../rxjs/observable/dom/AjaxObservable.js.map | 1 + .../rxjs/observable/dom/WebSocketSubject.d.ts | 83 + .../rxjs/observable/dom/WebSocketSubject.js | 250 + .../observable/dom/WebSocketSubject.js.map | 1 + .../rxjs/observable/dom/ajax.d.ts | 2 + .../node_modules/rxjs/observable/dom/ajax.js | 4 + .../rxjs/observable/dom/ajax.js.map | 1 + .../rxjs/observable/dom/webSocket.d.ts | 2 + .../rxjs/observable/dom/webSocket.js | 4 + .../rxjs/observable/dom/webSocket.js.map | 1 + .../node_modules/rxjs/observable/empty.d.ts | 2 + .../node_modules/rxjs/observable/empty.js | 4 + .../node_modules/rxjs/observable/empty.js.map | 1 + .../rxjs/observable/forkJoin.d.ts | 2 + .../node_modules/rxjs/observable/forkJoin.js | 4 + .../rxjs/observable/forkJoin.js.map | 1 + .../node_modules/rxjs/observable/from.d.ts | 2 + .../node_modules/rxjs/observable/from.js | 4 + .../node_modules/rxjs/observable/from.js.map | 1 + .../rxjs/observable/fromEvent.d.ts | 2 + .../node_modules/rxjs/observable/fromEvent.js | 4 + .../rxjs/observable/fromEvent.js.map | 1 + .../rxjs/observable/fromEventPattern.d.ts | 2 + .../rxjs/observable/fromEventPattern.js | 4 + .../rxjs/observable/fromEventPattern.js.map | 1 + .../rxjs/observable/fromPromise.d.ts | 2 + .../rxjs/observable/fromPromise.js | 4 + .../rxjs/observable/fromPromise.js.map | 1 + .../rxjs/observable/generate.d.ts | 2 + .../node_modules/rxjs/observable/generate.js | 4 + .../rxjs/observable/generate.js.map | 1 + .../node_modules/rxjs/observable/if.d.ts | 2 + .../eslint/node_modules/rxjs/observable/if.js | 4 + .../node_modules/rxjs/observable/if.js.map | 1 + .../rxjs/observable/interval.d.ts | 2 + .../node_modules/rxjs/observable/interval.js | 4 + .../rxjs/observable/interval.js.map | 1 + .../node_modules/rxjs/observable/merge.d.ts | 16 + .../node_modules/rxjs/observable/merge.js | 90 + .../node_modules/rxjs/observable/merge.js.map | 1 + .../node_modules/rxjs/observable/never.d.ts | 2 + .../node_modules/rxjs/observable/never.js | 4 + .../node_modules/rxjs/observable/never.js.map | 1 + .../node_modules/rxjs/observable/of.d.ts | 2 + .../eslint/node_modules/rxjs/observable/of.js | 4 + .../node_modules/rxjs/observable/of.js.map | 1 + .../rxjs/observable/onErrorResumeNext.d.ts | 2 + .../rxjs/observable/onErrorResumeNext.js | 4 + .../rxjs/observable/onErrorResumeNext.js.map | 1 + .../node_modules/rxjs/observable/pairs.d.ts | 2 + .../node_modules/rxjs/observable/pairs.js | 4 + .../node_modules/rxjs/observable/pairs.js.map | 1 + .../node_modules/rxjs/observable/race.d.ts | 34 + .../node_modules/rxjs/observable/race.js | 89 + .../node_modules/rxjs/observable/race.js.map | 1 + .../node_modules/rxjs/observable/range.d.ts | 2 + .../node_modules/rxjs/observable/range.js | 4 + .../node_modules/rxjs/observable/range.js.map | 1 + .../node_modules/rxjs/observable/throw.d.ts | 2 + .../node_modules/rxjs/observable/throw.js | 4 + .../node_modules/rxjs/observable/throw.js.map | 1 + .../node_modules/rxjs/observable/timer.d.ts | 2 + .../node_modules/rxjs/observable/timer.js | 4 + .../node_modules/rxjs/observable/timer.js.map | 1 + .../node_modules/rxjs/observable/using.d.ts | 2 + .../node_modules/rxjs/observable/using.js | 4 + .../node_modules/rxjs/observable/using.js.map | 1 + .../node_modules/rxjs/observable/zip.d.ts | 2 + .../node_modules/rxjs/observable/zip.js | 4 + .../node_modules/rxjs/observable/zip.js.map | 1 + .../node_modules/rxjs/operator/audit.d.ts | 42 + .../node_modules/rxjs/operator/audit.js | 47 + .../node_modules/rxjs/operator/audit.js.map | 1 + .../node_modules/rxjs/operator/auditTime.d.ts | 45 + .../node_modules/rxjs/operator/auditTime.js | 51 + .../rxjs/operator/auditTime.js.map | 1 + .../node_modules/rxjs/operator/buffer.d.ts | 34 + .../node_modules/rxjs/operator/buffer.js | 39 + .../node_modules/rxjs/operator/buffer.js.map | 1 + .../rxjs/operator/bufferCount.d.ts | 43 + .../node_modules/rxjs/operator/bufferCount.js | 49 + .../rxjs/operator/bufferCount.js.map | 1 + .../rxjs/operator/bufferTime.d.ts | 5 + .../node_modules/rxjs/operator/bufferTime.js | 67 + .../rxjs/operator/bufferTime.js.map | 1 + .../rxjs/operator/bufferToggle.d.ts | 40 + .../rxjs/operator/bufferToggle.js | 45 + .../rxjs/operator/bufferToggle.js.map | 1 + .../rxjs/operator/bufferWhen.d.ts | 35 + .../node_modules/rxjs/operator/bufferWhen.js | 40 + .../rxjs/operator/bufferWhen.js.map | 1 + .../node_modules/rxjs/operator/catch.d.ts | 61 + .../node_modules/rxjs/operator/catch.js | 66 + .../node_modules/rxjs/operator/catch.js.map | 1 + .../rxjs/operator/combineAll.d.ts | 42 + .../node_modules/rxjs/operator/combineAll.js | 47 + .../rxjs/operator/combineAll.js.map | 1 + .../rxjs/operator/combineLatest.d.ts | 15 + .../rxjs/operator/combineLatest.js | 55 + .../rxjs/operator/combineLatest.js.map | 1 + .../node_modules/rxjs/operator/concat.d.ts | 11 + .../node_modules/rxjs/operator/concat.js | 63 + .../node_modules/rxjs/operator/concat.js.map | 1 + .../node_modules/rxjs/operator/concatAll.d.ts | 4 + .../node_modules/rxjs/operator/concatAll.js | 56 + .../rxjs/operator/concatAll.js.map | 1 + .../node_modules/rxjs/operator/concatMap.d.ts | 3 + .../node_modules/rxjs/operator/concatMap.js | 67 + .../rxjs/operator/concatMap.js.map | 1 + .../rxjs/operator/concatMapTo.d.ts | 3 + .../node_modules/rxjs/operator/concatMapTo.js | 64 + .../rxjs/operator/concatMapTo.js.map | 1 + .../node_modules/rxjs/operator/count.d.ts | 50 + .../node_modules/rxjs/operator/count.js | 55 + .../node_modules/rxjs/operator/count.js.map | 1 + .../node_modules/rxjs/operator/debounce.d.ts | 44 + .../node_modules/rxjs/operator/debounce.js | 49 + .../rxjs/operator/debounce.js.map | 1 + .../rxjs/operator/debounceTime.d.ts | 49 + .../rxjs/operator/debounceTime.js | 55 + .../rxjs/operator/debounceTime.js.map | 1 + .../rxjs/operator/defaultIfEmpty.d.ts | 3 + .../rxjs/operator/defaultIfEmpty.js | 39 + .../rxjs/operator/defaultIfEmpty.js.map | 1 + .../node_modules/rxjs/operator/delay.d.ts | 42 + .../node_modules/rxjs/operator/delay.js | 48 + .../node_modules/rxjs/operator/delay.js.map | 1 + .../node_modules/rxjs/operator/delayWhen.d.ts | 47 + .../node_modules/rxjs/operator/delayWhen.js | 52 + .../rxjs/operator/delayWhen.js.map | 1 + .../rxjs/operator/dematerialize.d.ts | 43 + .../rxjs/operator/dematerialize.js | 47 + .../rxjs/operator/dematerialize.js.map | 1 + .../node_modules/rxjs/operator/distinct.d.ts | 47 + .../node_modules/rxjs/operator/distinct.js | 52 + .../rxjs/operator/distinct.js.map | 1 + .../rxjs/operator/distinctUntilChanged.d.ts | 3 + .../rxjs/operator/distinctUntilChanged.js | 47 + .../rxjs/operator/distinctUntilChanged.js.map | 1 + .../operator/distinctUntilKeyChanged.d.ts | 3 + .../rxjs/operator/distinctUntilKeyChanged.js | 65 + .../operator/distinctUntilKeyChanged.js.map | 1 + .../eslint/node_modules/rxjs/operator/do.d.ts | 4 + .../eslint/node_modules/rxjs/operator/do.js | 51 + .../node_modules/rxjs/operator/do.js.map | 1 + .../node_modules/rxjs/operator/elementAt.d.ts | 44 + .../node_modules/rxjs/operator/elementAt.js | 49 + .../rxjs/operator/elementAt.js.map | 1 + .../node_modules/rxjs/operator/every.d.ts | 16 + .../node_modules/rxjs/operator/every.js | 21 + .../node_modules/rxjs/operator/every.js.map | 1 + .../node_modules/rxjs/operator/exhaust.d.ts | 37 + .../node_modules/rxjs/operator/exhaust.js | 42 + .../node_modules/rxjs/operator/exhaust.js.map | 1 + .../rxjs/operator/exhaustMap.d.ts | 3 + .../node_modules/rxjs/operator/exhaustMap.js | 53 + .../rxjs/operator/exhaustMap.js.map | 1 + .../node_modules/rxjs/operator/expand.d.ts | 4 + .../node_modules/rxjs/operator/expand.js | 56 + .../node_modules/rxjs/operator/expand.js.map | 1 + .../node_modules/rxjs/operator/filter.d.ts | 3 + .../node_modules/rxjs/operator/filter.js | 47 + .../node_modules/rxjs/operator/filter.js.map | 1 + .../node_modules/rxjs/operator/finally.d.ts | 10 + .../node_modules/rxjs/operator/finally.js | 15 + .../node_modules/rxjs/operator/finally.js.map | 1 + .../node_modules/rxjs/operator/find.d.ts | 3 + .../eslint/node_modules/rxjs/operator/find.js | 41 + .../node_modules/rxjs/operator/find.js.map | 1 + .../node_modules/rxjs/operator/findIndex.d.ts | 36 + .../node_modules/rxjs/operator/findIndex.js | 41 + .../rxjs/operator/findIndex.js.map | 1 + .../node_modules/rxjs/operator/first.d.ts | 7 + .../node_modules/rxjs/operator/first.js | 56 + .../node_modules/rxjs/operator/first.js.map | 1 + .../node_modules/rxjs/operator/groupBy.d.ts | 8 + .../node_modules/rxjs/operator/groupBy.js | 76 + .../node_modules/rxjs/operator/groupBy.js.map | 1 + .../rxjs/operator/ignoreElements.d.ts | 12 + .../rxjs/operator/ignoreElements.js | 18 + .../rxjs/operator/ignoreElements.js.map | 1 + .../node_modules/rxjs/operator/isEmpty.d.ts | 11 + .../node_modules/rxjs/operator/isEmpty.js | 16 + .../node_modules/rxjs/operator/isEmpty.js.map | 1 + .../node_modules/rxjs/operator/last.d.ts | 7 + .../eslint/node_modules/rxjs/operator/last.js | 25 + .../node_modules/rxjs/operator/last.js.map | 1 + .../node_modules/rxjs/operator/let.d.ts | 8 + .../eslint/node_modules/rxjs/operator/let.js | 12 + .../node_modules/rxjs/operator/let.js.map | 1 + .../node_modules/rxjs/operator/map.d.ts | 35 + .../eslint/node_modules/rxjs/operator/map.js | 40 + .../node_modules/rxjs/operator/map.js.map | 1 + .../node_modules/rxjs/operator/mapTo.d.ts | 28 + .../node_modules/rxjs/operator/mapTo.js | 33 + .../node_modules/rxjs/operator/mapTo.js.map | 1 + .../rxjs/operator/materialize.d.ts | 47 + .../node_modules/rxjs/operator/materialize.js | 51 + .../rxjs/operator/materialize.js.map | 1 + .../node_modules/rxjs/operator/max.d.ts | 33 + .../eslint/node_modules/rxjs/operator/max.js | 38 + .../node_modules/rxjs/operator/max.js.map | 1 + .../node_modules/rxjs/operator/merge.d.ts | 17 + .../node_modules/rxjs/operator/merge.js | 60 + .../node_modules/rxjs/operator/merge.js.map | 1 + .../node_modules/rxjs/operator/mergeAll.d.ts | 4 + .../node_modules/rxjs/operator/mergeAll.js | 52 + .../rxjs/operator/mergeAll.js.map | 1 + .../node_modules/rxjs/operator/mergeMap.d.ts | 3 + .../node_modules/rxjs/operator/mergeMap.js | 67 + .../rxjs/operator/mergeMap.js.map | 1 + .../rxjs/operator/mergeMapTo.d.ts | 3 + .../node_modules/rxjs/operator/mergeMapTo.js | 52 + .../rxjs/operator/mergeMapTo.js.map | 1 + .../node_modules/rxjs/operator/mergeScan.d.ts | 33 + .../node_modules/rxjs/operator/mergeScan.js | 39 + .../rxjs/operator/mergeScan.js.map | 1 + .../node_modules/rxjs/operator/min.d.ts | 33 + .../eslint/node_modules/rxjs/operator/min.js | 38 + .../node_modules/rxjs/operator/min.js.map | 1 + .../node_modules/rxjs/operator/multicast.d.ts | 7 + .../node_modules/rxjs/operator/multicast.js | 102 + .../rxjs/operator/multicast.js.map | 1 + .../node_modules/rxjs/operator/observeOn.d.ts | 49 + .../node_modules/rxjs/operator/observeOn.js | 54 + .../rxjs/operator/observeOn.js.map | 1 + .../rxjs/operator/onErrorResumeNext.d.ts | 8 + .../rxjs/operator/onErrorResumeNext.js | 73 + .../rxjs/operator/onErrorResumeNext.js.map | 1 + .../node_modules/rxjs/operator/pairwise.d.ts | 37 + .../node_modules/rxjs/operator/pairwise.js | 42 + .../rxjs/operator/pairwise.js.map | 1 + .../node_modules/rxjs/operator/partition.d.ts | 43 + .../node_modules/rxjs/operator/partition.js | 48 + .../rxjs/operator/partition.js.map | 1 + .../node_modules/rxjs/operator/pluck.d.ts | 28 + .../node_modules/rxjs/operator/pluck.js | 37 + .../node_modules/rxjs/operator/pluck.js.map | 1 + .../node_modules/rxjs/operator/publish.d.ts | 6 + .../node_modules/rxjs/operator/publish.js | 21 + .../node_modules/rxjs/operator/publish.js.map | 1 + .../rxjs/operator/publishBehavior.d.ts | 9 + .../rxjs/operator/publishBehavior.js | 13 + .../rxjs/operator/publishBehavior.js.map | 1 + .../rxjs/operator/publishLast.d.ts | 8 + .../node_modules/rxjs/operator/publishLast.js | 13 + .../rxjs/operator/publishLast.js.map | 1 + .../rxjs/operator/publishReplay.d.ts | 7 + .../rxjs/operator/publishReplay.js | 17 + .../rxjs/operator/publishReplay.js.map | 1 + .../node_modules/rxjs/operator/race.d.ts | 6 + .../eslint/node_modules/rxjs/operator/race.js | 23 + .../node_modules/rxjs/operator/race.js.map | 1 + .../node_modules/rxjs/operator/reduce.d.ts | 4 + .../node_modules/rxjs/operator/reduce.js | 60 + .../node_modules/rxjs/operator/reduce.js.map | 1 + .../node_modules/rxjs/operator/repeat.d.ts | 14 + .../node_modules/rxjs/operator/repeat.js | 20 + .../node_modules/rxjs/operator/repeat.js.map | 1 + .../rxjs/operator/repeatWhen.d.ts | 16 + .../node_modules/rxjs/operator/repeatWhen.js | 21 + .../rxjs/operator/repeatWhen.js.map | 1 + .../node_modules/rxjs/operator/retry.d.ts | 18 + .../node_modules/rxjs/operator/retry.js | 24 + .../node_modules/rxjs/operator/retry.js.map | 1 + .../node_modules/rxjs/operator/retryWhen.d.ts | 16 + .../node_modules/rxjs/operator/retryWhen.js | 21 + .../rxjs/operator/retryWhen.js.map | 1 + .../node_modules/rxjs/operator/sample.d.ts | 36 + .../node_modules/rxjs/operator/sample.js | 41 + .../node_modules/rxjs/operator/sample.js.map | 1 + .../rxjs/operator/sampleTime.d.ts | 39 + .../node_modules/rxjs/operator/sampleTime.js | 45 + .../rxjs/operator/sampleTime.js.map | 1 + .../node_modules/rxjs/operator/scan.d.ts | 4 + .../eslint/node_modules/rxjs/operator/scan.js | 48 + .../node_modules/rxjs/operator/scan.js.map | 1 + .../rxjs/operator/sequenceEqual.d.ts | 54 + .../rxjs/operator/sequenceEqual.js | 59 + .../rxjs/operator/sequenceEqual.js.map | 1 + .../node_modules/rxjs/operator/share.d.ts | 18 + .../node_modules/rxjs/operator/share.js | 24 + .../node_modules/rxjs/operator/share.js.map | 1 + .../rxjs/operator/shareReplay.d.ts | 7 + .../node_modules/rxjs/operator/shareReplay.js | 12 + .../rxjs/operator/shareReplay.js.map | 1 + .../node_modules/rxjs/operator/single.d.ts | 18 + .../node_modules/rxjs/operator/single.js | 23 + .../node_modules/rxjs/operator/single.js.map | 1 + .../node_modules/rxjs/operator/skip.d.ts | 13 + .../eslint/node_modules/rxjs/operator/skip.js | 18 + .../node_modules/rxjs/operator/skip.js.map | 1 + .../node_modules/rxjs/operator/skipLast.d.ts | 34 + .../node_modules/rxjs/operator/skipLast.js | 39 + .../rxjs/operator/skipLast.js.map | 1 + .../node_modules/rxjs/operator/skipUntil.d.ts | 14 + .../node_modules/rxjs/operator/skipUntil.js | 19 + .../rxjs/operator/skipUntil.js.map | 1 + .../node_modules/rxjs/operator/skipWhile.d.ts | 14 + .../node_modules/rxjs/operator/skipWhile.js | 19 + .../rxjs/operator/skipWhile.js.map | 1 + .../node_modules/rxjs/operator/startWith.d.ts | 9 + .../node_modules/rxjs/operator/startWith.js | 26 + .../rxjs/operator/startWith.js.map | 1 + .../rxjs/operator/subscribeOn.d.ts | 14 + .../node_modules/rxjs/operator/subscribeOn.js | 19 + .../rxjs/operator/subscribeOn.js.map | 1 + .../node_modules/rxjs/operator/switch.d.ts | 44 + .../node_modules/rxjs/operator/switch.js | 49 + .../node_modules/rxjs/operator/switch.js.map | 1 + .../node_modules/rxjs/operator/switchMap.d.ts | 3 + .../node_modules/rxjs/operator/switchMap.js | 55 + .../rxjs/operator/switchMap.js.map | 1 + .../rxjs/operator/switchMapTo.d.ts | 3 + .../node_modules/rxjs/operator/switchMapTo.js | 50 + .../rxjs/operator/switchMapTo.js.map | 1 + .../node_modules/rxjs/operator/take.d.ts | 35 + .../eslint/node_modules/rxjs/operator/take.js | 40 + .../node_modules/rxjs/operator/take.js.map | 1 + .../node_modules/rxjs/operator/takeLast.d.ts | 38 + .../node_modules/rxjs/operator/takeLast.js | 43 + .../rxjs/operator/takeLast.js.map | 1 + .../node_modules/rxjs/operator/takeUntil.d.ts | 35 + .../node_modules/rxjs/operator/takeUntil.js | 40 + .../rxjs/operator/takeUntil.js.map | 1 + .../node_modules/rxjs/operator/takeWhile.d.ts | 38 + .../node_modules/rxjs/operator/takeWhile.js | 43 + .../rxjs/operator/takeWhile.js.map | 1 + .../node_modules/rxjs/operator/throttle.d.ts | 43 + .../node_modules/rxjs/operator/throttle.js | 48 + .../rxjs/operator/throttle.js.map | 1 + .../rxjs/operator/throttleTime.d.ts | 43 + .../rxjs/operator/throttleTime.js | 50 + .../rxjs/operator/throttleTime.js.map | 1 + .../rxjs/operator/timeInterval.d.ts | 11 + .../rxjs/operator/timeInterval.js | 16 + .../rxjs/operator/timeInterval.js.map | 1 + .../node_modules/rxjs/operator/timeout.d.ts | 68 + .../node_modules/rxjs/operator/timeout.js | 74 + .../node_modules/rxjs/operator/timeout.js.map | 1 + .../rxjs/operator/timeoutWith.d.ts | 4 + .../node_modules/rxjs/operator/timeoutWith.js | 57 + .../rxjs/operator/timeoutWith.js.map | 1 + .../node_modules/rxjs/operator/timestamp.d.ts | 10 + .../node_modules/rxjs/operator/timestamp.js | 15 + .../rxjs/operator/timestamp.js.map | 1 + .../node_modules/rxjs/operator/toArray.d.ts | 25 + .../node_modules/rxjs/operator/toArray.js | 30 + .../node_modules/rxjs/operator/toArray.js.map | 1 + .../node_modules/rxjs/operator/toPromise.d.ts | 2 + .../node_modules/rxjs/operator/toPromise.js | 6 + .../rxjs/operator/toPromise.js.map | 1 + .../node_modules/rxjs/operator/window.d.ts | 38 + .../node_modules/rxjs/operator/window.js | 43 + .../node_modules/rxjs/operator/window.js.map | 1 + .../rxjs/operator/windowCount.d.ts | 50 + .../node_modules/rxjs/operator/windowCount.js | 56 + .../rxjs/operator/windowCount.js.map | 1 + .../rxjs/operator/windowTime.d.ts | 65 + .../node_modules/rxjs/operator/windowTime.js | 28 + .../rxjs/operator/windowTime.js.map | 1 + .../rxjs/operator/windowToggle.d.ts | 43 + .../rxjs/operator/windowToggle.js | 48 + .../rxjs/operator/windowToggle.js.map | 1 + .../rxjs/operator/windowWhen.d.ts | 40 + .../node_modules/rxjs/operator/windowWhen.js | 45 + .../rxjs/operator/windowWhen.js.map | 1 + .../rxjs/operator/withLatestFrom.d.ts | 15 + .../rxjs/operator/withLatestFrom.js | 50 + .../rxjs/operator/withLatestFrom.js.map | 1 + .../node_modules/rxjs/operator/zip.d.ts | 16 + .../eslint/node_modules/rxjs/operator/zip.js | 18 + .../node_modules/rxjs/operator/zip.js.map | 1 + .../node_modules/rxjs/operator/zipAll.d.ts | 8 + .../node_modules/rxjs/operator/zipAll.js | 13 + .../node_modules/rxjs/operator/zipAll.js.map | 1 + .../eslint/node_modules/rxjs/operators.d.ts | 107 + .../eslint/node_modules/rxjs/operators.js | 211 + .../eslint/node_modules/rxjs/operators.js.map | 1 + .../node_modules/rxjs/operators/audit.d.ts | 43 + .../node_modules/rxjs/operators/audit.js | 118 + .../node_modules/rxjs/operators/audit.js.map | 1 + .../rxjs/operators/auditTime.d.ts | 45 + .../node_modules/rxjs/operators/auditTime.js | 52 + .../rxjs/operators/auditTime.js.map | 1 + .../node_modules/rxjs/operators/buffer.d.ts | 35 + .../node_modules/rxjs/operators/buffer.js | 78 + .../node_modules/rxjs/operators/buffer.js.map | 1 + .../rxjs/operators/bufferCount.d.ts | 43 + .../rxjs/operators/bufferCount.js | 142 + .../rxjs/operators/bufferCount.js.map | 1 + .../rxjs/operators/bufferTime.d.ts | 5 + .../node_modules/rxjs/operators/bufferTime.js | 201 + .../rxjs/operators/bufferTime.js.map | 1 + .../rxjs/operators/bufferToggle.d.ts | 41 + .../rxjs/operators/bufferToggle.js | 154 + .../rxjs/operators/bufferToggle.js.map | 1 + .../rxjs/operators/bufferWhen.d.ts | 36 + .../node_modules/rxjs/operators/bufferWhen.js | 124 + .../rxjs/operators/bufferWhen.js.map | 1 + .../rxjs/operators/catchError.d.ts | 60 + .../node_modules/rxjs/operators/catchError.js | 116 + .../rxjs/operators/catchError.js.map | 1 + .../rxjs/operators/combineAll.d.ts | 2 + .../node_modules/rxjs/operators/combineAll.js | 7 + .../rxjs/operators/combineAll.js.map | 1 + .../rxjs/operators/combineLatest.d.ts | 43 + .../rxjs/operators/combineLatest.js | 151 + .../rxjs/operators/combineLatest.js.map | 1 + .../node_modules/rxjs/operators/concat.d.ts | 12 + .../node_modules/rxjs/operators/concat.js | 63 + .../node_modules/rxjs/operators/concat.js.map | 1 + .../rxjs/operators/concatAll.d.ts | 50 + .../node_modules/rxjs/operators/concatAll.js | 55 + .../rxjs/operators/concatAll.js.map | 1 + .../rxjs/operators/concatMap.d.ts | 4 + .../node_modules/rxjs/operators/concatMap.js | 67 + .../rxjs/operators/concatMap.js.map | 1 + .../rxjs/operators/concatMapTo.d.ts | 4 + .../rxjs/operators/concatMapTo.js | 64 + .../rxjs/operators/concatMapTo.js.map | 1 + .../node_modules/rxjs/operators/count.d.ts | 51 + .../node_modules/rxjs/operators/count.js | 111 + .../node_modules/rxjs/operators/count.js.map | 1 + .../node_modules/rxjs/operators/debounce.d.ts | 45 + .../node_modules/rxjs/operators/debounce.js | 127 + .../rxjs/operators/debounce.js.map | 1 + .../rxjs/operators/debounceTime.d.ts | 49 + .../rxjs/operators/debounceTime.js | 116 + .../rxjs/operators/debounceTime.js.map | 1 + .../rxjs/operators/defaultIfEmpty.d.ts | 3 + .../rxjs/operators/defaultIfEmpty.js | 77 + .../rxjs/operators/defaultIfEmpty.js.map | 1 + .../node_modules/rxjs/operators/delay.d.ts | 42 + .../node_modules/rxjs/operators/delay.js | 136 + .../node_modules/rxjs/operators/delay.js.map | 1 + .../rxjs/operators/delayWhen.d.ts | 48 + .../node_modules/rxjs/operators/delayWhen.js | 194 + .../rxjs/operators/delayWhen.js.map | 1 + .../rxjs/operators/dematerialize.d.ts | 43 + .../rxjs/operators/dematerialize.js | 77 + .../rxjs/operators/dematerialize.js.map | 1 + .../node_modules/rxjs/operators/distinct.d.ts | 66 + .../node_modules/rxjs/operators/distinct.js | 120 + .../rxjs/operators/distinct.js.map | 1 + .../rxjs/operators/distinctUntilChanged.d.ts | 3 + .../rxjs/operators/distinctUntilChanged.js | 108 + .../operators/distinctUntilChanged.js.map | 1 + .../operators/distinctUntilKeyChanged.d.ts | 3 + .../rxjs/operators/distinctUntilKeyChanged.js | 65 + .../operators/distinctUntilKeyChanged.js.map | 1 + .../rxjs/operators/elementAt.d.ts | 44 + .../node_modules/rxjs/operators/elementAt.js | 100 + .../rxjs/operators/elementAt.js.map | 1 + .../node_modules/rxjs/operators/every.d.ts | 17 + .../node_modules/rxjs/operators/every.js | 74 + .../node_modules/rxjs/operators/every.js.map | 1 + .../node_modules/rxjs/operators/exhaust.d.ts | 37 + .../node_modules/rxjs/operators/exhaust.js | 89 + .../rxjs/operators/exhaust.js.map | 1 + .../rxjs/operators/exhaustMap.d.ts | 4 + .../node_modules/rxjs/operators/exhaustMap.js | 138 + .../rxjs/operators/exhaustMap.js.map | 1 + .../node_modules/rxjs/operators/expand.d.ts | 38 + .../node_modules/rxjs/operators/expand.js | 151 + .../node_modules/rxjs/operators/expand.js.map | 1 + .../node_modules/rxjs/operators/filter.d.ts | 3 + .../node_modules/rxjs/operators/filter.js | 94 + .../node_modules/rxjs/operators/filter.js.map | 1 + .../node_modules/rxjs/operators/finalize.d.ts | 10 + .../node_modules/rxjs/operators/finalize.js | 43 + .../rxjs/operators/finalize.js.map | 1 + .../node_modules/rxjs/operators/find.d.ts | 32 + .../node_modules/rxjs/operators/find.js | 100 + .../node_modules/rxjs/operators/find.js.map | 1 + .../rxjs/operators/findIndex.d.ts | 37 + .../node_modules/rxjs/operators/findIndex.js | 41 + .../rxjs/operators/findIndex.js.map | 1 + .../node_modules/rxjs/operators/first.d.ts | 8 + .../node_modules/rxjs/operators/first.js | 152 + .../node_modules/rxjs/operators/first.js.map | 1 + .../node_modules/rxjs/operators/groupBy.d.ts | 30 + .../node_modules/rxjs/operators/groupBy.js | 276 + .../rxjs/operators/groupBy.js.map | 1 + .../rxjs/operators/ignoreElements.d.ts | 12 + .../rxjs/operators/ignoreElements.js | 48 + .../rxjs/operators/ignoreElements.js.map | 1 + .../node_modules/rxjs/operators/isEmpty.d.ts | 2 + .../node_modules/rxjs/operators/isEmpty.js | 43 + .../rxjs/operators/isEmpty.js.map | 1 + .../node_modules/rxjs/operators/last.d.ts | 8 + .../node_modules/rxjs/operators/last.js | 119 + .../node_modules/rxjs/operators/last.js.map | 1 + .../node_modules/rxjs/operators/map.d.ts | 43 + .../eslint/node_modules/rxjs/operators/map.js | 89 + .../node_modules/rxjs/operators/map.js.map | 1 + .../node_modules/rxjs/operators/mapTo.d.ts | 28 + .../node_modules/rxjs/operators/mapTo.js | 63 + .../node_modules/rxjs/operators/mapTo.js.map | 1 + .../rxjs/operators/materialize.d.ts | 47 + .../rxjs/operators/materialize.js | 92 + .../rxjs/operators/materialize.js.map | 1 + .../node_modules/rxjs/operators/max.d.ts | 33 + .../eslint/node_modules/rxjs/operators/max.js | 41 + .../node_modules/rxjs/operators/max.js.map | 1 + .../node_modules/rxjs/operators/merge.d.ts | 18 + .../node_modules/rxjs/operators/merge.js | 60 + .../node_modules/rxjs/operators/merge.js.map | 1 + .../node_modules/rxjs/operators/mergeAll.d.ts | 46 + .../node_modules/rxjs/operators/mergeAll.js | 53 + .../rxjs/operators/mergeAll.js.map | 1 + .../node_modules/rxjs/operators/mergeMap.d.ts | 38 + .../node_modules/rxjs/operators/mergeMap.js | 173 + .../rxjs/operators/mergeMap.js.map | 1 + .../rxjs/operators/mergeMapTo.d.ts | 38 + .../node_modules/rxjs/operators/mergeMapTo.js | 155 + .../rxjs/operators/mergeMapTo.js.map | 1 + .../rxjs/operators/mergeScan.d.ts | 67 + .../node_modules/rxjs/operators/mergeScan.js | 129 + .../rxjs/operators/mergeScan.js.map | 1 + .../node_modules/rxjs/operators/min.d.ts | 33 + .../eslint/node_modules/rxjs/operators/min.js | 41 + .../node_modules/rxjs/operators/min.js.map | 1 + .../rxjs/operators/multicast.d.ts | 15 + .../node_modules/rxjs/operators/multicast.js | 59 + .../rxjs/operators/multicast.js.map | 1 + .../rxjs/operators/observeOn.d.ts | 81 + .../node_modules/rxjs/operators/observeOn.js | 115 + .../rxjs/operators/observeOn.js.map | 1 + .../rxjs/operators/onErrorResumeNext.d.ts | 16 + .../rxjs/operators/onErrorResumeNext.js | 137 + .../rxjs/operators/onErrorResumeNext.js.map | 1 + .../node_modules/rxjs/operators/pairwise.d.ts | 37 + .../node_modules/rxjs/operators/pairwise.js | 77 + .../rxjs/operators/pairwise.js.map | 1 + .../rxjs/operators/partition.d.ts | 44 + .../node_modules/rxjs/operators/partition.js | 52 + .../rxjs/operators/partition.js.map | 1 + .../node_modules/rxjs/operators/pluck.d.ts | 28 + .../node_modules/rxjs/operators/pluck.js | 57 + .../node_modules/rxjs/operators/pluck.js.map | 1 + .../node_modules/rxjs/operators/publish.d.ts | 6 + .../node_modules/rxjs/operators/publish.js | 24 + .../rxjs/operators/publish.js.map | 1 + .../rxjs/operators/publishBehavior.d.ts | 10 + .../rxjs/operators/publishBehavior.js | 14 + .../rxjs/operators/publishBehavior.js.map | 1 + .../rxjs/operators/publishLast.d.ts | 4 + .../rxjs/operators/publishLast.js | 8 + .../rxjs/operators/publishLast.js.map | 1 + .../rxjs/operators/publishReplay.d.ts | 7 + .../rxjs/operators/publishReplay.js | 14 + .../rxjs/operators/publishReplay.js.map | 1 + .../node_modules/rxjs/operators/race.d.ts | 6 + .../node_modules/rxjs/operators/race.js | 28 + .../node_modules/rxjs/operators/race.js.map | 1 + .../node_modules/rxjs/operators/reduce.d.ts | 4 + .../node_modules/rxjs/operators/reduce.js | 69 + .../node_modules/rxjs/operators/reduce.js.map | 1 + .../node_modules/rxjs/operators/refCount.d.ts | 2 + .../node_modules/rxjs/operators/refCount.js | 85 + .../rxjs/operators/refCount.js.map | 1 + .../node_modules/rxjs/operators/repeat.d.ts | 14 + .../node_modules/rxjs/operators/repeat.js | 72 + .../node_modules/rxjs/operators/repeat.js.map | 1 + .../rxjs/operators/repeatWhen.d.ts | 17 + .../node_modules/rxjs/operators/repeatWhen.js | 108 + .../rxjs/operators/repeatWhen.js.map | 1 + .../node_modules/rxjs/operators/retry.d.ts | 18 + .../node_modules/rxjs/operators/retry.js | 65 + .../node_modules/rxjs/operators/retry.js.map | 1 + .../rxjs/operators/retryWhen.d.ts | 17 + .../node_modules/rxjs/operators/retryWhen.js | 101 + .../rxjs/operators/retryWhen.js.map | 1 + .../node_modules/rxjs/operators/sample.d.ts | 37 + .../node_modules/rxjs/operators/sample.js | 88 + .../node_modules/rxjs/operators/sample.js.map | 1 + .../rxjs/operators/sampleTime.d.ts | 39 + .../node_modules/rxjs/operators/sampleTime.js | 91 + .../rxjs/operators/sampleTime.js.map | 1 + .../node_modules/rxjs/operators/scan.d.ts | 4 + .../node_modules/rxjs/operators/scan.js | 121 + .../node_modules/rxjs/operators/scan.js.map | 1 + .../rxjs/operators/sequenceEqual.d.ts | 82 + .../rxjs/operators/sequenceEqual.js | 164 + .../rxjs/operators/sequenceEqual.js.map | 1 + .../node_modules/rxjs/operators/share.d.ts | 14 + .../node_modules/rxjs/operators/share.js | 25 + .../node_modules/rxjs/operators/share.js.map | 1 + .../rxjs/operators/shareReplay.d.ts | 7 + .../rxjs/operators/shareReplay.js | 45 + .../rxjs/operators/shareReplay.js.map | 1 + .../node_modules/rxjs/operators/single.d.ts | 19 + .../node_modules/rxjs/operators/single.js | 93 + .../node_modules/rxjs/operators/single.js.map | 1 + .../node_modules/rxjs/operators/skip.d.ts | 13 + .../node_modules/rxjs/operators/skip.js | 51 + .../node_modules/rxjs/operators/skip.js.map | 1 + .../node_modules/rxjs/operators/skipLast.d.ts | 34 + .../node_modules/rxjs/operators/skipLast.js | 93 + .../rxjs/operators/skipLast.js.map | 1 + .../rxjs/operators/skipUntil.d.ts | 15 + .../node_modules/rxjs/operators/skipUntil.js | 71 + .../rxjs/operators/skipUntil.js.map | 1 + .../rxjs/operators/skipWhile.d.ts | 14 + .../node_modules/rxjs/operators/skipWhile.js | 66 + .../rxjs/operators/skipWhile.js.map | 1 + .../rxjs/operators/startWith.d.ts | 9 + .../node_modules/rxjs/operators/startWith.js | 48 + .../rxjs/operators/startWith.js.map | 1 + .../rxjs/operators/subscribeOn.d.ts | 14 + .../rxjs/operators/subscribeOn.js | 31 + .../rxjs/operators/subscribeOn.js.map | 1 + .../rxjs/operators/switchAll.d.ts | 3 + .../node_modules/rxjs/operators/switchAll.js | 8 + .../rxjs/operators/switchAll.js.map | 1 + .../rxjs/operators/switchMap.d.ts | 4 + .../node_modules/rxjs/operators/switchMap.js | 142 + .../rxjs/operators/switchMap.js.map | 1 + .../rxjs/operators/switchMapTo.d.ts | 4 + .../rxjs/operators/switchMapTo.js | 125 + .../rxjs/operators/switchMapTo.js.map | 1 + .../node_modules/rxjs/operators/take.d.ts | 35 + .../node_modules/rxjs/operators/take.js | 91 + .../node_modules/rxjs/operators/take.js.map | 1 + .../node_modules/rxjs/operators/takeLast.d.ts | 38 + .../node_modules/rxjs/operators/takeLast.js | 109 + .../rxjs/operators/takeLast.js.map | 1 + .../rxjs/operators/takeUntil.d.ts | 36 + .../node_modules/rxjs/operators/takeUntil.js | 75 + .../rxjs/operators/takeUntil.js.map | 1 + .../rxjs/operators/takeWhile.d.ts | 38 + .../node_modules/rxjs/operators/takeWhile.js | 92 + .../rxjs/operators/takeWhile.js.map | 1 + .../node_modules/rxjs/operators/tap.d.ts | 4 + .../eslint/node_modules/rxjs/operators/tap.js | 113 + .../node_modules/rxjs/operators/tap.js.map | 1 + .../node_modules/rxjs/operators/throttle.d.ts | 48 + .../node_modules/rxjs/operators/throttle.js | 142 + .../rxjs/operators/throttle.js.map | 1 + .../rxjs/operators/throttleTime.d.ts | 43 + .../rxjs/operators/throttleTime.js | 116 + .../rxjs/operators/throttleTime.js.map | 1 + .../rxjs/operators/timeInterval.d.ts | 8 + .../rxjs/operators/timeInterval.js | 53 + .../rxjs/operators/timeInterval.js.map | 1 + .../node_modules/rxjs/operators/timeout.d.ts | 68 + .../node_modules/rxjs/operators/timeout.js | 141 + .../rxjs/operators/timeout.js.map | 1 + .../rxjs/operators/timeoutWith.d.ts | 5 + .../rxjs/operators/timeoutWith.js | 128 + .../rxjs/operators/timeoutWith.js.map | 1 + .../rxjs/operators/timestamp.d.ts | 14 + .../node_modules/rxjs/operators/timestamp.js | 25 + .../rxjs/operators/timestamp.js.map | 1 + .../node_modules/rxjs/operators/toArray.d.ts | 2 + .../node_modules/rxjs/operators/toArray.js | 14 + .../rxjs/operators/toArray.js.map | 1 + .../node_modules/rxjs/operators/window.d.ts | 39 + .../node_modules/rxjs/operators/window.js | 112 + .../node_modules/rxjs/operators/window.js.map | 1 + .../rxjs/operators/windowCount.d.ts | 51 + .../rxjs/operators/windowCount.js | 133 + .../rxjs/operators/windowCount.js.map | 1 + .../rxjs/operators/windowTime.d.ts | 66 + .../node_modules/rxjs/operators/windowTime.js | 163 + .../rxjs/operators/windowTime.js.map | 1 + .../rxjs/operators/windowToggle.d.ts | 44 + .../rxjs/operators/windowToggle.js | 180 + .../rxjs/operators/windowToggle.js.map | 1 + .../rxjs/operators/windowWhen.d.ts | 41 + .../node_modules/rxjs/operators/windowWhen.js | 129 + .../rxjs/operators/windowWhen.js.map | 1 + .../rxjs/operators/withLatestFrom.d.ts | 16 + .../rxjs/operators/withLatestFrom.js | 132 + .../rxjs/operators/withLatestFrom.js.map | 1 + .../node_modules/rxjs/operators/zip.d.ts | 58 + .../eslint/node_modules/rxjs/operators/zip.js | 281 + .../node_modules/rxjs/operators/zip.js.map | 1 + .../node_modules/rxjs/operators/zipAll.d.ts | 2 + .../node_modules/rxjs/operators/zipAll.js | 7 + .../node_modules/rxjs/operators/zipAll.js.map | 1 + .../eslint/node_modules/rxjs/package.json | 198 + .../node_modules/rxjs/scheduler/Action.d.ts | 30 + .../node_modules/rxjs/scheduler/Action.js | 44 + .../node_modules/rxjs/scheduler/Action.js.map | 1 + .../rxjs/scheduler/AnimationFrameAction.d.ts | 14 + .../rxjs/scheduler/AnimationFrameAction.js | 55 + .../scheduler/AnimationFrameAction.js.map | 1 + .../scheduler/AnimationFrameScheduler.d.ts | 5 + .../rxjs/scheduler/AnimationFrameScheduler.js | 37 + .../scheduler/AnimationFrameScheduler.js.map | 1 + .../rxjs/scheduler/AsapAction.d.ts | 14 + .../node_modules/rxjs/scheduler/AsapAction.js | 55 + .../rxjs/scheduler/AsapAction.js.map | 1 + .../rxjs/scheduler/AsapScheduler.d.ts | 5 + .../rxjs/scheduler/AsapScheduler.js | 37 + .../rxjs/scheduler/AsapScheduler.js.map | 1 + .../rxjs/scheduler/AsyncAction.d.ts | 27 + .../rxjs/scheduler/AsyncAction.js | 142 + .../rxjs/scheduler/AsyncAction.js.map | 1 + .../rxjs/scheduler/AsyncScheduler.d.ts | 19 + .../rxjs/scheduler/AsyncScheduler.js | 51 + .../rxjs/scheduler/AsyncScheduler.js.map | 1 + .../rxjs/scheduler/QueueAction.d.ts | 16 + .../rxjs/scheduler/QueueAction.js | 49 + .../rxjs/scheduler/QueueAction.js.map | 1 + .../rxjs/scheduler/QueueScheduler.d.ts | 3 + .../rxjs/scheduler/QueueScheduler.js | 16 + .../rxjs/scheduler/QueueScheduler.js.map | 1 + .../rxjs/scheduler/VirtualTimeScheduler.d.ts | 33 + .../rxjs/scheduler/VirtualTimeScheduler.js | 113 + .../scheduler/VirtualTimeScheduler.js.map | 1 + .../rxjs/scheduler/animationFrame.d.ts | 32 + .../rxjs/scheduler/animationFrame.js | 35 + .../rxjs/scheduler/animationFrame.js.map | 1 + .../node_modules/rxjs/scheduler/asap.d.ts | 36 + .../node_modules/rxjs/scheduler/asap.js | 39 + .../node_modules/rxjs/scheduler/asap.js.map | 1 + .../node_modules/rxjs/scheduler/async.d.ts | 44 + .../node_modules/rxjs/scheduler/async.js | 47 + .../node_modules/rxjs/scheduler/async.js.map | 1 + .../node_modules/rxjs/scheduler/queue.d.ts | 63 + .../node_modules/rxjs/scheduler/queue.js | 66 + .../node_modules/rxjs/scheduler/queue.js.map | 1 + .../node_modules/rxjs/src/AsyncSubject.ts | 45 + .../eslint/node_modules/rxjs/src/BUILD.bazel | 18 + .../node_modules/rxjs/src/BehaviorSubject.ts | 40 + .../node_modules/rxjs/src/InnerSubscriber.ts | 29 + .../eslint/node_modules/rxjs/src/LICENSE.txt | 202 + .../eslint/node_modules/rxjs/src/MiscJSDoc.ts | 451 + .../node_modules/rxjs/src/Notification.ts | 131 + .../node_modules/rxjs/src/Observable.ts | 355 + .../eslint/node_modules/rxjs/src/Observer.ts | 36 + .../eslint/node_modules/rxjs/src/Operator.ts | 6 + .../node_modules/rxjs/src/OuterSubscriber.ts | 23 + .../eslint/node_modules/rxjs/src/README.md | 204 + .../node_modules/rxjs/src/ReplaySubject.ts | 104 + .../eslint/node_modules/rxjs/src/Rx.global.js | 5 + .../eslint/node_modules/rxjs/src/Rx.ts | 227 + .../eslint/node_modules/rxjs/src/Scheduler.ts | 63 + .../eslint/node_modules/rxjs/src/Subject.ts | 170 + .../rxjs/src/SubjectSubscription.ts | 39 + .../node_modules/rxjs/src/Subscriber.ts | 286 + .../node_modules/rxjs/src/Subscription.ts | 222 + .../eslint/node_modules/rxjs/src/WORKSPACE | 1 + .../rxjs/src/add/observable/bindCallback.ts | 10 + .../src/add/observable/bindNodeCallback.ts | 10 + .../rxjs/src/add/observable/combineLatest.ts | 10 + .../rxjs/src/add/observable/concat.ts | 10 + .../rxjs/src/add/observable/defer.ts | 10 + .../rxjs/src/add/observable/dom/ajax.ts | 11 + .../rxjs/src/add/observable/dom/webSocket.ts | 10 + .../rxjs/src/add/observable/empty.ts | 10 + .../rxjs/src/add/observable/forkJoin.ts | 10 + .../rxjs/src/add/observable/from.ts | 10 + .../rxjs/src/add/observable/fromEvent.ts | 10 + .../src/add/observable/fromEventPattern.ts | 10 + .../rxjs/src/add/observable/fromPromise.ts | 10 + .../rxjs/src/add/observable/generate.ts | 10 + .../rxjs/src/add/observable/if.ts | 4 + .../rxjs/src/add/observable/interval.ts | 10 + .../rxjs/src/add/observable/merge.ts | 10 + .../rxjs/src/add/observable/never.ts | 10 + .../rxjs/src/add/observable/of.ts | 10 + .../src/add/observable/onErrorResumeNext.ts | 10 + .../rxjs/src/add/observable/pairs.ts | 10 + .../rxjs/src/add/observable/race.ts | 10 + .../rxjs/src/add/observable/range.ts | 10 + .../rxjs/src/add/observable/throw.ts | 4 + .../rxjs/src/add/observable/timer.ts | 10 + .../rxjs/src/add/observable/using.ts | 10 + .../rxjs/src/add/observable/zip.ts | 10 + .../rxjs/src/add/operator/audit.ts | 10 + .../rxjs/src/add/operator/auditTime.ts | 10 + .../rxjs/src/add/operator/buffer.ts | 11 + .../rxjs/src/add/operator/bufferCount.ts | 11 + .../rxjs/src/add/operator/bufferTime.ts | 11 + .../rxjs/src/add/operator/bufferToggle.ts | 11 + .../rxjs/src/add/operator/bufferWhen.ts | 11 + .../rxjs/src/add/operator/catch.ts | 13 + .../rxjs/src/add/operator/combineAll.ts | 11 + .../rxjs/src/add/operator/combineLatest.ts | 11 + .../rxjs/src/add/operator/concat.ts | 11 + .../rxjs/src/add/operator/concatAll.ts | 11 + .../rxjs/src/add/operator/concatMap.ts | 11 + .../rxjs/src/add/operator/concatMapTo.ts | 11 + .../rxjs/src/add/operator/count.ts | 11 + .../rxjs/src/add/operator/debounce.ts | 11 + .../rxjs/src/add/operator/debounceTime.ts | 11 + .../rxjs/src/add/operator/defaultIfEmpty.ts | 11 + .../rxjs/src/add/operator/delay.ts | 11 + .../rxjs/src/add/operator/delayWhen.ts | 11 + .../rxjs/src/add/operator/dematerialize.ts | 11 + .../rxjs/src/add/operator/distinct.ts | 10 + .../src/add/operator/distinctUntilChanged.ts | 11 + .../add/operator/distinctUntilKeyChanged.ts | 11 + .../node_modules/rxjs/src/add/operator/do.ts | 13 + .../rxjs/src/add/operator/elementAt.ts | 11 + .../rxjs/src/add/operator/every.ts | 11 + .../rxjs/src/add/operator/exhaust.ts | 11 + .../rxjs/src/add/operator/exhaustMap.ts | 11 + .../rxjs/src/add/operator/expand.ts | 11 + .../rxjs/src/add/operator/filter.ts | 11 + .../rxjs/src/add/operator/finally.ts | 13 + .../rxjs/src/add/operator/find.ts | 11 + .../rxjs/src/add/operator/findIndex.ts | 11 + .../rxjs/src/add/operator/first.ts | 11 + .../rxjs/src/add/operator/groupBy.ts | 11 + .../rxjs/src/add/operator/ignoreElements.ts | 11 + .../rxjs/src/add/operator/isEmpty.ts | 11 + .../rxjs/src/add/operator/last.ts | 11 + .../node_modules/rxjs/src/add/operator/let.ts | 13 + .../node_modules/rxjs/src/add/operator/map.ts | 11 + .../rxjs/src/add/operator/mapTo.ts | 11 + .../rxjs/src/add/operator/materialize.ts | 11 + .../node_modules/rxjs/src/add/operator/max.ts | 11 + .../rxjs/src/add/operator/merge.ts | 11 + .../rxjs/src/add/operator/mergeAll.ts | 11 + .../rxjs/src/add/operator/mergeMap.ts | 13 + .../rxjs/src/add/operator/mergeMapTo.ts | 13 + .../rxjs/src/add/operator/mergeScan.ts | 11 + .../node_modules/rxjs/src/add/operator/min.ts | 11 + .../rxjs/src/add/operator/multicast.ts | 11 + .../rxjs/src/add/operator/observeOn.ts | 11 + .../src/add/operator/onErrorResumeNext.ts | 10 + .../rxjs/src/add/operator/pairwise.ts | 11 + .../rxjs/src/add/operator/partition.ts | 11 + .../rxjs/src/add/operator/pluck.ts | 11 + .../rxjs/src/add/operator/publish.ts | 11 + .../rxjs/src/add/operator/publishBehavior.ts | 11 + .../rxjs/src/add/operator/publishLast.ts | 11 + .../rxjs/src/add/operator/publishReplay.ts | 11 + .../rxjs/src/add/operator/race.ts | 11 + .../rxjs/src/add/operator/reduce.ts | 11 + .../rxjs/src/add/operator/repeat.ts | 11 + .../rxjs/src/add/operator/repeatWhen.ts | 11 + .../rxjs/src/add/operator/retry.ts | 11 + .../rxjs/src/add/operator/retryWhen.ts | 11 + .../rxjs/src/add/operator/sample.ts | 11 + .../rxjs/src/add/operator/sampleTime.ts | 11 + .../rxjs/src/add/operator/scan.ts | 12 + .../rxjs/src/add/operator/sequenceEqual.ts | 11 + .../rxjs/src/add/operator/share.ts | 11 + .../rxjs/src/add/operator/shareReplay.ts | 11 + .../rxjs/src/add/operator/single.ts | 11 + .../rxjs/src/add/operator/skip.ts | 11 + .../rxjs/src/add/operator/skipLast.ts | 10 + .../rxjs/src/add/operator/skipUntil.ts | 11 + .../rxjs/src/add/operator/skipWhile.ts | 11 + .../rxjs/src/add/operator/startWith.ts | 11 + .../rxjs/src/add/operator/subscribeOn.ts | 11 + .../rxjs/src/add/operator/switch.ts | 13 + .../rxjs/src/add/operator/switchMap.ts | 11 + .../rxjs/src/add/operator/switchMapTo.ts | 11 + .../rxjs/src/add/operator/take.ts | 11 + .../rxjs/src/add/operator/takeLast.ts | 10 + .../rxjs/src/add/operator/takeUntil.ts | 11 + .../rxjs/src/add/operator/takeWhile.ts | 11 + .../rxjs/src/add/operator/throttle.ts | 11 + .../rxjs/src/add/operator/throttleTime.ts | 11 + .../rxjs/src/add/operator/timeInterval.ts | 11 + .../rxjs/src/add/operator/timeout.ts | 11 + .../rxjs/src/add/operator/timeoutWith.ts | 11 + .../rxjs/src/add/operator/timestamp.ts | 10 + .../rxjs/src/add/operator/toArray.ts | 11 + .../rxjs/src/add/operator/toPromise.ts | 2 + .../rxjs/src/add/operator/window.ts | 11 + .../rxjs/src/add/operator/windowCount.ts | 11 + .../rxjs/src/add/operator/windowTime.ts | 11 + .../rxjs/src/add/operator/windowToggle.ts | 11 + .../rxjs/src/add/operator/windowWhen.ts | 11 + .../rxjs/src/add/operator/withLatestFrom.ts | 11 + .../node_modules/rxjs/src/add/operator/zip.ts | 11 + .../rxjs/src/add/operator/zipAll.ts | 11 + .../node_modules/rxjs/src/interfaces.ts | 9 + .../src/observable/ArrayLikeObservable.ts | 72 + .../rxjs/src/observable/ArrayObservable.ts | 129 + .../src/observable/BoundCallbackObservable.ts | 281 + .../observable/BoundNodeCallbackObservable.ts | 279 + .../src/observable/ConnectableObservable.ts | 180 + .../rxjs/src/observable/DeferObservable.ts | 94 + .../rxjs/src/observable/EmptyObservable.ts | 83 + .../rxjs/src/observable/ErrorObservable.ts | 85 + .../rxjs/src/observable/ForkJoinObservable.ts | 233 + .../src/observable/FromEventObservable.ts | 244 + .../observable/FromEventPatternObservable.ts | 110 + .../rxjs/src/observable/FromObservable.ts | 115 + .../rxjs/src/observable/GenerateObservable.ts | 295 + .../rxjs/src/observable/IfObservable.ts | 59 + .../rxjs/src/observable/IntervalObservable.ts | 85 + .../rxjs/src/observable/IteratorObservable.ts | 168 + .../rxjs/src/observable/NeverObservable.ts | 53 + .../rxjs/src/observable/PairsObservable.ts | 95 + .../rxjs/src/observable/PromiseObservable.ts | 130 + .../rxjs/src/observable/RangeObservable.ts | 106 + .../rxjs/src/observable/ScalarObservable.ts | 57 + .../src/observable/SubscribeOnObservable.ts | 50 + .../rxjs/src/observable/TimerObservable.ts | 115 + .../rxjs/src/observable/UsingObservable.ts | 57 + .../rxjs/src/observable/bindCallback.ts | 3 + .../rxjs/src/observable/bindNodeCallback.ts | 3 + .../rxjs/src/observable/combineLatest.ts | 161 + .../rxjs/src/observable/concat.ts | 116 + .../node_modules/rxjs/src/observable/defer.ts | 3 + .../rxjs/src/observable/dom/AjaxObservable.ts | 488 + .../rxjs/src/observable/dom/MiscJSDoc.ts | 73 + .../src/observable/dom/WebSocketSubject.ts | 280 + .../rxjs/src/observable/dom/ajax.ts | 3 + .../rxjs/src/observable/dom/webSocket.ts | 3 + .../node_modules/rxjs/src/observable/empty.ts | 3 + .../rxjs/src/observable/forkJoin.ts | 3 + .../node_modules/rxjs/src/observable/from.ts | 3 + .../rxjs/src/observable/fromEvent.ts | 3 + .../rxjs/src/observable/fromEventPattern.ts | 3 + .../rxjs/src/observable/fromPromise.ts | 3 + .../rxjs/src/observable/generate.ts | 3 + .../node_modules/rxjs/src/observable/if.ts | 3 + .../rxjs/src/observable/interval.ts | 3 + .../node_modules/rxjs/src/observable/merge.ts | 101 + .../node_modules/rxjs/src/observable/never.ts | 3 + .../node_modules/rxjs/src/observable/of.ts | 3 + .../rxjs/src/observable/onErrorResumeNext.ts | 3 + .../node_modules/rxjs/src/observable/pairs.ts | 3 + .../node_modules/rxjs/src/observable/race.ts | 100 + .../node_modules/rxjs/src/observable/range.ts | 3 + .../node_modules/rxjs/src/observable/throw.ts | 3 + .../node_modules/rxjs/src/observable/timer.ts | 3 + .../node_modules/rxjs/src/observable/using.ts | 3 + .../node_modules/rxjs/src/observable/zip.ts | 3 + .../node_modules/rxjs/src/operator/audit.ts | 47 + .../rxjs/src/operator/auditTime.ts | 50 + .../node_modules/rxjs/src/operator/buffer.ts | 39 + .../rxjs/src/operator/bufferCount.ts | 48 + .../rxjs/src/operator/bufferTime.ts | 76 + .../rxjs/src/operator/bufferToggle.ts | 46 + .../rxjs/src/operator/bufferWhen.ts | 40 + .../node_modules/rxjs/src/operator/catch.ts | 66 + .../rxjs/src/operator/combineAll.ts | 47 + .../rxjs/src/operator/combineLatest.ts | 68 + .../node_modules/rxjs/src/operator/concat.ts | 69 + .../rxjs/src/operator/concatAll.ts | 60 + .../rxjs/src/operator/concatMap.ts | 71 + .../rxjs/src/operator/concatMapTo.ts | 68 + .../node_modules/rxjs/src/operator/count.ts | 54 + .../rxjs/src/operator/debounce.ts | 49 + .../rxjs/src/operator/debounceTime.ts | 55 + .../rxjs/src/operator/defaultIfEmpty.ts | 42 + .../node_modules/rxjs/src/operator/delay.ts | 48 + .../rxjs/src/operator/delayWhen.ts | 53 + .../rxjs/src/operator/dematerialize.ts | 48 + .../rxjs/src/operator/distinct.ts | 53 + .../rxjs/src/operator/distinctUntilChanged.ts | 51 + .../src/operator/distinctUntilKeyChanged.ts | 69 + .../node_modules/rxjs/src/operator/do.ts | 58 + .../rxjs/src/operator/elementAt.ts | 49 + .../node_modules/rxjs/src/operator/every.ts | 22 + .../node_modules/rxjs/src/operator/exhaust.ts | 42 + .../rxjs/src/operator/exhaustMap.ts | 58 + .../node_modules/rxjs/src/operator/expand.ts | 61 + .../node_modules/rxjs/src/operator/filter.ts | 56 + .../node_modules/rxjs/src/operator/finally.ts | 15 + .../node_modules/rxjs/src/operator/find.ts | 49 + .../rxjs/src/operator/findIndex.ts | 40 + .../node_modules/rxjs/src/operator/first.ts | 78 + .../node_modules/rxjs/src/operator/groupBy.ts | 86 + .../rxjs/src/operator/ignoreElements.ts | 16 + .../node_modules/rxjs/src/operator/isEmpty.ts | 16 + .../node_modules/rxjs/src/operator/last.ts | 47 + .../node_modules/rxjs/src/operator/let.ts | 11 + .../node_modules/rxjs/src/operator/map.ts | 39 + .../node_modules/rxjs/src/operator/mapTo.ts | 32 + .../rxjs/src/operator/materialize.ts | 52 + .../node_modules/rxjs/src/operator/max.ts | 37 + .../node_modules/rxjs/src/operator/merge.ts | 72 + .../rxjs/src/operator/mergeAll.ts | 54 + .../rxjs/src/operator/mergeMap.ts | 71 + .../rxjs/src/operator/mergeMapTo.ts | 56 + .../rxjs/src/operator/mergeScan.ts | 41 + .../node_modules/rxjs/src/operator/min.ts | 37 + .../rxjs/src/operator/multicast.ts | 110 + .../rxjs/src/operator/observeOn.ts | 53 + .../rxjs/src/operator/onErrorResumeNext.ts | 80 + .../rxjs/src/operator/pairwise.ts | 41 + .../rxjs/src/operator/partition.ts | 46 + .../node_modules/rxjs/src/operator/pluck.ts | 32 + .../node_modules/rxjs/src/operator/publish.ts | 29 + .../rxjs/src/operator/publishBehavior.ts | 13 + .../rxjs/src/operator/publishLast.ts | 12 + .../rxjs/src/operator/publishReplay.ts | 28 + .../node_modules/rxjs/src/operator/race.ts | 24 + .../node_modules/rxjs/src/operator/reduce.ts | 65 + .../node_modules/rxjs/src/operator/repeat.ts | 19 + .../rxjs/src/operator/repeatWhen.ts | 20 + .../node_modules/rxjs/src/operator/retry.ts | 22 + .../rxjs/src/operator/retryWhen.ts | 19 + .../node_modules/rxjs/src/operator/sample.ts | 40 + .../rxjs/src/operator/sampleTime.ts | 44 + .../node_modules/rxjs/src/operator/scan.ts | 53 + .../rxjs/src/operator/sequenceEqual.ts | 59 + .../node_modules/rxjs/src/operator/share.ts | 22 + .../rxjs/src/operator/shareReplay.ts | 12 + .../node_modules/rxjs/src/operator/single.ts | 22 + .../node_modules/rxjs/src/operator/skip.ts | 17 + .../rxjs/src/operator/skipLast.ts | 38 + .../rxjs/src/operator/skipUntil.ts | 18 + .../rxjs/src/operator/skipWhile.ts | 18 + .../rxjs/src/operator/startWith.ts | 31 + .../rxjs/src/operator/subscribeOn.ts | 19 + .../node_modules/rxjs/src/operator/switch.ts | 48 + .../rxjs/src/operator/switchMap.ts | 60 + .../rxjs/src/operator/switchMapTo.ts | 57 + .../node_modules/rxjs/src/operator/take.ts | 39 + .../rxjs/src/operator/takeLast.ts | 43 + .../rxjs/src/operator/takeUntil.ts | 39 + .../rxjs/src/operator/takeWhile.ts | 42 + .../rxjs/src/operator/throttle.ts | 48 + .../rxjs/src/operator/throttleTime.ts | 51 + .../rxjs/src/operator/timeInterval.ts | 15 + .../node_modules/rxjs/src/operator/timeout.ts | 75 + .../rxjs/src/operator/timeoutWith.ts | 62 + .../rxjs/src/operator/timestamp.ts | 14 + .../node_modules/rxjs/src/operator/toArray.ts | 30 + .../rxjs/src/operator/toPromise.ts | 5 + .../node_modules/rxjs/src/operator/window.ts | 43 + .../rxjs/src/operator/windowCount.ts | 56 + .../rxjs/src/operator/windowTime.ts | 102 + .../rxjs/src/operator/windowToggle.ts | 49 + .../rxjs/src/operator/windowWhen.ts | 45 + .../rxjs/src/operator/withLatestFrom.ts | 61 + .../node_modules/rxjs/src/operator/zip.ts | 30 + .../node_modules/rxjs/src/operator/zipAll.ts | 12 + .../eslint/node_modules/rxjs/src/operators.ts | 108 + .../node_modules/rxjs/src/operators/audit.ts | 122 + .../rxjs/src/operators/auditTime.ts | 51 + .../node_modules/rxjs/src/operators/buffer.ts | 81 + .../rxjs/src/operators/bufferCount.ts | 145 + .../rxjs/src/operators/bufferTime.ts | 237 + .../rxjs/src/operators/bufferToggle.ts | 174 + .../rxjs/src/operators/bufferWhen.ts | 136 + .../rxjs/src/operators/catchError.ts | 115 + .../rxjs/src/operators/combineAll.ts | 7 + .../rxjs/src/operators/combineLatest.ts | 169 + .../node_modules/rxjs/src/operators/concat.ts | 70 + .../rxjs/src/operators/concatAll.ts | 55 + .../rxjs/src/operators/concatMap.ts | 72 + .../rxjs/src/operators/concatMapTo.ts | 71 + .../node_modules/rxjs/src/operators/count.ts | 111 + .../rxjs/src/operators/debounce.ts | 137 + .../rxjs/src/operators/debounceTime.ts | 119 + .../rxjs/src/operators/defaultIfEmpty.ts | 78 + .../node_modules/rxjs/src/operators/delay.ts | 150 + .../rxjs/src/operators/delayWhen.ts | 205 + .../rxjs/src/operators/dematerialize.ts | 72 + .../rxjs/src/operators/distinct.ts | 124 + .../src/operators/distinctUntilChanged.ts | 117 + .../src/operators/distinctUntilKeyChanged.ts | 68 + .../rxjs/src/operators/elementAt.ts | 96 + .../node_modules/rxjs/src/operators/every.ts | 75 + .../rxjs/src/operators/exhaust.ts | 88 + .../rxjs/src/operators/exhaustMap.ts | 152 + .../node_modules/rxjs/src/operators/expand.ts | 169 + .../node_modules/rxjs/src/operators/filter.ts | 99 + .../rxjs/src/operators/finalize.ts | 38 + .../node_modules/rxjs/src/operators/find.ts | 106 + .../rxjs/src/operators/findIndex.ts | 41 + .../node_modules/rxjs/src/operators/first.ts | 166 + .../rxjs/src/operators/groupBy.ts | 295 + .../rxjs/src/operators/ignoreElements.ts | 38 + .../rxjs/src/operators/isEmpty.ts | 40 + .../node_modules/rxjs/src/operators/last.ts | 133 + .../node_modules/rxjs/src/operators/map.ts | 85 + .../node_modules/rxjs/src/operators/mapTo.ts | 66 + .../rxjs/src/operators/materialize.ts | 88 + .../node_modules/rxjs/src/operators/max.ts | 41 + .../node_modules/rxjs/src/operators/merge.ts | 72 + .../rxjs/src/operators/mergeAll.ts | 53 + .../rxjs/src/operators/mergeMap.ts | 179 + .../rxjs/src/operators/mergeMapTo.ts | 168 + .../rxjs/src/operators/mergeScan.ts | 133 + .../node_modules/rxjs/src/operators/min.ts | 40 + .../rxjs/src/operators/multicast.ts | 68 + .../rxjs/src/operators/observeOn.ts | 115 + .../rxjs/src/operators/onErrorResumeNext.ts | 156 + .../rxjs/src/operators/pairwise.ts | 73 + .../rxjs/src/operators/partition.ts | 53 + .../node_modules/rxjs/src/operators/pluck.ts | 54 + .../rxjs/src/operators/publish.ts | 30 + .../rxjs/src/operators/publishBehavior.ts | 15 + .../rxjs/src/operators/publishLast.ts | 9 + .../rxjs/src/operators/publishReplay.ts | 27 + .../node_modules/rxjs/src/operators/race.ts | 31 + .../node_modules/rxjs/src/operators/reduce.ts | 74 + .../rxjs/src/operators/refCount.ts | 94 + .../node_modules/rxjs/src/operators/repeat.ts | 63 + .../rxjs/src/operators/repeatWhen.ts | 123 + .../node_modules/rxjs/src/operators/retry.ts | 60 + .../rxjs/src/operators/retryWhen.ts | 118 + .../node_modules/rxjs/src/operators/sample.ts | 91 + .../rxjs/src/operators/sampleTime.ts | 94 + .../node_modules/rxjs/src/operators/scan.ts | 115 + .../rxjs/src/operators/sequenceEqual.ts | 163 + .../node_modules/rxjs/src/operators/share.ts | 26 + .../rxjs/src/operators/shareReplay.ts | 51 + .../node_modules/rxjs/src/operators/single.ts | 95 + .../node_modules/rxjs/src/operators/skip.ts | 48 + .../rxjs/src/operators/skipLast.ts | 91 + .../rxjs/src/operators/skipUntil.ts | 77 + .../rxjs/src/operators/skipWhile.ts | 65 + .../rxjs/src/operators/startWith.ts | 52 + .../rxjs/src/operators/subscribeOn.ts | 35 + .../rxjs/src/operators/switchAll.ts | 8 + .../rxjs/src/operators/switchMap.ts | 155 + .../rxjs/src/operators/switchMapTo.ts | 141 + .../node_modules/rxjs/src/operators/take.ts | 87 + .../rxjs/src/operators/takeLast.ts | 109 + .../rxjs/src/operators/takeUntil.ts | 80 + .../rxjs/src/operators/takeWhile.ts | 89 + .../node_modules/rxjs/src/operators/tap.ts | 122 + .../rxjs/src/operators/throttle.ts | 160 + .../rxjs/src/operators/throttleTime.ts | 123 + .../rxjs/src/operators/timeInterval.ts | 49 + .../rxjs/src/operators/timeout.ts | 148 + .../rxjs/src/operators/timeoutWith.ts | 141 + .../rxjs/src/operators/timestamp.ts | 21 + .../rxjs/src/operators/toArray.ts | 14 + .../node_modules/rxjs/src/operators/window.ts | 122 + .../rxjs/src/operators/windowCount.ts | 134 + .../rxjs/src/operators/windowTime.ts | 262 + .../rxjs/src/operators/windowToggle.ts | 206 + .../rxjs/src/operators/windowWhen.ts | 140 + .../rxjs/src/operators/withLatestFrom.ts | 149 + .../node_modules/rxjs/src/operators/zip.ts | 344 + .../node_modules/rxjs/src/operators/zipAll.ts | 7 + .../node_modules/rxjs/src/scheduler/Action.ts | 35 + .../src/scheduler/AnimationFrameAction.ts | 48 + .../src/scheduler/AnimationFrameScheduler.ts | 31 + .../rxjs/src/scheduler/AsapAction.ts | 48 + .../rxjs/src/scheduler/AsapScheduler.ts | 31 + .../rxjs/src/scheduler/AsyncAction.ts | 154 + .../rxjs/src/scheduler/AsyncScheduler.ts | 47 + .../rxjs/src/scheduler/QueueAction.ts | 43 + .../rxjs/src/scheduler/QueueScheduler.ts | 4 + .../src/scheduler/VirtualTimeScheduler.ts | 105 + .../rxjs/src/scheduler/animationFrame.ts | 35 + .../node_modules/rxjs/src/scheduler/asap.ts | 39 + .../node_modules/rxjs/src/scheduler/async.ts | 47 + .../node_modules/rxjs/src/scheduler/queue.ts | 66 + .../node_modules/rxjs/src/symbol/iterator.ts | 38 + .../rxjs/src/symbol/observable.ts | 26 + .../rxjs/src/symbol/rxSubscriber.ts | 11 + .../rxjs/src/testing/ColdObservable.ts | 47 + .../rxjs/src/testing/HotObservable.ts | 52 + .../rxjs/src/testing/SubscriptionLog.ts | 5 + .../rxjs/src/testing/SubscriptionLoggable.ts | 21 + .../rxjs/src/testing/TestMessage.ts | 6 + .../rxjs/src/testing/TestScheduler.ts | 244 + .../node_modules/rxjs/src/tsconfig.json | 32 + .../rxjs/src/util/AnimationFrame.ts | 29 + .../rxjs/src/util/ArgumentOutOfRangeError.ts | 18 + .../node_modules/rxjs/src/util/EmptyError.ts | 18 + .../node_modules/rxjs/src/util/FastMap.ts | 30 + .../node_modules/rxjs/src/util/Immediate.ts | 238 + .../eslint/node_modules/rxjs/src/util/Map.ts | 4 + .../node_modules/rxjs/src/util/MapPolyfill.ts | 43 + .../rxjs/src/util/ObjectUnsubscribedError.ts | 17 + .../eslint/node_modules/rxjs/src/util/Set.ts | 40 + .../rxjs/src/util/TimeoutError.ts | 15 + .../rxjs/src/util/UnsubscriptionError.ts | 15 + .../node_modules/rxjs/src/util/applyMixins.ts | 10 + .../node_modules/rxjs/src/util/assign.ts | 20 + .../node_modules/rxjs/src/util/errorObject.ts | 2 + .../node_modules/rxjs/src/util/identity.ts | 3 + .../node_modules/rxjs/src/util/isArray.ts | 1 + .../node_modules/rxjs/src/util/isArrayLike.ts | 1 + .../node_modules/rxjs/src/util/isDate.ts | 3 + .../node_modules/rxjs/src/util/isFunction.ts | 3 + .../node_modules/rxjs/src/util/isNumeric.ts | 9 + .../node_modules/rxjs/src/util/isObject.ts | 3 + .../node_modules/rxjs/src/util/isPromise.ts | 3 + .../node_modules/rxjs/src/util/isScheduler.ts | 4 + .../eslint/node_modules/rxjs/src/util/noop.ts | 2 + .../eslint/node_modules/rxjs/src/util/not.ts | 8 + .../eslint/node_modules/rxjs/src/util/pipe.ts | 34 + .../eslint/node_modules/rxjs/src/util/root.ts | 31 + .../rxjs/src/util/subscribeToResult.ts | 85 + .../rxjs/src/util/toSubscriber.ts | 25 + .../node_modules/rxjs/src/util/tryCatch.ts | 17 + .../node_modules/rxjs/symbol/iterator.d.ts | 6 + .../node_modules/rxjs/symbol/iterator.js | 38 + .../node_modules/rxjs/symbol/iterator.js.map | 1 + .../node_modules/rxjs/symbol/observable.d.ts | 6 + .../node_modules/rxjs/symbol/observable.js | 26 + .../rxjs/symbol/observable.js.map | 1 + .../rxjs/symbol/rxSubscriber.d.ts | 5 + .../node_modules/rxjs/symbol/rxSubscriber.js | 10 + .../rxjs/symbol/rxSubscriber.js.map | 1 + .../rxjs/util/AnimationFrame.d.ts | 6 + .../node_modules/rxjs/util/AnimationFrame.js | 34 + .../rxjs/util/AnimationFrame.js.map | 1 + .../rxjs/util/ArgumentOutOfRangeError.d.ts | 13 + .../rxjs/util/ArgumentOutOfRangeError.js | 28 + .../rxjs/util/ArgumentOutOfRangeError.js.map | 1 + .../node_modules/rxjs/util/EmptyError.d.ts | 13 + .../node_modules/rxjs/util/EmptyError.js | 28 + .../node_modules/rxjs/util/EmptyError.js.map | 1 + .../node_modules/rxjs/util/FastMap.d.ts | 8 + .../eslint/node_modules/rxjs/util/FastMap.js | 31 + .../node_modules/rxjs/util/FastMap.js.map | 1 + .../node_modules/rxjs/util/Immediate.d.ts | 23 + .../node_modules/rxjs/util/Immediate.js | 209 + .../node_modules/rxjs/util/Immediate.js.map | 1 + .../eslint/node_modules/rxjs/util/Map.d.ts | 1 + .../eslint/node_modules/rxjs/util/Map.js | 5 + .../eslint/node_modules/rxjs/util/Map.js.map | 1 + .../node_modules/rxjs/util/MapPolyfill.d.ts | 10 + .../node_modules/rxjs/util/MapPolyfill.js | 47 + .../node_modules/rxjs/util/MapPolyfill.js.map | 1 + .../rxjs/util/ObjectUnsubscribedError.d.ts | 12 + .../rxjs/util/ObjectUnsubscribedError.js | 27 + .../rxjs/util/ObjectUnsubscribedError.js.map | 1 + .../eslint/node_modules/rxjs/util/Set.d.ts | 11 + .../eslint/node_modules/rxjs/util/Set.js | 33 + .../eslint/node_modules/rxjs/util/Set.js.map | 1 + .../node_modules/rxjs/util/TimeoutError.d.ts | 10 + .../node_modules/rxjs/util/TimeoutError.js | 25 + .../rxjs/util/TimeoutError.js.map | 1 + .../rxjs/util/UnsubscriptionError.d.ts | 8 + .../rxjs/util/UnsubscriptionError.js | 25 + .../rxjs/util/UnsubscriptionError.js.map | 1 + .../node_modules/rxjs/util/applyMixins.d.ts | 1 + .../node_modules/rxjs/util/applyMixins.js | 13 + .../node_modules/rxjs/util/applyMixins.js.map | 1 + .../eslint/node_modules/rxjs/util/assign.d.ts | 3 + .../eslint/node_modules/rxjs/util/assign.js | 26 + .../node_modules/rxjs/util/assign.js.map | 1 + .../node_modules/rxjs/util/errorObject.d.ts | 1 + .../node_modules/rxjs/util/errorObject.js | 4 + .../node_modules/rxjs/util/errorObject.js.map | 1 + .../node_modules/rxjs/util/identity.d.ts | 1 + .../eslint/node_modules/rxjs/util/identity.js | 6 + .../node_modules/rxjs/util/identity.js.map | 1 + .../node_modules/rxjs/util/isArray.d.ts | 1 + .../eslint/node_modules/rxjs/util/isArray.js | 3 + .../node_modules/rxjs/util/isArray.js.map | 1 + .../node_modules/rxjs/util/isArrayLike.d.ts | 1 + .../node_modules/rxjs/util/isArrayLike.js | 3 + .../node_modules/rxjs/util/isArrayLike.js.map | 1 + .../eslint/node_modules/rxjs/util/isDate.d.ts | 1 + .../eslint/node_modules/rxjs/util/isDate.js | 6 + .../node_modules/rxjs/util/isDate.js.map | 1 + .../node_modules/rxjs/util/isFunction.d.ts | 1 + .../node_modules/rxjs/util/isFunction.js | 6 + .../node_modules/rxjs/util/isFunction.js.map | 1 + .../node_modules/rxjs/util/isNumeric.d.ts | 1 + .../node_modules/rxjs/util/isNumeric.js | 12 + .../node_modules/rxjs/util/isNumeric.js.map | 1 + .../node_modules/rxjs/util/isObject.d.ts | 1 + .../eslint/node_modules/rxjs/util/isObject.js | 6 + .../node_modules/rxjs/util/isObject.js.map | 1 + .../node_modules/rxjs/util/isPromise.d.ts | 1 + .../node_modules/rxjs/util/isPromise.js | 6 + .../node_modules/rxjs/util/isPromise.js.map | 1 + .../node_modules/rxjs/util/isScheduler.d.ts | 2 + .../node_modules/rxjs/util/isScheduler.js | 6 + .../node_modules/rxjs/util/isScheduler.js.map | 1 + .../eslint/node_modules/rxjs/util/noop.d.ts | 1 + .../eslint/node_modules/rxjs/util/noop.js | 5 + .../eslint/node_modules/rxjs/util/noop.js.map | 1 + .../eslint/node_modules/rxjs/util/not.d.ts | 1 + .../eslint/node_modules/rxjs/util/not.js | 11 + .../eslint/node_modules/rxjs/util/not.js.map | 1 + .../eslint/node_modules/rxjs/util/pipe.d.ts | 12 + .../eslint/node_modules/rxjs/util/pipe.js | 25 + .../eslint/node_modules/rxjs/util/pipe.js.map | 1 + .../eslint/node_modules/rxjs/util/root.d.ts | 2 + .../eslint/node_modules/rxjs/util/root.js | 19 + .../eslint/node_modules/rxjs/util/root.js.map | 1 + .../rxjs/util/subscribeToResult.d.ts | 3 + .../rxjs/util/subscribeToResult.js | 79 + .../rxjs/util/subscribeToResult.js.map | 1 + .../node_modules/rxjs/util/toSubscriber.d.ts | 3 + .../node_modules/rxjs/util/toSubscriber.js | 20 + .../rxjs/util/toSubscriber.js.map | 1 + .../node_modules/rxjs/util/tryCatch.d.ts | 1 + .../eslint/node_modules/rxjs/util/tryCatch.js | 19 + .../node_modules/rxjs/util/tryCatch.js.map | 1 + .../eslint/node_modules/safe-buffer/README.md | 584 - .../eslint/node_modules/safe-buffer/index.js | 62 - .../node_modules/safe-buffer/package.json | 63 - .../eslint/node_modules/safer-buffer/LICENSE | 21 + .../safer-buffer/Porting-Buffer.md | 268 + .../node_modules/safer-buffer/Readme.md | 156 + .../node_modules/safer-buffer/dangerous.js | 58 + .../node_modules/safer-buffer/package.json | 60 + .../eslint/node_modules/safer-buffer/safer.js | 77 + .../eslint/node_modules/safer-buffer/tests.js | 406 + .../eslint/node_modules/semver/package.json | 15 +- .../eslint/node_modules/semver/semver.js | 2 +- .../node_modules/shebang-command/package.json | 2 +- .../node_modules/shebang-regex/package.json | 2 +- .../node_modules/signal-exit/package.json | 2 +- .../node_modules/slice-ansi/package.json | 2 +- .../node_modules/sprintf-js/package.json | 2 +- .../node_modules/state-toggle/history.md | 6 - .../eslint/node_modules/state-toggle/index.js | 54 +- .../node_modules/state-toggle/package.json | 62 +- .../node_modules/state-toggle/readme.md | 23 +- .../node_modules/string-width/package.json | 2 +- .../string.prototype.matchall/.eslintignore | 1 + .../string.prototype.matchall/LICENSE | 22 + .../string.prototype.matchall/README.md | 80 + .../string.prototype.matchall/auto.js | 3 + .../helpers/MatchAllIterator.js | 33 + .../helpers/RegExpStringIterator.js | 72 + .../helpers/hidden.js | 38 + .../implementation.js | 27 + .../string.prototype.matchall/index.js | 18 + .../string.prototype.matchall/package.json | 85 + .../string.prototype.matchall/polyfill.js | 7 + .../regexp-matchall.js | 18 + .../string.prototype.matchall/shim.js | 31 + .../node_modules/string_decoder/LICENSE | 48 - .../node_modules/string_decoder/README.md | 28 - .../string_decoder/lib/string_decoder.js | 272 - .../node_modules/string_decoder/package.json | 56 - .../node_modules/ansi-regex/package.json | 2 +- .../node_modules/strip-ansi/package.json | 2 +- .../strip-json-comments/package.json | 12 +- .../node_modules/supports-color/package.json | 2 +- .../symbol-observable/es/index.js | 12 + .../symbol-observable/es/ponyfill.js | 17 + .../node_modules/symbol-observable/index.d.ts | 2 + .../node_modules/symbol-observable/index.js | 1 + .../symbol-observable/lib/index.js | 22 + .../symbol-observable/lib/ponyfill.js | 23 + .../node_modules/symbol-observable/license | 22 + .../symbol-observable/package.json | 77 + .../node_modules/symbol-observable/readme.md | 31 + .../eslint/node_modules/table/README.md | 2 +- .../node_modules/table/dist/alignString.js | 12 +- .../table/dist/calculateCellHeight.js | 4 +- .../dist/calculateMaximumColumnWidthIndex.js | 10 +- .../table/dist/calculateRowHeightIndex.js | 6 +- .../node_modules/table/dist/createStream.js | 4 +- .../node_modules/table/dist/drawBorder.js | 12 +- .../node_modules/table/dist/drawTable.js | 6 +- .../node_modules/table/dist/makeConfig.js | 2 +- .../table/dist/mapDataUsingRowHeightIndex.js | 6 +- .../node_modules/table/dist/padTableData.js | 12 +- .../table/dist/truncateTableData.js | 4 +- .../node_modules/table/dist/wrapString.js | 6 +- .../node_modules/table/dist/wrapWord.js | 6 +- .../eslint/node_modules/table/package.json | 35 +- .../node_modules/text-table/package.json | 12 +- .../eslint/node_modules/through/package.json | 2 +- .../node_modules/trim-trailing-lines/index.js | 16 +- .../trim-trailing-lines/package.json | 49 +- .../trim-trailing-lines/readme.md | 8 +- .../eslint/node_modules/trim/package.json | 2 +- .../eslint/node_modules/trough/index.js | 84 +- .../eslint/node_modules/trough/package.json | 42 +- .../eslint/node_modules/trough/readme.md | 106 +- .../node_modules/type-check/package.json | 2 +- .../eslint/node_modules/typedarray/LICENSE | 35 - .../eslint/node_modules/typedarray/index.js | 630 - .../node_modules/typedarray/package.json | 83 - .../node_modules/typedarray/readme.markdown | 61 - .../eslint/node_modules/unherit/index.js | 64 +- .../eslint/node_modules/unherit/package.json | 61 +- .../eslint/node_modules/unherit/readme.md | 13 +- .../eslint/node_modules/unified/index.js | 340 +- .../eslint/node_modules/unified/package.json | 46 +- .../eslint/node_modules/unified/readme.md | 258 +- .../node_modules/unist-util-is/index.js | 66 +- .../node_modules/unist-util-is/package.json | 41 +- .../node_modules/unist-util-is/readme.md | 44 +- .../unist-util-remove-position/index.js | 14 +- .../unist-util-remove-position/package.json | 45 +- .../unist-util-remove-position/readme.md | 20 +- .../unist-util-stringify-position/index.js | 38 +- .../package.json | 48 +- .../unist-util-stringify-position/readme.md | 45 +- .../node_modules/unist-util-visit/index.js | 56 +- .../unist-util-visit/package.json | 45 +- .../node_modules/unist-util-visit/readme.md | 20 +- .../eslint/node_modules/uri-js/README.md | 199 + .../node_modules/uri-js/dist/es5/uri.all.d.ts | 59 + .../node_modules/uri-js/dist/es5/uri.all.js | 1389 ++ .../uri-js/dist/es5/uri.all.js.map | 1 + .../uri-js/dist/es5/uri.all.min.d.ts | 59 + .../uri-js/dist/es5/uri.all.min.js | 3 + .../uri-js/dist/es5/uri.all.min.js.map | 1 + .../uri-js/dist/esnext/index.d.ts | 1 + .../node_modules/uri-js/dist/esnext/index.js | 13 + .../uri-js/dist/esnext/index.js.map | 1 + .../uri-js/dist/esnext/regexps-iri.d.ts | 3 + .../uri-js/dist/esnext/regexps-iri.js | 3 + .../uri-js/dist/esnext/regexps-iri.js.map | 1 + .../uri-js/dist/esnext/regexps-uri.d.ts | 4 + .../uri-js/dist/esnext/regexps-uri.js | 42 + .../uri-js/dist/esnext/regexps-uri.js.map | 1 + .../uri-js/dist/esnext/schemes/http.d.ts | 3 + .../uri-js/dist/esnext/schemes/http.js | 27 + .../uri-js/dist/esnext/schemes/http.js.map | 1 + .../uri-js/dist/esnext/schemes/https.d.ts | 3 + .../uri-js/dist/esnext/schemes/https.js | 9 + .../uri-js/dist/esnext/schemes/https.js.map | 1 + .../uri-js/dist/esnext/schemes/mailto.d.ts | 12 + .../uri-js/dist/esnext/schemes/mailto.js | 148 + .../uri-js/dist/esnext/schemes/mailto.js.map | 1 + .../uri-js/dist/esnext/schemes/urn-uuid.d.ts | 7 + .../uri-js/dist/esnext/schemes/urn-uuid.js | 23 + .../dist/esnext/schemes/urn-uuid.js.map | 1 + .../uri-js/dist/esnext/schemes/urn.d.ts | 10 + .../uri-js/dist/esnext/schemes/urn.js | 49 + .../uri-js/dist/esnext/schemes/urn.js.map | 1 + .../node_modules/uri-js/dist/esnext/uri.d.ts | 59 + .../node_modules/uri-js/dist/esnext/uri.js | 480 + .../uri-js/dist/esnext/uri.js.map | 1 + .../node_modules/uri-js/dist/esnext/util.d.ts | 6 + .../node_modules/uri-js/dist/esnext/util.js | 36 + .../uri-js/dist/esnext/util.js.map | 1 + .../eslint/node_modules/uri-js/package.json | 93 + .../node_modules/uri-js/rollup.config.js | 32 + .../eslint/node_modules/uri-js/src/index.ts | 18 + .../node_modules/uri-js/src/punycode.d.ts | 24 + .../node_modules/uri-js/src/regexps-iri.ts | 4 + .../node_modules/uri-js/src/regexps-uri.ts | 89 + .../node_modules/uri-js/src/schemes/http.ts | 36 + .../node_modules/uri-js/src/schemes/https.ts | 11 + .../node_modules/uri-js/src/schemes/mailto.ts | 182 + .../uri-js/src/schemes/urn-uuid.ts | 36 + .../node_modules/uri-js/src/schemes/urn.ts | 69 + .../eslint/node_modules/uri-js/src/uri.ts | 556 + .../eslint/node_modules/uri-js/src/util.ts | 40 + .../eslint/node_modules/uri-js/tsconfig.json | 20 + .../eslint/node_modules/uri-js/yarn.lock | 1902 ++ .../node_modules/util-deprecate/README.md | 53 - .../node_modules/util-deprecate/browser.js | 67 - .../node_modules/util-deprecate/node.js | 6 - .../node_modules/util-deprecate/package.json | 56 - .../node_modules/vfile-location/index.js | 44 +- .../node_modules/vfile-location/package.json | 43 +- .../node_modules/vfile-location/readme.md | 22 +- .../node_modules/vfile-message/index.js | 86 +- .../node_modules/vfile-message/package.json | 43 +- .../node_modules/vfile-message/readme.md | 23 +- .../eslint/node_modules/vfile/package.json | 2 +- .../eslint/node_modules/which/package.json | 16 +- .../eslint/node_modules/wordwrap/package.json | 2 +- .../eslint/node_modules/wrappy/package.json | 2 +- .../eslint/node_modules/write/package.json | 2 +- .../node_modules/x-is-function/README.md | 41 - .../node_modules/x-is-function/index.js | 3 - .../node_modules/x-is-function/package.json | 46 - .../node_modules/x-is-string/package.json | 2 +- .../eslint/node_modules/xtend/package.json | 2 +- .../eslint/node_modules/yallist/LICENSE | 15 - .../eslint/node_modules/yallist/README.md | 204 - .../eslint/node_modules/yallist/iterator.js | 7 - .../eslint/node_modules/yallist/package.json | 62 - .../eslint/node_modules/yallist/yallist.js | 370 - tools/node_modules/eslint/package.json | 99 +- 4385 files changed, 155270 insertions(+), 46748 deletions(-) delete mode 100644 tools/node_modules/eslint/conf/blank-script.json create mode 100644 tools/node_modules/eslint/lib/rules/max-classes-per-file.js create mode 100644 tools/node_modules/eslint/lib/rules/max-lines-per-function.js create mode 100644 tools/node_modules/eslint/lib/rules/prefer-object-spread.js create mode 100644 tools/node_modules/eslint/messages/all-files-ignored.txt create mode 100644 tools/node_modules/eslint/messages/failed-to-read-json.txt create mode 100644 tools/node_modules/eslint/messages/file-not-found.txt delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/.tern-project delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/AUTHORS delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/README.md delete mode 100755 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/bin/acorn delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/bin/generate-identifier-regex.js delete mode 100755 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/bin/update_authors.sh delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/dist/acorn.es.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/dist/acorn.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/dist/acorn_loose.es.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/dist/acorn_loose.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/dist/walk.es.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/dist/walk.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/package.json delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/rollup/config.bin.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/rollup/config.loose.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/rollup/config.main.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/rollup/config.walk.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/bin/acorn.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/expression.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/identifier.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/index.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/location.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/locutil.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/loose/expression.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/loose/index.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/loose/parseutil.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/loose/state.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/loose/statement.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/loose/tokenize.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/lval.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/node.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/options.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/parseutil.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/state.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/statement.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/tokencontext.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/tokenize.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/tokentype.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/util.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/walk/index.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/src/whitespace.js delete mode 100644 tools/node_modules/eslint/node_modules/acorn/yarn-error.log delete mode 100644 tools/node_modules/eslint/node_modules/ajv-keywords/keywords/if.js create mode 100644 tools/node_modules/eslint/node_modules/ajv-keywords/keywords/transform.js delete mode 100644 tools/node_modules/eslint/node_modules/ajv/dist/nodent.min.js delete mode 100644 tools/node_modules/eslint/node_modules/ajv/dist/regenerator.min.js delete mode 100644 tools/node_modules/eslint/node_modules/ajv/lib/compile/_rules.js rename tools/node_modules/eslint/node_modules/ajv/lib/{$data.js => data.js} (96%) create mode 100644 tools/node_modules/eslint/node_modules/ajv/lib/dot/comment.jst create mode 100644 tools/node_modules/eslint/node_modules/ajv/lib/dot/if.jst create mode 100644 tools/node_modules/eslint/node_modules/ajv/lib/dotjs/comment.js create mode 100644 tools/node_modules/eslint/node_modules/ajv/lib/dotjs/if.js create mode 100644 tools/node_modules/eslint/node_modules/ajv/lib/dotjs/index.js delete mode 100644 tools/node_modules/eslint/node_modules/ajv/lib/patternGroups.js rename tools/node_modules/eslint/node_modules/ajv/lib/refs/{$data.json => data.json} (72%) create mode 100644 tools/node_modules/eslint/node_modules/ajv/lib/refs/json-schema-draft-07.json delete mode 100644 tools/node_modules/eslint/node_modules/ajv/lib/refs/json-schema-v5.json create mode 100755 tools/node_modules/eslint/node_modules/ajv/scripts/publish-built-version delete mode 100644 tools/node_modules/eslint/node_modules/buffer-from/index.js delete mode 100644 tools/node_modules/eslint/node_modules/buffer-from/package.json delete mode 100644 tools/node_modules/eslint/node_modules/buffer-from/readme.md create mode 100644 tools/node_modules/eslint/node_modules/chalk/index.js.flow delete mode 100644 tools/node_modules/eslint/node_modules/co/Readme.md delete mode 100644 tools/node_modules/eslint/node_modules/co/index.js delete mode 100644 tools/node_modules/eslint/node_modules/co/package.json delete mode 100644 tools/node_modules/eslint/node_modules/color-name/.eslintrc.json delete mode 100644 tools/node_modules/eslint/node_modules/concat-stream/LICENSE delete mode 100644 tools/node_modules/eslint/node_modules/concat-stream/index.js delete mode 100644 tools/node_modules/eslint/node_modules/concat-stream/package.json delete mode 100644 tools/node_modules/eslint/node_modules/concat-stream/readme.md delete mode 100644 tools/node_modules/eslint/node_modules/core-util-is/LICENSE delete mode 100644 tools/node_modules/eslint/node_modules/core-util-is/README.md delete mode 100644 tools/node_modules/eslint/node_modules/core-util-is/float.patch delete mode 100644 tools/node_modules/eslint/node_modules/core-util-is/lib/util.js delete mode 100644 tools/node_modules/eslint/node_modules/core-util-is/package.json create mode 100644 tools/node_modules/eslint/node_modules/cross-spawn/lib/util/escape.js delete mode 100644 tools/node_modules/eslint/node_modules/cross-spawn/lib/util/escapeArgument.js delete mode 100644 tools/node_modules/eslint/node_modules/cross-spawn/lib/util/escapeCommand.js delete mode 100644 tools/node_modules/eslint/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js rename tools/node_modules/eslint/node_modules/{acorn-jsx/node_modules/acorn => define-properties}/LICENSE (93%) create mode 100644 tools/node_modules/eslint/node_modules/define-properties/README.md create mode 100644 tools/node_modules/eslint/node_modules/define-properties/index.js create mode 100644 tools/node_modules/eslint/node_modules/define-properties/package.json create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/.nycrc create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/GetIntrinsic.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/LICENSE create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/Makefile create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/README.md create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/es2015.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/es2016.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/es2017.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/es5.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/es6.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/es7.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/helpers/assign.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/helpers/isFinite.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/helpers/isNaN.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/helpers/isPrimitive.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/helpers/mod.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/helpers/sign.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/index.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/operations/2015.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/operations/2016.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/operations/2017.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/operations/es5.js create mode 100644 tools/node_modules/eslint/node_modules/es-abstract/package.json rename tools/node_modules/eslint/node_modules/{process-nextick-args/license.md => es-to-primitive/LICENSE} (86%) create mode 100644 tools/node_modules/eslint/node_modules/es-to-primitive/Makefile create mode 100644 tools/node_modules/eslint/node_modules/es-to-primitive/README.md create mode 100644 tools/node_modules/eslint/node_modules/es-to-primitive/es5.js create mode 100644 tools/node_modules/eslint/node_modules/es-to-primitive/es6.js create mode 100644 tools/node_modules/eslint/node_modules/es-to-primitive/helpers/isPrimitive.js create mode 100644 tools/node_modules/eslint/node_modules/es-to-primitive/index.js create mode 100644 tools/node_modules/eslint/node_modules/es-to-primitive/package.json rename tools/node_modules/eslint/node_modules/{util-deprecate => foreach}/LICENSE (93%) create mode 100644 tools/node_modules/eslint/node_modules/foreach/Makefile create mode 100644 tools/node_modules/eslint/node_modules/foreach/Readme.md create mode 100644 tools/node_modules/eslint/node_modules/foreach/index.js create mode 100644 tools/node_modules/eslint/node_modules/foreach/package.json rename tools/node_modules/eslint/node_modules/{x-is-function => has-symbols}/LICENSE (96%) create mode 100644 tools/node_modules/eslint/node_modules/has-symbols/README.md create mode 100644 tools/node_modules/eslint/node_modules/has-symbols/index.js create mode 100644 tools/node_modules/eslint/node_modules/has-symbols/package.json create mode 100644 tools/node_modules/eslint/node_modules/has-symbols/shams.js rename tools/node_modules/eslint/node_modules/has/{README.mkd => README.md} (100%) create mode 100644 tools/node_modules/eslint/node_modules/is-callable/LICENSE create mode 100644 tools/node_modules/eslint/node_modules/is-callable/Makefile create mode 100644 tools/node_modules/eslint/node_modules/is-callable/README.md create mode 100644 tools/node_modules/eslint/node_modules/is-callable/index.js create mode 100644 tools/node_modules/eslint/node_modules/is-callable/package.json create mode 100644 tools/node_modules/eslint/node_modules/is-date-object/LICENSE create mode 100644 tools/node_modules/eslint/node_modules/is-date-object/Makefile create mode 100644 tools/node_modules/eslint/node_modules/is-date-object/README.md create mode 100644 tools/node_modules/eslint/node_modules/is-date-object/index.js create mode 100644 tools/node_modules/eslint/node_modules/is-date-object/package.json create mode 100644 tools/node_modules/eslint/node_modules/is-path-in-cwd/license create mode 100644 tools/node_modules/eslint/node_modules/is-regex/LICENSE create mode 100644 tools/node_modules/eslint/node_modules/is-regex/Makefile create mode 100644 tools/node_modules/eslint/node_modules/is-regex/README.md create mode 100644 tools/node_modules/eslint/node_modules/is-regex/index.js create mode 100644 tools/node_modules/eslint/node_modules/is-regex/package.json create mode 100644 tools/node_modules/eslint/node_modules/is-symbol/.nvmrc create mode 100644 tools/node_modules/eslint/node_modules/is-symbol/LICENSE create mode 100644 tools/node_modules/eslint/node_modules/is-symbol/Makefile create mode 100644 tools/node_modules/eslint/node_modules/is-symbol/README.md create mode 100644 tools/node_modules/eslint/node_modules/is-symbol/index.js create mode 100644 tools/node_modules/eslint/node_modules/is-symbol/package.json delete mode 100644 tools/node_modules/eslint/node_modules/isarray/Makefile delete mode 100644 tools/node_modules/eslint/node_modules/isarray/README.md delete mode 100644 tools/node_modules/eslint/node_modules/isarray/index.js delete mode 100644 tools/node_modules/eslint/node_modules/isarray/package.json delete mode 100644 tools/node_modules/eslint/node_modules/lru-cache/LICENSE delete mode 100644 tools/node_modules/eslint/node_modules/lru-cache/README.md delete mode 100644 tools/node_modules/eslint/node_modules/lru-cache/index.js delete mode 100644 tools/node_modules/eslint/node_modules/lru-cache/package.json rename tools/node_modules/eslint/node_modules/{safe-buffer => nice-try}/LICENSE (96%) create mode 100644 tools/node_modules/eslint/node_modules/nice-try/README.md create mode 100644 tools/node_modules/eslint/node_modules/nice-try/package.json create mode 100644 tools/node_modules/eslint/node_modules/nice-try/src/index.js create mode 100644 tools/node_modules/eslint/node_modules/object-keys/LICENSE create mode 100644 tools/node_modules/eslint/node_modules/object-keys/README.md create mode 100644 tools/node_modules/eslint/node_modules/object-keys/index.js create mode 100644 tools/node_modules/eslint/node_modules/object-keys/isArguments.js create mode 100644 tools/node_modules/eslint/node_modules/object-keys/package.json create mode 100644 tools/node_modules/eslint/node_modules/path-key/index.js create mode 100644 tools/node_modules/eslint/node_modules/path-key/license create mode 100644 tools/node_modules/eslint/node_modules/path-key/package.json create mode 100644 tools/node_modules/eslint/node_modules/path-key/readme.md delete mode 100644 tools/node_modules/eslint/node_modules/process-nextick-args/index.js delete mode 100644 tools/node_modules/eslint/node_modules/process-nextick-args/package.json delete mode 100644 tools/node_modules/eslint/node_modules/process-nextick-args/readme.md delete mode 100644 tools/node_modules/eslint/node_modules/pseudomap/LICENSE delete mode 100644 tools/node_modules/eslint/node_modules/pseudomap/README.md delete mode 100644 tools/node_modules/eslint/node_modules/pseudomap/map.js delete mode 100644 tools/node_modules/eslint/node_modules/pseudomap/package.json delete mode 100644 tools/node_modules/eslint/node_modules/pseudomap/pseudomap.js rename tools/node_modules/eslint/node_modules/{co/LICENSE => punycode/LICENSE-MIT.txt} (51%) create mode 100644 tools/node_modules/eslint/node_modules/punycode/README.md create mode 100644 tools/node_modules/eslint/node_modules/punycode/package.json create mode 100644 tools/node_modules/eslint/node_modules/punycode/punycode.es6.js create mode 100644 tools/node_modules/eslint/node_modules/punycode/punycode.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/GOVERNANCE.md delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/LICENSE delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/README.md delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/duplex-browser.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/duplex.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_duplex.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_passthrough.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_readable.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_transform.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_writable.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/BufferList.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/destroy.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/stream-browser.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/stream.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/package.json delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/passthrough.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/readable-browser.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/readable.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/transform.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/writable-browser.js delete mode 100644 tools/node_modules/eslint/node_modules/readable-stream/writable.js create mode 100644 tools/node_modules/eslint/node_modules/regexp.prototype.flags/LICENSE create mode 100644 tools/node_modules/eslint/node_modules/regexp.prototype.flags/README.md create mode 100644 tools/node_modules/eslint/node_modules/regexp.prototype.flags/implementation.js create mode 100644 tools/node_modules/eslint/node_modules/regexp.prototype.flags/index.js create mode 100644 tools/node_modules/eslint/node_modules/regexp.prototype.flags/package.json create mode 100644 tools/node_modules/eslint/node_modules/regexp.prototype.flags/polyfill.js create mode 100644 tools/node_modules/eslint/node_modules/regexp.prototype.flags/shim.js create mode 100644 tools/node_modules/eslint/node_modules/regexpp/index.mjs create mode 100644 tools/node_modules/eslint/node_modules/regexpp/index.mjs.map delete mode 100644 tools/node_modules/eslint/node_modules/rx-lite-aggregates/package.json delete mode 100644 tools/node_modules/eslint/node_modules/rx-lite-aggregates/readme.md delete mode 100644 tools/node_modules/eslint/node_modules/rx-lite-aggregates/rx.lite.aggregates.js delete mode 100644 tools/node_modules/eslint/node_modules/rx-lite-aggregates/rx.lite.aggregates.map delete mode 100644 tools/node_modules/eslint/node_modules/rx-lite-aggregates/rx.lite.aggregates.min.js delete mode 100644 tools/node_modules/eslint/node_modules/rx-lite/package.json delete mode 100644 tools/node_modules/eslint/node_modules/rx-lite/readme.md delete mode 100644 tools/node_modules/eslint/node_modules/rx-lite/rx.lite.js delete mode 100644 tools/node_modules/eslint/node_modules/rx-lite/rx.lite.map delete mode 100644 tools/node_modules/eslint/node_modules/rx-lite/rx.lite.min.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/AsyncSubject.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/AsyncSubject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/AsyncSubject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/BehaviorSubject.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/BehaviorSubject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/BehaviorSubject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/InnerSubscriber.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/InnerSubscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/InnerSubscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/LICENSE.txt create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Notification.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Notification.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Notification.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Observable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Observable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Observable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Observer.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Observer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Observer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Operator.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Operator.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Operator.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/OuterSubscriber.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/OuterSubscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/OuterSubscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/README.md create mode 100644 tools/node_modules/eslint/node_modules/rxjs/ReplaySubject.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/ReplaySubject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/ReplaySubject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Rx.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Rx.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Rx.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Scheduler.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Scheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Scheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Subject.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Subject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Subject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/SubjectSubscription.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/SubjectSubscription.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/SubjectSubscription.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Subscriber.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Subscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Subscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Subscription.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Subscription.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/Subscription.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/AsyncSubject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/AsyncSubject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/BehaviorSubject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/BehaviorSubject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/InnerSubscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/InnerSubscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/LICENSE.txt create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Notification.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Notification.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Operator.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Operator.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/OuterSubscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/OuterSubscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/README.md create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/ReplaySubject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/ReplaySubject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Rx.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Rx.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Scheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Scheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/SubjectSubscription.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/SubjectSubscription.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscription.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscription.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindCallback.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindCallback.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindNodeCallback.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindNodeCallback.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/defer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/defer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/ajax.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/ajax.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/webSocket.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/webSocket.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/empty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/empty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/forkJoin.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/forkJoin.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/from.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/from.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEvent.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEvent.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEventPattern.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEventPattern.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/generate.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/generate.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/if.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/if.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/interval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/interval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/never.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/never.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/of.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/of.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/pairs.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/pairs.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/range.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/range.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/throw.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/throw.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/timer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/timer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/using.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/using.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/audit.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/audit.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/auditTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/auditTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/buffer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/buffer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/catch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/catch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/count.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/count.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounceTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounceTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/defaultIfEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/defaultIfEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delayWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delayWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/dematerialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/dematerialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinct.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinct.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilKeyChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilKeyChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/do.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/do.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/elementAt.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/elementAt.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/every.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/every.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaust.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaust.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaustMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaustMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/expand.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/expand.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/filter.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/filter.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/finally.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/finally.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/find.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/find.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/findIndex.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/findIndex.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/first.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/first.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/groupBy.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/groupBy.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/ignoreElements.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/ignoreElements.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/isEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/isEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/last.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/last.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/let.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/let.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/map.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/map.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/materialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/materialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/max.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/max.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeScan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeScan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/min.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/min.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/multicast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/multicast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/observeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/observeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pairwise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pairwise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/partition.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/partition.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pluck.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pluck.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publish.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publish.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishBehavior.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishBehavior.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/reduce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/reduce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeatWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeatWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retry.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retry.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retryWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retryWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sample.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sample.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sampleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sampleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/scan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/scan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sequenceEqual.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sequenceEqual.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/share.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/share.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/shareReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/shareReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/single.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/single.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/startWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/startWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/subscribeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/subscribeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/take.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/take.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeInterval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeInterval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeout.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeout.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeoutWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeoutWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timestamp.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timestamp.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toArray.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toArray.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/window.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/window.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/withLatestFrom.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/withLatestFrom.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zipAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zipAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/interfaces.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/interfaces.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayLikeObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayLikeObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundCallbackObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundCallbackObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundNodeCallbackObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundNodeCallbackObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ConnectableObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ConnectableObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/DeferObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/DeferObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/EmptyObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/EmptyObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ErrorObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ErrorObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ForkJoinObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ForkJoinObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventPatternObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventPatternObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/GenerateObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/GenerateObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IfObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IfObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IntervalObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IntervalObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IteratorObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IteratorObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/NeverObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/NeverObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PairsObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PairsObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PromiseObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PromiseObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/RangeObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/RangeObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ScalarObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ScalarObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/SubscribeOnObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/SubscribeOnObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/TimerObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/TimerObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/UsingObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/UsingObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindCallback.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindCallback.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindNodeCallback.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindNodeCallback.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/defer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/defer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/AjaxObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/AjaxObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/WebSocketSubject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/WebSocketSubject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/ajax.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/ajax.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/webSocket.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/webSocket.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/empty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/empty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/forkJoin.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/forkJoin.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/from.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/from.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEvent.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEvent.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEventPattern.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEventPattern.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/generate.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/generate.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/if.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/if.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/interval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/interval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/never.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/never.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/of.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/of.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/pairs.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/pairs.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/range.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/range.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/throw.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/throw.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/timer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/timer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/using.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/using.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/audit.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/audit.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/auditTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/auditTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/buffer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/buffer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/catch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/catch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/count.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/count.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounceTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounceTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/defaultIfEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/defaultIfEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delayWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delayWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/dematerialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/dematerialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinct.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinct.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilKeyChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilKeyChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/do.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/do.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/elementAt.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/elementAt.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/every.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/every.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaust.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaust.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaustMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaustMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/expand.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/expand.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/filter.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/filter.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/finally.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/finally.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/find.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/find.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/findIndex.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/findIndex.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/first.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/first.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/groupBy.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/groupBy.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/ignoreElements.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/ignoreElements.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/isEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/isEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/last.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/last.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/let.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/let.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/map.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/map.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/materialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/materialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/max.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/max.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeScan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeScan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/min.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/min.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/multicast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/multicast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/observeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/observeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pairwise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pairwise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/partition.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/partition.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pluck.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pluck.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publish.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publish.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishBehavior.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishBehavior.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/reduce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/reduce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeatWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeatWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retry.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retry.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retryWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retryWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sample.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sample.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sampleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sampleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/scan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/scan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sequenceEqual.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sequenceEqual.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/share.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/share.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/shareReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/shareReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/single.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/single.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/startWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/startWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/subscribeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/subscribeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/take.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/take.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeInterval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeInterval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeout.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeout.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeoutWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeoutWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timestamp.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timestamp.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toArray.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toArray.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/window.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/window.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/withLatestFrom.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/withLatestFrom.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zipAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zipAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/audit.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/audit.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/auditTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/auditTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/buffer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/buffer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/catchError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/catchError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/count.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/count.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounceTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounceTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/defaultIfEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/defaultIfEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delayWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delayWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/dematerialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/dematerialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinct.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinct.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilKeyChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilKeyChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/elementAt.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/elementAt.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/every.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/every.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaust.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaust.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaustMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaustMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/expand.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/expand.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/filter.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/filter.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/finalize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/finalize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/find.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/find.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/findIndex.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/findIndex.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/first.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/first.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/groupBy.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/groupBy.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/ignoreElements.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/ignoreElements.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/isEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/isEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/last.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/last.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/map.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/map.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/materialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/materialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/max.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/max.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeScan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeScan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/min.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/min.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/multicast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/multicast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/observeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/observeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pairwise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pairwise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/partition.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/partition.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pluck.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pluck.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publish.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publish.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishBehavior.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishBehavior.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/reduce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/reduce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/refCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/refCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeatWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeatWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retry.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retry.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retryWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retryWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sample.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sample.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sampleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sampleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/scan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/scan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sequenceEqual.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sequenceEqual.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/share.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/share.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/shareReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/shareReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/single.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/single.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/startWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/startWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/subscribeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/subscribeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/take.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/take.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/tap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/tap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeInterval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeInterval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeout.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeout.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeoutWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeoutWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timestamp.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timestamp.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/toArray.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/toArray.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/window.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/window.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/withLatestFrom.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/withLatestFrom.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zipAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zipAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/path-mapping.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/Action.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/Action.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameAction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameAction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapAction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapAction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncAction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncAction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueAction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueAction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/VirtualTimeScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/VirtualTimeScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/animationFrame.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/animationFrame.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/asap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/asap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/async.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/async.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/queue.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/queue.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/iterator.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/iterator.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/observable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/observable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/rxSubscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/rxSubscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/ColdObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/ColdObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/HotObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/HotObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLog.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLog.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLoggable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLoggable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestMessage.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestMessage.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/AnimationFrame.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/AnimationFrame.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/ArgumentOutOfRangeError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/ArgumentOutOfRangeError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/EmptyError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/EmptyError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/FastMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/FastMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/Immediate.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/Immediate.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/Map.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/Map.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/MapPolyfill.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/MapPolyfill.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/ObjectUnsubscribedError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/ObjectUnsubscribedError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/Set.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/Set.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/TimeoutError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/TimeoutError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/UnsubscriptionError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/UnsubscriptionError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/applyMixins.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/applyMixins.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/assign.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/assign.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/errorObject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/errorObject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/identity.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/identity.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isArray.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isArray.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isArrayLike.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isArrayLike.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isDate.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isDate.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isFunction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isFunction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isNumeric.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isNumeric.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isObject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isObject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/isScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/noop.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/noop.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/not.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/not.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/pipe.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/pipe.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/root.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/root.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/subscribeToResult.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/subscribeToResult.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/toSubscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/toSubscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/tryCatch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/tryCatch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/AsyncSubject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/AsyncSubject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/BehaviorSubject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/BehaviorSubject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/InnerSubscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/InnerSubscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/LICENSE.txt create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Notification.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Notification.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Observable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Observable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Observer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Observer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Operator.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Operator.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/OuterSubscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/OuterSubscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/README.md create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/ReplaySubject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/ReplaySubject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Rx.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Rx.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Scheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Scheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Subject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Subject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/SubjectSubscription.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/SubjectSubscription.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Subscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Subscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Subscription.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/Subscription.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/bindCallback.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/bindCallback.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/bindNodeCallback.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/bindNodeCallback.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/defer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/defer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/dom/ajax.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/dom/ajax.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/dom/webSocket.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/dom/webSocket.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/empty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/empty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/forkJoin.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/forkJoin.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/from.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/from.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/fromEvent.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/fromEvent.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/fromEventPattern.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/fromEventPattern.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/fromPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/fromPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/generate.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/generate.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/if.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/if.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/interval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/interval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/never.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/never.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/of.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/of.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/pairs.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/pairs.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/range.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/range.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/throw.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/throw.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/timer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/timer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/using.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/using.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/observable/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/audit.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/audit.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/auditTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/auditTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/buffer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/buffer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/bufferCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/bufferCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/bufferTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/bufferTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/bufferToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/bufferToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/bufferWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/bufferWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/catch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/catch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/combineAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/combineAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/concatAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/concatAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/concatMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/concatMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/concatMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/concatMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/count.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/count.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/debounce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/debounce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/debounceTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/debounceTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/defaultIfEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/defaultIfEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/delay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/delay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/delayWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/delayWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/dematerialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/dematerialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/distinct.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/distinct.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/distinctUntilChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/distinctUntilChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/distinctUntilKeyChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/distinctUntilKeyChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/do.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/do.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/elementAt.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/elementAt.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/every.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/every.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/exhaust.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/exhaust.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/exhaustMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/exhaustMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/expand.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/expand.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/filter.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/filter.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/finally.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/finally.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/find.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/find.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/findIndex.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/findIndex.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/first.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/first.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/groupBy.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/groupBy.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/ignoreElements.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/ignoreElements.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/isEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/isEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/last.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/last.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/let.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/let.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/map.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/map.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/mapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/mapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/materialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/materialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/max.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/max.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/mergeAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/mergeAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/mergeMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/mergeMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/mergeMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/mergeMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/mergeScan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/mergeScan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/min.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/min.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/multicast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/multicast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/observeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/observeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/pairwise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/pairwise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/partition.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/partition.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/pluck.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/pluck.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/publish.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/publish.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/publishBehavior.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/publishBehavior.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/publishLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/publishLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/publishReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/publishReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/reduce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/reduce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/repeat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/repeat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/repeatWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/repeatWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/retry.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/retry.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/retryWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/retryWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/sample.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/sample.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/sampleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/sampleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/scan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/scan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/sequenceEqual.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/sequenceEqual.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/share.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/share.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/shareReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/shareReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/single.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/single.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/skip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/skip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/skipLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/skipLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/skipUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/skipUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/skipWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/skipWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/startWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/startWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/subscribeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/subscribeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/switch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/switch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/switchMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/switchMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/switchMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/switchMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/take.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/take.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/takeLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/takeLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/takeUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/takeUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/takeWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/takeWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/throttle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/throttle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/throttleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/throttleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/timeInterval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/timeInterval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/timeout.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/timeout.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/timeoutWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/timeoutWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/timestamp.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/timestamp.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/toArray.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/toArray.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/toPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/toPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/window.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/window.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/windowCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/windowCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/windowTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/windowTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/windowToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/windowToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/windowWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/windowWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/withLatestFrom.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/withLatestFrom.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/zipAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/add/operator/zipAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/interfaces.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/interfaces.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/ArrayLikeObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/ArrayLikeObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/ArrayObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/ArrayObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/BoundCallbackObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/BoundCallbackObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/BoundNodeCallbackObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/BoundNodeCallbackObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/ConnectableObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/ConnectableObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/DeferObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/DeferObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/EmptyObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/EmptyObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/ErrorObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/ErrorObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/ForkJoinObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/ForkJoinObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/FromEventObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/FromEventObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/FromEventPatternObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/FromEventPatternObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/FromObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/FromObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/GenerateObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/GenerateObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/IfObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/IfObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/IntervalObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/IntervalObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/IteratorObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/IteratorObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/NeverObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/NeverObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/PairsObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/PairsObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/PromiseObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/PromiseObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/RangeObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/RangeObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/ScalarObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/ScalarObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/SubscribeOnObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/SubscribeOnObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/TimerObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/TimerObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/UsingObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/UsingObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/bindCallback.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/bindCallback.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/bindNodeCallback.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/bindNodeCallback.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/defer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/defer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/dom/AjaxObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/dom/AjaxObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/dom/WebSocketSubject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/dom/WebSocketSubject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/dom/ajax.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/dom/ajax.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/dom/webSocket.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/dom/webSocket.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/empty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/empty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/forkJoin.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/forkJoin.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/from.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/from.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/fromEvent.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/fromEvent.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/fromEventPattern.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/fromEventPattern.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/fromPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/fromPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/generate.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/generate.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/if.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/if.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/interval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/interval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/never.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/never.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/of.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/of.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/pairs.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/pairs.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/range.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/range.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/throw.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/throw.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/timer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/timer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/using.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/using.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/observable/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/audit.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/audit.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/auditTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/auditTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/buffer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/buffer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/bufferCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/bufferCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/bufferTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/bufferTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/bufferToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/bufferToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/bufferWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/bufferWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/catch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/catch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/combineAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/combineAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/concatAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/concatAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/concatMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/concatMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/concatMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/concatMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/count.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/count.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/debounce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/debounce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/debounceTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/debounceTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/defaultIfEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/defaultIfEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/delay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/delay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/delayWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/delayWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/dematerialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/dematerialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/distinct.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/distinct.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/distinctUntilChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/distinctUntilChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/distinctUntilKeyChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/distinctUntilKeyChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/do.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/do.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/elementAt.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/elementAt.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/every.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/every.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/exhaust.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/exhaust.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/exhaustMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/exhaustMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/expand.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/expand.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/filter.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/filter.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/finally.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/finally.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/find.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/find.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/findIndex.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/findIndex.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/first.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/first.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/groupBy.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/groupBy.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/ignoreElements.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/ignoreElements.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/isEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/isEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/last.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/last.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/let.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/let.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/map.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/map.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/mapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/mapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/materialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/materialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/max.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/max.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/mergeAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/mergeAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/mergeMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/mergeMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/mergeMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/mergeMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/mergeScan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/mergeScan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/min.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/min.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/multicast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/multicast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/observeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/observeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/pairwise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/pairwise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/partition.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/partition.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/pluck.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/pluck.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/publish.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/publish.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/publishBehavior.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/publishBehavior.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/publishLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/publishLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/publishReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/publishReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/reduce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/reduce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/repeat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/repeat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/repeatWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/repeatWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/retry.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/retry.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/retryWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/retryWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/sample.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/sample.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/sampleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/sampleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/scan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/scan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/sequenceEqual.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/sequenceEqual.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/share.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/share.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/shareReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/shareReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/single.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/single.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/skip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/skip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/skipLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/skipLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/skipUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/skipUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/skipWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/skipWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/startWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/startWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/subscribeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/subscribeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/switch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/switch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/switchMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/switchMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/switchMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/switchMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/take.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/take.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/takeLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/takeLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/takeUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/takeUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/takeWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/takeWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/throttle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/throttle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/throttleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/throttleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/timeInterval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/timeInterval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/timeout.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/timeout.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/timeoutWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/timeoutWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/timestamp.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/timestamp.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/toArray.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/toArray.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/toPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/toPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/window.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/window.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/windowCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/windowCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/windowTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/windowTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/windowToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/windowToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/windowWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/windowWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/withLatestFrom.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/withLatestFrom.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/zipAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operator/zipAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/audit.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/audit.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/auditTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/auditTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/buffer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/buffer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/bufferCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/bufferCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/bufferTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/bufferTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/bufferToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/bufferToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/bufferWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/bufferWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/catchError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/catchError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/combineAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/combineAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/concatAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/concatAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/concatMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/concatMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/concatMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/concatMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/count.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/count.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/debounce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/debounce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/debounceTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/debounceTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/defaultIfEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/defaultIfEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/delay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/delay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/delayWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/delayWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/dematerialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/dematerialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/distinct.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/distinct.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/distinctUntilChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/distinctUntilChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/distinctUntilKeyChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/distinctUntilKeyChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/elementAt.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/elementAt.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/every.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/every.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/exhaust.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/exhaust.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/exhaustMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/exhaustMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/expand.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/expand.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/filter.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/filter.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/finalize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/finalize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/find.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/find.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/findIndex.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/findIndex.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/first.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/first.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/groupBy.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/groupBy.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/ignoreElements.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/ignoreElements.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/isEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/isEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/last.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/last.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/map.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/map.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/mapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/mapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/materialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/materialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/max.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/max.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/mergeAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/mergeAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/mergeMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/mergeMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/mergeMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/mergeMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/mergeScan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/mergeScan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/min.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/min.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/multicast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/multicast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/observeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/observeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/pairwise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/pairwise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/partition.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/partition.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/pluck.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/pluck.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/publish.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/publish.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/publishBehavior.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/publishBehavior.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/publishLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/publishLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/publishReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/publishReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/reduce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/reduce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/refCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/refCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/repeat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/repeat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/repeatWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/repeatWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/retry.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/retry.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/retryWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/retryWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/sample.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/sample.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/sampleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/sampleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/scan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/scan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/sequenceEqual.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/sequenceEqual.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/share.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/share.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/shareReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/shareReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/single.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/single.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/skip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/skip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/skipLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/skipLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/skipUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/skipUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/skipWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/skipWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/startWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/startWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/subscribeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/subscribeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/switchAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/switchAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/switchMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/switchMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/switchMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/switchMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/take.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/take.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/takeLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/takeLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/takeUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/takeUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/takeWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/takeWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/tap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/tap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/throttle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/throttle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/throttleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/throttleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/timeInterval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/timeInterval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/timeout.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/timeout.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/timeoutWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/timeoutWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/timestamp.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/timestamp.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/toArray.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/toArray.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/window.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/window.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/windowCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/windowCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/windowTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/windowTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/windowToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/windowToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/windowWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/windowWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/withLatestFrom.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/withLatestFrom.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/zipAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/operators/zipAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/path-mapping.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/Action.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/Action.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/AnimationFrameAction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/AnimationFrameAction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/AnimationFrameScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/AnimationFrameScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/AsapAction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/AsapAction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/AsapScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/AsapScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/AsyncAction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/AsyncAction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/AsyncScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/AsyncScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/QueueAction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/QueueAction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/QueueScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/QueueScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/VirtualTimeScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/VirtualTimeScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/animationFrame.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/animationFrame.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/asap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/asap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/async.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/async.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/queue.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/scheduler/queue.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/symbol/iterator.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/symbol/iterator.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/symbol/observable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/symbol/observable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/symbol/rxSubscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/symbol/rxSubscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/testing/ColdObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/testing/ColdObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/testing/HotObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/testing/HotObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/testing/SubscriptionLog.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/testing/SubscriptionLog.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/testing/SubscriptionLoggable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/testing/SubscriptionLoggable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/testing/TestMessage.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/testing/TestMessage.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/testing/TestScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/testing/TestScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/AnimationFrame.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/AnimationFrame.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/ArgumentOutOfRangeError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/ArgumentOutOfRangeError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/EmptyError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/EmptyError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/FastMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/FastMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/Immediate.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/Immediate.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/Map.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/Map.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/MapPolyfill.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/MapPolyfill.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/ObjectUnsubscribedError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/ObjectUnsubscribedError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/Set.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/Set.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/TimeoutError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/TimeoutError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/UnsubscriptionError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/UnsubscriptionError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/applyMixins.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/applyMixins.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/assign.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/assign.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/errorObject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/errorObject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/identity.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/identity.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isArray.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isArray.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isArrayLike.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isArrayLike.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isDate.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isDate.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isFunction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isFunction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isNumeric.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isNumeric.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isObject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isObject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/isScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/noop.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/noop.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/not.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/not.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/pipe.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/pipe.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/root.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/root.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/subscribeToResult.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/subscribeToResult.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/toSubscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/toSubscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/tryCatch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/_esm5/util/tryCatch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/bindCallback.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/bindCallback.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/bindCallback.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/bindNodeCallback.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/bindNodeCallback.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/bindNodeCallback.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/combineLatest.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/concat.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/defer.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/defer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/defer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/dom/ajax.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/dom/ajax.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/dom/ajax.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/dom/webSocket.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/dom/webSocket.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/dom/webSocket.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/empty.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/empty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/empty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/forkJoin.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/forkJoin.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/forkJoin.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/from.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/from.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/from.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/fromEvent.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/fromEvent.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/fromEvent.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/fromEventPattern.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/fromEventPattern.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/fromEventPattern.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/fromPromise.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/fromPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/fromPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/generate.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/generate.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/generate.js.map rename tools/node_modules/eslint/node_modules/{acorn-jsx/node_modules/acorn/dist/.keep => rxjs/add/observable/if.d.ts} (100%) create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/if.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/if.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/interval.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/interval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/interval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/merge.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/never.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/never.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/never.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/of.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/of.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/of.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/onErrorResumeNext.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/pairs.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/pairs.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/pairs.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/race.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/range.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/range.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/range.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/throw.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/throw.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/throw.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/timer.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/timer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/timer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/using.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/using.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/using.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/zip.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/observable/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/audit.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/audit.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/audit.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/auditTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/auditTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/auditTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/buffer.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/buffer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/buffer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/bufferCount.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/bufferCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/bufferCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/bufferTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/bufferTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/bufferTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/bufferToggle.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/bufferToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/bufferToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/bufferWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/bufferWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/bufferWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/catch.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/catch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/catch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/combineAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/combineAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/combineAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/combineLatest.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/concat.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/concatAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/concatAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/concatAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/concatMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/concatMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/concatMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/concatMapTo.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/concatMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/concatMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/count.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/count.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/count.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/debounce.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/debounce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/debounce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/debounceTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/debounceTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/debounceTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/defaultIfEmpty.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/defaultIfEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/defaultIfEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/delay.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/delay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/delay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/delayWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/delayWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/delayWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/dematerialize.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/dematerialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/dematerialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/distinct.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/distinct.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/distinct.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/distinctUntilChanged.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/distinctUntilChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/distinctUntilChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/do.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/do.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/do.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/elementAt.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/elementAt.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/elementAt.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/every.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/every.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/every.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/exhaust.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/exhaust.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/exhaust.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/exhaustMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/exhaustMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/exhaustMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/expand.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/expand.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/expand.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/filter.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/filter.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/filter.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/finally.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/finally.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/finally.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/find.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/find.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/find.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/findIndex.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/findIndex.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/findIndex.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/first.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/first.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/first.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/groupBy.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/groupBy.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/groupBy.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/ignoreElements.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/ignoreElements.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/ignoreElements.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/isEmpty.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/isEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/isEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/last.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/last.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/last.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/let.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/let.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/let.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/map.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/map.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/map.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mapTo.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/materialize.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/materialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/materialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/max.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/max.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/max.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/merge.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mergeAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mergeAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mergeAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mergeMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mergeMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mergeMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mergeMapTo.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mergeMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mergeMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mergeScan.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mergeScan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/mergeScan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/min.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/min.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/min.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/multicast.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/multicast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/multicast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/observeOn.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/observeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/observeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/onErrorResumeNext.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/pairwise.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/pairwise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/pairwise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/partition.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/partition.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/partition.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/pluck.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/pluck.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/pluck.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/publish.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/publish.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/publish.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/publishBehavior.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/publishBehavior.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/publishBehavior.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/publishLast.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/publishLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/publishLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/publishReplay.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/publishReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/publishReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/race.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/reduce.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/reduce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/reduce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/repeat.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/repeat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/repeat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/repeatWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/repeatWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/repeatWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/retry.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/retry.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/retry.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/retryWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/retryWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/retryWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/sample.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/sample.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/sample.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/sampleTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/sampleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/sampleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/scan.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/scan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/scan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/sequenceEqual.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/sequenceEqual.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/sequenceEqual.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/share.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/share.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/share.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/shareReplay.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/shareReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/shareReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/single.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/single.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/single.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/skip.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/skip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/skip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/skipLast.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/skipLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/skipLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/skipUntil.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/skipUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/skipUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/skipWhile.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/skipWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/skipWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/startWith.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/startWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/startWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/subscribeOn.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/subscribeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/subscribeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/switch.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/switch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/switch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/switchMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/switchMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/switchMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/switchMapTo.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/switchMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/switchMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/take.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/take.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/take.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/takeLast.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/takeLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/takeLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/takeUntil.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/takeUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/takeUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/takeWhile.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/takeWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/takeWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/throttle.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/throttle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/throttle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/throttleTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/throttleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/throttleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/timeInterval.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/timeInterval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/timeInterval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/timeout.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/timeout.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/timeout.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/timeoutWith.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/timeoutWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/timeoutWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/timestamp.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/timestamp.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/timestamp.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/toArray.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/toArray.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/toArray.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/toPromise.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/toPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/toPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/window.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/window.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/window.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/windowCount.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/windowCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/windowCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/windowTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/windowTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/windowTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/windowToggle.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/windowToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/windowToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/windowWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/windowWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/windowWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/withLatestFrom.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/withLatestFrom.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/withLatestFrom.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/zip.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/zipAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/zipAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/add/operator/zipAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/bundles/Rx.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/bundles/Rx.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/bundles/Rx.min.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/bundles/Rx.min.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/interfaces.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/interfaces.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/interfaces.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ArrayLikeObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ArrayLikeObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ArrayLikeObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ArrayObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ArrayObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ArrayObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/BoundCallbackObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/BoundCallbackObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/BoundCallbackObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/BoundNodeCallbackObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/BoundNodeCallbackObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ConnectableObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ConnectableObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ConnectableObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/DeferObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/DeferObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/DeferObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/EmptyObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/EmptyObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/EmptyObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ErrorObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ErrorObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ErrorObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ForkJoinObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ForkJoinObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ForkJoinObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/FromEventObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/FromEventObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/FromEventObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/FromEventPatternObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/FromEventPatternObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/FromEventPatternObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/FromObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/FromObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/FromObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/GenerateObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/GenerateObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/GenerateObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/IfObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/IfObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/IfObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/IntervalObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/IntervalObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/IntervalObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/IteratorObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/IteratorObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/IteratorObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/NeverObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/NeverObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/NeverObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/PairsObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/PairsObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/PairsObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/PromiseObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/PromiseObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/PromiseObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/RangeObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/RangeObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/RangeObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ScalarObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ScalarObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/ScalarObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/SubscribeOnObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/SubscribeOnObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/SubscribeOnObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/TimerObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/TimerObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/TimerObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/UsingObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/UsingObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/UsingObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/bindCallback.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/bindCallback.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/bindCallback.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/bindNodeCallback.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/bindNodeCallback.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/bindNodeCallback.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/combineLatest.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/concat.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/defer.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/defer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/defer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/dom/AjaxObservable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/dom/AjaxObservable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/dom/AjaxObservable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/dom/WebSocketSubject.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/dom/WebSocketSubject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/dom/WebSocketSubject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/dom/ajax.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/dom/ajax.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/dom/ajax.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/dom/webSocket.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/dom/webSocket.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/dom/webSocket.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/empty.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/empty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/empty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/forkJoin.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/forkJoin.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/forkJoin.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/from.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/from.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/from.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/fromEvent.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/fromEvent.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/fromEvent.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/fromEventPattern.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/fromEventPattern.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/fromEventPattern.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/fromPromise.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/fromPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/fromPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/generate.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/generate.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/generate.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/if.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/if.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/if.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/interval.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/interval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/interval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/merge.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/never.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/never.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/never.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/of.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/of.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/of.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/onErrorResumeNext.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/pairs.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/pairs.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/pairs.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/race.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/range.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/range.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/range.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/throw.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/throw.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/throw.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/timer.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/timer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/timer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/using.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/using.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/using.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/zip.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/observable/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/audit.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/audit.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/audit.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/auditTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/auditTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/auditTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/buffer.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/buffer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/buffer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/bufferCount.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/bufferCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/bufferCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/bufferTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/bufferTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/bufferTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/bufferToggle.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/bufferToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/bufferToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/bufferWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/bufferWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/bufferWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/catch.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/catch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/catch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/combineAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/combineAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/combineAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/combineLatest.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/concat.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/concatAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/concatAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/concatAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/concatMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/concatMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/concatMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/concatMapTo.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/concatMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/concatMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/count.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/count.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/count.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/debounce.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/debounce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/debounce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/debounceTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/debounceTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/debounceTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/defaultIfEmpty.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/defaultIfEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/defaultIfEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/delay.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/delay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/delay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/delayWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/delayWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/delayWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/dematerialize.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/dematerialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/dematerialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/distinct.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/distinct.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/distinct.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/distinctUntilChanged.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/distinctUntilChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/distinctUntilChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/distinctUntilKeyChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/distinctUntilKeyChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/do.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/do.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/do.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/elementAt.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/elementAt.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/elementAt.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/every.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/every.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/every.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/exhaust.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/exhaust.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/exhaust.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/exhaustMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/exhaustMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/exhaustMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/expand.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/expand.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/expand.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/filter.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/filter.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/filter.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/finally.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/finally.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/finally.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/find.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/find.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/find.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/findIndex.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/findIndex.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/findIndex.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/first.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/first.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/first.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/groupBy.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/groupBy.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/groupBy.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/ignoreElements.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/ignoreElements.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/ignoreElements.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/isEmpty.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/isEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/isEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/last.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/last.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/last.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/let.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/let.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/let.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/map.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/map.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/map.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mapTo.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/materialize.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/materialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/materialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/max.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/max.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/max.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/merge.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mergeAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mergeAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mergeAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mergeMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mergeMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mergeMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mergeMapTo.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mergeMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mergeMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mergeScan.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mergeScan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/mergeScan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/min.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/min.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/min.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/multicast.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/multicast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/multicast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/observeOn.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/observeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/observeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/onErrorResumeNext.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/pairwise.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/pairwise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/pairwise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/partition.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/partition.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/partition.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/pluck.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/pluck.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/pluck.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/publish.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/publish.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/publish.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/publishBehavior.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/publishBehavior.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/publishBehavior.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/publishLast.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/publishLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/publishLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/publishReplay.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/publishReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/publishReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/race.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/reduce.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/reduce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/reduce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/repeat.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/repeat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/repeat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/repeatWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/repeatWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/repeatWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/retry.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/retry.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/retry.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/retryWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/retryWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/retryWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/sample.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/sample.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/sample.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/sampleTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/sampleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/sampleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/scan.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/scan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/scan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/sequenceEqual.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/sequenceEqual.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/sequenceEqual.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/share.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/share.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/share.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/shareReplay.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/shareReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/shareReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/single.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/single.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/single.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/skip.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/skip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/skip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/skipLast.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/skipLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/skipLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/skipUntil.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/skipUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/skipUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/skipWhile.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/skipWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/skipWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/startWith.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/startWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/startWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/subscribeOn.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/subscribeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/subscribeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/switch.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/switch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/switch.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/switchMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/switchMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/switchMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/switchMapTo.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/switchMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/switchMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/take.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/take.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/take.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/takeLast.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/takeLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/takeLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/takeUntil.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/takeUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/takeUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/takeWhile.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/takeWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/takeWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/throttle.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/throttle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/throttle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/throttleTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/throttleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/throttleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/timeInterval.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/timeInterval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/timeInterval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/timeout.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/timeout.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/timeout.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/timeoutWith.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/timeoutWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/timeoutWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/timestamp.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/timestamp.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/timestamp.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/toArray.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/toArray.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/toArray.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/toPromise.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/toPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/toPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/window.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/window.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/window.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/windowCount.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/windowCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/windowCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/windowTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/windowTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/windowTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/windowToggle.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/windowToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/windowToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/windowWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/windowWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/windowWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/withLatestFrom.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/withLatestFrom.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/withLatestFrom.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/zip.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/zipAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/zipAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operator/zipAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/audit.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/audit.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/audit.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/auditTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/auditTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/auditTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/buffer.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/buffer.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/buffer.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/bufferCount.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/bufferCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/bufferCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/bufferTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/bufferTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/bufferTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/bufferToggle.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/bufferToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/bufferToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/bufferWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/bufferWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/bufferWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/catchError.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/catchError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/catchError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/combineAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/combineAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/combineAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/combineLatest.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/combineLatest.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/combineLatest.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/concat.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/concat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/concat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/concatAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/concatAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/concatAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/concatMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/concatMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/concatMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/concatMapTo.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/concatMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/concatMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/count.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/count.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/count.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/debounce.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/debounce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/debounce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/debounceTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/debounceTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/debounceTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/defaultIfEmpty.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/defaultIfEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/defaultIfEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/delay.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/delay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/delay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/delayWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/delayWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/delayWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/dematerialize.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/dematerialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/dematerialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/distinct.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/distinct.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/distinct.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/distinctUntilChanged.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/distinctUntilChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/distinctUntilChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/distinctUntilKeyChanged.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/distinctUntilKeyChanged.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/elementAt.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/elementAt.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/elementAt.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/every.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/every.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/every.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/exhaust.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/exhaust.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/exhaust.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/exhaustMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/exhaustMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/exhaustMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/expand.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/expand.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/expand.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/filter.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/filter.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/filter.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/finalize.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/finalize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/finalize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/find.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/find.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/find.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/findIndex.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/findIndex.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/findIndex.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/first.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/first.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/first.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/groupBy.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/groupBy.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/groupBy.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/ignoreElements.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/ignoreElements.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/ignoreElements.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/isEmpty.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/isEmpty.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/isEmpty.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/last.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/last.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/last.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/map.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/map.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/map.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mapTo.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/materialize.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/materialize.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/materialize.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/max.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/max.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/max.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/merge.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/merge.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/merge.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mergeAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mergeAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mergeAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mergeMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mergeMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mergeMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mergeMapTo.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mergeMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mergeMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mergeScan.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mergeScan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/mergeScan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/min.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/min.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/min.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/multicast.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/multicast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/multicast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/observeOn.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/observeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/observeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/onErrorResumeNext.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/onErrorResumeNext.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/onErrorResumeNext.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/pairwise.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/pairwise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/pairwise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/partition.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/partition.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/partition.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/pluck.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/pluck.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/pluck.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/publish.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/publish.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/publish.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/publishBehavior.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/publishBehavior.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/publishBehavior.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/publishLast.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/publishLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/publishLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/publishReplay.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/publishReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/publishReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/race.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/race.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/race.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/reduce.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/reduce.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/reduce.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/refCount.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/refCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/refCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/repeat.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/repeat.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/repeat.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/repeatWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/repeatWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/repeatWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/retry.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/retry.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/retry.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/retryWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/retryWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/retryWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/sample.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/sample.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/sample.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/sampleTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/sampleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/sampleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/scan.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/scan.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/scan.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/sequenceEqual.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/sequenceEqual.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/sequenceEqual.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/share.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/share.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/share.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/shareReplay.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/shareReplay.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/shareReplay.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/single.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/single.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/single.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/skip.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/skip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/skip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/skipLast.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/skipLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/skipLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/skipUntil.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/skipUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/skipUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/skipWhile.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/skipWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/skipWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/startWith.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/startWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/startWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/subscribeOn.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/subscribeOn.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/subscribeOn.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/switchAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/switchAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/switchAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/switchMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/switchMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/switchMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/switchMapTo.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/switchMapTo.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/switchMapTo.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/take.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/take.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/take.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/takeLast.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/takeLast.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/takeLast.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/takeUntil.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/takeUntil.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/takeUntil.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/takeWhile.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/takeWhile.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/takeWhile.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/tap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/tap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/tap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/throttle.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/throttle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/throttle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/throttleTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/throttleTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/throttleTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/timeInterval.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/timeInterval.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/timeInterval.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/timeout.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/timeout.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/timeout.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/timeoutWith.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/timeoutWith.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/timeoutWith.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/timestamp.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/timestamp.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/timestamp.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/toArray.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/toArray.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/toArray.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/window.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/window.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/window.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/windowCount.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/windowCount.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/windowCount.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/windowTime.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/windowTime.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/windowTime.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/windowToggle.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/windowToggle.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/windowToggle.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/windowWhen.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/windowWhen.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/windowWhen.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/withLatestFrom.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/withLatestFrom.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/withLatestFrom.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/zip.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/zip.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/zip.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/zipAll.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/zipAll.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/operators/zipAll.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/package.json create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/Action.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/Action.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/Action.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AnimationFrameAction.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AnimationFrameAction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AnimationFrameAction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AnimationFrameScheduler.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AnimationFrameScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AnimationFrameScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AsapAction.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AsapAction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AsapAction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AsapScheduler.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AsapScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AsapScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AsyncAction.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AsyncAction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AsyncAction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AsyncScheduler.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AsyncScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/AsyncScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/QueueAction.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/QueueAction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/QueueAction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/QueueScheduler.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/QueueScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/QueueScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/VirtualTimeScheduler.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/VirtualTimeScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/VirtualTimeScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/animationFrame.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/animationFrame.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/animationFrame.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/asap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/asap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/asap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/async.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/async.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/async.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/queue.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/queue.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/scheduler/queue.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/AsyncSubject.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/BUILD.bazel create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/BehaviorSubject.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/InnerSubscriber.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/LICENSE.txt create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/MiscJSDoc.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/Notification.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/Observable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/Observer.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/Operator.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/OuterSubscriber.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/README.md create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/ReplaySubject.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/Rx.global.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/Rx.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/Scheduler.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/Subject.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/SubjectSubscription.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/Subscriber.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/Subscription.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/WORKSPACE create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/bindCallback.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/bindNodeCallback.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/combineLatest.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/concat.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/defer.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/dom/ajax.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/dom/webSocket.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/empty.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/forkJoin.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/from.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/fromEvent.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/fromEventPattern.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/fromPromise.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/generate.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/if.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/interval.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/merge.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/never.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/of.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/onErrorResumeNext.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/pairs.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/race.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/range.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/throw.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/timer.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/using.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/observable/zip.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/audit.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/auditTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/buffer.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/bufferCount.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/bufferTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/bufferToggle.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/bufferWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/catch.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/combineAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/combineLatest.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/concat.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/concatAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/concatMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/concatMapTo.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/count.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/debounce.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/debounceTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/defaultIfEmpty.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/delay.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/delayWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/dematerialize.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/distinct.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/distinctUntilChanged.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/distinctUntilKeyChanged.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/do.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/elementAt.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/every.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/exhaust.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/exhaustMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/expand.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/filter.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/finally.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/find.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/findIndex.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/first.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/groupBy.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/ignoreElements.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/isEmpty.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/last.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/let.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/map.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/mapTo.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/materialize.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/max.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/merge.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/mergeAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/mergeMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/mergeMapTo.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/mergeScan.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/min.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/multicast.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/observeOn.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/onErrorResumeNext.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/pairwise.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/partition.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/pluck.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/publish.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/publishBehavior.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/publishLast.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/publishReplay.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/race.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/reduce.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/repeat.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/repeatWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/retry.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/retryWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/sample.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/sampleTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/scan.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/sequenceEqual.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/share.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/shareReplay.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/single.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/skip.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/skipLast.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/skipUntil.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/skipWhile.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/startWith.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/subscribeOn.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/switch.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/switchMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/switchMapTo.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/take.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/takeLast.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/takeUntil.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/takeWhile.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/throttle.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/throttleTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/timeInterval.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/timeout.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/timeoutWith.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/timestamp.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/toArray.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/toPromise.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/window.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/windowCount.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/windowTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/windowToggle.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/windowWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/withLatestFrom.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/zip.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/add/operator/zipAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/interfaces.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/ArrayLikeObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/ArrayObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/BoundCallbackObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/BoundNodeCallbackObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/ConnectableObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/DeferObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/EmptyObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/ErrorObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/ForkJoinObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/FromEventObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/FromEventPatternObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/FromObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/GenerateObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/IfObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/IntervalObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/IteratorObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/NeverObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/PairsObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/PromiseObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/RangeObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/ScalarObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/SubscribeOnObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/TimerObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/UsingObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/bindCallback.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/bindNodeCallback.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/combineLatest.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/concat.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/defer.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/dom/AjaxObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/dom/MiscJSDoc.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/dom/WebSocketSubject.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/dom/ajax.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/dom/webSocket.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/empty.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/forkJoin.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/from.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/fromEvent.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/fromEventPattern.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/fromPromise.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/generate.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/if.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/interval.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/merge.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/never.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/of.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/onErrorResumeNext.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/pairs.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/race.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/range.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/throw.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/timer.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/using.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/observable/zip.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/audit.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/auditTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/buffer.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/bufferCount.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/bufferTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/bufferToggle.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/bufferWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/catch.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/combineAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/combineLatest.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/concat.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/concatAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/concatMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/concatMapTo.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/count.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/debounce.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/debounceTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/defaultIfEmpty.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/delay.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/delayWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/dematerialize.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/distinct.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/distinctUntilChanged.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/distinctUntilKeyChanged.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/do.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/elementAt.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/every.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/exhaust.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/exhaustMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/expand.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/filter.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/finally.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/find.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/findIndex.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/first.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/groupBy.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/ignoreElements.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/isEmpty.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/last.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/let.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/map.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/mapTo.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/materialize.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/max.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/merge.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/mergeAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/mergeMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/mergeMapTo.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/mergeScan.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/min.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/multicast.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/observeOn.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/onErrorResumeNext.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/pairwise.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/partition.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/pluck.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/publish.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/publishBehavior.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/publishLast.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/publishReplay.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/race.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/reduce.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/repeat.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/repeatWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/retry.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/retryWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/sample.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/sampleTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/scan.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/sequenceEqual.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/share.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/shareReplay.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/single.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/skip.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/skipLast.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/skipUntil.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/skipWhile.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/startWith.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/subscribeOn.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/switch.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/switchMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/switchMapTo.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/take.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/takeLast.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/takeUntil.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/takeWhile.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/throttle.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/throttleTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/timeInterval.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/timeout.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/timeoutWith.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/timestamp.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/toArray.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/toPromise.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/window.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/windowCount.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/windowTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/windowToggle.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/windowWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/withLatestFrom.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/zip.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operator/zipAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/audit.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/auditTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/buffer.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/bufferCount.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/bufferTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/bufferToggle.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/bufferWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/catchError.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/combineAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/combineLatest.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/concat.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/concatAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/concatMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/concatMapTo.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/count.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/debounce.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/debounceTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/defaultIfEmpty.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/delay.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/delayWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/dematerialize.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/distinct.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/distinctUntilChanged.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/distinctUntilKeyChanged.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/elementAt.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/every.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/exhaust.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/exhaustMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/expand.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/filter.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/finalize.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/find.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/findIndex.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/first.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/groupBy.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/ignoreElements.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/isEmpty.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/last.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/map.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/mapTo.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/materialize.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/max.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/merge.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/mergeAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/mergeMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/mergeMapTo.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/mergeScan.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/min.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/multicast.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/observeOn.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/onErrorResumeNext.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/pairwise.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/partition.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/pluck.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/publish.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/publishBehavior.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/publishLast.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/publishReplay.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/race.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/reduce.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/refCount.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/repeat.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/repeatWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/retry.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/retryWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/sample.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/sampleTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/scan.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/sequenceEqual.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/share.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/shareReplay.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/single.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/skip.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/skipLast.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/skipUntil.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/skipWhile.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/startWith.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/subscribeOn.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/switchAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/switchMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/switchMapTo.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/take.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/takeLast.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/takeUntil.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/takeWhile.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/tap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/throttle.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/throttleTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/timeInterval.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/timeout.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/timeoutWith.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/timestamp.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/toArray.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/window.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/windowCount.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/windowTime.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/windowToggle.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/windowWhen.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/withLatestFrom.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/zip.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/operators/zipAll.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/Action.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/AnimationFrameAction.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/AnimationFrameScheduler.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/AsapAction.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/AsapScheduler.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/AsyncAction.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/AsyncScheduler.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/QueueAction.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/QueueScheduler.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/VirtualTimeScheduler.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/animationFrame.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/asap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/async.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/scheduler/queue.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/symbol/iterator.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/symbol/observable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/symbol/rxSubscriber.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/testing/ColdObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/testing/HotObservable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/testing/SubscriptionLog.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/testing/SubscriptionLoggable.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/testing/TestMessage.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/testing/TestScheduler.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/tsconfig.json create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/AnimationFrame.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/ArgumentOutOfRangeError.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/EmptyError.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/FastMap.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/Immediate.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/Map.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/MapPolyfill.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/ObjectUnsubscribedError.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/Set.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/TimeoutError.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/UnsubscriptionError.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/applyMixins.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/assign.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/errorObject.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/identity.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/isArray.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/isArrayLike.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/isDate.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/isFunction.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/isNumeric.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/isObject.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/isPromise.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/isScheduler.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/noop.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/not.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/pipe.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/root.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/subscribeToResult.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/toSubscriber.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/src/util/tryCatch.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/symbol/iterator.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/symbol/iterator.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/symbol/iterator.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/symbol/observable.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/symbol/observable.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/symbol/observable.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/symbol/rxSubscriber.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/symbol/rxSubscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/symbol/rxSubscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/AnimationFrame.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/AnimationFrame.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/AnimationFrame.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/ArgumentOutOfRangeError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/ArgumentOutOfRangeError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/EmptyError.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/EmptyError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/EmptyError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/FastMap.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/FastMap.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/FastMap.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/Immediate.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/Immediate.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/Immediate.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/Map.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/Map.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/Map.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/MapPolyfill.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/MapPolyfill.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/MapPolyfill.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/ObjectUnsubscribedError.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/ObjectUnsubscribedError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/ObjectUnsubscribedError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/Set.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/Set.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/Set.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/TimeoutError.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/TimeoutError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/TimeoutError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/UnsubscriptionError.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/UnsubscriptionError.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/UnsubscriptionError.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/applyMixins.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/applyMixins.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/applyMixins.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/assign.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/assign.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/assign.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/errorObject.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/errorObject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/errorObject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/identity.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/identity.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/identity.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isArray.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isArray.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isArray.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isArrayLike.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isArrayLike.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isArrayLike.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isDate.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isDate.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isDate.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isFunction.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isFunction.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isFunction.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isNumeric.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isNumeric.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isNumeric.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isObject.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isObject.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isObject.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isPromise.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isPromise.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isPromise.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isScheduler.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isScheduler.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/isScheduler.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/noop.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/noop.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/noop.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/not.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/not.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/not.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/pipe.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/pipe.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/pipe.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/root.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/root.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/root.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/subscribeToResult.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/subscribeToResult.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/subscribeToResult.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/toSubscriber.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/toSubscriber.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/toSubscriber.js.map create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/tryCatch.d.ts create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/tryCatch.js create mode 100644 tools/node_modules/eslint/node_modules/rxjs/util/tryCatch.js.map delete mode 100644 tools/node_modules/eslint/node_modules/safe-buffer/README.md delete mode 100644 tools/node_modules/eslint/node_modules/safe-buffer/index.js delete mode 100644 tools/node_modules/eslint/node_modules/safe-buffer/package.json create mode 100644 tools/node_modules/eslint/node_modules/safer-buffer/LICENSE create mode 100644 tools/node_modules/eslint/node_modules/safer-buffer/Porting-Buffer.md create mode 100644 tools/node_modules/eslint/node_modules/safer-buffer/Readme.md create mode 100644 tools/node_modules/eslint/node_modules/safer-buffer/dangerous.js create mode 100644 tools/node_modules/eslint/node_modules/safer-buffer/package.json create mode 100644 tools/node_modules/eslint/node_modules/safer-buffer/safer.js create mode 100644 tools/node_modules/eslint/node_modules/safer-buffer/tests.js delete mode 100644 tools/node_modules/eslint/node_modules/state-toggle/history.md create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/.eslintignore create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/LICENSE create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/README.md create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/auto.js create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/helpers/MatchAllIterator.js create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/helpers/RegExpStringIterator.js create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/helpers/hidden.js create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/implementation.js create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/index.js create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/package.json create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/polyfill.js create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/regexp-matchall.js create mode 100644 tools/node_modules/eslint/node_modules/string.prototype.matchall/shim.js delete mode 100644 tools/node_modules/eslint/node_modules/string_decoder/LICENSE delete mode 100644 tools/node_modules/eslint/node_modules/string_decoder/README.md delete mode 100644 tools/node_modules/eslint/node_modules/string_decoder/lib/string_decoder.js delete mode 100644 tools/node_modules/eslint/node_modules/string_decoder/package.json create mode 100644 tools/node_modules/eslint/node_modules/symbol-observable/es/index.js create mode 100644 tools/node_modules/eslint/node_modules/symbol-observable/es/ponyfill.js create mode 100644 tools/node_modules/eslint/node_modules/symbol-observable/index.d.ts create mode 100644 tools/node_modules/eslint/node_modules/symbol-observable/index.js create mode 100644 tools/node_modules/eslint/node_modules/symbol-observable/lib/index.js create mode 100644 tools/node_modules/eslint/node_modules/symbol-observable/lib/ponyfill.js create mode 100644 tools/node_modules/eslint/node_modules/symbol-observable/license create mode 100644 tools/node_modules/eslint/node_modules/symbol-observable/package.json create mode 100644 tools/node_modules/eslint/node_modules/symbol-observable/readme.md delete mode 100644 tools/node_modules/eslint/node_modules/typedarray/LICENSE delete mode 100644 tools/node_modules/eslint/node_modules/typedarray/index.js delete mode 100644 tools/node_modules/eslint/node_modules/typedarray/package.json delete mode 100644 tools/node_modules/eslint/node_modules/typedarray/readme.markdown create mode 100644 tools/node_modules/eslint/node_modules/uri-js/README.md create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.js.map create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.min.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.min.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.min.js.map create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/index.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/index.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/index.js.map create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-iri.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-iri.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-iri.js.map create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-uri.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-uri.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-uri.js.map create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/http.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/http.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/http.js.map create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/https.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/https.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/https.js.map create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/mailto.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/mailto.js.map create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn.js.map create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/uri.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/uri.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/uri.js.map create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/util.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/util.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/dist/esnext/util.js.map create mode 100644 tools/node_modules/eslint/node_modules/uri-js/package.json create mode 100644 tools/node_modules/eslint/node_modules/uri-js/rollup.config.js create mode 100644 tools/node_modules/eslint/node_modules/uri-js/src/index.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/src/punycode.d.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/src/regexps-iri.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/src/regexps-uri.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/src/schemes/http.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/src/schemes/https.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/src/schemes/mailto.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/src/schemes/urn-uuid.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/src/schemes/urn.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/src/uri.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/src/util.ts create mode 100644 tools/node_modules/eslint/node_modules/uri-js/tsconfig.json create mode 100644 tools/node_modules/eslint/node_modules/uri-js/yarn.lock delete mode 100644 tools/node_modules/eslint/node_modules/util-deprecate/README.md delete mode 100644 tools/node_modules/eslint/node_modules/util-deprecate/browser.js delete mode 100644 tools/node_modules/eslint/node_modules/util-deprecate/node.js delete mode 100644 tools/node_modules/eslint/node_modules/util-deprecate/package.json delete mode 100644 tools/node_modules/eslint/node_modules/x-is-function/README.md delete mode 100644 tools/node_modules/eslint/node_modules/x-is-function/index.js delete mode 100644 tools/node_modules/eslint/node_modules/x-is-function/package.json delete mode 100644 tools/node_modules/eslint/node_modules/yallist/LICENSE delete mode 100644 tools/node_modules/eslint/node_modules/yallist/README.md delete mode 100644 tools/node_modules/eslint/node_modules/yallist/iterator.js delete mode 100644 tools/node_modules/eslint/node_modules/yallist/package.json delete mode 100644 tools/node_modules/eslint/node_modules/yallist/yallist.js diff --git a/tools/node_modules/eslint/README.md b/tools/node_modules/eslint/README.md index 1f42b791c7a1a8..34fd0ef3612476 100644 --- a/tools/node_modules/eslint/README.md +++ b/tools/node_modules/eslint/README.md @@ -1,7 +1,6 @@ [![NPM version][npm-image]][npm-url] [![build status][travis-image]][travis-url] [![Build status][appveyor-image]][appveyor-url] -[![Test coverage][coveralls-image]][coveralls-url] [![Downloads][downloads-image]][downloads-url] [![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=282608)](https://www.bountysource.com/trackers/282608-eslint?utm_source=282608&utm_medium=shield&utm_campaign=TRACKER_BADGE) [![Join the chat at https://gitter.im/eslint/eslint](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/eslint/eslint?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) @@ -27,7 +26,7 @@ ESLint is a tool for identifying and reporting on patterns found in ECMAScript/J ## Installation and Usage -Prerequisites: [Node.js](https://nodejs.org/en/) (>=4.x), npm version 2+. +Prerequisites: [Node.js](https://nodejs.org/en/) (>=6.14), npm version 3+. There are two ways to install ESLint: globally and locally. @@ -98,61 +97,67 @@ The names `"semi"` and `"quotes"` are the names of [rules](https://eslint.org/do The three error levels allow you fine-grained control over how ESLint applies rules (for more configuration options and details, see the [configuration docs](https://eslint.org/docs/user-guide/configuring)). -## Sponsors +## Code of Conduct -* Site search ([eslint.org](https://eslint.org)) is sponsored by [Algolia](https://www.algolia.com) +ESLint adheres to the [JS Foundation Code of Conduct](https://js.foundation/community/code-of-conduct). -## Team +## Filing Issues -These folks keep the project moving and are resources for help. +Before filing an issue, please be sure to read the guidelines for what you're reporting: -### Technical Steering Committee (TSC) +* [Bug Report](https://eslint.org/docs/developer-guide/contributing/reporting-bugs) +* [Propose a New Rule](https://eslint.org/docs/developer-guide/contributing/new-rules) +* [Proposing a Rule Change](https://eslint.org/docs/developer-guide/contributing/rule-changes) +* [Request a Change](https://eslint.org/docs/developer-guide/contributing/changes) -* Nicholas C. Zakas ([@nzakas](https://github.com/nzakas)) -* Ilya Volodin ([@ilyavolodin](https://github.com/ilyavolodin)) -* Brandon Mills ([@btmills](https://github.com/btmills)) -* Gyandeep Singh ([@gyandeeps](https://github.com/gyandeeps)) -* Toru Nagashima ([@mysticatea](https://github.com/mysticatea)) -* Alberto Rodríguez ([@alberto](https://github.com/alberto)) -* Kai Cataldo ([@kaicataldo](https://github.com/kaicataldo)) -* Teddy Katz ([@not-an-aardvark](https://github.com/not-an-aardvark)) -* Kevin Partington ([@platinumazure](https://github.com/platinumazure)) +## Frequently Asked Questions -### Development Team +### I'm using JSCS, should I migrate to ESLint? -* Mathias Schreck ([@lo1tuma](https://github.com/lo1tuma)) -* Jamund Ferguson ([@xjamundx](https://github.com/xjamundx)) -* Ian VanSchooten ([@ianvs](https://github.com/ianvs)) -* Burak Yiğit Kaya ([@byk](https://github.com/byk)) -* Michael Ficarra ([@michaelficarra](https://github.com/michaelficarra)) -* Mark Pedrotti ([@pedrottimark](https://github.com/pedrottimark)) -* Oleg Gaidarenko ([@markelog](https://github.com/markelog)) -* Mike Sherov ([@mikesherov](https://github.com/mikesherov)) -* Henry Zhu ([@hzoo](https://github.com/hzoo)) -* Marat Dulin ([@mdevils](https://github.com/mdevils)) -* Alexej Yaroshevich ([@zxqfox](https://github.com/zxqfox)) -* Vitor Balocco ([@vitorbal](https://github.com/vitorbal)) -* James Henry ([@JamesHenry](https://github.com/JamesHenry)) -* Reyad Attiyat ([@soda0289](https://github.com/soda0289)) -* 薛定谔的猫 ([@Aladdin-ADD](https://github.com/Aladdin-ADD)) -* Victor Hom ([@VictorHom](https://github.com/VictorHom)) +Maybe, depending on how much you need it. [JSCS has reached end of life](https://eslint.org/blog/2016/07/jscs-end-of-life), but if it is working for you then there is no reason to move yet. There are still [a few issues](https://github.com/eslint/eslint/milestones/JSCS%20Compatibility) pending. We’ll announce when all of the changes necessary to support JSCS users in ESLint are complete and will start encouraging JSCS users to switch to ESLint at that time. -## Releases +If you are having issues with JSCS, you can try to move to ESLint. Have a look at our [migration guide](https://eslint.org/docs/user-guide/migrating-from-jscs). -We have scheduled releases every two weeks on Friday or Saturday. +### Does Prettier replace ESLint? -## Code of Conduct +No, ESLint does both traditional linting (looking for problematic patterns) and style checking (enforcement of conventions). You can use ESLint for everything, or you can combine both using Prettier to format your code and ESLint to catch possible errors. -ESLint adheres to the [JS Foundation Code of Conduct](https://js.foundation/community/code-of-conduct). +### Why can't ESLint find my plugins? -## Filing Issues +ESLint can be [globally or locally installed](#installation-and-usage). If you install ESLint globally, your plugins must also be installed globally; if you install ESLint locally, your plugins must also be installed locally. -Before filing an issue, please be sure to read the guidelines for what you're reporting: +If you are trying to run globally, make sure your plugins are installed globally (use `npm ls -g`). -* [Bug Report](https://eslint.org/docs/developer-guide/contributing/reporting-bugs) -* [Propose a New Rule](https://eslint.org/docs/developer-guide/contributing/new-rules) -* [Proposing a Rule Change](https://eslint.org/docs/developer-guide/contributing/rule-changes) -* [Request a Change](https://eslint.org/docs/developer-guide/contributing/changes) +If you are trying to run locally: + +* Make sure your plugins (and ESLint) are both in your project's `package.json` as devDependencies (or dependencies, if your project uses ESLint at runtime). +* Make sure you have run `npm install` and all your dependencies are installed. + +In all cases, make sure your plugins' peerDependencies have been installed as well. You can use `npm view eslint-plugin-myplugin peerDepencies` to see what peer dependencies `eslint-plugin-myplugin` has. + +### Does ESLint support JSX? + +Yes, ESLint natively supports parsing JSX syntax (this must be enabled in [configuration](https://eslint.org/docs/user-guide/configuring)). Please note that supporting JSX syntax *is not* the same as supporting React. React applies specific semantics to JSX syntax that ESLint doesn't recognize. We recommend using [eslint-plugin-react](https://www.npmjs.com/package/eslint-plugin-react) if you are using React and want React semantics. + +### What ECMAScript versions does ESLint support? + +ESLint has full support for ECMAScript 3, 5 (default), 2015, 2016, 2017, and 2018. You can set your desired ECMAScript syntax (and other settings, like global variables or your target environments) through [configuration](https://eslint.org/docs/user-guide/configuring). + +### What about experimental features? + +ESLint's parser only officially supports the latest final ECMAScript standard. We will make changes to core rules in order to avoid crashes on stage 3 ECMAScript syntax proposals (as long as they are implemented using the correct experimental ESTree syntax). We may make changes to core rules to better work with language extensions (such as JSX, Flow, and TypeScript) on a case-by-case basis. + +In other cases (including if rules need to warn on more or fewer cases due to new syntax, rather than just not crashing), we recommend you use other parsers and/or rule plugins. If you are using Babel, you can use the [babel-eslint](https://github.com/babel/babel-eslint) parser and [eslint-plugin-babel](https://github.com/babel/eslint-plugin-babel) to use any option available in Babel. + +Once a language feature has been adopted into the ECMAScript standard (stage 4 according to the [TC39 process](https://tc39.github.io/process-document/)), we will accept issues and pull requests related to the new feature, subject to our [contributing guidelines](https://eslint.org/docs/developer-guide/contributing). Until then, please use the appropriate parser and plugin(s) for your experimental feature. + +### Where to ask for help? + +Join our [Mailing List](https://groups.google.com/group/eslint) or [Chatroom](https://gitter.im/eslint/eslint). + +## Releases + +We have scheduled releases every two weeks on Friday or Saturday. ## Semantic Versioning Policy @@ -184,62 +189,158 @@ According to our policy, any minor update may report more errors than the previo [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Feslint%2Feslint.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Feslint%2Feslint?ref=badge_large) -## Frequently Asked Questions - -### How is ESLint different from JSHint? - -The most significant difference is that ESLint has pluggable linting rules. That means you can use the rules it comes with, or you can extend it with rules created by others or by yourself! - -### How does ESLint performance compare to JSHint? - -ESLint is slower than JSHint, usually 2-3x slower on a single file. This is because ESLint uses Espree to construct an AST before it can evaluate your code whereas JSHint evaluates your code as it's being parsed. The speed is also based on the number of rules you enable; the more rules you enable, the slower the process. - -Despite being slower, we believe that ESLint is fast enough to replace JSHint without causing significant pain. - -### I heard ESLint is going to replace JSCS? - -Yes. Since we are solving the same problems, ESLint and JSCS teams have decided to join forces and work together in the development of ESLint instead of competing with each other. You can read more about this in both [ESLint](https://eslint.org/blog/2016/04/welcoming-jscs-to-eslint) and [JSCS](https://medium.com/@markelog/jscs-end-of-the-line-bc9bf0b3fdb2#.u76sx334n) announcements. - -### So, should I stop using JSCS and start using ESLint? - -Maybe, depending on how much you need it. [JSCS has reached end of life](https://eslint.org/blog/2016/07/jscs-end-of-life), but if it is working for you then there is no reason to move yet. We are still working to smooth the transition. You can see our progress [here](https://github.com/eslint/eslint/milestones/JSCS%20Compatibility). We’ll announce when all of the changes necessary to support JSCS users in ESLint are complete and will start encouraging JSCS users to switch to ESLint at that time. - -If you are having issues with JSCS, you can try to move to ESLint. We are focusing our time and energy on JSCS compatibility issues. - -### Is ESLint just linting or does it also check style? - -ESLint does both traditional linting (looking for problematic patterns) and style checking (enforcement of conventions). You can use it for both. - -### Why can't ESLint find my plugins? - -ESLint can be [globally or locally installed](#installation-and-usage). If you install ESLint globally, your plugins must also be installed globally; if you install ESLint locally, your plugins must also be installed locally. - -If you are trying to run globally, make sure your plugins are installed globally (use `npm ls -g`). - -If you are trying to run locally: - -* Make sure your plugins (and ESLint) are both in your project's `package.json` as devDependencies (or dependencies, if your project uses ESLint at runtime). -* Make sure you have run `npm install` and all your dependencies are installed. - -In all cases, make sure your plugins' peerDependencies have been installed as well. You can use `npm view eslint-plugin-myplugin peerDepencies` to see what peer dependencies `eslint-plugin-myplugin` has. - -### Does ESLint support JSX? - -Yes, ESLint natively supports parsing JSX syntax (this must be enabled in [configuration](https://eslint.org/docs/user-guide/configuring)). Please note that supporting JSX syntax *is not* the same as supporting React. React applies specific semantics to JSX syntax that ESLint doesn't recognize. We recommend using [eslint-plugin-react](https://www.npmjs.com/package/eslint-plugin-react) if you are using React and want React semantics. +## Team -### What ECMAScript versions does ESLint support? +These folks keep the project moving and are resources for help. -ESLint has full support for ECMAScript 3, 5 (default), 2015, 2016, 2017, and 2018. You can set your desired ECMAScript syntax (and other settings, like global variables or your target environments) through [configuration](https://eslint.org/docs/user-guide/configuring). +### Technical Steering Committee (TSC) -### What about experimental features? + + + + + + + + + + + + + + +
+ +
+ Nicholas C. Zakas
+
+ +
+ Ilya Volodin
+
+ +
+ Brandon Mills
+
+ +
+ Gyandeep Singh
+
+ +
+ Toru Nagashima
+
+ +
+ Alberto Rodríguez
+
+ +
+ Kai Cataldo
+
+ +
+ Teddy Katz
+
+ +
+ Kevin Partington
+
-ESLint doesn't natively support experimental ECMAScript language features. You can use [babel-eslint](https://github.com/babel/babel-eslint) to use any option available in Babel. +### Development Team -Once a language feature has been adopted into the ECMAScript standard (stage 4 according to the [TC39 process](https://tc39.github.io/process-document/)), we will accept issues and pull requests related to the new feature, subject to our [contributing guidelines](https://eslint.org/docs/developer-guide/contributing). Until then, please use the appropriate parser and plugin(s) for your experimental feature. + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ Mathias Schreck
+
+ +
+ Jamund Ferguson
+
+ +
+ Ian VanSchooten
+
+ +
+ Burak Yiğit Kaya
+
+ +
+ Michael Ficarra
+
+ +
+ Mark Pedrotti
+
+ +
+ Oleg Gaidarenko
+
+ +
+ Mike Sherov
+
+ +
+ Henry Zhu
+
+ +
+ Marat Dulin
+
+ +
+ Alexej Yaroshevich
+
+ +
+ Vitor Balocco
+
+ +
+ James Henry
+
+ +
+ Reyad Attiyat
+
+ +
+ 薛定谔的猫
+
+ +
+ Victor Hom
+
-### Where to ask for help? +## Sponsors -Join our [Mailing List](https://groups.google.com/group/eslint) or [Chatroom](https://gitter.im/eslint/eslint). +* Site search ([eslint.org](https://eslint.org)) is sponsored by [Algolia](https://www.algolia.com) [npm-image]: https://img.shields.io/npm/v/eslint.svg?style=flat-square diff --git a/tools/node_modules/eslint/bin/eslint.js b/tools/node_modules/eslint/bin/eslint.js index 1a298047aed389..adc07c2e75c33d 100755 --- a/tools/node_modules/eslint/bin/eslint.js +++ b/tools/node_modules/eslint/bin/eslint.js @@ -27,8 +27,7 @@ if (debug) { //------------------------------------------------------------------------------ // now we can safely include the other modules that use debug -const concat = require("concat-stream"), - cli = require("../lib/cli"), +const cli = require("../lib/cli"), path = require("path"), fs = require("fs"); @@ -53,13 +52,19 @@ process.once("uncaughtException", err => { console.error(err.stack); } - process.exitCode = 1; + process.exitCode = 2; }); if (useStdIn) { - process.stdin.pipe(concat({ encoding: "string" }, text => { - process.exitCode = cli.execute(process.argv, text); - })); + + /* + * Note: `process.stdin.fd` is not used here due to https://github.com/nodejs/node/issues/7439. + * Accessing the `process.stdin` property seems to modify the behavior of file descriptor 0, resulting + * in an error when stdin is piped in asynchronously. + */ + const STDIN_FILE_DESCRIPTOR = 0; + + process.exitCode = cli.execute(process.argv, fs.readFileSync(STDIN_FILE_DESCRIPTOR, "utf8")); } else if (init) { const configInit = require("../lib/config/config-initializer"); diff --git a/tools/node_modules/eslint/conf/blank-script.json b/tools/node_modules/eslint/conf/blank-script.json deleted file mode 100644 index d7d7d37ba89472..00000000000000 --- a/tools/node_modules/eslint/conf/blank-script.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "Program", - "body": [], - "sourceType": "script", - "range": [ - 0, - 0 - ], - "loc": { - "start": { - "line": 0, - "column": 0 - }, - "end": { - "line": 0, - "column": 0 - } - }, - "comments": [], - "tokens": [] -} diff --git a/tools/node_modules/eslint/conf/default-cli-options.js b/tools/node_modules/eslint/conf/default-cli-options.js index 7d46d46c521049..9670a14b00c304 100644 --- a/tools/node_modules/eslint/conf/default-cli-options.js +++ b/tools/node_modules/eslint/conf/default-cli-options.js @@ -26,5 +26,6 @@ module.exports = { cacheFile: ".eslintcache", fix: false, allowInlineConfig: true, - reportUnusedDisableDirectives: false + reportUnusedDisableDirectives: false, + globInputPaths: true }; diff --git a/tools/node_modules/eslint/conf/environments.js b/tools/node_modules/eslint/conf/environments.js index 13020ebb5256c7..1c2b12eed31bb5 100644 --- a/tools/node_modules/eslint/conf/environments.js +++ b/tools/node_modules/eslint/conf/environments.js @@ -19,126 +19,10 @@ module.exports = { globals: globals.es5 }, browser: { - - /* - * For backward compatibility. - * Remove those on the next major release. - */ - globals: Object.assign( - { - AutocompleteErrorEvent: false, - CDATASection: false, - ClientRect: false, - ClientRectList: false, - CSSAnimation: false, - CSSTransition: false, - CSSUnknownRule: false, - CSSViewportRule: false, - Debug: false, - DocumentTimeline: false, - DOMSettableTokenList: false, - ElementTimeControl: false, - FederatedCredential: false, - FileError: false, - HTMLAppletElement: false, - HTMLBlockquoteElement: false, - HTMLIsIndexElement: false, - HTMLKeygenElement: false, - HTMLLayerElement: false, - IDBEnvironment: false, - InputMethodContext: false, - MediaKeyError: false, - MediaKeyEvent: false, - MediaKeys: false, - opera: false, - PasswordCredential: false, - ReadableByteStream: false, - SharedKeyframeList: false, - showModalDialog: false, - SiteBoundCredential: false, - SVGAltGlyphDefElement: false, - SVGAltGlyphElement: false, - SVGAltGlyphItemElement: false, - SVGAnimateColorElement: false, - SVGAnimatedPathData: false, - SVGAnimatedPoints: false, - SVGColor: false, - SVGColorProfileElement: false, - SVGColorProfileRule: false, - SVGCSSRule: false, - SVGCursorElement: false, - SVGDocument: false, - SVGElementInstance: false, - SVGElementInstanceList: false, - SVGEvent: false, - SVGExternalResourcesRequired: false, - SVGFilterPrimitiveStandardAttributes: false, - SVGFitToViewBox: false, - SVGFontElement: false, - SVGFontFaceElement: false, - SVGFontFaceFormatElement: false, - SVGFontFaceNameElement: false, - SVGFontFaceSrcElement: false, - SVGFontFaceUriElement: false, - SVGGlyphElement: false, - SVGGlyphRefElement: false, - SVGHKernElement: false, - SVGICCColor: false, - SVGLangSpace: false, - SVGLocatable: false, - SVGMissingGlyphElement: false, - SVGPaint: false, - SVGPathSeg: false, - SVGPathSegArcAbs: false, - SVGPathSegArcRel: false, - SVGPathSegClosePath: false, - SVGPathSegCurvetoCubicAbs: false, - SVGPathSegCurvetoCubicRel: false, - SVGPathSegCurvetoCubicSmoothAbs: false, - SVGPathSegCurvetoCubicSmoothRel: false, - SVGPathSegCurvetoQuadraticAbs: false, - SVGPathSegCurvetoQuadraticRel: false, - SVGPathSegCurvetoQuadraticSmoothAbs: false, - SVGPathSegCurvetoQuadraticSmoothRel: false, - SVGPathSegLinetoAbs: false, - SVGPathSegLinetoHorizontalAbs: false, - SVGPathSegLinetoHorizontalRel: false, - SVGPathSegLinetoRel: false, - SVGPathSegLinetoVerticalAbs: false, - SVGPathSegLinetoVerticalRel: false, - SVGPathSegList: false, - SVGPathSegMovetoAbs: false, - SVGPathSegMovetoRel: false, - SVGRenderingIntent: false, - SVGStylable: false, - SVGTests: false, - SVGTransformable: false, - SVGTRefElement: false, - SVGURIReference: false, - SVGViewSpec: false, - SVGVKernElement: false, - SVGZoomAndPan: false, - SVGZoomEvent: false, - TimeEvent: false, - XDomainRequest: false, - XMLHttpRequestProgressEvent: false, - XPathException: false, - XPathNamespace: false, - XPathNSResolver: false - }, - globals.browser - ) + globals: globals.browser }, node: { - - /* - * For backward compatibility. - * Remove those on the next major release. - */ - globals: Object.assign( - { arguments: false, GLOBAL: false, root: false }, - globals.node - ), + globals: globals.node, parserOptions: { ecmaFeatures: { globalReturn: true @@ -169,15 +53,7 @@ module.exports = { globals: globals.jasmine }, jest: { - - /* - * For backward compatibility. - * Remove those on the next major release. - */ - globals: Object.assign( - { check: false, gen: false }, - globals.jest - ) + globals: globals.jest }, phantomjs: { globals: globals.phantomjs diff --git a/tools/node_modules/eslint/conf/eslint-recommended.js b/tools/node_modules/eslint/conf/eslint-recommended.js index 0acee234a56b87..28d7aa4f93d614 100644 --- a/tools/node_modules/eslint/conf/eslint-recommended.js +++ b/tools/node_modules/eslint/conf/eslint-recommended.js @@ -39,14 +39,14 @@ module.exports = { "dot-notation": "off", "eol-last": "off", eqeqeq: "off", - "for-direction": "off", + "for-direction": "error", "func-call-spacing": "off", "func-name-matching": "off", "func-names": "off", "func-style": "off", "function-paren-newline": "off", "generator-star-spacing": "off", - "getter-return": "off", + "getter-return": "error", "global-require": "off", "guard-for-in": "off", "handle-callback-err": "off", @@ -65,9 +65,11 @@ module.exports = { "lines-around-comment": "off", "lines-around-directive": "off", "lines-between-class-members": "off", + "max-classes-per-file": "off", "max-depth": "off", "max-len": "off", "max-lines": "off", + "max-lines-per-function": "off", "max-nested-callbacks": "off", "max-params": "off", "max-statements": "off", @@ -229,6 +231,7 @@ module.exports = { "prefer-const": "off", "prefer-destructuring": "off", "prefer-numeric-literals": "off", + "prefer-object-spread": "off", "prefer-promise-reject-errors": "off", "prefer-reflect": "off", "prefer-rest-params": "off", diff --git a/tools/node_modules/eslint/lib/api.js b/tools/node_modules/eslint/lib/api.js index 0a0832a47645d3..91dae3c7cbb42b 100644 --- a/tools/node_modules/eslint/lib/api.js +++ b/tools/node_modules/eslint/lib/api.js @@ -8,9 +8,21 @@ const Linter = require("./linter"); module.exports = { - linter: new Linter(), Linter, CLIEngine: require("./cli-engine"), RuleTester: require("./testers/rule-tester"), SourceCode: require("./util/source-code") }; + +let deprecatedLinterInstance = null; + +Object.defineProperty(module.exports, "linter", { + enumerable: false, + get() { + if (!deprecatedLinterInstance) { + deprecatedLinterInstance = new Linter(); + } + + return deprecatedLinterInstance; + } +}); diff --git a/tools/node_modules/eslint/lib/cli-engine.js b/tools/node_modules/eslint/lib/cli-engine.js index 8531d1c1d4f606..9cab3b47b27499 100644 --- a/tools/node_modules/eslint/lib/cli-engine.js +++ b/tools/node_modules/eslint/lib/cli-engine.js @@ -381,6 +381,21 @@ class CLIEngine { providedOptions ); + /* + * if an --ignore-path option is provided, ensure that the ignore + * file exists and is not a directory + */ + if (options.ignore && options.ignorePath) { + try { + if (!fs.statSync(options.ignorePath).isFile()) { + throw new Error(`${options.ignorePath} is not a file`); + } + } catch (e) { + e.message = `Error: Could not load file ${options.ignorePath}\nError: ${e.message}`; + throw e; + } + } + /** * Stored options for this instance * @type {Object} @@ -481,7 +496,7 @@ class CLIEngine { * @returns {string[]} The equivalent glob patterns. */ resolveFileGlobPatterns(patterns) { - return globUtil.resolveFileGlobPatterns(patterns, this.options); + return globUtil.resolveFileGlobPatterns(patterns.filter(Boolean), this.options); } /** @@ -515,7 +530,7 @@ class CLIEngine { } const startTime = Date.now(); - const fileList = globUtil.listFilesToProcess(this.resolveFileGlobPatterns(patterns), options); + const fileList = globUtil.listFilesToProcess(patterns, options); const results = fileList.map(fileInfo => { if (fileInfo.ignored) { return createIgnoreResult(fileInfo.filename, options.cwd); diff --git a/tools/node_modules/eslint/lib/cli.js b/tools/node_modules/eslint/lib/cli.js index 6a5482bf9adf16..1bd3c52ebc83f9 100644 --- a/tools/node_modules/eslint/lib/cli.js +++ b/tools/node_modules/eslint/lib/cli.js @@ -132,6 +132,9 @@ const cli = { * @returns {int} The exit code for the operation. */ execute(args, text) { + if (Array.isArray(args)) { + debug("CLI args: %o", args.slice(2)); + } let currentOptions; @@ -139,7 +142,7 @@ const cli = { currentOptions = options.parse(args); } catch (error) { log.error(error.message); - return 1; + return 2; } const files = currentOptions._; @@ -153,11 +156,11 @@ const cli = { } else if (currentOptions.printConfig) { if (files.length) { log.error("The --print-config option must be used with exactly one file name."); - return 1; + return 2; } if (useStdin) { log.error("The --print-config option is not available for piped-in code."); - return 1; + return 2; } const engine = new CLIEngine(translateOptions(currentOptions)); @@ -176,12 +179,12 @@ const cli = { if (currentOptions.fix && currentOptions.fixDryRun) { log.error("The --fix option and the --fix-dry-run option cannot be used together."); - return 1; + return 2; } if (useStdin && currentOptions.fix) { log.error("The --fix option is not available for piped-in code; use --fix-dry-run instead."); - return 1; + return 2; } const engine = new CLIEngine(translateOptions(currentOptions)); @@ -207,7 +210,7 @@ const cli = { return (report.errorCount || tooManyWarnings) ? 1 : 0; } - return 1; + return 2; } diff --git a/tools/node_modules/eslint/lib/code-path-analysis/code-path-analyzer.js b/tools/node_modules/eslint/lib/code-path-analysis/code-path-analyzer.js index 1a4f7870baaab4..80b73faa3cb1b7 100644 --- a/tools/node_modules/eslint/lib/code-path-analysis/code-path-analyzer.js +++ b/tools/node_modules/eslint/lib/code-path-analysis/code-path-analyzer.js @@ -30,6 +30,17 @@ function isCaseNode(node) { return Boolean(node.test); } +/** + * Checks whether the given logical operator is taken into account for the code + * path analysis. + * + * @param {string} operator - The operator found in the LogicalExpression node + * @returns {boolean} `true` if the operator is "&&" or "||" + */ +function isHandledLogicalOperator(operator) { + return operator === "&&" || operator === "||"; +} + /** * Checks whether or not a given logical expression node goes different path * between the `true` case and the `false` case. @@ -230,7 +241,10 @@ function preprocess(analyzer, node) { switch (parent.type) { case "LogicalExpression": - if (parent.right === node) { + if ( + parent.right === node && + isHandledLogicalOperator(parent.operator) + ) { state.makeLogicalRight(); } break; @@ -361,7 +375,12 @@ function processCodePathToEnter(analyzer, node) { break; case "LogicalExpression": - state.pushChoiceContext(node.operator, isForkingByTrueOrFalse(node)); + if (isHandledLogicalOperator(node.operator)) { + state.pushChoiceContext( + node.operator, + isForkingByTrueOrFalse(node) + ); + } break; case "ConditionalExpression": @@ -430,10 +449,15 @@ function processCodePathToExit(analyzer, node) { switch (node.type) { case "IfStatement": case "ConditionalExpression": - case "LogicalExpression": state.popChoiceContext(); break; + case "LogicalExpression": + if (isHandledLogicalOperator(node.operator)) { + state.popChoiceContext(); + } + break; + case "SwitchStatement": state.popSwitchContext(); break; diff --git a/tools/node_modules/eslint/lib/config.js b/tools/node_modules/eslint/lib/config.js index 7ba5cd6e2d1db6..2eeaad1812ae17 100644 --- a/tools/node_modules/eslint/lib/config.js +++ b/tools/node_modules/eslint/lib/config.js @@ -209,7 +209,7 @@ class Config { const localConfigHierarchyCache = this.configCache.getHierarchyLocalConfigs(localConfigDirectory); if (localConfigHierarchyCache) { - const localConfigHierarchy = localConfigHierarchyCache.concat(configs.reverse()); + const localConfigHierarchy = localConfigHierarchyCache.concat(configs); this.configCache.setHierarchyLocalConfigs(searched, localConfigHierarchy); return localConfigHierarchy; @@ -232,7 +232,7 @@ class Config { } debug(`Using ${localConfigFile}`); - configs.push(localConfig); + configs.unshift(localConfig); searched.push(localConfigDirectory); // Stop traversing if a config is found with the root flag set @@ -248,7 +248,7 @@ class Config { const personalConfig = this.getPersonalConfig(); if (personalConfig) { - configs.push(personalConfig); + configs.unshift(personalConfig); } else if (!hasRules(this.options) && !this.options.baseConfig) { // No config file, no manual configuration, and no rules, so error. @@ -265,7 +265,7 @@ class Config { } // Set the caches for the parent directories - this.configCache.setHierarchyLocalConfigs(searched, configs.reverse()); + this.configCache.setHierarchyLocalConfigs(searched, configs); return configs; } diff --git a/tools/node_modules/eslint/lib/config/config-file.js b/tools/node_modules/eslint/lib/config/config-file.js index 37ac84831a2422..d09b36688460d2 100644 --- a/tools/node_modules/eslint/lib/config/config-file.js +++ b/tools/node_modules/eslint/lib/config/config-file.js @@ -115,6 +115,11 @@ function loadJSONConfigFile(filePath) { } catch (e) { debug(`Error reading JSON file: ${filePath}`); e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; + e.messageTemplate = "failed-to-read-json"; + e.messageData = { + path: filePath, + message: e.message + }; throw e; } } @@ -467,7 +472,7 @@ function resolve(filePath, relativeTo) { debug(`Attempting to resolve ${normalizedPackageName}`); return { - filePath: resolver.resolve(normalizedPackageName, getLookupPath(relativeTo)), + filePath: require.resolve(normalizedPackageName), configName, configFullName }; @@ -567,6 +572,22 @@ function load(filePath, configContext, relativeTo) { return config; } +/** + * Checks whether the given filename points to a file + * @param {string} filename A path to a file + * @returns {boolean} `true` if a file exists at the given location + */ +function isExistingFile(filename) { + try { + return fs.statSync(filename).isFile(); + } catch (err) { + if (err.code === "ENOENT") { + return false; + } + throw err; + } +} + //------------------------------------------------------------------------------ // Public Interface @@ -591,14 +612,6 @@ module.exports = { * or null if there is no configuration file in the directory. */ getFilenameForDirectory(directory) { - for (let i = 0, len = CONFIG_FILES.length; i < len; i++) { - const filename = path.join(directory, CONFIG_FILES[i]); - - if (fs.existsSync(filename) && fs.statSync(filename).isFile()) { - return filename; - } - } - - return null; + return CONFIG_FILES.map(filename => path.join(directory, filename)).find(isExistingFile) || null; } }; diff --git a/tools/node_modules/eslint/lib/config/config-initializer.js b/tools/node_modules/eslint/lib/config/config-initializer.js index e4865a008cac4d..b090d36b592472 100644 --- a/tools/node_modules/eslint/lib/config/config-initializer.js +++ b/tools/node_modules/eslint/lib/config/config-initializer.js @@ -82,12 +82,12 @@ function getPeerDependencies(moduleName) { getPeerDependencies.cache = new Map(); /** - * Synchronously install necessary plugins, configs, parsers, etc. based on the config + * Return necessary plugins, configs, parsers, etc. based on the config * @param {Object} config config object * @param {boolean} [installESLint=true] If `false` is given, it does not install eslint. - * @returns {void} + * @returns {string[]} An array of modules to be installed. */ -function installModules(config, installESLint) { +function getModulesList(config, installESLint) { const modules = {}; // Create a list of modules which should be installed based on config @@ -106,11 +106,6 @@ function installModules(config, installESLint) { ); } - // If no modules, do nothing. - if (Object.keys(modules).length === 0) { - return; - } - if (installESLint === false) { delete modules.eslint; } else { @@ -124,12 +119,7 @@ function installModules(config, installESLint) { } } - // Install packages - const modulesToInstall = Object.keys(modules).map(name => `${name}@${modules[name]}`); - - log.info(`Installing ${modulesToInstall.join(", ")}`); - - npmUtil.installSyncSaveDev(modulesToInstall); + return Object.keys(modules).map(name => `${name}@${modules[name]}`); } /** @@ -249,15 +239,16 @@ function configureRules(answers, config) { * @returns {Object} config object */ function processAnswers(answers) { - let config = { rules: {}, env: {} }; + let config = { rules: {}, env: {}, parserOptions: {} }; - if (answers.es6) { - config.env.es6 = true; + config.parserOptions.ecmaVersion = answers.ecmaVersion; + if (answers.ecmaVersion >= 2015) { if (answers.modules) { - config.parserOptions = config.parserOptions || {}; config.parserOptions.sourceType = "module"; } + config.env.es6 = true; } + if (answers.commonjs) { config.env.commonjs = true; } @@ -270,7 +261,7 @@ function processAnswers(answers) { config.parserOptions.ecmaFeatures.jsx = true; if (answers.react) { config.plugins = ["react"]; - config.parserOptions.ecmaFeatures.experimentalObjectRestSpread = true; + config.parserOptions.ecmaVersion = 2018; } } @@ -282,8 +273,6 @@ function processAnswers(answers) { config.rules.semi = ["error", answers.semi ? "always" : "never"]; } - installModules(config); - if (answers.source === "auto") { config = configureRules(answers, config); config = autoconfig.extendFromRecommended(config); @@ -296,10 +285,9 @@ function processAnswers(answers) { /** * process user's style guide of choice and return an appropriate config object. * @param {string} guide name of the chosen style guide - * @param {boolean} [installESLint=true] If `false` is given, it does not install eslint. * @returns {Object} config object */ -function getConfigForStyleGuide(guide, installESLint) { +function getConfigForStyleGuide(guide) { const guides = { google: { extends: "google" }, airbnb: { extends: "airbnb" }, @@ -311,8 +299,6 @@ function getConfigForStyleGuide(guide, installESLint) { throw new Error("You referenced an unsupported guide."); } - installModules(guides[guide], installESLint); - return guides[guide]; } @@ -380,7 +366,50 @@ function hasESLintVersionConflict(answers) { return true; } -/* istanbul ignore next: no need to test inquirer*/ +/** + * Install modules. + * @param {string[]} modules Modules to be installed. + * @returns {void} + */ +function installModules(modules) { + log.info(`Installing ${modules.join(", ")}`); + npmUtil.installSyncSaveDev(modules); +} + +/* istanbul ignore next: no need to test inquirer */ +/** + * Ask user to install modules. + * @param {string[]} modules Array of modules to be installed. + * @param {boolean} packageJsonExists Indicates if package.json is existed. + * @returns {Promise} Answer that indicates if user wants to install. + */ +function askInstallModules(modules, packageJsonExists) { + + // If no modules, do nothing. + if (modules.length === 0) { + return Promise.resolve(); + } + + log.info("The config that you've selected requires the following dependencies:\n"); + log.info(modules.join(" ")); + return inquirer.prompt([ + { + type: "confirm", + name: "executeInstallation", + message: "Would you like to install them now with npm?", + default: true, + when() { + return modules.length && packageJsonExists; + } + } + ]).then(({ executeInstallation }) => { + if (executeInstallation) { + installModules(modules); + } + }); +} + +/* istanbul ignore next: no need to test inquirer */ /** * Ask use a few questions on command prompt * @returns {Promise} The promise with the result of the prompt @@ -394,8 +423,8 @@ function promptUser() { message: "How would you like to configure ESLint?", default: "prompt", choices: [ - { name: "Answer questions about your style", value: "prompt" }, { name: "Use a popular style guide", value: "guide" }, + { name: "Answer questions about your style", value: "prompt" }, { name: "Inspect your JavaScript file(s)", value: "auto" } ] }, @@ -403,7 +432,11 @@ function promptUser() { type: "list", name: "styleguide", message: "Which style guide do you want to follow?", - choices: [{ name: "Google", value: "google" }, { name: "Airbnb", value: "airbnb" }, { name: "Standard", value: "standard" }], + choices: [ + { name: "Airbnb (https://github.com/airbnb/javascript)", value: "airbnb" }, + { name: "Standard (https://github.com/standard/standard)", value: "standard" }, + { name: "Google (https://github.com/google/eslint-config-google)", value: "google" } + ], when(answers) { answers.packageJsonExists = npmUtil.checkPackageJson(); return answers.source === "guide" && answers.packageJsonExists; @@ -472,20 +505,28 @@ function promptUser() { earlyAnswers.styleguide = "airbnb-base"; } - const config = getConfigForStyleGuide(earlyAnswers.styleguide, earlyAnswers.installESLint); + const config = getConfigForStyleGuide(earlyAnswers.styleguide); + const modules = getModulesList(config); - writeFile(config, earlyAnswers.format); - - return void 0; + return askInstallModules(modules, earlyAnswers.packageJsonExists) + .then(() => writeFile(config, earlyAnswers.format)); } // continue with the questions otherwise... return inquirer.prompt([ { - type: "confirm", - name: "es6", - message: "Are you using ECMAScript 6 features?", - default: false + type: "list", + name: "ecmaVersion", + message: "Which version of ECMAScript do you use?", + choices: [ + { name: "ES3", value: 3 }, + { name: "ES5", value: 5 }, + { name: "ES2015", value: 2015 }, + { name: "ES2016", value: 2016 }, + { name: "ES2017", value: 2017 }, + { name: "ES2018", value: 2018 } + ], + default: 1 // This is the index in the choices list }, { type: "confirm", @@ -493,7 +534,7 @@ function promptUser() { message: "Are you using ES6 modules?", default: false, when(answers) { - return answers.es6 === true; + return answers.ecmaVersion >= 2015; } }, { @@ -535,10 +576,9 @@ function promptUser() { const config = processAnswers(combinedAnswers); - installModules(config); - writeFile(config, earlyAnswers.format); + const modules = getModulesList(config); - return void 0; + return askInstallModules(modules).then(() => writeFile(config, earlyAnswers.format)); } // continue with the style questions otherwise... @@ -581,9 +621,9 @@ function promptUser() { const totalAnswers = Object.assign({}, earlyAnswers, secondAnswers, answers); const config = processAnswers(totalAnswers); + const modules = getModulesList(config); - installModules(config); - writeFile(config, answers.format); + return askInstallModules(modules).then(() => writeFile(config, answers.format)); }); }); }); @@ -595,7 +635,9 @@ function promptUser() { const init = { getConfigForStyleGuide, + getModulesList, hasESLintVersionConflict, + installModules, processAnswers, /* istanbul ignore next */initializeConfig() { return promptUser(); diff --git a/tools/node_modules/eslint/lib/config/config-ops.js b/tools/node_modules/eslint/lib/config/config-ops.js index 67c23a8a613870..6c298d36473cfa 100644 --- a/tools/node_modules/eslint/lib/config/config-ops.js +++ b/tools/node_modules/eslint/lib/config/config-ops.js @@ -240,14 +240,7 @@ module.exports = { * @returns {boolean} True if the rule represents an error, false if not. */ isErrorSeverity(ruleConfig) { - - let severity = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig; - - if (typeof severity === "string") { - severity = RULE_SEVERITY[severity.toLowerCase()] || 0; - } - - return (typeof severity === "number" && severity === 2); + return module.exports.getRuleSeverity(ruleConfig) === 2; }, /** diff --git a/tools/node_modules/eslint/lib/config/config-validator.js b/tools/node_modules/eslint/lib/config/config-validator.js index 1a5b3ef13e03d2..185d4650dbc245 100644 --- a/tools/node_modules/eslint/lib/config/config-validator.js +++ b/tools/node_modules/eslint/lib/config/config-validator.js @@ -9,7 +9,8 @@ // Requirements //------------------------------------------------------------------------------ -const ajv = require("../util/ajv"), +const path = require("path"), + ajv = require("../util/ajv"), lodash = require("lodash"), configSchema = require("../../conf/config-schema.js"), util = require("util"); @@ -21,6 +22,12 @@ const ruleValidators = new WeakMap(); //------------------------------------------------------------------------------ let validateSchema; +// Defitions for deprecation warnings. +const deprecationWarningMessages = Object.freeze({ + ESLINT_LEGACY_ECMAFEATURES: "The 'ecmaFeatures' config file property is deprecated, and has no effect.", + ESLINT_LEGACY_OBJECT_REST_SPREAD: "The 'parserOptions.ecmaFeatures.experimentalObjectRestSpread' option is deprecated. Use 'parserOptions.ecmaVersion' instead." +}); + /** * Gets a complete options schema for a rule. * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object @@ -194,18 +201,18 @@ function formatErrors(errors) { * for each unique file path, but repeated invocations with the same file path have no effect. * No warnings are emitted if the `--no-deprecation` or `--no-warnings` Node runtime flags are active. * @param {string} source The name of the configuration source to report the warning for. + * @param {string} errorCode The warning message to show. * @returns {void} */ -const emitEcmaFeaturesWarning = lodash.memoize(source => { - - /* - * util.deprecate seems to be the only way to emit a warning in Node 4.x while respecting the --no-warnings flag. - * (In Node 6+, process.emitWarning could be used instead.) - */ - util.deprecate( - () => {}, - `[eslint] The 'ecmaFeatures' config file property is deprecated, and has no effect. (found in ${source})` - )(); +const emitDeprecationWarning = lodash.memoize((source, errorCode) => { + const rel = path.relative(process.cwd(), source); + const message = deprecationWarningMessages[errorCode]; + + process.emitWarning( + `${message} (found in "${rel}")`, + "DeprecationWarning", + errorCode + ); }); /** @@ -221,8 +228,17 @@ function validateConfigSchema(config, source) { throw new Error(`ESLint configuration in ${source} is invalid:\n${formatErrors(validateSchema.errors)}`); } - if (Object.prototype.hasOwnProperty.call(config, "ecmaFeatures")) { - emitEcmaFeaturesWarning(source); + if (Object.hasOwnProperty.call(config, "ecmaFeatures")) { + emitDeprecationWarning(source, "ESLINT_LEGACY_ECMAFEATURES"); + } + + if ( + (config.parser || "espree") === "espree" && + config.parserOptions && + config.parserOptions.ecmaFeatures && + config.parserOptions.ecmaFeatures.experimentalObjectRestSpread + ) { + emitDeprecationWarning(source, "ESLINT_LEGACY_OBJECT_REST_SPREAD"); } } @@ -238,6 +254,11 @@ function validate(config, source, ruleMapper, envContext) { validateConfigSchema(config, source); validateRules(config.rules, source, ruleMapper); validateEnvironment(config.env, source, envContext); + + for (const override of config.overrides || []) { + validateRules(override.rules, source, ruleMapper); + validateEnvironment(override.env, source, envContext); + } } //------------------------------------------------------------------------------ diff --git a/tools/node_modules/eslint/lib/config/plugins.js b/tools/node_modules/eslint/lib/config/plugins.js index 756f9ff21b8252..37c3be497c48e7 100644 --- a/tools/node_modules/eslint/lib/config/plugins.js +++ b/tools/node_modules/eslint/lib/config/plugins.js @@ -10,12 +10,7 @@ const debug = require("debug")("eslint:plugins"); const naming = require("../util/naming"); - -//------------------------------------------------------------------------------ -// Private -//------------------------------------------------------------------------------ - -const PLUGIN_NAME_PREFIX = "eslint-plugin-"; +const path = require("path"); //------------------------------------------------------------------------------ // Public Interface @@ -44,10 +39,8 @@ class Plugins { * @returns {void} */ define(pluginName, plugin) { - const pluginNamespace = naming.getNamespaceFromTerm(pluginName), - pluginNameWithoutNamespace = naming.removeNamespaceFromTerm(pluginName), - pluginNameWithoutPrefix = naming.removePrefixFromTerm(PLUGIN_NAME_PREFIX, pluginNameWithoutNamespace), - shortName = pluginNamespace + pluginNameWithoutPrefix; + const longName = naming.normalizePackageName(pluginName, "eslint-plugin"); + const shortName = naming.getShorthandName(longName, "eslint-plugin"); // load up environments and rules this._plugins[shortName] = plugin; @@ -79,11 +72,8 @@ class Plugins { * @throws {Error} If the plugin cannot be loaded. */ load(pluginName) { - const pluginNamespace = naming.getNamespaceFromTerm(pluginName), - pluginNameWithoutNamespace = naming.removeNamespaceFromTerm(pluginName), - pluginNameWithoutPrefix = naming.removePrefixFromTerm(PLUGIN_NAME_PREFIX, pluginNameWithoutNamespace), - shortName = pluginNamespace + pluginNameWithoutPrefix, - longName = pluginNamespace + PLUGIN_NAME_PREFIX + pluginNameWithoutPrefix; + const longName = naming.normalizePackageName(pluginName, "eslint-plugin"); + const shortName = naming.getShorthandName(longName, "eslint-plugin"); let plugin = null; if (pluginName.match(/\s+/)) { @@ -111,7 +101,8 @@ class Plugins { missingPluginErr.message = `Failed to load plugin ${pluginName}: ${missingPluginErr.message}`; missingPluginErr.messageTemplate = "plugin-missing"; missingPluginErr.messageData = { - pluginName: longName + pluginName: longName, + eslintPath: path.resolve(__dirname, "../..") }; throw missingPluginErr; } diff --git a/tools/node_modules/eslint/lib/file-finder.js b/tools/node_modules/eslint/lib/file-finder.js index 11091a99d572a4..5d4b48a62afd57 100644 --- a/tools/node_modules/eslint/lib/file-finder.js +++ b/tools/node_modules/eslint/lib/file-finder.js @@ -134,7 +134,7 @@ class FileFinder { // Add what has been cached previously to the cache of each directory searched. for (let i = 0; i < searched; i++) { - [].push.apply(cache[dirs[i]], cache[directory]); + cache[dirs[i]].push(...cache[directory]); } yield* cache[dirs[0]]; diff --git a/tools/node_modules/eslint/lib/formatters/html-template-message.html b/tools/node_modules/eslint/lib/formatters/html-template-message.html index 66f49ff49d4fe2..bc353502050d0c 100644 --- a/tools/node_modules/eslint/lib/formatters/html-template-message.html +++ b/tools/node_modules/eslint/lib/formatters/html-template-message.html @@ -3,6 +3,6 @@ <%= severityName %> <%- message %> - <%= ruleId %> + <%= ruleId %> diff --git a/tools/node_modules/eslint/lib/ignored-paths.js b/tools/node_modules/eslint/lib/ignored-paths.js index 8fff260d02db14..8134d6d32e46a2 100644 --- a/tools/node_modules/eslint/lib/ignored-paths.js +++ b/tools/node_modules/eslint/lib/ignored-paths.js @@ -176,6 +176,11 @@ class IgnoredPaths { packageJSONOptions = JSON.parse(fs.readFileSync(packageJSONPath, "utf8")); } catch (e) { debug("Could not read package.json file to check eslintIgnore property"); + e.messageTemplate = "failed-to-read-json"; + e.messageData = { + path: packageJSONPath, + message: e.message + }; throw e; } @@ -231,7 +236,7 @@ class IgnoredPaths { /** * Determine whether a file path is included in the default or custom ignore patterns * @param {string} filepath Path to check - * @param {string} [category=null] check 'default', 'custom' or both (null) + * @param {string} [category=undefined] check 'default', 'custom' or both (undefined) * @returns {boolean} true if the file path matches one or more patterns, false otherwise */ contains(filepath, category) { @@ -240,12 +245,11 @@ class IgnoredPaths { const absolutePath = path.resolve(this.options.cwd, filepath); const relativePath = pathUtil.getRelativePath(absolutePath, this.baseDir); - if ((typeof category === "undefined") || (category === "default")) { - result = result || (this.ig.default.filter([relativePath]).length === 0); - } - - if ((typeof category === "undefined") || (category === "custom")) { - result = result || (this.ig.custom.filter([relativePath]).length === 0); + if (typeof category === "undefined") { + result = (this.ig.default.filter([relativePath]).length === 0) || + (this.ig.custom.filter([relativePath]).length === 0); + } else { + result = (this.ig[category].filter([relativePath]).length === 0); } return result; diff --git a/tools/node_modules/eslint/lib/linter.js b/tools/node_modules/eslint/lib/linter.js index 8c631522f9d38f..e48c4d7a97dc1f 100644 --- a/tools/node_modules/eslint/lib/linter.js +++ b/tools/node_modules/eslint/lib/linter.js @@ -13,7 +13,6 @@ const eslintScope = require("eslint-scope"), evk = require("eslint-visitor-keys"), levn = require("levn"), lodash = require("lodash"), - blankScriptAST = require("../conf/blank-script.json"), CodePathAnalyzer = require("./code-path-analysis/code-path-analyzer"), ConfigOps = require("./config/config-ops"), validator = require("./config/config-validator"), @@ -138,7 +137,6 @@ function parseJsonConfig(string, location) { ruleId: null, fatal: true, severity: 2, - source: null, message: `Failed to parse JSON from '${normalizedString}': ${ex.message}`, line: location.start.line, column: location.start.column + 1 @@ -283,10 +281,23 @@ function getDirectiveComments(filename, ast, ruleMapper) { const directiveValue = trimmedCommentText.slice(match.index + match[1].length); - if (/^eslint-disable-(next-)?line$/.test(match[1]) && comment.loc.start.line === comment.loc.end.line) { - const directiveType = match[1].slice("eslint-".length); - - [].push.apply(disableDirectives, createDisableDirectives(directiveType, comment.loc.start, directiveValue)); + if (/^eslint-disable-(next-)?line$/.test(match[1])) { + if (comment.loc.start.line === comment.loc.end.line) { + const directiveType = match[1].slice("eslint-".length); + + disableDirectives.push(...createDisableDirectives(directiveType, comment.loc.start, directiveValue)); + } else { + problems.push({ + ruleId: null, + severity: 2, + message: `${match[1]} comment should not span multiple lines.`, + line: comment.loc.start.line, + column: comment.loc.start.column + 1, + endLine: comment.loc.end.line, + endColumn: comment.loc.end.column + 1, + nodeType: null + }); + } } else if (comment.type === "Block") { switch (match[1]) { case "exported": @@ -299,11 +310,11 @@ function getDirectiveComments(filename, ast, ruleMapper) { break; case "eslint-disable": - [].push.apply(disableDirectives, createDisableDirectives("disable", comment.loc.start, directiveValue)); + disableDirectives.push(...createDisableDirectives("disable", comment.loc.start, directiveValue)); break; case "eslint-enable": - [].push.apply(disableDirectives, createDisableDirectives("enable", comment.loc.start, directiveValue)); + disableDirectives.push(...createDisableDirectives("enable", comment.loc.start, directiveValue)); break; case "eslint": { @@ -319,7 +330,6 @@ function getDirectiveComments(filename, ast, ruleMapper) { problems.push({ ruleId: name, severity: 2, - source: null, message: err.message, line: comment.loc.start.line, column: comment.loc.start.column + 1, @@ -413,11 +423,12 @@ function normalizeVerifyOptions(providedOptions) { /** * Combines the provided parserOptions with the options from environments + * @param {string} parserName The parser name which uses this options. * @param {Object} providedOptions The provided 'parserOptions' key in a config * @param {Environment[]} enabledEnvironments The environments enabled in configuration and with inline comments * @returns {Object} Resulting parser options after merge */ -function resolveParserOptions(providedOptions, enabledEnvironments) { +function resolveParserOptions(parserName, providedOptions, enabledEnvironments) { const parserOptionsFromEnv = enabledEnvironments .filter(env => env.parserOptions) .reduce((parserOptions, env) => ConfigOps.merge(parserOptions, env.parserOptions), {}); @@ -434,6 +445,16 @@ function resolveParserOptions(providedOptions, enabledEnvironments) { mergedParserOptions.ecmaVersion = normalizeEcmaVersion(mergedParserOptions.ecmaVersion, isModule); + // TODO: For backward compatibility. Will remove on v6.0.0. + if ( + parserName === DEFAULT_PARSER_NAME && + mergedParserOptions.ecmaFeatures && + mergedParserOptions.ecmaFeatures.experimentalObjectRestSpread && + (!mergedParserOptions.ecmaVersion || mergedParserOptions.ecmaVersion < 9) + ) { + mergedParserOptions.ecmaVersion = 9; + } + return mergedParserOptions; } @@ -545,7 +566,6 @@ function parse(text, providedParserOptions, parserName, parserMap, filePath) { ruleId: null, fatal: true, severity: 2, - source: null, message: ex.message, line: 0, column: 0 @@ -589,7 +609,6 @@ function parse(text, providedParserOptions, parserName, parserMap, filePath) { // If the message includes a leading line number, strip it: const message = `Parsing error: ${ex.message.replace(/^line \d+:/i, "").trim()}`; - const source = ex.lineNumber ? SourceCode.splitLines(text)[ex.lineNumber - 1] : null; return { success: false, @@ -597,7 +616,6 @@ function parse(text, providedParserOptions, parserName, parserMap, filePath) { ruleId: null, fatal: true, severity: 2, - source, message, line: ex.lineNumber, column: ex.column @@ -610,27 +628,15 @@ function parse(text, providedParserOptions, parserName, parserMap, filePath) { * Gets the scope for the current node * @param {ScopeManager} scopeManager The scope manager for this AST * @param {ASTNode} currentNode The node to get the scope of - * @param {number} ecmaVersion The `ecmaVersion` setting that this code was parsed with * @returns {eslint-scope.Scope} The scope information for this node */ -function getScope(scopeManager, currentNode, ecmaVersion) { - let initialNode; +function getScope(scopeManager, currentNode) { - // if current node introduces a scope, add it to the list - if ( - ["FunctionDeclaration", "FunctionExpression", "ArrowFunctionExpression"].indexOf(currentNode.type) >= 0 || - ecmaVersion >= 6 && ["BlockStatement", "SwitchStatement", "CatchClause"].indexOf(currentNode.type) >= 0 - ) { - initialNode = currentNode; - } else { - initialNode = currentNode.parent; - } - - // Ascend the current node's parents - for (let node = initialNode; node; node = node.parent) { + // On Program node, get the outermost scope to avoid return Node.js special function scope or ES modules scope. + const inner = currentNode.type !== "Program"; - // Get the innermost scope - const scope = scopeManager.acquire(node, true); + for (let node = currentNode; node; node = node.parent) { + const scope = scopeManager.acquire(node, inner); if (scope) { if (scope.type === "function-expression-name") { @@ -654,7 +660,7 @@ function getScope(scopeManager, currentNode, ecmaVersion) { function markVariableAsUsed(scopeManager, currentNode, parserOptions, name) { const hasGlobalReturn = parserOptions.ecmaFeatures && parserOptions.ecmaFeatures.globalReturn; const specialScope = hasGlobalReturn || parserOptions.sourceType === "module"; - const currentScope = getScope(scopeManager, currentNode, parserOptions.ecmaVersion); + const currentScope = getScope(scopeManager, currentNode); // Special Node.js scope means we need to start one level deeper const initialScope = currentScope.type === "global" && specialScope ? currentScope.childScopes[0] : currentScope; @@ -686,6 +692,22 @@ function createRuleListeners(rule, ruleContext) { } } +/** + * Gets all the ancestors of a given node + * @param {ASTNode} node The node + * @returns {ASTNode[]} All the ancestor nodes in the AST, not including the provided node, starting + * from the root node and going inwards to the parent node. + */ +function getAncestors(node) { + const ancestorsStartingAtParent = []; + + for (let ancestor = node.parent; ancestor; ancestor = ancestor.parent) { + ancestorsStartingAtParent.push(ancestor); + } + + return ancestorsStartingAtParent.reverse(); +} + // methods that exist on SourceCode object const DEPRECATED_SOURCECODE_PASSTHROUGHS = { getSource: "getText", @@ -714,10 +736,8 @@ const BASE_TRAVERSAL_CONTEXT = Object.freeze( Object.keys(DEPRECATED_SOURCECODE_PASSTHROUGHS).reduce( (contextInfo, methodName) => Object.assign(contextInfo, { - [methodName]() { - const sourceCode = this.getSourceCode(); - - return sourceCode[DEPRECATED_SOURCECODE_PASSTHROUGHS[methodName]].apply(sourceCode, arguments); + [methodName](...args) { + return this.getSourceCode()[DEPRECATED_SOURCECODE_PASSTHROUGHS[methodName]](...args); } }), {} @@ -737,7 +757,19 @@ const BASE_TRAVERSAL_CONTEXT = Object.freeze( */ function runRules(sourceCode, configuredRules, ruleMapper, parserOptions, parserName, settings, filename) { const emitter = createEmitter(); - const traverser = new Traverser(); + const nodeQueue = []; + let currentNode = sourceCode.ast; + + Traverser.traverse(sourceCode.ast, { + enter(node, parent) { + node.parent = parent; + nodeQueue.push({ isEntering: true, node }); + }, + leave(node) { + nodeQueue.push({ isEntering: false, node }); + }, + visitorKeys: sourceCode.visitorKeys + }); /* * Create a frozen object with the ruleContext properties and methods that are shared by all rules. @@ -748,29 +780,16 @@ function runRules(sourceCode, configuredRules, ruleMapper, parserOptions, parser Object.assign( Object.create(BASE_TRAVERSAL_CONTEXT), { - getAncestors: () => traverser.parents(), + getAncestors: () => getAncestors(currentNode), getDeclaredVariables: sourceCode.scopeManager.getDeclaredVariables.bind(sourceCode.scopeManager), getFilename: () => filename, - getScope: () => getScope(sourceCode.scopeManager, traverser.current(), parserOptions.ecmaVersion), + getScope: () => getScope(sourceCode.scopeManager, currentNode), getSourceCode: () => sourceCode, - markVariableAsUsed: name => markVariableAsUsed(sourceCode.scopeManager, traverser.current(), parserOptions, name), + markVariableAsUsed: name => markVariableAsUsed(sourceCode.scopeManager, currentNode, parserOptions, name), parserOptions, parserPath: parserName, parserServices: sourceCode.parserServices, - settings, - - /** - * This is used to avoid breaking rules that used to monkeypatch the `Linter#report` method - * by using the `_linter` property on rule contexts. - * - * This should be removed in a major release after we create a better way to - * lint for unused disable comments. - * https://github.com/eslint/eslint/issues/9193 - */ - _linter: { - report() {}, - on: emitter.on - } + settings } ) ); @@ -794,7 +813,7 @@ function runRules(sourceCode, configuredRules, ruleMapper, parserOptions, parser { id: ruleId, options: getRuleOptions(configuredRules[ruleId]), - report() { + report(...args) { /* * Create a report translator lazily. @@ -809,30 +828,12 @@ function runRules(sourceCode, configuredRules, ruleMapper, parserOptions, parser if (reportTranslator === null) { reportTranslator = createReportTranslator({ ruleId, severity, sourceCode, messageIds }); } - const problem = reportTranslator.apply(null, arguments); + const problem = reportTranslator(...args); if (problem.fix && rule.meta && !rule.meta.fixable) { throw new Error("Fixable rules should export a `meta.fixable` property."); } lintingProblems.push(problem); - - /* - * This is used to avoid breaking rules that used monkeypatch Linter, and relied on - * `linter.report` getting called with report info every time a rule reports a problem. - * To continue to support this, make sure that `context._linter.report` is called every - * time a problem is reported by a rule, even though `context._linter` is no longer a - * `Linter` instance. - * - * This should be removed in a major release after we create a better way to - * lint for unused disable comments. - * https://github.com/eslint/eslint/issues/9193 - */ - sharedTraversalContext._linter.report( // eslint-disable-line no-underscore-dangle - problem.ruleId, - problem.severity, - { loc: { start: { line: problem.line, column: problem.column - 1 } } }, - problem.message - ); } } ) @@ -853,21 +854,14 @@ function runRules(sourceCode, configuredRules, ruleMapper, parserOptions, parser const eventGenerator = new CodePathAnalyzer(new NodeEventGenerator(emitter)); - /* - * Each node has a type property. Whenever a particular type of - * node is found, an event is fired. This allows any listeners to - * automatically be informed that this type of node has been found - * and react accordingly. - */ - traverser.traverse(sourceCode.ast, { - enter(node, parent) { - node.parent = parent; - eventGenerator.enterNode(node); - }, - leave(node) { - eventGenerator.leaveNode(node); - }, - visitorKeys: sourceCode.visitorKeys + nodeQueue.forEach(traversalInfo => { + currentNode = traversalInfo.node; + + if (traversalInfo.isEntering) { + eventGenerator.enterNode(currentNode); + } else { + eventGenerator.leaveNode(currentNode); + } }); return lintingProblems; @@ -941,19 +935,12 @@ module.exports = class Linter { .map(envName => this.environments.get(envName)) .filter(env => env); - const parserOptions = resolveParserOptions(config.parserOptions || {}, enabledEnvs); - const configuredGlobals = resolveGlobals(config.globals || {}, enabledEnvs); const parserName = config.parser || DEFAULT_PARSER_NAME; + const parserOptions = resolveParserOptions(parserName, config.parserOptions || {}, enabledEnvs); + const configuredGlobals = resolveGlobals(config.globals || {}, enabledEnvs); const settings = config.settings || {}; if (!lastSourceCodes.get(this)) { - - // there's no input, just exit here - if (text.trim().length === 0) { - lastSourceCodes.set(this, new SourceCode(text, blankScriptAST)); - return []; - } - const parseResult = parse( text, parserOptions, @@ -1000,15 +987,26 @@ module.exports = class Linter { const configuredRules = Object.assign({}, config.rules, commentDirectives.configuredRules); - const lintingProblems = runRules( - sourceCode, - configuredRules, - ruleId => this.rules.get(ruleId), - parserOptions, - parserName, - settings, - options.filename - ); + let lintingProblems; + + try { + lintingProblems = runRules( + sourceCode, + configuredRules, + ruleId => this.rules.get(ruleId), + parserOptions, + parserName, + settings, + options.filename + ); + } catch (err) { + debug("An error occurred while traversing"); + debug("Filename:", options.filename); + debug("Parser Options:", parserOptions); + debug("Parser Path:", parserName); + debug("Settings:", settings); + throw err; + } return applyDisableDirectives({ directives: commentDirectives.disableDirectives, diff --git a/tools/node_modules/eslint/lib/logging.js b/tools/node_modules/eslint/lib/logging.js index 22451e535e142f..3eb898c34f8a88 100644 --- a/tools/node_modules/eslint/lib/logging.js +++ b/tools/node_modules/eslint/lib/logging.js @@ -14,15 +14,15 @@ module.exports = { * Cover for console.log * @returns {void} */ - info() { - console.log.apply(console, arguments); + info(...args) { + console.log(...args); }, /** * Cover for console.error * @returns {void} */ - error() { - console.error.apply(console, arguments); + error(...args) { + console.error(...args); } }; diff --git a/tools/node_modules/eslint/lib/report-translator.js b/tools/node_modules/eslint/lib/report-translator.js index 7893a1f7ad234d..f828305860f6f3 100644 --- a/tools/node_modules/eslint/lib/report-translator.js +++ b/tools/node_modules/eslint/lib/report-translator.js @@ -51,35 +51,35 @@ const interpolate = require("./util/interpolate"); /** * Translates a multi-argument context.report() call into a single object argument call - * @param {...*} arguments A list of arguments passed to `context.report` + * @param {...*} args A list of arguments passed to `context.report` * @returns {MessageDescriptor} A normalized object containing report information */ -function normalizeMultiArgReportCall() { +function normalizeMultiArgReportCall(...args) { // If there is one argument, it is considered to be a new-style call already. - if (arguments.length === 1) { + if (args.length === 1) { // Shallow clone the object to avoid surprises if reusing the descriptor - return Object.assign({}, arguments[0]); + return Object.assign({}, args[0]); } // If the second argument is a string, the arguments are interpreted as [node, message, data, fix]. - if (typeof arguments[1] === "string") { + if (typeof args[1] === "string") { return { - node: arguments[0], - message: arguments[1], - data: arguments[2], - fix: arguments[3] + node: args[0], + message: args[1], + data: args[2], + fix: args[3] }; } // Otherwise, the arguments are interpreted as [node, loc, message, data, fix]. return { - node: arguments[0], - loc: arguments[1], - message: arguments[2], - data: arguments[3], - fix: arguments[4] + node: args[0], + loc: args[1], + message: args[2], + data: args[3], + fix: args[4] }; } @@ -113,15 +113,6 @@ function normalizeReportLoc(descriptor) { return descriptor.node.loc; } -/** - * Interpolates data placeholders in report messages - * @param {MessageDescriptor} descriptor The report message descriptor. - * @returns {string} The interpolated message for the descriptor - */ -function normalizeMessagePlaceholders(descriptor) { - return interpolate(descriptor.message, descriptor.data); -} - /** * Compares items in a fixes array by range. * @param {Fix} a The first message. @@ -198,9 +189,9 @@ function normalizeFixes(descriptor, sourceCode) { * @param {(0|1|2)} options.severity Rule severity * @param {(ASTNode|null)} options.node Node * @param {string} options.message Error message + * @param {string} [options.messageId] The error message ID. * @param {{start: SourceLocation, end: (SourceLocation|null)}} options.loc Start and end location * @param {{text: string, range: (number[]|null)}} options.fix The fix object - * @param {string[]} options.sourceLines Source lines * @returns {function(...args): ReportInfo} Function that returns information about the report */ function createProblem(options) { @@ -210,8 +201,7 @@ function createProblem(options) { message: options.message, line: options.loc.start.line, column: options.loc.start.column + 1, - nodeType: options.node && options.node.type || null, - source: options.sourceLines[options.loc.start.line - 1] || "" + nodeType: options.node && options.node.type || null }; /* @@ -250,11 +240,13 @@ module.exports = function createReportTranslator(metadata) { * called every time a rule reports a problem, which happens much less frequently (usually, the vast * majority of rules don't report any problems for a given file). */ - return function() { - const descriptor = normalizeMultiArgReportCall.apply(null, arguments); + return (...args) => { + const descriptor = normalizeMultiArgReportCall(...args); assertValidNodeInfo(descriptor); + let computedMessage; + if (descriptor.messageId) { if (!metadata.messageIds) { throw new TypeError("context.report() called with a messageId, but no messages were present in the rule metadata."); @@ -268,7 +260,11 @@ module.exports = function createReportTranslator(metadata) { if (!messages || !Object.prototype.hasOwnProperty.call(messages, id)) { throw new TypeError(`context.report() called with a messageId of '${id}' which is not present in the 'messages' config: ${JSON.stringify(messages, null, 2)}`); } - descriptor.message = messages[id]; + computedMessage = messages[id]; + } else if (descriptor.message) { + computedMessage = descriptor.message; + } else { + throw new TypeError("Missing `message` property in report() call; add a message that describes the linting problem."); } @@ -276,11 +272,10 @@ module.exports = function createReportTranslator(metadata) { ruleId: metadata.ruleId, severity: metadata.severity, node: descriptor.node, - message: normalizeMessagePlaceholders(descriptor), + message: interpolate(computedMessage, descriptor.data), messageId: descriptor.messageId, loc: normalizeReportLoc(descriptor), - fix: normalizeFixes(descriptor, metadata.sourceCode), - sourceLines: metadata.sourceCode.lines + fix: normalizeFixes(descriptor, metadata.sourceCode) }); }; }; diff --git a/tools/node_modules/eslint/lib/rules/array-element-newline.js b/tools/node_modules/eslint/lib/rules/array-element-newline.js index 359b8d436ef44c..b437c6932bcc20 100644 --- a/tools/node_modules/eslint/lib/rules/array-element-newline.js +++ b/tools/node_modules/eslint/lib/rules/array-element-newline.js @@ -24,7 +24,7 @@ module.exports = { { oneOf: [ { - enum: ["always", "never"] + enum: ["always", "never", "consistent"] }, { type: "object", @@ -63,6 +63,7 @@ module.exports = { * @returns {{multiline: boolean, minItems: number}} Normalized option object. */ function normalizeOptionValue(providedOption) { + let consistent = false; let multiline = false; let minItems; @@ -72,12 +73,15 @@ module.exports = { minItems = 0; } else if (option === "never") { minItems = Number.POSITIVE_INFINITY; + } else if (option === "consistent") { + consistent = true; + minItems = Number.POSITIVE_INFINITY; } else { multiline = Boolean(option.multiline); minItems = option.minItems || Number.POSITIVE_INFINITY; } - return { multiline, minItems }; + return { consistent, multiline, minItems }; } /** @@ -193,11 +197,30 @@ module.exports = { .some(element => element.loc.start.line !== element.loc.end.line); } + const linebreaksCount = node.elements.map((element, i) => { + const previousElement = elements[i - 1]; + + if (i === 0 || element === null || previousElement === null) { + return false; + } + + const commaToken = sourceCode.getFirstTokenBetween(previousElement, element, astUtils.isCommaToken); + const lastTokenOfPreviousElement = sourceCode.getTokenBefore(commaToken); + const firstTokenOfCurrentElement = sourceCode.getTokenAfter(commaToken); + + return !astUtils.isTokenOnSameLine(lastTokenOfPreviousElement, firstTokenOfCurrentElement); + }).filter(isBreak => isBreak === true).length; + const needsLinebreaks = ( elements.length >= options.minItems || ( options.multiline && elementBreak + ) || + ( + options.consistent && + linebreaksCount > 0 && + linebreaksCount < node.elements.length ) ); diff --git a/tools/node_modules/eslint/lib/rules/arrow-body-style.js b/tools/node_modules/eslint/lib/rules/arrow-body-style.js index 1f0d1377b5effc..49feb0670e652b 100644 --- a/tools/node_modules/eslint/lib/rules/arrow-body-style.js +++ b/tools/node_modules/eslint/lib/rules/arrow-body-style.js @@ -124,6 +124,8 @@ module.exports = { messageId = "unexpectedEmptyBlock"; } else if (blockBody.length > 1) { messageId = "unexpectedOtherBlock"; + } else if (blockBody[0].argument === null) { + messageId = "unexpectedSingleBlock"; } else if (astUtils.isOpeningBraceToken(sourceCode.getFirstToken(blockBody[0], { skip: 1 }))) { messageId = "unexpectedObjectBlock"; } else { diff --git a/tools/node_modules/eslint/lib/rules/camelcase.js b/tools/node_modules/eslint/lib/rules/camelcase.js index 84db54ff2898c2..ec611662135cfd 100644 --- a/tools/node_modules/eslint/lib/rules/camelcase.js +++ b/tools/node_modules/eslint/lib/rules/camelcase.js @@ -22,6 +22,9 @@ module.exports = { { type: "object", properties: { + ignoreDestructuring: { + type: "boolean" + }, properties: { enum: ["always", "never"] } @@ -57,6 +60,26 @@ module.exports = { return name.indexOf("_") > -1 && name !== name.toUpperCase(); } + /** + * Checks if a parent of a node is an ObjectPattern. + * @param {ASTNode} node The node to check. + * @returns {boolean} if the node is inside an ObjectPattern + * @private + */ + function isInsideObjectPattern(node) { + let { parent } = node; + + while (parent) { + if (parent.type === "ObjectPattern") { + return true; + } + + parent = parent.parent; + } + + return false; + } + /** * Reports an AST node as a rule violation. * @param {ASTNode} node The node to report. @@ -72,6 +95,7 @@ module.exports = { const options = context.options[0] || {}; let properties = options.properties || ""; + const ignoreDestructuring = options.ignoreDestructuring || false; if (properties !== "always" && properties !== "never") { properties = "always"; @@ -113,24 +137,28 @@ module.exports = { } else if (node.parent.type === "Property" || node.parent.type === "AssignmentPattern") { if (node.parent.parent && node.parent.parent.type === "ObjectPattern") { - if (node.parent.shorthand && node.parent.value.left && isUnderscored(name)) { report(node); } + const assignmentKeyEqualsValue = node.parent.key.name === node.parent.value.name; + // prevent checking righthand side of destructured object - if (node.parent.key === node && node.parent.value !== node) { + if (!assignmentKeyEqualsValue && node.parent.key === node) { return; } - if (node.parent.value.name && isUnderscored(name)) { + const valueIsUnderscored = node.parent.value.name && isUnderscored(name); + + // ignore destructuring if the option is set, unless a new identifier is created + if (valueIsUnderscored && !(assignmentKeyEqualsValue && ignoreDestructuring)) { report(node); } } - // "never" check properties - if (properties === "never") { + // "never" check properties or always ignore destructuring + if (properties === "never" || (ignoreDestructuring && isInsideObjectPattern(node))) { return; } diff --git a/tools/node_modules/eslint/lib/rules/comma-style.js b/tools/node_modules/eslint/lib/rules/comma-style.js index 5ba2dbb28b25ae..aac667f73b3b2c 100644 --- a/tools/node_modules/eslint/lib/rules/comma-style.js +++ b/tools/node_modules/eslint/lib/rules/comma-style.js @@ -185,13 +185,7 @@ module.exports = { items.forEach(item => { const commaToken = item ? sourceCode.getTokenBefore(item) : previousItemToken, currentItemToken = item ? sourceCode.getFirstToken(item) : sourceCode.getTokenAfter(commaToken), - reportItem = item || currentItemToken, - tokenBeforeComma = sourceCode.getTokenBefore(commaToken); - - // Check if previous token is wrapped in parentheses - if (tokenBeforeComma && astUtils.isClosingParenToken(tokenBeforeComma)) { - previousItemToken = tokenBeforeComma; - } + reportItem = item || currentItemToken; /* * This works by comparing three token locations: diff --git a/tools/node_modules/eslint/lib/rules/for-direction.js b/tools/node_modules/eslint/lib/rules/for-direction.js index c91888da2295cb..817e2c111e9d7d 100644 --- a/tools/node_modules/eslint/lib/rules/for-direction.js +++ b/tools/node_modules/eslint/lib/rules/for-direction.js @@ -14,7 +14,7 @@ module.exports = { docs: { description: "enforce \"for\" loop update clause moving the counter in the right direction.", category: "Possible Errors", - recommended: false, + recommended: true, url: "https://eslint.org/docs/rules/for-direction" }, fixable: null, diff --git a/tools/node_modules/eslint/lib/rules/func-name-matching.js b/tools/node_modules/eslint/lib/rules/func-name-matching.js index 85fd7d4f1ee864..b717995967fe73 100644 --- a/tools/node_modules/eslint/lib/rules/func-name-matching.js +++ b/tools/node_modules/eslint/lib/rules/func-name-matching.js @@ -58,6 +58,9 @@ const alwaysOrNever = { enum: ["always", "never"] }; const optionsObject = { type: "object", properties: { + considerPropertyDescriptor: { + type: "boolean" + }, includeCommonJSModuleExports: { type: "boolean" } @@ -90,9 +93,26 @@ module.exports = { create(context) { const options = (typeof context.options[0] === "object" ? context.options[0] : context.options[1]) || {}; const nameMatches = typeof context.options[0] === "string" ? context.options[0] : "always"; + const considerPropertyDescriptor = options.considerPropertyDescriptor; const includeModuleExports = options.includeCommonJSModuleExports; const ecmaVersion = context.parserOptions && context.parserOptions.ecmaVersion ? context.parserOptions.ecmaVersion : 5; + /** + * Check whether node is a certain CallExpression. + * @param {string} objName object name + * @param {string} funcName function name + * @param {ASTNode} node The node to check + * @returns {boolean} `true` if node matches CallExpression + */ + function isPropertyCall(objName, funcName, node) { + if (!node) { + return false; + } + return node.type === "CallExpression" && + node.callee.object.name === objName && + node.callee.property.name === funcName; + } + /** * Compares identifiers based on the nameMatches option * @param {string} x the first identifier @@ -147,7 +167,6 @@ module.exports = { //-------------------------------------------------------------------------- return { - VariableDeclarator(node) { if (!node.init || node.init.type !== "FunctionExpression" || node.id.type !== "Identifier") { return; @@ -179,9 +198,38 @@ module.exports = { if (node.value.type !== "FunctionExpression" || !node.value.id || node.computed && !isStringLiteral(node.key)) { return; } - if (node.key.type === "Identifier" && shouldWarn(node.key.name, node.value.id.name)) { - report(node, node.key.name, node.value.id.name, true); - } else if ( + + if (node.key.type === "Identifier") { + const functionName = node.value.id.name; + let propertyName = node.key.name; + + if (considerPropertyDescriptor && propertyName === "value") { + if (isPropertyCall("Object", "defineProperty", node.parent.parent) || isPropertyCall("Reflect", "defineProperty", node.parent.parent)) { + const property = node.parent.parent.arguments[1]; + + if (isStringLiteral(property) && shouldWarn(property.value, functionName)) { + report(node, property.value, functionName, true); + } + } else if (isPropertyCall("Object", "defineProperties", node.parent.parent.parent.parent)) { + propertyName = node.parent.parent.key.name; + if (!node.parent.parent.computed && shouldWarn(propertyName, functionName)) { + report(node, propertyName, functionName, true); + } + } else if (isPropertyCall("Object", "create", node.parent.parent.parent.parent)) { + propertyName = node.parent.parent.key.name; + if (!node.parent.parent.computed && shouldWarn(propertyName, functionName)) { + report(node, propertyName, functionName, true); + } + } else if (shouldWarn(propertyName, functionName)) { + report(node, propertyName, functionName, true); + } + } else if (shouldWarn(propertyName, functionName)) { + report(node, propertyName, functionName, true); + } + return; + } + + if ( isStringLiteral(node.key) && isIdentifier(node.key.value, ecmaVersion) && shouldWarn(node.key.value, node.value.id.name) diff --git a/tools/node_modules/eslint/lib/rules/getter-return.js b/tools/node_modules/eslint/lib/rules/getter-return.js index 58f2a3978b8bd6..fe40e5f099d741 100644 --- a/tools/node_modules/eslint/lib/rules/getter-return.js +++ b/tools/node_modules/eslint/lib/rules/getter-return.js @@ -47,7 +47,7 @@ module.exports = { docs: { description: "enforce `return` statements in getters", category: "Possible Errors", - recommended: false, + recommended: true, url: "https://eslint.org/docs/rules/getter-return" }, fixable: null, diff --git a/tools/node_modules/eslint/lib/rules/max-classes-per-file.js b/tools/node_modules/eslint/lib/rules/max-classes-per-file.js new file mode 100644 index 00000000000000..bf6b4ba31c6c1e --- /dev/null +++ b/tools/node_modules/eslint/lib/rules/max-classes-per-file.js @@ -0,0 +1,60 @@ +/** + * @fileoverview Enforce a maximum number of classes per file + * @author James Garbutt + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +module.exports = { + meta: { + docs: { + description: "enforce a maximum number of classes per file", + category: "Best Practices", + recommended: false, + url: "https://eslint.org/docs/rules/max-classes-per-file" + }, + schema: [ + { + type: "integer", + minimum: 1 + } + ], + messages: { + maximumExceeded: "Number of classes per file must not exceed {{ max }}" + } + }, + create(context) { + + const maxClasses = context.options[0] || 1; + + let classCount = 0; + + return { + Program() { + classCount = 0; + }, + "Program:exit"(node) { + if (classCount > maxClasses) { + context.report({ + node, + messageId: "maximumExceeded", + data: { + max: maxClasses + } + }); + } + }, + "ClassDeclaration, ClassExpression"() { + classCount++; + } + }; + } +}; diff --git a/tools/node_modules/eslint/lib/rules/max-lines-per-function.js b/tools/node_modules/eslint/lib/rules/max-lines-per-function.js new file mode 100644 index 00000000000000..b40c7ee88c08b9 --- /dev/null +++ b/tools/node_modules/eslint/lib/rules/max-lines-per-function.js @@ -0,0 +1,218 @@ +/** + * @fileoverview A rule to set the maximum number of line of code in a function. + * @author Pete Ward + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("../ast-utils"); + +//------------------------------------------------------------------------------ +// Constants +//------------------------------------------------------------------------------ + +const OPTIONS_SCHEMA = { + type: "object", + properties: { + max: { + type: "integer", + minimum: 0 + }, + skipComments: { + type: "boolean" + }, + skipBlankLines: { + type: "boolean" + }, + IIFEs: { + type: "boolean" + } + }, + additionalProperties: false +}; + +const OPTIONS_OR_INTEGER_SCHEMA = { + oneOf: [ + OPTIONS_SCHEMA, + { + type: "integer", + minimum: 1 + } + ] +}; + +/** + * Given a list of comment nodes, return a map with numeric keys (source code line numbers) and comment token values. + * @param {Array} comments An array of comment nodes. + * @returns {Map.} A map with numeric keys (source code line numbers) and comment token values. + */ +function getCommentLineNumbers(comments) { + const map = new Map(); + + if (!comments) { + return map; + } + comments.forEach(comment => { + for (let i = comment.loc.start.line; i <= comment.loc.end.line; i++) { + map.set(i, comment); + } + }); + return map; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +module.exports = { + meta: { + docs: { + description: "enforce a maximum number of line of code in a function", + category: "Stylistic Issues", + recommended: false, + url: "https://eslint.org/docs/rules/max-lines-per-function" + }, + + schema: [ + OPTIONS_OR_INTEGER_SCHEMA + ] + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const lines = sourceCode.lines; + + const option = context.options[0]; + let maxLines = 50; + let skipComments = false; + let skipBlankLines = false; + let IIFEs = false; + + if (typeof option === "object") { + if (typeof option.max === "number") { + maxLines = option.max; + } + if (typeof option.skipComments === "boolean") { + skipComments = option.skipComments; + } + if (typeof option.skipBlankLines === "boolean") { + skipBlankLines = option.skipBlankLines; + } + if (typeof option.IIFEs === "boolean") { + IIFEs = option.IIFEs; + } + } else if (typeof option === "number") { + maxLines = option; + } + + const commentLineNumbers = getCommentLineNumbers(sourceCode.getAllComments()); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Tells if a comment encompasses the entire line. + * @param {string} line The source line with a trailing comment + * @param {number} lineNumber The one-indexed line number this is on + * @param {ASTNode} comment The comment to remove + * @returns {boolean} If the comment covers the entire line + */ + function isFullLineComment(line, lineNumber, comment) { + const start = comment.loc.start, + end = comment.loc.end, + isFirstTokenOnLine = start.line === lineNumber && !line.slice(0, start.column).trim(), + isLastTokenOnLine = end.line === lineNumber && !line.slice(end.column).trim(); + + return comment && + (start.line < lineNumber || isFirstTokenOnLine) && + (end.line > lineNumber || isLastTokenOnLine); + } + + /** + * Identifies is a node is a FunctionExpression which is part of an IIFE + * @param {ASTNode} node Node to test + * @returns {boolean} True if it's an IIFE + */ + function isIIFE(node) { + return node.type === "FunctionExpression" && node.parent && node.parent.type === "CallExpression" && node.parent.callee === node; + } + + /** + * Identifies is a node is a FunctionExpression which is embedded within a MethodDefinition or Property + * @param {ASTNode} node Node to test + * @returns {boolean} True if it's a FunctionExpression embedded within a MethodDefinition or Property + */ + function isEmbedded(node) { + if (!node.parent) { + return false; + } + if (node !== node.parent.value) { + return false; + } + if (node.parent.type === "MethodDefinition") { + return true; + } + if (node.parent.type === "Property") { + return node.parent.method === true || node.parent.kind === "get" || node.parent.kind === "set"; + } + return false; + } + + /** + * Count the lines in the function + * @param {ASTNode} funcNode Function AST node + * @returns {void} + * @private + */ + function processFunction(funcNode) { + const node = isEmbedded(funcNode) ? funcNode.parent : funcNode; + + if (!IIFEs && isIIFE(node)) { + return; + } + let lineCount = 0; + + for (let i = node.loc.start.line - 1; i < node.loc.end.line; ++i) { + const line = lines[i]; + + if (skipComments) { + if (commentLineNumbers.has(i + 1) && isFullLineComment(line, i + 1, commentLineNumbers.get(i + 1))) { + continue; + } + } + + if (skipBlankLines) { + if (line.match(/^\s*$/)) { + continue; + } + } + + lineCount++; + } + + if (lineCount > maxLines) { + const name = astUtils.getFunctionNameWithKind(funcNode); + + context.report({ + node, + message: "{{name}} has too many lines ({{lineCount}}). Maximum allowed is {{maxLines}}.", + data: { name, lineCount, maxLines } + }); + } + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + FunctionDeclaration: processFunction, + FunctionExpression: processFunction, + ArrowFunctionExpression: processFunction + }; + } +}; diff --git a/tools/node_modules/eslint/lib/rules/no-case-declarations.js b/tools/node_modules/eslint/lib/rules/no-case-declarations.js index 862be4c57d9dd4..c05795200e6679 100644 --- a/tools/node_modules/eslint/lib/rules/no-case-declarations.js +++ b/tools/node_modules/eslint/lib/rules/no-case-declarations.js @@ -50,7 +50,7 @@ module.exports = { if (isLexicalDeclaration(statement)) { context.report({ - node, + node: statement, messageId: "unexpected" }); } diff --git a/tools/node_modules/eslint/lib/rules/no-catch-shadow.js b/tools/node_modules/eslint/lib/rules/no-catch-shadow.js index 907792278fc89b..f7abc931cc1dec 100644 --- a/tools/node_modules/eslint/lib/rules/no-catch-shadow.js +++ b/tools/node_modules/eslint/lib/rules/no-catch-shadow.js @@ -53,7 +53,7 @@ module.exports = { return { - CatchClause(node) { + "CatchClause[param!=null]"(node) { let scope = context.getScope(); /* diff --git a/tools/node_modules/eslint/lib/rules/no-cond-assign.js b/tools/node_modules/eslint/lib/rules/no-cond-assign.js index f949bcc884bfad..4c7b5722d69c03 100644 --- a/tools/node_modules/eslint/lib/rules/no-cond-assign.js +++ b/tools/node_modules/eslint/lib/rules/no-cond-assign.js @@ -139,7 +139,8 @@ module.exports = { DoWhileStatement: testForAssign, ForStatement: testForAssign, IfStatement: testForAssign, - WhileStatement: testForAssign + WhileStatement: testForAssign, + ConditionalExpression: testForAssign }; } diff --git a/tools/node_modules/eslint/lib/rules/no-extra-parens.js b/tools/node_modules/eslint/lib/rules/no-extra-parens.js index 9765dfa777939d..3d4ee19e880bad 100644 --- a/tools/node_modules/eslint/lib/rules/no-extra-parens.js +++ b/tools/node_modules/eslint/lib/rules/no-extra-parens.js @@ -86,7 +86,7 @@ module.exports = { * @private */ function ruleApplies(node) { - if (node.type === "JSXElement") { + if (node.type === "JSXElement" || node.type === "JSXFragment") { const isSingleLine = node.loc.start.line === node.loc.end.line; switch (IGNORE_JSX) { diff --git a/tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js b/tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js index f1840aaf2dfbf6..7f9adc10ab3bba 100644 --- a/tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js +++ b/tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js @@ -225,7 +225,7 @@ module.exports = { // If we have any errors remaining report on them errors.forEach(error => { - context.report.apply(context, error); + context.report(...error); }); }; } else { diff --git a/tools/node_modules/eslint/lib/rules/no-return-await.js b/tools/node_modules/eslint/lib/rules/no-return-await.js index 490ccaeb369a88..fc3373d3c4187a 100644 --- a/tools/node_modules/eslint/lib/rules/no-return-await.js +++ b/tools/node_modules/eslint/lib/rules/no-return-await.js @@ -18,7 +18,6 @@ module.exports = { description: "disallow unnecessary `return await`", category: "Best Practices", - // TODO: set to true recommended: false, url: "https://eslint.org/docs/rules/no-return-await" diff --git a/tools/node_modules/eslint/lib/rules/no-self-assign.js b/tools/node_modules/eslint/lib/rules/no-self-assign.js index 8091d7d2e5874c..5b65ea4f9aff16 100644 --- a/tools/node_modules/eslint/lib/rules/no-self-assign.js +++ b/tools/node_modules/eslint/lib/rules/no-self-assign.js @@ -187,8 +187,7 @@ module.exports = { create(context) { const sourceCode = context.getSourceCode(); - const options = context.options[0]; - const props = Boolean(options && options.props); + const [{ props = true } = {}] = context.options; /** * Reports a given node as self assignments. diff --git a/tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js b/tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js index 7b92521b0723cc..70052f56f2d2ed 100644 --- a/tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js +++ b/tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js @@ -24,45 +24,19 @@ module.exports = { const RESTRICTED = ["undefined", "NaN", "Infinity", "arguments", "eval"]; - /** - * Check if the node name is present inside the restricted list - * @param {ASTNode} id id to evaluate - * @returns {void} - * @private - */ - function checkForViolation(id) { - if (RESTRICTED.indexOf(id.name) > -1) { - context.report({ - node: id, - message: "Shadowing of global property '{{idName}}'.", - data: { - idName: id.name - } - }); - } - } - return { - VariableDeclarator(node) { - checkForViolation(node.id); - }, - ArrowFunctionExpression(node) { - [].map.call(node.params, checkForViolation); - }, - FunctionExpression(node) { - if (node.id) { - checkForViolation(node.id); - } - [].map.call(node.params, checkForViolation); - }, - FunctionDeclaration(node) { - if (node.id) { - checkForViolation(node.id); - [].map.call(node.params, checkForViolation); + "VariableDeclaration, :function, CatchClause"(node) { + for (const variable of context.getDeclaredVariables(node)) { + if (variable.defs.length > 0 && RESTRICTED.includes(variable.name)) { + context.report({ + node: variable.defs[0].name, + message: "Shadowing of global property '{{idName}}'.", + data: { + idName: variable.name + } + }); + } } - }, - CatchClause(node) { - checkForViolation(node.param); } }; diff --git a/tools/node_modules/eslint/lib/rules/no-shadow.js b/tools/node_modules/eslint/lib/rules/no-shadow.js index d01231ff99c1ff..17ca1291d32fbe 100644 --- a/tools/node_modules/eslint/lib/rules/no-shadow.js +++ b/tools/node_modules/eslint/lib/rules/no-shadow.js @@ -179,7 +179,7 @@ module.exports = { while (stack.length) { const scope = stack.pop(); - stack.push.apply(stack, scope.childScopes); + stack.push(...scope.childScopes); checkForShadows(scope); } } diff --git a/tools/node_modules/eslint/lib/rules/no-undefined.js b/tools/node_modules/eslint/lib/rules/no-undefined.js index 94b514e91d81b4..8491ab5d54035e 100644 --- a/tools/node_modules/eslint/lib/rules/no-undefined.js +++ b/tools/node_modules/eslint/lib/rules/no-undefined.js @@ -68,7 +68,7 @@ module.exports = { while (stack.length) { const scope = stack.pop(); - stack.push.apply(stack, scope.childScopes); + stack.push(...scope.childScopes); checkScope(scope); } } diff --git a/tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js b/tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js index 7f82c8ee281cf0..b56ad038a499ad 100644 --- a/tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js +++ b/tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js @@ -140,7 +140,7 @@ module.exports = { fix: fixer => { let nodeAlternate = astUtils.getParenthesisedText(sourceCode, node.alternate); - if (node.alternate.type === "ConditionalExpression") { + if (node.alternate.type === "ConditionalExpression" || node.alternate.type === "YieldExpression") { const isAlternateParenthesised = astUtils.isParenthesised(sourceCode, node.alternate); nodeAlternate = isAlternateParenthesised ? nodeAlternate : `(${nodeAlternate})`; diff --git a/tools/node_modules/eslint/lib/rules/no-unused-vars.js b/tools/node_modules/eslint/lib/rules/no-unused-vars.js index 6ba57349865593..0d5194bc8dc37b 100644 --- a/tools/node_modules/eslint/lib/rules/no-unused-vars.js +++ b/tools/node_modules/eslint/lib/rules/no-unused-vars.js @@ -457,30 +457,19 @@ module.exports = { } /** - * Checks whether the given variable is the last parameter in the non-ignored parameters. + * Checks whether the given variable is after the last used parameter. * * @param {eslint-scope.Variable} variable - The variable to check. - * @returns {boolean} `true` if the variable is the last. + * @returns {boolean} `true` if the variable is defined after the last + * used parameter. */ - function isLastInNonIgnoredParameters(variable) { + function isAfterLastUsedArg(variable) { const def = variable.defs[0]; + const params = context.getDeclaredVariables(def.node); + const posteriorParams = params.slice(params.indexOf(variable) + 1); - // This is the last. - if (def.index === def.node.params.length - 1) { - return true; - } - - // if all parameters preceded by this variable are ignored and unused, this is the last. - if (config.argsIgnorePattern) { - const params = context.getDeclaredVariables(def.node); - const posteriorParams = params.slice(params.indexOf(variable) + 1); - - if (posteriorParams.every(v => v.references.length === 0 && config.argsIgnorePattern.test(v.name))) { - return true; - } - } - - return false; + // If any used parameters occur after this parameter, do not report. + return !posteriorParams.some(v => v.references.length > 0); } /** @@ -549,8 +538,8 @@ module.exports = { continue; } - // if "args" option is "after-used", skip all but the last parameter - if (config.args === "after-used" && astUtils.isFunction(def.name.parent) && !isLastInNonIgnoredParameters(variable)) { + // if "args" option is "after-used", skip used variables + if (config.args === "after-used" && astUtils.isFunction(def.name.parent) && !isAfterLastUsedArg(variable)) { continue; } } else { diff --git a/tools/node_modules/eslint/lib/rules/no-use-before-define.js b/tools/node_modules/eslint/lib/rules/no-use-before-define.js index 37b8e11ca84db6..64d82570279233 100644 --- a/tools/node_modules/eslint/lib/rules/no-use-before-define.js +++ b/tools/node_modules/eslint/lib/rules/no-use-before-define.js @@ -219,49 +219,14 @@ module.exports = { data: reference.identifier }); }); - } - /** - * Validates variables inside of a node's scope. - * @param {ASTNode} node The node to check. - * @returns {void} - * @private - */ - function findVariables() { - const scope = context.getScope(); - - findVariablesInScope(scope); + scope.childScopes.forEach(findVariablesInScope); } - const ruleDefinition = { - "Program:exit"(node) { - const scope = context.getScope(), - ecmaFeatures = context.parserOptions.ecmaFeatures || {}; - - findVariablesInScope(scope); - - // both Node.js and Modules have an extra scope - if (ecmaFeatures.globalReturn || node.sourceType === "module") { - findVariablesInScope(scope.childScopes[0]); - } + return { + Program() { + findVariablesInScope(context.getScope()); } }; - - if (context.parserOptions.ecmaVersion >= 6) { - ruleDefinition["BlockStatement:exit"] = - ruleDefinition["SwitchStatement:exit"] = findVariables; - - ruleDefinition["ArrowFunctionExpression:exit"] = function(node) { - if (node.body.type !== "BlockStatement") { - findVariables(); - } - }; - } else { - ruleDefinition["FunctionExpression:exit"] = - ruleDefinition["FunctionDeclaration:exit"] = - ruleDefinition["ArrowFunctionExpression:exit"] = findVariables; - } - - return ruleDefinition; } }; diff --git a/tools/node_modules/eslint/lib/rules/no-useless-escape.js b/tools/node_modules/eslint/lib/rules/no-useless-escape.js index efc9706f41dbcd..2ddab78543b111 100644 --- a/tools/node_modules/eslint/lib/rules/no-useless-escape.js +++ b/tools/node_modules/eslint/lib/rules/no-useless-escape.js @@ -174,7 +174,7 @@ module.exports = { * JSXAttribute doesn't have any escape sequence: https://facebook.github.io/jsx/. * In addition, backticks are not supported by JSX yet: https://github.com/facebook/jsx/issues/25. */ - if (node.parent.type === "JSXAttribute" || node.parent.type === "JSXElement") { + if (node.parent.type === "JSXAttribute" || node.parent.type === "JSXElement" || node.parent.type === "JSXFragment") { return; } diff --git a/tools/node_modules/eslint/lib/rules/no-warning-comments.js b/tools/node_modules/eslint/lib/rules/no-warning-comments.js index ce58f9ac8088b2..4e05cc41140914 100644 --- a/tools/node_modules/eslint/lib/rules/no-warning-comments.js +++ b/tools/node_modules/eslint/lib/rules/no-warning-comments.js @@ -57,6 +57,8 @@ module.exports = { */ function convertToRegExp(term) { const escaped = term.replace(/[-/\\$^*+?.()|[\]{}]/g, "\\$&"); + const wordBoundary = "\\b"; + const eitherOrWordBoundary = `|${wordBoundary}`; let prefix; /* @@ -79,12 +81,27 @@ module.exports = { */ prefix = "^\\s*"; } else if (/^\w/.test(term)) { - prefix = "\\b"; + prefix = wordBoundary; } else { prefix = ""; } - return new RegExp(prefix + escaped + suffix, "i"); + if (location === "start") { + + /* + * For location "start" the regex should be + * ^\s*TERM\b. This checks the word boundary + * at the beginning of the comment. + */ + return new RegExp(prefix + escaped + suffix, "i"); + } + + /* + * For location "anywhere" the regex should be + * \bTERM\b|\bTERM\b, this checks the entire comment + * for the term. + */ + return new RegExp(prefix + escaped + suffix + eitherOrWordBoundary + term + wordBoundary, "i"); } const warningRegExps = warningTerms.map(convertToRegExp); diff --git a/tools/node_modules/eslint/lib/rules/object-curly-newline.js b/tools/node_modules/eslint/lib/rules/object-curly-newline.js index 39043a8b9bf103..e979b5ffe0eb68 100644 --- a/tools/node_modules/eslint/lib/rules/object-curly-newline.js +++ b/tools/node_modules/eslint/lib/rules/object-curly-newline.js @@ -64,7 +64,7 @@ function normalizeOptionValue(value) { consistent = Boolean(value.consistent); } } else { - multiline = true; + consistent = true; } return { multiline, minProperties, consistent }; diff --git a/tools/node_modules/eslint/lib/rules/object-shorthand.js b/tools/node_modules/eslint/lib/rules/object-shorthand.js index c5239a71d10aa1..71a320a0e6511d 100644 --- a/tools/node_modules/eslint/lib/rules/object-shorthand.js +++ b/tools/node_modules/eslint/lib/rules/object-shorthand.js @@ -233,6 +233,10 @@ module.exports = { const keyText = sourceCode.text.slice(firstKeyToken.range[0], lastKeyToken.range[1]); let keyPrefix = ""; + if (sourceCode.commentsExistBetween(lastKeyToken, node.value)) { + return null; + } + if (node.value.async) { keyPrefix += "async "; } diff --git a/tools/node_modules/eslint/lib/rules/one-var.js b/tools/node_modules/eslint/lib/rules/one-var.js index 40b5f0f0aabfa3..412fe615d61e67 100644 --- a/tools/node_modules/eslint/lib/rules/one-var.js +++ b/tools/node_modules/eslint/lib/rules/one-var.js @@ -18,6 +18,8 @@ module.exports = { url: "https://eslint.org/docs/rules/one-var" }, + fixable: "code", + schema: [ { oneOf: [ @@ -114,6 +116,8 @@ module.exports = { } } + const sourceCode = context.getSourceCode(); + //-------------------------------------------------------------------------- // Helpers //-------------------------------------------------------------------------- @@ -272,6 +276,81 @@ module.exports = { return true; } + /** + * Fixer to join VariableDeclaration's into a single declaration + * @param {VariableDeclarator[]} declarations The `VariableDeclaration` to join + * @returns {Function} The fixer function + */ + function joinDeclarations(declarations) { + const declaration = declarations[0]; + const body = Array.isArray(declaration.parent.parent.body) ? declaration.parent.parent.body : []; + const currentIndex = body.findIndex(node => node.range[0] === declaration.parent.range[0]); + const previousNode = body[currentIndex - 1]; + + return fixer => { + const type = sourceCode.getTokenBefore(declaration); + const prevSemi = sourceCode.getTokenBefore(type); + const res = []; + + if (previousNode && previousNode.kind === sourceCode.getText(type)) { + if (prevSemi.value === ";") { + res.push(fixer.replaceText(prevSemi, ",")); + } else { + res.push(fixer.insertTextAfter(prevSemi, ",")); + } + res.push(fixer.replaceText(type, "")); + } + + return res; + }; + } + + /** + * Fixer to split a VariableDeclaration into individual declarations + * @param {VariableDeclaration} declaration The `VariableDeclaration` to split + * @param {?Function} filter Function to filter the declarations + * @returns {Function} The fixer function + */ + function splitDeclarations(declaration) { + return fixer => declaration.declarations.map(declarator => { + const tokenAfterDeclarator = sourceCode.getTokenAfter(declarator); + const afterComma = sourceCode.getTokenAfter(tokenAfterDeclarator, { includeComments: true }); + + if (tokenAfterDeclarator.value !== ",") { + return null; + } + + /* + * `var x,y` + * tokenAfterDeclarator ^^ afterComma + */ + if (afterComma.range[0] === tokenAfterDeclarator.range[1]) { + return fixer.replaceText(tokenAfterDeclarator, `; ${declaration.kind} `); + } + + /* + * `var x, + * tokenAfterDeclarator ^ + * y` + * ^ afterComma + */ + if (afterComma.loc.start.line > tokenAfterDeclarator.loc.end.line || afterComma.type === "Line" || afterComma.type === "Block") { + let lastComment = afterComma; + + while (lastComment.type === "Line" || lastComment.type === "Block") { + lastComment = sourceCode.getTokenAfter(lastComment, { includeComments: true }); + } + + return fixer.replaceTextRange( + [tokenAfterDeclarator.range[0], lastComment.range[0]], + `;\n${sourceCode.text.slice(tokenAfterDeclarator.range[1], lastComment.range[0])}\n${declaration.kind} ` + ); + } + + return fixer.replaceText(tokenAfterDeclarator, `; ${declaration.kind}`); + }).filter(x => x); + } + /** * Checks a given VariableDeclaration node for errors. * @param {ASTNode} node The VariableDeclaration node to check @@ -315,7 +394,8 @@ module.exports = { message: "Combine this with the previous '{{type}}' statement.", data: { type - } + }, + fix: joinDeclarations(declarations) }); } else if (options[type].initialized === MODE_CONSECUTIVE && declarationCounts.initialized > 0 && previousDeclCounts.initialized > 0) { context.report({ @@ -323,7 +403,8 @@ module.exports = { message: "Combine this with the previous '{{type}}' statement with initialized variables.", data: { type - } + }, + fix: joinDeclarations(declarations) }); } else if (options[type].uninitialized === MODE_CONSECUTIVE && declarationCounts.uninitialized > 0 && @@ -333,7 +414,8 @@ module.exports = { message: "Combine this with the previous '{{type}}' statement with uninitialized variables.", data: { type - } + }, + fix: joinDeclarations(declarations) }); } } @@ -347,7 +429,8 @@ module.exports = { message: "Combine this with the previous '{{type}}' statement.", data: { type - } + }, + fix: joinDeclarations(declarations) }); } else { if (options[type].initialized === MODE_ALWAYS && declarationCounts.initialized > 0) { @@ -356,7 +439,8 @@ module.exports = { message: "Combine this with the previous '{{type}}' statement with initialized variables.", data: { type - } + }, + fix: joinDeclarations(declarations) }); } if (options[type].uninitialized === MODE_ALWAYS && declarationCounts.uninitialized > 0) { @@ -368,7 +452,8 @@ module.exports = { message: "Combine this with the previous '{{type}}' statement with uninitialized variables.", data: { type - } + }, + fix: joinDeclarations(declarations) }); } } @@ -387,7 +472,8 @@ module.exports = { message: "Split '{{type}}' declarations into multiple statements.", data: { type - } + }, + fix: splitDeclarations(node) }); } else if (options[type].initialized === MODE_NEVER && declarationCounts.initialized > 0) { @@ -397,7 +483,8 @@ module.exports = { message: "Split initialized '{{type}}' declarations into multiple statements.", data: { type - } + }, + fix: splitDeclarations(node) }); } else if (options[type].uninitialized === MODE_NEVER && declarationCounts.uninitialized > 0) { @@ -407,7 +494,8 @@ module.exports = { message: "Split uninitialized '{{type}}' declarations into multiple statements.", data: { type - } + }, + fix: splitDeclarations(node) }); } } diff --git a/tools/node_modules/eslint/lib/rules/prefer-const.js b/tools/node_modules/eslint/lib/rules/prefer-const.js index a24a00284f5fa5..a7c46b34de7ef3 100644 --- a/tools/node_modules/eslint/lib/rules/prefer-const.js +++ b/tools/node_modules/eslint/lib/rules/prefer-const.js @@ -5,6 +5,8 @@ "use strict"; +const astUtils = require("../ast-utils"); + //------------------------------------------------------------------------------ // Helpers //------------------------------------------------------------------------------ @@ -55,6 +57,54 @@ function canBecomeVariableDeclaration(identifier) { ); } +/** + * Checks if an property or element is from outer scope or function parameters + * in destructing pattern. + * + * @param {string} name - A variable name to be checked. + * @param {eslint-scope.Scope} initScope - A scope to start find. + * @returns {boolean} Indicates if the variable is from outer scope or function parameters. + */ +function isOuterVariableInDestructing(name, initScope) { + if (initScope.through.find(ref => ref.resolved && ref.resolved.name === name)) { + return true; + } + + const variable = astUtils.getVariableByName(initScope, name); + + if (variable !== null) { + return variable.defs.some(def => def.type === "Parameter"); + } + + return false; +} + +/** + * Gets the VariableDeclarator/AssignmentExpression node that a given reference + * belongs to. + * This is used to detect a mix of reassigned and never reassigned in a + * destructuring. + * + * @param {eslint-scope.Reference} reference - A reference to get. + * @returns {ASTNode|null} A VariableDeclarator/AssignmentExpression node or + * null. + */ +function getDestructuringHost(reference) { + if (!reference.isWrite()) { + return null; + } + let node = reference.identifier.parent; + + while (PATTERN_TYPE.test(node.type)) { + node = node.parent; + } + + if (!DESTRUCTURING_HOST_TYPE.test(node.type)) { + return null; + } + return node; +} + /** * Gets an identifier node of a given variable. * @@ -102,6 +152,32 @@ function getIdentifierIfShouldBeConst(variable, ignoreReadBeforeAssign) { if (isReassigned) { return null; } + + const destructuringHost = getDestructuringHost(reference); + + if (destructuringHost !== null && destructuringHost.left !== void 0) { + const leftNode = destructuringHost.left; + let hasOuterVariables = false; + + if (leftNode.type === "ObjectPattern") { + const properties = leftNode.properties; + + hasOuterVariables = properties + .filter(prop => prop.value) + .map(prop => prop.value.name) + .some(name => isOuterVariableInDestructing(name, variable.scope)); + } else if (leftNode.type === "ArrayPattern") { + const elements = leftNode.elements; + + hasOuterVariables = elements + .map(element => element.name) + .some(name => isOuterVariableInDestructing(name, variable.scope)); + } + if (hasOuterVariables) { + return null; + } + } + writer = reference; } else if (reference.isRead() && writer === null) { @@ -131,32 +207,6 @@ function getIdentifierIfShouldBeConst(variable, ignoreReadBeforeAssign) { return writer.identifier; } -/** - * Gets the VariableDeclarator/AssignmentExpression node that a given reference - * belongs to. - * This is used to detect a mix of reassigned and never reassigned in a - * destructuring. - * - * @param {eslint-scope.Reference} reference - A reference to get. - * @returns {ASTNode|null} A VariableDeclarator/AssignmentExpression node or - * null. - */ -function getDestructuringHost(reference) { - if (!reference.isWrite()) { - return null; - } - let node = reference.identifier.parent; - - while (PATTERN_TYPE.test(node.type)) { - node = node.parent; - } - - if (!DESTRUCTURING_HOST_TYPE.test(node.type)) { - return null; - } - return node; -} - /** * Groups by the VariableDeclarator/AssignmentExpression node that each * reference of given variables belongs to. @@ -290,7 +340,7 @@ module.exports = { (varDeclParent.parent.type === "ForInStatement" || varDeclParent.parent.type === "ForOfStatement" || varDeclParent.declarations[0].init) && /* - * If options.destucturing is "all", then this warning will not occur unless + * If options.destructuring is "all", then this warning will not occur unless * every assignment in the destructuring should be const. In that case, it's safe * to apply the fix. */ diff --git a/tools/node_modules/eslint/lib/rules/prefer-object-spread.js b/tools/node_modules/eslint/lib/rules/prefer-object-spread.js new file mode 100644 index 00000000000000..d6577df7d58b13 --- /dev/null +++ b/tools/node_modules/eslint/lib/rules/prefer-object-spread.js @@ -0,0 +1,304 @@ +/** + * @fileoverview Prefers object spread property over Object.assign + * @author Sharmila Jesupaul + * See LICENSE file in root directory for full license. + */ + +"use strict"; + +const matchAll = require("string.prototype.matchall"); + +/** + * Helper that checks if the node is an Object.assign call + * @param {ASTNode} node - The node that the rule warns on + * @returns {boolean} - Returns true if the node is an Object.assign call + */ +function isObjectAssign(node) { + return ( + node.callee && + node.callee.type === "MemberExpression" && + node.callee.object.name === "Object" && + node.callee.property.name === "assign" + ); +} + +/** + * Helper that checks if the Object.assign call has array spread + * @param {ASTNode} node - The node that the rule warns on + * @returns {boolean} - Returns true if the Object.assign call has array spread + */ +function hasArraySpread(node) { + return node.arguments.some(arg => arg.type === "SpreadElement"); +} + +/** + * Helper that checks if the node needs parentheses to be valid JS. + * The default is to wrap the node in parentheses to avoid parsing errors. + * @param {ASTNode} node - The node that the rule warns on + * @returns {boolean} - Returns true if the node needs parentheses + */ +function needsParens(node) { + const parent = node.parent; + + if (!parent || !node.type) { + return true; + } + + switch (parent.type) { + case "VariableDeclarator": + case "ArrayExpression": + case "ReturnStatement": + case "CallExpression": + case "Property": + return false; + default: + return true; + } +} + +/** + * Determines if an argument needs parentheses. The default is to not add parens. + * @param {ASTNode} node - The node to be checked. + * @returns {boolean} True if the node needs parentheses + */ +function argNeedsParens(node) { + if (!node.type) { + return false; + } + + switch (node.type) { + case "AssignmentExpression": + case "ArrowFunctionExpression": + case "ConditionalExpression": + return true; + default: + return false; + } +} + +/** + * Helper that adds a comma after the last non-whitespace character that is not a part of a comment. + * @param {string} formattedArg - String of argument text + * @param {array} comments - comments inside the argument + * @returns {string} - argument with comma at the end of it + */ +function addComma(formattedArg, comments) { + const nonWhitespaceCharacterRegex = /[^\s\\]/g; + const nonWhitespaceCharacters = Array.from(matchAll(formattedArg, nonWhitespaceCharacterRegex)); + const commentRanges = comments.map(comment => comment.range); + const validWhitespaceMatches = []; + + // Create a list of indexes where non-whitespace characters exist. + nonWhitespaceCharacters.forEach(match => { + const insertIndex = match.index + match[0].length; + + if (!commentRanges.length) { + validWhitespaceMatches.push(insertIndex); + } + + // If comment ranges are found make sure that the non whitespace characters are not part of the comment. + commentRanges.forEach(arr => { + const commentStart = arr[0]; + const commentEnd = arr[1]; + + if (insertIndex < commentStart || insertIndex > commentEnd) { + validWhitespaceMatches.push(insertIndex); + } + }); + }); + const insertPos = Math.max(...validWhitespaceMatches); + const regex = new RegExp(`^((?:.|[^/s/S]){${insertPos}}) *`); + + return formattedArg.replace(regex, "$1, "); +} + +/** + * Helper formats an argument by either removing curlies or adding a spread operator + * @param {ASTNode|null} arg - ast node representing argument to format + * @param {boolean} isLast - true if on the last element of the array + * @param {Object} sourceCode - in context sourcecode object + * @param {array} comments - comments inside checked node + * @returns {string} - formatted argument + */ +function formatArg(arg, isLast, sourceCode, comments) { + const text = sourceCode.getText(arg); + const parens = argNeedsParens(arg); + const spread = arg.type === "SpreadElement" ? "" : "..."; + + if (arg.type === "ObjectExpression" && arg.properties.length === 0) { + return ""; + } + + if (arg.type === "ObjectExpression") { + + /** + * This regex finds the opening curly brace and any following spaces and replaces it with whatever + * exists before the curly brace. It also does the same for the closing curly brace. This is to avoid + * having multiple spaces around the object expression depending on how the object properties are spaced. + */ + const formattedObjectLiteral = text.replace(/^(.*){ */, "$1").replace(/ *}([^}]*)$/, "$1"); + + return isLast ? formattedObjectLiteral : addComma(formattedObjectLiteral, comments); + } + + if (isLast) { + return parens ? `${spread}(${text})` : `${spread}${text}`; + } + + return parens ? addComma(`${spread}(${text})`, comments) : `${spread}${addComma(text, comments)}`; +} + +/** + * Autofixes the Object.assign call to use an object spread instead. + * @param {ASTNode|null} node - The node that the rule warns on, i.e. the Object.assign call + * @param {string} sourceCode - sourceCode of the Object.assign call + * @returns {Function} autofixer - replaces the Object.assign with a spread object. + */ +function autofixSpread(node, sourceCode) { + return fixer => { + const args = node.arguments; + const firstArg = args[0]; + const lastArg = args[args.length - 1]; + const parens = needsParens(node); + const comments = sourceCode.getCommentsInside(node); + const replaceObjectAssignStart = fixer.replaceTextRange( + [node.range[0], firstArg.range[0]], + `${parens ? "({" : "{"}` + ); + + const handleArgs = args + .map((arg, i, arr) => formatArg(arg, i + 1 >= arr.length, sourceCode, comments)) + .filter(arg => arg !== "," && arg !== ""); + + const insertBody = fixer.replaceTextRange([firstArg.range[0], lastArg.range[1]], handleArgs.join("")); + const replaceObjectAssignEnd = fixer.replaceTextRange([lastArg.range[1], node.range[1]], `${parens ? "})" : "}"}`); + + return [ + replaceObjectAssignStart, + insertBody, + replaceObjectAssignEnd + ]; + }; +} + +/** + * Autofixes the Object.assign call with a single object literal as an argument + * @param {ASTNode|null} node - The node that the rule warns on, i.e. the Object.assign call + * @param {string} sourceCode - sourceCode of the Object.assign call + * @returns {Function} autofixer - replaces the Object.assign with a object literal. + */ +function autofixObjectLiteral(node, sourceCode) { + return fixer => { + const argument = node.arguments[0]; + const parens = needsParens(node); + + return fixer.replaceText(node, `${parens ? "(" : ""}${sourceCode.text.slice(argument.range[0], argument.range[1])}${parens ? ")" : ""}`); + }; +} + +/** + * Check if the node has modified a given variable + * @param {ASTNode|null} node - The node that the rule warns on, i.e. the Object.assign call + * @returns {boolean} - true if node is an assignment, variable declaration, or import statement + */ +function isModifier(node) { + if (!node.type) { + return false; + } + + return node.type === "AssignmentExpression" || + node.type === "VariableDeclarator" || + node.type === "ImportDeclaration"; +} + +/** + * Check if the node has modified a given variable + * @param {array} references - list of reference nodes + * @returns {boolean} - true if node is has been overwritten by an assignment or import + */ +function modifyingObjectReference(references) { + return references.some(ref => ( + ref.identifier && + ref.identifier.parent && + isModifier(ref.identifier.parent) + )); +} + + +module.exports = { + meta: { + docs: { + description: + "disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead.", + category: "Stylistic Issues", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-object-spread" + }, + schema: [], + fixable: "code", + messages: { + useSpreadMessage: "Use an object spread instead of `Object.assign` eg: `{ ...foo }`", + useLiteralMessage: "Use an object literal instead of `Object.assign`. eg: `{ foo: bar }`" + } + }, + + create: function rule(context) { + const sourceCode = context.getSourceCode(); + const scope = context.getScope(); + const objectVariable = scope.variables.filter(variable => variable.name === "Object"); + const moduleReferences = scope.childScopes.filter(childScope => { + const varNamedObject = childScope.variables.filter(variable => variable.name === "Object"); + + return childScope.type === "module" && varNamedObject.length; + }); + const references = [].concat(...objectVariable.map(variable => variable.references || [])); + + return { + CallExpression(node) { + + /* + * If current file is either importing Object or redefining it, + * we skip warning on this rule. + */ + if (moduleReferences.length || (references.length && modifyingObjectReference(references))) { + return; + } + + /* + * The condition below is cases where Object.assign has a single argument and + * that argument is an object literal. e.g. `Object.assign({ foo: bar })`. + * For now, we will warn on this case and autofix it. + */ + if ( + node.arguments.length === 1 && + node.arguments[0].type === "ObjectExpression" && + isObjectAssign(node) + ) { + context.report({ + node, + messageId: "useLiteralMessage", + fix: autofixObjectLiteral(node, sourceCode) + }); + } + + /* + * The condition below warns on `Object.assign` calls that that have + * an object literal as the first argument and have a second argument + * that can be spread. e.g `Object.assign({ foo: bar }, baz)` + */ + if ( + node.arguments.length > 1 && + node.arguments[0].type === "ObjectExpression" && + isObjectAssign(node) && + !hasArraySpread(node) + ) { + context.report({ + node, + messageId: "useSpreadMessage", + fix: autofixSpread(node, sourceCode) + }); + } + } + }; + } +}; diff --git a/tools/node_modules/eslint/lib/rules/prefer-template.js b/tools/node_modules/eslint/lib/rules/prefer-template.js index 2b893fd371506b..14c419942b8c4d 100644 --- a/tools/node_modules/eslint/lib/rules/prefer-template.js +++ b/tools/node_modules/eslint/lib/rules/prefer-template.js @@ -38,6 +38,45 @@ function getTopConcatBinaryExpression(node) { return currentNode; } +/** + * Determines whether a given node is a octal escape sequence + * @param {ASTNode} node A node to check + * @returns {boolean} `true` if the node is an octal escape sequence + */ +function isOctalEscapeSequence(node) { + + // No need to check TemplateLiterals – would throw error with octal escape + const isStringLiteral = node.type === "Literal" && typeof node.value === "string"; + + if (!isStringLiteral) { + return false; + } + + const match = node.raw.match(/^([^\\]|\\[^0-7])*\\([0-7]{1,3})/); + + if (match) { + + // \0 is actually not considered an octal + if (match[2] !== "0" || typeof match[3] !== "undefined") { + return true; + } + } + return false; +} + +/** + * Checks whether or not a node contains a octal escape sequence + * @param {ASTNode} node A node to check + * @returns {boolean} `true` if the node contains an octal escape sequence + */ +function hasOctalEscapeSequence(node) { + if (isConcatenation(node)) { + return hasOctalEscapeSequence(node.left) || hasOctalEscapeSequence(node.right); + } + + return isOctalEscapeSequence(node); +} + /** * Checks whether or not a given binary expression has string literals. * @param {ASTNode} node - A node to check. @@ -193,6 +232,22 @@ module.exports = { return `\`\${${textBeforeNode || ""}${sourceCode.getText(currentNode)}${textAfterNode || ""}}\``; } + /** + * Returns a fixer object that converts a non-string binary expression to a template literal + * @param {SourceCodeFixer} fixer The fixer object + * @param {ASTNode} node A node that should be converted to a template literal + * @returns {Object} A fix for this binary expression + */ + function fixNonStringBinaryExpression(fixer, node) { + const topBinaryExpr = getTopConcatBinaryExpression(node.parent); + + if (hasOctalEscapeSequence(topBinaryExpr)) { + return null; + } + + return fixer.replaceText(topBinaryExpr, getTemplateLiteral(topBinaryExpr, null, null)); + } + /** * Reports if a given node is string concatenation with non string literals. * @@ -216,9 +271,7 @@ module.exports = { context.report({ node: topBinaryExpr, message: "Unexpected string concatenation.", - fix(fixer) { - return fixer.replaceText(topBinaryExpr, getTemplateLiteral(topBinaryExpr, null, null)); - } + fix: fixer => fixNonStringBinaryExpression(fixer, node) }); } } diff --git a/tools/node_modules/eslint/lib/rules/quotes.js b/tools/node_modules/eslint/lib/rules/quotes.js index fa8bbae5fa14d9..78794e72bf0eff 100644 --- a/tools/node_modules/eslint/lib/rules/quotes.js +++ b/tools/node_modules/eslint/lib/rules/quotes.js @@ -132,6 +132,7 @@ module.exports = { * * - `
` ... If the literal is an attribute value, the parent of the literal is `JSXAttribute`. * - `
foo
` ... If the literal is a text content, the parent of the literal is `JSXElement`. + * - `<>foo` ... If the literal is a text content, the parent of the literal is `JSXFragment`. * * In particular, this function returns `false` in the following cases: * @@ -146,7 +147,7 @@ module.exports = { * @private */ function isJSXLiteral(node) { - return node.parent.type === "JSXAttribute" || node.parent.type === "JSXElement"; + return node.parent.type === "JSXAttribute" || node.parent.type === "JSXElement" || node.parent.type === "JSXFragment"; } /** diff --git a/tools/node_modules/eslint/lib/rules/valid-jsdoc.js b/tools/node_modules/eslint/lib/rules/valid-jsdoc.js index 4038f70e567c82..a8466135becb0d 100644 --- a/tools/node_modules/eslint/lib/rules/valid-jsdoc.js +++ b/tools/node_modules/eslint/lib/rules/valid-jsdoc.js @@ -53,6 +53,9 @@ module.exports = { }, requireReturnType: { type: "boolean" + }, + requireParamType: { + type: "boolean" } }, additionalProperties: false @@ -73,6 +76,7 @@ module.exports = { requireParamDescription = options.requireParamDescription !== false, requireReturnDescription = options.requireReturnDescription !== false, requireReturnType = options.requireReturnType !== false, + requireParamType = options.requireParamType !== false, preferType = options.preferType || {}, checkPreferType = Object.keys(preferType).length !== 0; @@ -102,7 +106,7 @@ module.exports = { function startFunction(node) { fns.push({ returnPresent: (node.type === "ArrowFunctionExpression" && node.body.type !== "BlockStatement") || - isTypeClass(node) + isTypeClass(node) || node.async }); } @@ -351,7 +355,7 @@ module.exports = { }); paramTags.forEach(param => { - if (!param.type) { + if (requireParamType && !param.type) { context.report({ node: jsdocNode, message: "Missing JSDoc parameter type for '{{name}}'.", diff --git a/tools/node_modules/eslint/lib/testers/rule-tester.js b/tools/node_modules/eslint/lib/testers/rule-tester.js index de218a875f53d1..318fafe1b69fcc 100644 --- a/tools/node_modules/eslint/lib/testers/rule-tester.js +++ b/tools/node_modules/eslint/lib/testers/rule-tester.js @@ -396,11 +396,10 @@ class RuleTester { * @private */ function assertASTDidntChange(beforeAST, afterAST) { - if (!lodash.isEqual(beforeAST, afterAST)) { - // Not using directly to avoid performance problem in node 6.1.0. See #6111 - // eslint-disable-next-line no-restricted-properties - assert.deepEqual(beforeAST, afterAST, "Rule should not modify AST."); + // Feature detect the Node.js implementation and use that if available. + if ((util.isDeepStrictEqual && !util.isDeepStrictEqual(beforeAST, afterAST)) || !lodash.isEqual(beforeAST, afterAST)) { + assert.fail(null, null, "Rule should not modify AST."); } } @@ -487,36 +486,51 @@ class RuleTester { /* * Error object. - * This may have a message, node type, line, and/or + * This may have a message, messageId, data, node type, line, and/or * column. */ - if (error.message) { + if (hasOwnProperty(error, "message")) { + assert.ok(!hasOwnProperty(error, "messageId"), "Error should not specify both 'message' and a 'messageId'."); + assert.ok(!hasOwnProperty(error, "data"), "Error should not specify both 'data' and 'message'."); assertMessageMatches(message.message, error.message); - } - - if (error.messageId) { - const hOP = Object.hasOwnProperty.call.bind(Object.hasOwnProperty); - - // verify that `error.message` is `undefined` - assert.strictEqual(error.message, void 0, "Error should not specify both a message and a messageId."); - if (!hOP(rule, "meta") || !hOP(rule.meta, "messages")) { - assert.fail("Rule must specify a messages hash in `meta`"); - } - if (!hOP(rule.meta.messages, error.messageId)) { + } else if (hasOwnProperty(error, "messageId")) { + assert.ok( + hasOwnProperty(rule, "meta") && hasOwnProperty(rule.meta, "messages"), + "Error can not use 'messageId' if rule under test doesn't define 'meta.messages'." + ); + if (!hasOwnProperty(rule.meta.messages, error.messageId)) { const friendlyIDList = `[${Object.keys(rule.meta.messages).map(key => `'${key}'`).join(", ")}]`; - assert.fail(`Invalid messageId '${error.messageId}'. Expected one of ${friendlyIDList}.`); + assert(false, `Invalid messageId '${error.messageId}'. Expected one of ${friendlyIDList}.`); } - - let expectedMessage = rule.meta.messages[error.messageId]; - - if (error.data) { - expectedMessage = interpolate(expectedMessage, error.data); + assert.strictEqual( + error.messageId, + message.messageId, + `messageId '${message.messageId}' does not match expected messageId '${error.messageId}'.` + ); + if (hasOwnProperty(error, "data")) { + + /* + * if data was provided, then directly compare the returned message to a synthetic + * interpolated message using the same message ID and data provided in the test. + * See https://github.com/eslint/eslint/issues/9890 for context. + */ + const unformattedOriginalMessage = rule.meta.messages[error.messageId]; + const rehydratedMessage = interpolate(unformattedOriginalMessage, error.data); + + assert.strictEqual( + message.message, + rehydratedMessage, + `Hydrated message "${rehydratedMessage}" does not match "${message.message}"` + ); } - - assertMessageMatches(message.message, expectedMessage); } + assert.ok( + hasOwnProperty(error, "data") ? hasOwnProperty(error, "messageId") : true, + "Error must specify 'messageId' if 'data' is used." + ); + if (error.type) { assert.strictEqual(message.nodeType, error.type, `Error type should be ${error.type}, found ${message.nodeType}`); } @@ -554,8 +568,7 @@ class RuleTester { } else { const fixResult = SourceCodeFixer.applyFixes(item.code, messages); - // eslint-disable-next-line no-restricted-properties - assert.equal(fixResult.output, item.output, "Output is incorrect."); + assert.strictEqual(fixResult.output, item.output, "Output is incorrect."); } } diff --git a/tools/node_modules/eslint/lib/timing.js b/tools/node_modules/eslint/lib/timing.js index 9452e419b1b710..102a5233dc2ec1 100644 --- a/tools/node_modules/eslint/lib/timing.js +++ b/tools/node_modules/eslint/lib/timing.js @@ -116,10 +116,10 @@ module.exports = (function() { data[key] = 0; } - return function() { + return function(...args) { let t = process.hrtime(); - fn.apply(null, Array.prototype.slice.call(arguments)); + fn(...args); t = process.hrtime(t); data[key] += t[0] * 1e3 + t[1] / 1e6; }; diff --git a/tools/node_modules/eslint/lib/util/ajv.js b/tools/node_modules/eslint/lib/util/ajv.js index f9e8b9853569ea..285176da87dc42 100644 --- a/tools/node_modules/eslint/lib/util/ajv.js +++ b/tools/node_modules/eslint/lib/util/ajv.js @@ -19,7 +19,8 @@ const ajv = new Ajv({ meta: false, validateSchema: false, missingRefs: "ignore", - verbose: true + verbose: true, + schemaId: "auto" }); ajv.addMetaSchema(metaSchema); diff --git a/tools/node_modules/eslint/lib/util/apply-disable-directives.js b/tools/node_modules/eslint/lib/util/apply-disable-directives.js index 8153942789d633..c764a9b7020a04 100644 --- a/tools/node_modules/eslint/lib/util/apply-disable-directives.js +++ b/tools/node_modules/eslint/lib/util/apply-disable-directives.js @@ -94,7 +94,6 @@ function applyDirectives(options) { line: directive.unprocessedDirective.line, column: directive.unprocessedDirective.column, severity: 2, - source: null, nodeType: null })); diff --git a/tools/node_modules/eslint/lib/util/glob-util.js b/tools/node_modules/eslint/lib/util/glob-util.js index d687aa74625dfb..9d5d7e5aa7c012 100644 --- a/tools/node_modules/eslint/lib/util/glob-util.js +++ b/tools/node_modules/eslint/lib/util/glob-util.js @@ -22,6 +22,15 @@ const debug = require("debug")("eslint:glob-util"); // Helpers //------------------------------------------------------------------------------ +/** + * Checks whether a directory exists at the given location + * @param {string} resolvedPath A path from the CWD + * @returns {boolean} `true` if a directory exists + */ +function directoryExists(resolvedPath) { + return fs.existsSync(resolvedPath) && fs.statSync(resolvedPath).isDirectory(); +} + /** * Checks if a provided path is a directory and returns a glob string matching * all files under that directory if so, the path itself otherwise. @@ -64,7 +73,7 @@ function processPath(options) { let newPath = pathname; const resolvedPath = path.resolve(cwd, pathname); - if (fs.existsSync(resolvedPath) && fs.statSync(resolvedPath).isDirectory()) { + if (directoryExists(resolvedPath)) { newPath = pathname.replace(/[/\\]$/, "") + suffix; } @@ -72,21 +81,92 @@ function processPath(options) { }; } +/** + * The error type when no files match a glob. + */ +class NoFilesFoundError extends Error { + + /** + * @param {string} pattern - The glob pattern which was not found. + */ + constructor(pattern) { + super(`No files matching '${pattern}' were found.`); + + this.messageTemplate = "file-not-found"; + this.messageData = { pattern }; + } + +} + +/** + * The error type when there are files matched by a glob, but all of them have been ignored. + */ +class AllFilesIgnoredError extends Error { + + /** + * @param {string} pattern - The glob pattern which was not found. + */ + constructor(pattern) { + super(`All files matched by '${pattern}' are ignored.`); + this.messageTemplate = "all-files-ignored"; + this.messageData = { pattern }; + } +} + +const NORMAL_LINT = {}; +const SILENTLY_IGNORE = {}; +const IGNORE_AND_WARN = {}; + +/** + * Tests whether a file should be linted or ignored + * @param {string} filename The file to be processed + * @param {{ignore: (boolean|null)}} options If `ignore` is false, updates the behavior to + * not process custom ignore paths, and lint files specified by direct path even if they + * match the default ignore path + * @param {boolean} isDirectPath True if the file was provided as a direct path + * (as opposed to being resolved from a glob) + * @param {IgnoredPaths} ignoredPaths An instance of IgnoredPaths to check whether a given + * file is ignored. + * @returns {(NORMAL_LINT|SILENTLY_IGNORE|IGNORE_AND_WARN)} A directive for how the + * file should be processed (either linted normally, or silently ignored, or ignored + * with a warning that it is being ignored) + */ +function testFileAgainstIgnorePatterns(filename, options, isDirectPath, ignoredPaths) { + const shouldProcessCustomIgnores = options.ignore !== false; + const shouldLintIgnoredDirectPaths = options.ignore === false; + const fileMatchesIgnorePatterns = ignoredPaths.contains(filename, "default") || + (shouldProcessCustomIgnores && ignoredPaths.contains(filename, "custom")); + + if (fileMatchesIgnorePatterns && isDirectPath && !shouldLintIgnoredDirectPaths) { + return IGNORE_AND_WARN; + } + + if (!fileMatchesIgnorePatterns || (isDirectPath && shouldLintIgnoredDirectPaths)) { + return NORMAL_LINT; + } + + return SILENTLY_IGNORE; +} + //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ /** * Resolves any directory patterns into glob-based patterns for easier handling. - * @param {string[]} patterns File patterns (such as passed on the command line). - * @param {Object} options An options object. + * @param {string[]} patterns File patterns (such as passed on the command line). + * @param {Object} options An options object. + * @param {string} [options.globInputPaths] False disables glob resolution. * @returns {string[]} The equivalent glob patterns and filepath strings. */ function resolveFileGlobPatterns(patterns, options) { + if (options.globInputPaths === false) { + return patterns; + } const processPathExtensions = processPath(options); - return patterns.filter(p => p.length).map(processPathExtensions); + return patterns.map(processPathExtensions); } const dotfilesPattern = /(?:(?:^\.)|(?:[/\\]\.))[^/\\.].*/; @@ -95,19 +175,17 @@ const dotfilesPattern = /(?:(?:^\.)|(?:[/\\]\.))[^/\\.].*/; * Build a list of absolute filesnames on which ESLint will act. * Ignored files are excluded from the results, as are duplicates. * - * @param {string[]} globPatterns Glob patterns. - * @param {Object} [providedOptions] An options object. - * @param {string} [providedOptions.cwd] CWD (considered for relative filenames) - * @param {boolean} [providedOptions.ignore] False disables use of .eslintignore. - * @param {string} [providedOptions.ignorePath] The ignore file to use instead of .eslintignore. - * @param {string} [providedOptions.ignorePattern] A pattern of files to ignore. + * @param {string[]} globPatterns Glob patterns. + * @param {Object} [providedOptions] An options object. + * @param {string} [providedOptions.cwd] CWD (considered for relative filenames) + * @param {boolean} [providedOptions.ignore] False disables use of .eslintignore. + * @param {string} [providedOptions.ignorePath] The ignore file to use instead of .eslintignore. + * @param {string} [providedOptions.ignorePattern] A pattern of files to ignore. + * @param {string} [providedOptions.globInputPaths] False disables glob resolution. * @returns {string[]} Resolved absolute filenames. */ function listFilesToProcess(globPatterns, providedOptions) { const options = providedOptions || { ignore: true }; - const files = []; - const added = {}; - const cwd = options.cwd || process.cwd(); const getIgnorePaths = lodash.memoize( @@ -115,78 +193,79 @@ function listFilesToProcess(globPatterns, providedOptions) { new IgnoredPaths(optionsObj) ); - /** - * Executes the linter on a file defined by the `filename`. Skips - * unsupported file extensions and any files that are already linted. - * @param {string} filename The file to be processed - * @param {boolean} shouldWarnIgnored Whether or not a report should be made if - * the file is ignored - * @param {IgnoredPaths} ignoredPaths An instance of IgnoredPaths - * @returns {void} + /* + * The test "should use default options if none are provided" (source-code-util.js) checks that 'module.exports.resolveFileGlobPatterns' was called. + * So it cannot use the local function "resolveFileGlobPatterns". */ - function addFile(filename, shouldWarnIgnored, ignoredPaths) { - let ignored = false; - let isSilentlyIgnored; + const resolvedGlobPatterns = module.exports.resolveFileGlobPatterns(globPatterns, options); - if (ignoredPaths.contains(filename, "default")) { - ignored = (options.ignore !== false) && shouldWarnIgnored; - isSilentlyIgnored = !shouldWarnIgnored; - } + debug("Creating list of files to process."); + const resolvedPathsByGlobPattern = resolvedGlobPatterns.map(pattern => { + const file = path.resolve(cwd, pattern); - if (options.ignore !== false) { - if (ignoredPaths.contains(filename, "custom")) { - if (shouldWarnIgnored) { - ignored = true; - } else { - isSilentlyIgnored = true; - } - } - } + if (options.globInputPaths === false || (fs.existsSync(file) && fs.statSync(file).isFile())) { + const ignoredPaths = getIgnorePaths(options); + const fullPath = options.globInputPaths === false ? file : fs.realpathSync(file); - if (isSilentlyIgnored && !ignored) { - return; + return [{ + filename: fullPath, + behavior: testFileAgainstIgnorePatterns(fullPath, options, true, ignoredPaths) + }]; } - if (added[filename]) { - return; + // regex to find .hidden or /.hidden patterns, but not ./relative or ../relative + const globIncludesDotfiles = dotfilesPattern.test(pattern); + let newOptions = options; + + if (!options.dotfiles) { + newOptions = Object.assign({}, options, { dotfiles: globIncludesDotfiles }); } - files.push({ filename, ignored }); - added[filename] = true; - } - debug("Creating list of files to process."); - globPatterns.forEach(pattern => { - const file = path.resolve(cwd, pattern); + const ignoredPaths = getIgnorePaths(newOptions); + const shouldIgnore = ignoredPaths.getIgnoredFoldersGlobChecker(); + const globOptions = { + nodir: true, + dot: true, + cwd + }; - if (fs.existsSync(file) && fs.statSync(file).isFile()) { - const ignoredPaths = getIgnorePaths(options); + return new GlobSync(pattern, globOptions, shouldIgnore).found.map(globMatch => { + const relativePath = path.resolve(cwd, globMatch); - addFile(fs.realpathSync(file), true, ignoredPaths); - } else { + return { + filename: relativePath, + behavior: testFileAgainstIgnorePatterns(relativePath, options, false, ignoredPaths) + }; + }); + }); - // regex to find .hidden or /.hidden patterns, but not ./relative or ../relative - const globIncludesDotfiles = dotfilesPattern.test(pattern); - let newOptions = options; + const allPathDescriptors = resolvedPathsByGlobPattern.reduce((pathsForAllGlobs, pathsForCurrentGlob, index) => { + if (pathsForCurrentGlob.every(pathDescriptor => pathDescriptor.behavior === SILENTLY_IGNORE)) { + throw new (pathsForCurrentGlob.length ? AllFilesIgnoredError : NoFilesFoundError)(globPatterns[index]); + } - if (!options.dotfiles) { - newOptions = Object.assign({}, options, { dotfiles: globIncludesDotfiles }); + pathsForCurrentGlob.forEach(pathDescriptor => { + switch (pathDescriptor.behavior) { + case NORMAL_LINT: + pathsForAllGlobs.push({ filename: pathDescriptor.filename, ignored: false }); + break; + case IGNORE_AND_WARN: + pathsForAllGlobs.push({ filename: pathDescriptor.filename, ignored: true }); + break; + case SILENTLY_IGNORE: + + // do nothing + break; + + default: + throw new Error(`Unexpected file behavior for ${pathDescriptor.filename}`); } + }); - const ignoredPaths = getIgnorePaths(newOptions); - const shouldIgnore = ignoredPaths.getIgnoredFoldersGlobChecker(); - const globOptions = { - nodir: true, - dot: true, - cwd - }; - - new GlobSync(pattern, globOptions, shouldIgnore).found.forEach(globMatch => { - addFile(path.resolve(cwd, globMatch), false, ignoredPaths); - }); - } - }); + return pathsForAllGlobs; + }, []); - return files; + return lodash.uniqBy(allPathDescriptors, pathDescriptor => pathDescriptor.filename); } module.exports = { diff --git a/tools/node_modules/eslint/lib/util/module-resolver.js b/tools/node_modules/eslint/lib/util/module-resolver.js index 470a54f7c45713..1e9b663304f832 100644 --- a/tools/node_modules/eslint/lib/util/module-resolver.js +++ b/tools/node_modules/eslint/lib/util/module-resolver.js @@ -59,9 +59,7 @@ class ModuleResolver { * subsequent calls to this function. Then, move the extraLookupPath to the * top of the lookup paths list so it will be searched first. */ - const lookupPaths = this.options.lookupPaths.concat(); - - lookupPaths.unshift(extraLookupPath); + const lookupPaths = [extraLookupPath, ...this.options.lookupPaths]; /** * Module._findPath is an internal method to Node.js, then one they use to diff --git a/tools/node_modules/eslint/lib/util/naming.js b/tools/node_modules/eslint/lib/util/naming.js index c5ff429aa49c6a..a5d6b9d79771af 100644 --- a/tools/node_modules/eslint/lib/util/naming.js +++ b/tools/node_modules/eslint/lib/util/naming.js @@ -61,23 +61,28 @@ function normalizePackageName(name, prefix) { } /** - * Removes the prefix from a term. + * Removes the prefix from a fullname. + * @param {string} fullname The term which may have the prefix. * @param {string} prefix The prefix to remove. - * @param {string} term The term which may have the prefix. * @returns {string} The term without prefix. */ -function removePrefixFromTerm(prefix, term) { - return term.startsWith(prefix) ? term.slice(prefix.length) : term; -} +function getShorthandName(fullname, prefix) { + if (fullname[0] === "@") { + let matchResult = new RegExp(`^(@[^/]+)/${prefix}$`).exec(fullname); -/** - * Adds a prefix to a term. - * @param {string} prefix The prefix to add. - * @param {string} term The term which may not have the prefix. - * @returns {string} The term with prefix. - */ -function addPrefixToTerm(prefix, term) { - return term.startsWith(prefix) ? term : `${prefix}${term}`; + if (matchResult) { + return matchResult[1]; + } + + matchResult = new RegExp(`^(@[^/]+)/${prefix}-(.+)$`).exec(fullname); + if (matchResult) { + return `${matchResult[1]}/${matchResult[2]}`; + } + } else if (fullname.startsWith(`${prefix}-`)) { + return fullname.slice(prefix.length + 1); + } + + return fullname; } /** @@ -91,23 +96,12 @@ function getNamespaceFromTerm(term) { return match ? match[0] : ""; } -/** - * Removes the namespace from a term. - * @param {string} term The term which may have the namespace. - * @returns {string} The name of the plugin without the namespace. - */ -function removeNamespaceFromTerm(term) { - return term.replace(NAMESPACE_REGEX, ""); -} - //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ module.exports = { normalizePackageName, - removePrefixFromTerm, - addPrefixToTerm, - getNamespaceFromTerm, - removeNamespaceFromTerm + getShorthandName, + getNamespaceFromTerm }; diff --git a/tools/node_modules/eslint/lib/util/npm-util.js b/tools/node_modules/eslint/lib/util/npm-util.js index 0b21f626131b78..97aabde7b2e592 100644 --- a/tools/node_modules/eslint/lib/util/npm-util.js +++ b/tools/node_modules/eslint/lib/util/npm-util.js @@ -109,8 +109,14 @@ function check(packages, opt) { try { fileJson = JSON.parse(fs.readFileSync(pkgJson, "utf8")); } catch (e) { - log.info("Could not read package.json file. Please check that the file contains valid JSON."); - throw new Error(e); + const error = new Error(e); + + error.messageTemplate = "failed-to-read-json"; + error.messageData = { + path: pkgJson, + message: e.message + }; + throw error; } if (opt.devDependencies && typeof fileJson.devDependencies === "object") { diff --git a/tools/node_modules/eslint/lib/util/safe-emitter.js b/tools/node_modules/eslint/lib/util/safe-emitter.js index 2fa373cb96deeb..ab212230d398e4 100644 --- a/tools/node_modules/eslint/lib/util/safe-emitter.js +++ b/tools/node_modules/eslint/lib/util/safe-emitter.js @@ -27,8 +27,6 @@ * another module throws an error or registers a listener. * 2. It calls listener functions without any `this` value. (`EventEmitter` calls listeners with a * `this` value of the emitter instance, which would give listeners access to other listeners.) - * 3. Events can be emitted with at most 3 arguments. (For example: when using `emitter.emit('foo', a, b, c)`, - * the arguments `a`, `b`, and `c` will be passed to the listener functions.) * @returns {SafeEmitter} An emitter */ module.exports = () => { @@ -42,9 +40,9 @@ module.exports = () => { listeners[eventName] = [listener]; } }, - emit(eventName, a, b, c) { + emit(eventName, ...args) { if (eventName in listeners) { - listeners[eventName].forEach(listener => listener(a, b, c)); + listeners[eventName].forEach(listener => listener(...args)); } }, eventNames() { diff --git a/tools/node_modules/eslint/lib/util/source-code-util.js b/tools/node_modules/eslint/lib/util/source-code-util.js index 815fad911225bb..66d91cd21e6a2e 100644 --- a/tools/node_modules/eslint/lib/util/source-code-util.js +++ b/tools/node_modules/eslint/lib/util/source-code-util.js @@ -78,14 +78,13 @@ function getSourceCodeOfFiles(patterns, providedOptions, providedCallback) { callback = providedCallback; } debug("constructed options:", options); - const resolvedPatterns = globUtil.resolveFileGlobPatterns(globPatternsList, options); - const filenames = globUtil.listFilesToProcess(resolvedPatterns, options) + const filenames = globUtil.listFilesToProcess(globPatternsList, options) .filter(fileInfo => !fileInfo.ignored) .reduce((files, fileInfo) => files.concat(fileInfo.filename), []); if (filenames.length === 0) { - debug(`Did not find any files matching pattern(s): ${resolvedPatterns}`); + debug(`Did not find any files matching pattern(s): ${globPatternsList}`); } filenames.forEach(filename => { const sourceCode = getSourceCodeOfFile(filename, options); diff --git a/tools/node_modules/eslint/lib/util/source-code.js b/tools/node_modules/eslint/lib/util/source-code.js index 3375f4483d40e1..d34151995ce43f 100644 --- a/tools/node_modules/eslint/lib/util/source-code.js +++ b/tools/node_modules/eslint/lib/util/source-code.js @@ -387,15 +387,13 @@ class SourceCode extends TokenStore { * @public */ getNodeByRangeIndex(index) { - let result = null, - resultParent = null; + let result = null; Traverser.traverse(this.ast, { visitorKeys: this.visitorKeys, - enter(node, parent) { + enter(node) { if (node.range[0] <= index && index < node.range[1]) { result = node; - resultParent = parent; } else { this.skip(); } @@ -407,7 +405,7 @@ class SourceCode extends TokenStore { } }); - return result ? Object.assign({ parent: resultParent }, result) : null; + return result; } /** diff --git a/tools/node_modules/eslint/messages/all-files-ignored.txt b/tools/node_modules/eslint/messages/all-files-ignored.txt new file mode 100644 index 00000000000000..3b741a03e373da --- /dev/null +++ b/tools/node_modules/eslint/messages/all-files-ignored.txt @@ -0,0 +1,8 @@ +All of the files matching the glob pattern "<%= pattern %>" are ignored. + +If you don't want to lint these files, remove the pattern "<%= pattern %>" from the list of arguments passed to ESLint. + +If you do want to lint these files, try the following solutions: + +* Check your .eslintignore file, or the eslintIgnore property in package.json, to ensure that the files are not configured to be ignored. +* Explicitly list the files from this glob that you'd like to lint on the command-line, rather than providing a glob as an argument. diff --git a/tools/node_modules/eslint/messages/failed-to-read-json.txt b/tools/node_modules/eslint/messages/failed-to-read-json.txt new file mode 100644 index 00000000000000..b5e2b861cfcf23 --- /dev/null +++ b/tools/node_modules/eslint/messages/failed-to-read-json.txt @@ -0,0 +1,3 @@ +Failed to read JSON file at <%= path %>: + +<%= message %> diff --git a/tools/node_modules/eslint/messages/file-not-found.txt b/tools/node_modules/eslint/messages/file-not-found.txt new file mode 100644 index 00000000000000..97e2d37fa94e71 --- /dev/null +++ b/tools/node_modules/eslint/messages/file-not-found.txt @@ -0,0 +1,2 @@ +No files matching the pattern "<%= pattern %>" were found. +Please check for typing mistakes in the pattern. diff --git a/tools/node_modules/eslint/messages/plugin-missing.txt b/tools/node_modules/eslint/messages/plugin-missing.txt index 00c7fe78b02ed1..766020b2b8f647 100644 --- a/tools/node_modules/eslint/messages/plugin-missing.txt +++ b/tools/node_modules/eslint/messages/plugin-missing.txt @@ -6,4 +6,6 @@ ESLint couldn't find the plugin "<%- pluginName %>". This can happen for a coupl npm i <%- pluginName %>@latest --save-dev +Path to ESLint package: <%- eslintPath %> + If you still can't figure out the problem, please stop by https://gitter.im/eslint/eslint to chat with the team. diff --git a/tools/node_modules/eslint/node_modules/acorn-jsx/LICENSE b/tools/node_modules/eslint/node_modules/acorn-jsx/LICENSE index 6d1e4f4541504a..695d4b93082bee 100644 --- a/tools/node_modules/eslint/node_modules/acorn-jsx/LICENSE +++ b/tools/node_modules/eslint/node_modules/acorn-jsx/LICENSE @@ -1,4 +1,4 @@ -Copyright (C) 2012-2014 by Ingvar Stepanyan +Copyright (C) 2012-2017 by Ingvar Stepanyan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/tools/node_modules/eslint/node_modules/acorn-jsx/inject.js b/tools/node_modules/eslint/node_modules/acorn-jsx/inject.js index 2bc4e9fd3986f3..33806c72ce0a1c 100644 --- a/tools/node_modules/eslint/node_modules/acorn-jsx/inject.js +++ b/tools/node_modules/eslint/node_modules/acorn-jsx/inject.js @@ -168,6 +168,9 @@ module.exports = function(acorn) { // Transforms JSX element name to string. function getQualifiedJSXName(object) { + if (!object) + return object; + if (object.type === 'JSXIdentifier') return object.name; @@ -209,6 +212,8 @@ module.exports = function(acorn) { // or single identifier. pp.jsx_parseElementName = function() { + if (this.type === tt.jsxTagEnd) + return ''; var startPos = this.start, startLoc = this.startLoc; var node = this.jsx_parseNamespacedName(); if (this.type === tt.dot && node.type === 'JSXNamespacedName' && !this.options.plugins.jsx.allowNamespacedObjects) { @@ -284,21 +289,23 @@ module.exports = function(acorn) { pp.jsx_parseOpeningElementAt = function(startPos, startLoc) { var node = this.startNodeAt(startPos, startLoc); node.attributes = []; - node.name = this.jsx_parseElementName(); + var nodeName = this.jsx_parseElementName(); + if (nodeName) node.name = nodeName; while (this.type !== tt.slash && this.type !== tt.jsxTagEnd) node.attributes.push(this.jsx_parseAttribute()); node.selfClosing = this.eat(tt.slash); this.expect(tt.jsxTagEnd); - return this.finishNode(node, 'JSXOpeningElement'); + return this.finishNode(node, nodeName ? 'JSXOpeningElement' : 'JSXOpeningFragment'); }; // Parses JSX closing tag starting after ' 'var x = 42; // answer' -``` - -[escodegen]: https://github.com/estools/escodegen - -### dist/acorn_loose.js ### - -This file implements an error-tolerant parser. It exposes a single -function. The loose parser is accessible in node.js via `require("acorn/dist/acorn_loose")`. - -**parse_dammit**`(input, options)` takes the same arguments and -returns the same syntax tree as the `parse` function in `acorn.js`, -but never raises an error, and will do its best to parse syntactically -invalid code in as meaningful a way as it can. It'll insert identifier -nodes with name `"✖"` as placeholders in places where it can't make -sense of the input. Depends on `acorn.js`, because it uses the same -tokenizer. - -### dist/walk.js ### - -Implements an abstract syntax tree walker. Will store its interface in -`acorn.walk` when loaded without a module system. - -**simple**`(node, visitors, base, state)` does a 'simple' walk over -a tree. `node` should be the AST node to walk, and `visitors` an -object with properties whose names correspond to node types in the -[ESTree spec][estree]. The properties should contain functions -that will be called with the node object and, if applicable the state -at that point. The last two arguments are optional. `base` is a walker -algorithm, and `state` is a start state. The default walker will -simply visit all statements and expressions and not produce a -meaningful state. (An example of a use of state is to track scope at -each point in the tree.) - -**ancestor**`(node, visitors, base, state)` does a 'simple' walk over -a tree, building up an array of ancestor nodes (including the current node) -and passing the array to the callbacks as a third parameter. - -**recursive**`(node, state, functions, base)` does a 'recursive' -walk, where the walker functions are responsible for continuing the -walk on the child nodes of their target node. `state` is the start -state, and `functions` should contain an object that maps node types -to walker functions. Such functions are called with `(node, state, c)` -arguments, and can cause the walk to continue on a sub-node by calling -the `c` argument on it with `(node, state)` arguments. The optional -`base` argument provides the fallback walker functions for node types -that aren't handled in the `functions` object. If not given, the -default walkers will be used. - -**make**`(functions, base)` builds a new walker object by using the -walker functions in `functions` and filling in the missing ones by -taking defaults from `base`. - -**findNodeAt**`(node, start, end, test, base, state)` tries to -locate a node in a tree at the given start and/or end offsets, which -satisfies the predicate `test`. `start` and `end` can be either `null` -(as wildcard) or a number. `test` may be a string (indicating a node -type) or a function that takes `(nodeType, node)` arguments and -returns a boolean indicating whether this node is interesting. `base` -and `state` are optional, and can be used to specify a custom walker. -Nodes are tested from inner to outer, so if two nodes match the -boundaries, the inner one will be preferred. - -**findNodeAround**`(node, pos, test, base, state)` is a lot like -`findNodeAt`, but will match any node that exists 'around' (spanning) -the given position. - -**findNodeAfter**`(node, pos, test, base, state)` is similar to -`findNodeAround`, but will match all nodes *after* the given position -(testing outer nodes before inner nodes). - -## Command line interface - -The `bin/acorn` utility can be used to parse a file from the command -line. It accepts as arguments its input file and the following -options: - -- `--ecma3|--ecma5|--ecma6|--ecma7`: Sets the ECMAScript version to parse. Default is - version 5. - -- `--module`: Sets the parsing mode to `"module"`. Is set to `"script"` otherwise. - -- `--locations`: Attaches a "loc" object to each node with "start" and - "end" subobjects, each of which contains the one-based line and - zero-based column numbers in `{line, column}` form. - -- `--allow-hash-bang`: If the code starts with the characters #! (as in a shellscript), the first line will be treated as a comment. - -- `--compact`: No whitespace is used in the AST output. - -- `--silent`: Do not output the AST, just return the exit status. - -- `--help`: Print the usage information and quit. - -The utility spits out the syntax tree as JSON data. - -## Build system - -Acorn is written in ECMAScript 6, as a set of small modules, in the -project's `src` directory, and compiled down to bigger ECMAScript 3 -files in `dist` using [Browserify](http://browserify.org) and -[Babel](http://babeljs.io/). If you are already using Babel, you can -consider including the modules directly. - -The command-line test runner (`npm test`) uses the ES6 modules. The -browser-based test page (`test/index.html`) uses the compiled modules. -The `bin/build-acorn.js` script builds the latter from the former. - -If you are working on Acorn, you'll probably want to try the code out -directly, without an intermediate build step. In your scripts, you can -register the Babel require shim like this: - - require("babel-core/register") - -That will allow you to directly `require` the ES6 modules. - -## Plugins - -Acorn is designed support allow plugins which, within reasonable -bounds, redefine the way the parser works. Plugins can add new token -types and new tokenizer contexts (if necessary), and extend methods in -the parser object. This is not a clean, elegant API—using it requires -an understanding of Acorn's internals, and plugins are likely to break -whenever those internals are significantly changed. But still, it is -_possible_, in this way, to create parsers for JavaScript dialects -without forking all of Acorn. And in principle it is even possible to -combine such plugins, so that if you have, for example, a plugin for -parsing types and a plugin for parsing JSX-style XML literals, you -could load them both and parse code with both JSX tags and types. - -A plugin should register itself by adding a property to -`acorn.plugins`, which holds a function. Calling `acorn.parse`, a -`plugins` option can be passed, holding an object mapping plugin names -to configuration values (or just `true` for plugins that don't take -options). After the parser object has been created, the initialization -functions for the chosen plugins are called with `(parser, -configValue)` arguments. They are expected to use the `parser.extend` -method to extend parser methods. For example, the `readToken` method -could be extended like this: - -```javascript -parser.extend("readToken", function(nextMethod) { - return function(code) { - console.log("Reading a token!") - return nextMethod.call(this, code) - } -}) -``` - -The `nextMethod` argument passed to `extend`'s second argument is the -previous value of this method, and should usually be called through to -whenever the extended method does not handle the call itself. - -Similarly, the loose parser allows plugins to register themselves via -`acorn.pluginsLoose`. The extension mechanism is the same as for the -normal parser: - -```javascript -looseParser.extend("readToken", function(nextMethod) { - return function() { - console.log("Reading a token in the loose parser!") - return nextMethod.call(this) - } -}) -``` - -### Existing plugins - - - [`acorn-jsx`](https://github.com/RReverser/acorn-jsx): Parse [Facebook JSX syntax extensions](https://github.com/facebook/jsx) - - [`acorn-es7-plugin`](https://github.com/MatAtBread/acorn-es7-plugin/): Parse [async/await syntax proposal](https://github.com/tc39/ecmascript-asyncawait) - - [`acorn-object-spread`](https://github.com/UXtemple/acorn-object-spread): Parse [object spread syntax proposal](https://github.com/sebmarkbage/ecmascript-rest-spread) - - [`acorn-es7`](https://www.npmjs.com/package/acorn-es7): Parse [decorator syntax proposal](https://github.com/wycats/javascript-decorators) - - [`acorn-objj`](https://www.npmjs.com/package/acorn-objj): [Objective-J](http://www.cappuccino-project.org/learn/objective-j.html) language parser built as Acorn plugin diff --git a/tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/bin/acorn b/tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/bin/acorn deleted file mode 100755 index cf4acd563179ad..00000000000000 --- a/tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/bin/acorn +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env node -'use strict'; - -var path = require('path'); -var fs = require('fs'); -var acorn = require('../dist/acorn.js'); - -var infile; -var forceFile; -var silent = false; -var compact = false; -var tokenize = false; -var options = {} - -function help(status) { - var print = (status == 0) ? console.log : console.error - print("usage: " + path.basename(process.argv[1]) + " [--ecma3|--ecma5|--ecma6|--ecma7]") - print(" [--tokenize] [--locations] [---allow-hash-bang] [--compact] [--silent] [--module] [--help] [--] [infile]") - process.exit(status) -} - -for (var i = 2; i < process.argv.length; ++i) { - var arg = process.argv[i] - if ((arg == "-" || arg[0] != "-") && !infile) infile = arg - else if (arg == "--" && !infile && i + 2 == process.argv.length) forceFile = infile = process.argv[++i] - else if (arg == "--ecma3") options.ecmaVersion = 3 - else if (arg == "--ecma5") options.ecmaVersion = 5 - else if (arg == "--ecma6") options.ecmaVersion = 6 - else if (arg == "--ecma7") options.ecmaVersion = 7 - else if (arg == "--locations") options.locations = true - else if (arg == "--allow-hash-bang") options.allowHashBang = true - else if (arg == "--silent") silent = true - else if (arg == "--compact") compact = true - else if (arg == "--help") help(0) - else if (arg == "--tokenize") tokenize = true - else if (arg == "--module") options.sourceType = 'module' - else help(1) -} - -function run(code) { - var result - if (!tokenize) { - try { result = acorn.parse(code, options) } - catch(e) { console.error(e.message); process.exit(1) } - } else { - result = [] - var tokenizer = acorn.tokenizer(code, options), token - while (true) { - try { token = tokenizer.getToken() } - catch(e) { console.error(e.message); process.exit(1) } - result.push(token) - if (token.type == acorn.tokTypes.eof) break - } - } - if (!silent) console.log(JSON.stringify(result, null, compact ? null : 2)) -} - -if (forceFile || infile && infile != "-") { - run(fs.readFileSync(infile, "utf8")) -} else { - var code = "" - process.stdin.resume() - process.stdin.on("data", function (chunk) { return code += chunk; }) - process.stdin.on("end", function () { return run(code); }) -} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/bin/generate-identifier-regex.js b/tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/bin/generate-identifier-regex.js deleted file mode 100644 index 100e8cf280fc56..00000000000000 --- a/tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/bin/generate-identifier-regex.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict'; - -// Which Unicode version should be used? -var version = '9.0.0'; - -var start = require('unicode-' + version + '/Binary_Property/ID_Start/code-points.js') - .filter(function(ch) { return ch > 0x7f; }); -var last = -1; -var cont = [0x200c, 0x200d].concat(require('unicode-' + version + '/Binary_Property/ID_Continue/code-points.js') - .filter(function(ch) { return ch > 0x7f && search(start, ch, last + 1) == -1; })); - -function search(arr, ch, starting) { - for (var i = starting; arr[i] <= ch && i < arr.length; last = i++) - if (arr[i] === ch) - return i; - return -1; -} - -function pad(str, width) { - while (str.length < width) str = "0" + str; - return str; -} - -function esc(code) { - var hex = code.toString(16); - if (hex.length <= 2) return "\\x" + pad(hex, 2); - else return "\\u" + pad(hex, 4); -} - -function generate(chars) { - var astral = [], re = ""; - for (var i = 0, at = 0x10000; i < chars.length; i++) { - var from = chars[i], to = from; - while (i < chars.length - 1 && chars[i + 1] == to + 1) { - i++; - to++; - } - if (to <= 0xffff) { - if (from == to) re += esc(from); - else if (from + 1 == to) re += esc(from) + esc(to); - else re += esc(from) + "-" + esc(to); - } else { - astral.push(from - at, to - from); - at = to; - } - } - return {nonASCII: re, astral: astral}; -} - -var startData = generate(start), contData = generate(cont); - -console.log("let nonASCIIidentifierStartChars = \"" + startData.nonASCII + "\""); -console.log("let nonASCIIidentifierChars = \"" + contData.nonASCII + "\""); -console.log("const astralIdentifierStartCodes = " + JSON.stringify(startData.astral)); -console.log("const astralIdentifierCodes = " + JSON.stringify(contData.astral)); diff --git a/tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/bin/update_authors.sh b/tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/bin/update_authors.sh deleted file mode 100755 index 466c8db5867cba..00000000000000 --- a/tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/bin/update_authors.sh +++ /dev/null @@ -1,6 +0,0 @@ -# Combine existing list of authors with everyone known in git, sort, add header. -tail --lines=+3 AUTHORS > AUTHORS.tmp -git log --format='%aN' | grep -v abraidwood >> AUTHORS.tmp -echo -e "List of Acorn contributors. Updated before every release.\n" > AUTHORS -sort -u AUTHORS.tmp >> AUTHORS -rm -f AUTHORS.tmp diff --git a/tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/dist/acorn.es.js b/tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/dist/acorn.es.js deleted file mode 100644 index 4460957fd78f1a..00000000000000 --- a/tools/node_modules/eslint/node_modules/acorn-jsx/node_modules/acorn/dist/acorn.es.js +++ /dev/null @@ -1,3112 +0,0 @@ -// Reserved word lists for various dialects of the language - -var reservedWords = { - 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile", - 5: "class enum extends super const export import", - 6: "enum", - 7: "enum", - strict: "implements interface let package private protected public static yield", - strictBind: "eval arguments" -} - -// And the keywords - -var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this" - -var keywords = { - 5: ecma5AndLessKeywords, - 6: ecma5AndLessKeywords + " const class extends export import super" -} - -// ## Character categories - -// Big ugly regular expressions that match characters in the -// whitespace, identifier, and identifier-start categories. These -// are only applied when a character is found to actually have a -// code point above 128. -// Generated by `bin/generate-identifier-regex.js`. - -var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ae\ua7b0-\ua7b7\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc" -var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d4-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d01-\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1cf8\u1cf9\u1dc0-\u1df5\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f" - -var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]") -var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]") - -nonASCIIidentifierStartChars = nonASCIIidentifierChars = null - -// These are a run-length and offset encoded representation of the -// >0xffff code points that are a valid part of identifiers. The -// offset starts at 0x10000, and each pair of numbers represents an -// offset to the next range, and then a size of the range. They were -// generated by bin/generate-identifier-regex.js -var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541] -var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239] - -// This has a complexity linear to the value of the code. The -// assumption is that looking up astral identifier characters is -// rare. -function isInAstralSet(code, set) { - var pos = 0x10000 - for (var i = 0; i < set.length; i += 2) { - pos += set[i] - if (pos > code) return false - pos += set[i + 1] - if (pos >= code) return true - } -} - -// Test whether a given character code starts an identifier. - -function isIdentifierStart(code, astral) { - if (code < 65) return code === 36 - if (code < 91) return true - if (code < 97) return code === 95 - if (code < 123) return true - if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) - if (astral === false) return false - return isInAstralSet(code, astralIdentifierStartCodes) -} - -// Test whether a given character is part of an identifier. - -function isIdentifierChar(code, astral) { - if (code < 48) return code === 36 - if (code < 58) return true - if (code < 65) return false - if (code < 91) return true - if (code < 97) return code === 95 - if (code < 123) return true - if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) - if (astral === false) return false - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes) -} - -// ## Token types - -// The assignment of fine-grained, information-carrying type objects -// allows the tokenizer to store the information it has about a -// token in a way that is very cheap for the parser to look up. - -// All token type variables start with an underscore, to make them -// easy to recognize. - -// The `beforeExpr` property is used to disambiguate between regular -// expressions and divisions. It is set on all token types that can -// be followed by an expression (thus, a slash after them would be a -// regular expression). -// -// The `startsExpr` property is used to check if the token ends a -// `yield` expression. It is set on all token types that either can -// directly start an expression (like a quotation mark) or can -// continue an expression (like the body of a string). -// -// `isLoop` marks a keyword as starting a loop, which is important -// to know when parsing a label, in order to allow or disallow -// continue jumps to that label. - -var TokenType = function TokenType(label, conf) { - if ( conf === void 0 ) conf = {}; - - this.label = label - this.keyword = conf.keyword - this.beforeExpr = !!conf.beforeExpr - this.startsExpr = !!conf.startsExpr - this.isLoop = !!conf.isLoop - this.isAssign = !!conf.isAssign - this.prefix = !!conf.prefix - this.postfix = !!conf.postfix - this.binop = conf.binop || null - this.updateContext = null -}; - -function binop(name, prec) { - return new TokenType(name, {beforeExpr: true, binop: prec}) -} -var beforeExpr = {beforeExpr: true}; -var startsExpr = {startsExpr: true}; -// Map keyword names to token types. - -var keywordTypes = {} - -// Succinct definitions of keyword token types -function kw(name, options) { - if ( options === void 0 ) options = {}; - - options.keyword = name - return keywordTypes[name] = new TokenType(name, options) -} - -var tt = { - num: new TokenType("num", startsExpr), - regexp: new TokenType("regexp", startsExpr), - string: new TokenType("string", startsExpr), - name: new TokenType("name", startsExpr), - eof: new TokenType("eof"), - - // Punctuation token types. - bracketL: new TokenType("[", {beforeExpr: true, startsExpr: true}), - bracketR: new TokenType("]"), - braceL: new TokenType("{", {beforeExpr: true, startsExpr: true}), - braceR: new TokenType("}"), - parenL: new TokenType("(", {beforeExpr: true, startsExpr: true}), - parenR: new TokenType(")"), - comma: new TokenType(",", beforeExpr), - semi: new TokenType(";", beforeExpr), - colon: new TokenType(":", beforeExpr), - dot: new TokenType("."), - question: new TokenType("?", beforeExpr), - arrow: new TokenType("=>", beforeExpr), - template: new TokenType("template"), - ellipsis: new TokenType("...", beforeExpr), - backQuote: new TokenType("`", startsExpr), - dollarBraceL: new TokenType("${", {beforeExpr: true, startsExpr: true}), - - // Operators. These carry several kinds of properties to help the - // parser use them properly (the presence of these properties is - // what categorizes them as operators). - // - // `binop`, when present, specifies that this operator is a binary - // operator, and will refer to its precedence. - // - // `prefix` and `postfix` mark the operator as a prefix or postfix - // unary operator. - // - // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as - // binary operators with a very low precedence, that should result - // in AssignmentExpression nodes. - - eq: new TokenType("=", {beforeExpr: true, isAssign: true}), - assign: new TokenType("_=", {beforeExpr: true, isAssign: true}), - incDec: new TokenType("++/--", {prefix: true, postfix: true, startsExpr: true}), - prefix: new TokenType("prefix", {beforeExpr: true, prefix: true, startsExpr: true}), - logicalOR: binop("||", 1), - logicalAND: binop("&&", 2), - bitwiseOR: binop("|", 3), - bitwiseXOR: binop("^", 4), - bitwiseAND: binop("&", 5), - equality: binop("==/!=", 6), - relational: binop("", 7), - bitShift: binop("<>", 8), - plusMin: new TokenType("+/-", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}), - modulo: binop("%", 10), - star: binop("*", 10), - slash: binop("/", 10), - starstar: new TokenType("**", {beforeExpr: true}), - - // Keyword token types. - _break: kw("break"), - _case: kw("case", beforeExpr), - _catch: kw("catch"), - _continue: kw("continue"), - _debugger: kw("debugger"), - _default: kw("default", beforeExpr), - _do: kw("do", {isLoop: true, beforeExpr: true}), - _else: kw("else", beforeExpr), - _finally: kw("finally"), - _for: kw("for", {isLoop: true}), - _function: kw("function", startsExpr), - _if: kw("if"), - _return: kw("return", beforeExpr), - _switch: kw("switch"), - _throw: kw("throw", beforeExpr), - _try: kw("try"), - _var: kw("var"), - _const: kw("const"), - _while: kw("while", {isLoop: true}), - _with: kw("with"), - _new: kw("new", {beforeExpr: true, startsExpr: true}), - _this: kw("this", startsExpr), - _super: kw("super", startsExpr), - _class: kw("class"), - _extends: kw("extends", beforeExpr), - _export: kw("export"), - _import: kw("import"), - _null: kw("null", startsExpr), - _true: kw("true", startsExpr), - _false: kw("false", startsExpr), - _in: kw("in", {beforeExpr: true, binop: 7}), - _instanceof: kw("instanceof", {beforeExpr: true, binop: 7}), - _typeof: kw("typeof", {beforeExpr: true, prefix: true, startsExpr: true}), - _void: kw("void", {beforeExpr: true, prefix: true, startsExpr: true}), - _delete: kw("delete", {beforeExpr: true, prefix: true, startsExpr: true}) -} - -// Matches a whole line break (where CRLF is considered a single -// line break). Used to count lines. - -var lineBreak = /\r\n?|\n|\u2028|\u2029/ -var lineBreakG = new RegExp(lineBreak.source, "g") - -function isNewLine(code) { - return code === 10 || code === 13 || code === 0x2028 || code == 0x2029 -} - -var nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/ - -var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g - -function isArray(obj) { - return Object.prototype.toString.call(obj) === "[object Array]" -} - -// Checks if an object has a property. - -function has(obj, propName) { - return Object.prototype.hasOwnProperty.call(obj, propName) -} - -// These are used when `options.locations` is on, for the -// `startLoc` and `endLoc` properties. - -var Position = function Position(line, col) { - this.line = line - this.column = col -}; - -Position.prototype.offset = function offset (n) { - return new Position(this.line, this.column + n) -}; - -var SourceLocation = function SourceLocation(p, start, end) { - this.start = start - this.end = end - if (p.sourceFile !== null) this.source = p.sourceFile -}; - -// The `getLineInfo` function is mostly useful when the -// `locations` option is off (for performance reasons) and you -// want to find the line/column position for a given character -// offset. `input` should be the code string that the offset refers -// into. - -function getLineInfo(input, offset) { - for (var line = 1, cur = 0;;) { - lineBreakG.lastIndex = cur - var match = lineBreakG.exec(input) - if (match && match.index < offset) { - ++line - cur = match.index + match[0].length - } else { - return new Position(line, offset - cur) - } - } -} - -// A second optional argument can be given to further configure -// the parser process. These options are recognized: - -var defaultOptions = { - // `ecmaVersion` indicates the ECMAScript version to parse. Must - // be either 3, or 5, or 6. This influences support for strict - // mode, the set of reserved words, support for getters and - // setters and other features. The default is 6. - ecmaVersion: 6, - // Source type ("script" or "module") for different semantics - sourceType: "script", - // `onInsertedSemicolon` can be a callback that will be called - // when a semicolon is automatically inserted. It will be passed - // th position of the comma as an offset, and if `locations` is - // enabled, it is given the location as a `{line, column}` object - // as second argument. - onInsertedSemicolon: null, - // `onTrailingComma` is similar to `onInsertedSemicolon`, but for - // trailing commas. - onTrailingComma: null, - // By default, reserved words are only enforced if ecmaVersion >= 5. - // Set `allowReserved` to a boolean value to explicitly turn this on - // an off. When this option has the value "never", reserved words - // and keywords can also not be used as property names. - allowReserved: null, - // When enabled, a return at the top level is not considered an - // error. - allowReturnOutsideFunction: false, - // When enabled, import/export statements are not constrained to - // appearing at the top of the program. - allowImportExportEverywhere: false, - // When enabled, hashbang directive in the beginning of file - // is allowed and treated as a line comment. - allowHashBang: false, - // When `locations` is on, `loc` properties holding objects with - // `start` and `end` properties in `{line, column}` form (with - // line being 1-based and column 0-based) will be attached to the - // nodes. - locations: false, - // A function can be passed as `onToken` option, which will - // cause Acorn to call that function with object in the same - // format as tokens returned from `tokenizer().getToken()`. Note - // that you are not allowed to call the parser from the - // callback—that will corrupt its internal state. - onToken: null, - // A function can be passed as `onComment` option, which will - // cause Acorn to call that function with `(block, text, start, - // end)` parameters whenever a comment is skipped. `block` is a - // boolean indicating whether this is a block (`/* */`) comment, - // `text` is the content of the comment, and `start` and `end` are - // character offsets that denote the start and end of the comment. - // When the `locations` option is on, two more parameters are - // passed, the full `{line, column}` locations of the start and - // end of the comments. Note that you are not allowed to call the - // parser from the callback—that will corrupt its internal state. - onComment: null, - // Nodes have their start and end characters offsets recorded in - // `start` and `end` properties (directly on the node, rather than - // the `loc` object, which holds line/column data. To also add a - // [semi-standardized][range] `range` property holding a `[start, - // end]` array with the same numbers, set the `ranges` option to - // `true`. - // - // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678 - ranges: false, - // It is possible to parse multiple files into a single AST by - // passing the tree produced by parsing the first file as - // `program` option in subsequent parses. This will add the - // toplevel forms of the parsed file to the `Program` (top) node - // of an existing parse tree. - program: null, - // When `locations` is on, you can pass this to record the source - // file in every node's `loc` object. - sourceFile: null, - // This value, if given, is stored in every node, whether - // `locations` is on or off. - directSourceFile: null, - // When enabled, parenthesized expressions are represented by - // (non-standard) ParenthesizedExpression nodes - preserveParens: false, - plugins: {} -} - -// Interpret and default an options object - -function getOptions(opts) { - var options = {} - for (var opt in defaultOptions) - options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt] - if (options.allowReserved == null) - options.allowReserved = options.ecmaVersion < 5 - - if (isArray(options.onToken)) { - var tokens = options.onToken - options.onToken = function (token) { return tokens.push(token); } - } - if (isArray(options.onComment)) - options.onComment = pushComment(options, options.onComment) - - return options -} - -function pushComment(options, array) { - return function (block, text, start, end, startLoc, endLoc) { - var comment = { - type: block ? 'Block' : 'Line', - value: text, - start: start, - end: end - } - if (options.locations) - comment.loc = new SourceLocation(this, startLoc, endLoc) - if (options.ranges) - comment.range = [start, end] - array.push(comment) - } -} - -// Registered plugins -var plugins = {} - -function keywordRegexp(words) { - return new RegExp("^(" + words.replace(/ /g, "|") + ")$") -} - -var Parser = function Parser(options, input, startPos) { - this.options = options = getOptions(options) - this.sourceFile = options.sourceFile - this.keywords = keywordRegexp(keywords[options.ecmaVersion >= 6 ? 6 : 5]) - var reserved = options.allowReserved ? "" : - reservedWords[options.ecmaVersion] + (options.sourceType == "module" ? " await" : "") - this.reservedWords = keywordRegexp(reserved) - var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict - this.reservedWordsStrict = keywordRegexp(reservedStrict) - this.reservedWordsStrictBind = keywordRegexp(reservedStrict + " " + reservedWords.strictBind) - this.input = String(input) - - // Used to signal to callers of `readWord1` whether the word - // contained any escape sequences. This is needed because words with - // escape sequences must not be interpreted as keywords. - this.containsEsc = false - - // Load plugins - this.loadPlugins(options.plugins) - - // Set up token state - - // The current position of the tokenizer in the input. - if (startPos) { - this.pos = startPos - this.lineStart = Math.max(0, this.input.lastIndexOf("\n", startPos)) - this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length - } else { - this.pos = this.lineStart = 0 - this.curLine = 1 - } - - // Properties of the current token: - // Its type - this.type = tt.eof - // For tokens that include more information than their type, the value - this.value = null - // Its start and end offset - this.start = this.end = this.pos - // And, if locations are used, the {line, column} object - // corresponding to those offsets - this.startLoc = this.endLoc = this.curPosition() - - // Position information for the previous token - this.lastTokEndLoc = this.lastTokStartLoc = null - this.lastTokStart = this.lastTokEnd = this.pos - - // The context stack is used to superficially track syntactic - // context to predict whether a regular expression is allowed in a - // given position. - this.context = this.initialContext() - this.exprAllowed = true - - // Figure out if it's a module code. - this.strict = this.inModule = options.sourceType === "module" - - // Used to signify the start of a potential arrow function - this.potentialArrowAt = -1 - - // Flags to track whether we are in a function, a generator. - this.inFunction = this.inGenerator = false - // Labels in scope. - this.labels = [] - - // If enabled, skip leading hashbang line. - if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === '#!') - this.skipLineComment(2) -}; - -// DEPRECATED Kept for backwards compatibility until 3.0 in case a plugin uses them -Parser.prototype.isKeyword = function isKeyword (word) { return this.keywords.test(word) }; -Parser.prototype.isReservedWord = function isReservedWord (word) { return this.reservedWords.test(word) }; - -Parser.prototype.extend = function extend (name, f) { - this[name] = f(this[name]) -}; - -Parser.prototype.loadPlugins = function loadPlugins (pluginConfigs) { - var this$1 = this; - - for (var name in pluginConfigs) { - var plugin = plugins[name] - if (!plugin) throw new Error("Plugin '" + name + "' not found") - plugin(this$1, pluginConfigs[name]) - } -}; - -Parser.prototype.parse = function parse () { - var node = this.options.program || this.startNode() - this.nextToken() - return this.parseTopLevel(node) -}; - -var pp = Parser.prototype - -// ## Parser utilities - -// Test whether a statement node is the string literal `"use strict"`. - -pp.isUseStrict = function(stmt) { - return this.options.ecmaVersion >= 5 && stmt.type === "ExpressionStatement" && - stmt.expression.type === "Literal" && - stmt.expression.raw.slice(1, -1) === "use strict" -} - -// Predicate that tests whether the next token is of the given -// type, and if yes, consumes it as a side effect. - -pp.eat = function(type) { - if (this.type === type) { - this.next() - return true - } else { - return false - } -} - -// Tests whether parsed token is a contextual keyword. - -pp.isContextual = function(name) { - return this.type === tt.name && this.value === name -} - -// Consumes contextual keyword if possible. - -pp.eatContextual = function(name) { - return this.value === name && this.eat(tt.name) -} - -// Asserts that following token is given contextual keyword. - -pp.expectContextual = function(name) { - if (!this.eatContextual(name)) this.unexpected() -} - -// Test whether a semicolon can be inserted at the current position. - -pp.canInsertSemicolon = function() { - return this.type === tt.eof || - this.type === tt.braceR || - lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) -} - -pp.insertSemicolon = function() { - if (this.canInsertSemicolon()) { - if (this.options.onInsertedSemicolon) - this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc) - return true - } -} - -// Consume a semicolon, or, failing that, see if we are allowed to -// pretend that there is a semicolon at this position. - -pp.semicolon = function() { - if (!this.eat(tt.semi) && !this.insertSemicolon()) this.unexpected() -} - -pp.afterTrailingComma = function(tokType) { - if (this.type == tokType) { - if (this.options.onTrailingComma) - this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc) - this.next() - return true - } -} - -// Expect a token of a given type. If found, consume it, otherwise, -// raise an unexpected token error. - -pp.expect = function(type) { - this.eat(type) || this.unexpected() -} - -// Raise an unexpected token error. - -pp.unexpected = function(pos) { - this.raise(pos != null ? pos : this.start, "Unexpected token") -} - -var DestructuringErrors = function DestructuringErrors() { - this.shorthandAssign = 0 - this.trailingComma = 0 -}; - -pp.checkPatternErrors = function(refDestructuringErrors, andThrow) { - var trailing = refDestructuringErrors && refDestructuringErrors.trailingComma - if (!andThrow) return !!trailing - if (trailing) this.raise(trailing, "Comma is not permitted after the rest element") -} - -pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) { - var pos = refDestructuringErrors && refDestructuringErrors.shorthandAssign - if (!andThrow) return !!pos - if (pos) this.raise(pos, "Shorthand property assignments are valid only in destructuring patterns") -} - -var pp$1 = Parser.prototype - -// ### Statement parsing - -// Parse a program. Initializes the parser, reads any number of -// statements, and wraps them in a Program node. Optionally takes a -// `program` argument. If present, the statements will be appended -// to its body instead of creating a new node. - -pp$1.parseTopLevel = function(node) { - var this$1 = this; - - var first = true - if (!node.body) node.body = [] - while (this.type !== tt.eof) { - var stmt = this$1.parseStatement(true, true) - node.body.push(stmt) - if (first) { - if (this$1.isUseStrict(stmt)) this$1.setStrict(true) - first = false - } - } - this.next() - if (this.options.ecmaVersion >= 6) { - node.sourceType = this.options.sourceType - } - return this.finishNode(node, "Program") -} - -var loopLabel = {kind: "loop"}; -var switchLabel = {kind: "switch"}; -pp$1.isLet = function() { - if (this.type !== tt.name || this.options.ecmaVersion < 6 || this.value != "let") return false - skipWhiteSpace.lastIndex = this.pos - var skip = skipWhiteSpace.exec(this.input) - var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next) - if (nextCh === 91 || nextCh == 123) return true // '{' and '[' - if (isIdentifierStart(nextCh, true)) { - for (var pos = next + 1; isIdentifierChar(this.input.charCodeAt(pos), true); ++pos) {} - var ident = this.input.slice(next, pos) - if (!this.isKeyword(ident)) return true - } - return false -} - -// Parse a single statement. -// -// If expecting a statement and finding a slash operator, parse a -// regular expression literal. This is to handle cases like -// `if (foo) /blah/.exec(foo)`, where looking at the previous token -// does not help. - -pp$1.parseStatement = function(declaration, topLevel) { - var starttype = this.type, node = this.startNode(), kind - - if (this.isLet()) { - starttype = tt._var - kind = "let" - } - - // Most types of statements are recognized by the keyword they - // start with. Many are trivial to parse, some require a bit of - // complexity. - - switch (starttype) { - case tt._break: case tt._continue: return this.parseBreakContinueStatement(node, starttype.keyword) - case tt._debugger: return this.parseDebuggerStatement(node) - case tt._do: return this.parseDoStatement(node) - case tt._for: return this.parseForStatement(node) - case tt._function: - if (!declaration && this.options.ecmaVersion >= 6) this.unexpected() - return this.parseFunctionStatement(node) - case tt._class: - if (!declaration) this.unexpected() - return this.parseClass(node, true) - case tt._if: return this.parseIfStatement(node) - case tt._return: return this.parseReturnStatement(node) - case tt._switch: return this.parseSwitchStatement(node) - case tt._throw: return this.parseThrowStatement(node) - case tt._try: return this.parseTryStatement(node) - case tt._const: case tt._var: - kind = kind || this.value - if (!declaration && kind != "var") this.unexpected() - return this.parseVarStatement(node, kind) - case tt._while: return this.parseWhileStatement(node) - case tt._with: return this.parseWithStatement(node) - case tt.braceL: return this.parseBlock() - case tt.semi: return this.parseEmptyStatement(node) - case tt._export: - case tt._import: - if (!this.options.allowImportExportEverywhere) { - if (!topLevel) - this.raise(this.start, "'import' and 'export' may only appear at the top level") - if (!this.inModule) - this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'") - } - return starttype === tt._import ? this.parseImport(node) : this.parseExport(node) - - // If the statement does not start with a statement keyword or a - // brace, it's an ExpressionStatement or LabeledStatement. We - // simply start parsing an expression, and afterwards, if the - // next token is a colon and the expression was a simple - // Identifier node, we switch to interpreting it as a label. - default: - var maybeName = this.value, expr = this.parseExpression() - if (starttype === tt.name && expr.type === "Identifier" && this.eat(tt.colon)) - return this.parseLabeledStatement(node, maybeName, expr) - else return this.parseExpressionStatement(node, expr) - } -} - -pp$1.parseBreakContinueStatement = function(node, keyword) { - var this$1 = this; - - var isBreak = keyword == "break" - this.next() - if (this.eat(tt.semi) || this.insertSemicolon()) node.label = null - else if (this.type !== tt.name) this.unexpected() - else { - node.label = this.parseIdent() - this.semicolon() - } - - // Verify that there is an actual destination to break or - // continue to. - for (var i = 0; i < this.labels.length; ++i) { - var lab = this$1.labels[i] - if (node.label == null || lab.name === node.label.name) { - if (lab.kind != null && (isBreak || lab.kind === "loop")) break - if (node.label && isBreak) break - } - } - if (i === this.labels.length) this.raise(node.start, "Unsyntactic " + keyword) - return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement") -} - -pp$1.parseDebuggerStatement = function(node) { - this.next() - this.semicolon() - return this.finishNode(node, "DebuggerStatement") -} - -pp$1.parseDoStatement = function(node) { - this.next() - this.labels.push(loopLabel) - node.body = this.parseStatement(false) - this.labels.pop() - this.expect(tt._while) - node.test = this.parseParenExpression() - if (this.options.ecmaVersion >= 6) - this.eat(tt.semi) - else - this.semicolon() - return this.finishNode(node, "DoWhileStatement") -} - -// Disambiguating between a `for` and a `for`/`in` or `for`/`of` -// loop is non-trivial. Basically, we have to parse the init `var` -// statement or expression, disallowing the `in` operator (see -// the second parameter to `parseExpression`), and then check -// whether the next token is `in` or `of`. When there is no init -// part (semicolon immediately after the opening parenthesis), it -// is a regular `for` loop. - -pp$1.parseForStatement = function(node) { - this.next() - this.labels.push(loopLabel) - this.expect(tt.parenL) - if (this.type === tt.semi) return this.parseFor(node, null) - var isLet = this.isLet() - if (this.type === tt._var || this.type === tt._const || isLet) { - var init$1 = this.startNode(), kind = isLet ? "let" : this.value - this.next() - this.parseVar(init$1, true, kind) - this.finishNode(init$1, "VariableDeclaration") - if ((this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1 && - !(kind !== "var" && init$1.declarations[0].init)) - return this.parseForIn(node, init$1) - return this.parseFor(node, init$1) - } - var refDestructuringErrors = new DestructuringErrors - var init = this.parseExpression(true, refDestructuringErrors) - if (this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) { - this.checkPatternErrors(refDestructuringErrors, true) - this.toAssignable(init) - this.checkLVal(init) - return this.parseForIn(node, init) - } else { - this.checkExpressionErrors(refDestructuringErrors, true) - } - return this.parseFor(node, init) -} - -pp$1.parseFunctionStatement = function(node) { - this.next() - return this.parseFunction(node, true) -} - -pp$1.parseIfStatement = function(node) { - this.next() - node.test = this.parseParenExpression() - node.consequent = this.parseStatement(false) - node.alternate = this.eat(tt._else) ? this.parseStatement(false) : null - return this.finishNode(node, "IfStatement") -} - -pp$1.parseReturnStatement = function(node) { - if (!this.inFunction && !this.options.allowReturnOutsideFunction) - this.raise(this.start, "'return' outside of function") - this.next() - - // In `return` (and `break`/`continue`), the keywords with - // optional arguments, we eagerly look for a semicolon or the - // possibility to insert one. - - if (this.eat(tt.semi) || this.insertSemicolon()) node.argument = null - else { node.argument = this.parseExpression(); this.semicolon() } - return this.finishNode(node, "ReturnStatement") -} - -pp$1.parseSwitchStatement = function(node) { - var this$1 = this; - - this.next() - node.discriminant = this.parseParenExpression() - node.cases = [] - this.expect(tt.braceL) - this.labels.push(switchLabel) - - // Statements under must be grouped (by label) in SwitchCase - // nodes. `cur` is used to keep the node that we are currently - // adding statements to. - - for (var cur, sawDefault = false; this.type != tt.braceR;) { - if (this$1.type === tt._case || this$1.type === tt._default) { - var isCase = this$1.type === tt._case - if (cur) this$1.finishNode(cur, "SwitchCase") - node.cases.push(cur = this$1.startNode()) - cur.consequent = [] - this$1.next() - if (isCase) { - cur.test = this$1.parseExpression() - } else { - if (sawDefault) this$1.raiseRecoverable(this$1.lastTokStart, "Multiple default clauses") - sawDefault = true - cur.test = null - } - this$1.expect(tt.colon) - } else { - if (!cur) this$1.unexpected() - cur.consequent.push(this$1.parseStatement(true)) - } - } - if (cur) this.finishNode(cur, "SwitchCase") - this.next() // Closing brace - this.labels.pop() - return this.finishNode(node, "SwitchStatement") -} - -pp$1.parseThrowStatement = function(node) { - this.next() - if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) - this.raise(this.lastTokEnd, "Illegal newline after throw") - node.argument = this.parseExpression() - this.semicolon() - return this.finishNode(node, "ThrowStatement") -} - -// Reused empty array added for node fields that are always empty. - -var empty = [] - -pp$1.parseTryStatement = function(node) { - this.next() - node.block = this.parseBlock() - node.handler = null - if (this.type === tt._catch) { - var clause = this.startNode() - this.next() - this.expect(tt.parenL) - clause.param = this.parseBindingAtom() - this.checkLVal(clause.param, true) - this.expect(tt.parenR) - clause.body = this.parseBlock() - node.handler = this.finishNode(clause, "CatchClause") - } - node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null - if (!node.handler && !node.finalizer) - this.raise(node.start, "Missing catch or finally clause") - return this.finishNode(node, "TryStatement") -} - -pp$1.parseVarStatement = function(node, kind) { - this.next() - this.parseVar(node, false, kind) - this.semicolon() - return this.finishNode(node, "VariableDeclaration") -} - -pp$1.parseWhileStatement = function(node) { - this.next() - node.test = this.parseParenExpression() - this.labels.push(loopLabel) - node.body = this.parseStatement(false) - this.labels.pop() - return this.finishNode(node, "WhileStatement") -} - -pp$1.parseWithStatement = function(node) { - if (this.strict) this.raise(this.start, "'with' in strict mode") - this.next() - node.object = this.parseParenExpression() - node.body = this.parseStatement(false) - return this.finishNode(node, "WithStatement") -} - -pp$1.parseEmptyStatement = function(node) { - this.next() - return this.finishNode(node, "EmptyStatement") -} - -pp$1.parseLabeledStatement = function(node, maybeName, expr) { - var this$1 = this; - - for (var i = 0; i < this.labels.length; ++i) - if (this$1.labels[i].name === maybeName) this$1.raise(expr.start, "Label '" + maybeName + "' is already declared") - var kind = this.type.isLoop ? "loop" : this.type === tt._switch ? "switch" : null - for (var i$1 = this.labels.length - 1; i$1 >= 0; i$1--) { - var label = this$1.labels[i$1] - if (label.statementStart == node.start) { - label.statementStart = this$1.start - label.kind = kind - } else break - } - this.labels.push({name: maybeName, kind: kind, statementStart: this.start}) - node.body = this.parseStatement(true) - this.labels.pop() - node.label = expr - return this.finishNode(node, "LabeledStatement") -} - -pp$1.parseExpressionStatement = function(node, expr) { - node.expression = expr - this.semicolon() - return this.finishNode(node, "ExpressionStatement") -} - -// Parse a semicolon-enclosed block of statements, handling `"use -// strict"` declarations when `allowStrict` is true (used for -// function bodies). - -pp$1.parseBlock = function(allowStrict) { - var this$1 = this; - - var node = this.startNode(), first = true, oldStrict - node.body = [] - this.expect(tt.braceL) - while (!this.eat(tt.braceR)) { - var stmt = this$1.parseStatement(true) - node.body.push(stmt) - if (first && allowStrict && this$1.isUseStrict(stmt)) { - oldStrict = this$1.strict - this$1.setStrict(this$1.strict = true) - } - first = false - } - if (oldStrict === false) this.setStrict(false) - return this.finishNode(node, "BlockStatement") -} - -// Parse a regular `for` loop. The disambiguation code in -// `parseStatement` will already have parsed the init statement or -// expression. - -pp$1.parseFor = function(node, init) { - node.init = init - this.expect(tt.semi) - node.test = this.type === tt.semi ? null : this.parseExpression() - this.expect(tt.semi) - node.update = this.type === tt.parenR ? null : this.parseExpression() - this.expect(tt.parenR) - node.body = this.parseStatement(false) - this.labels.pop() - return this.finishNode(node, "ForStatement") -} - -// Parse a `for`/`in` and `for`/`of` loop, which are almost -// same from parser's perspective. - -pp$1.parseForIn = function(node, init) { - var type = this.type === tt._in ? "ForInStatement" : "ForOfStatement" - this.next() - node.left = init - node.right = this.parseExpression() - this.expect(tt.parenR) - node.body = this.parseStatement(false) - this.labels.pop() - return this.finishNode(node, type) -} - -// Parse a list of variable declarations. - -pp$1.parseVar = function(node, isFor, kind) { - var this$1 = this; - - node.declarations = [] - node.kind = kind - for (;;) { - var decl = this$1.startNode() - this$1.parseVarId(decl) - if (this$1.eat(tt.eq)) { - decl.init = this$1.parseMaybeAssign(isFor) - } else if (kind === "const" && !(this$1.type === tt._in || (this$1.options.ecmaVersion >= 6 && this$1.isContextual("of")))) { - this$1.unexpected() - } else if (decl.id.type != "Identifier" && !(isFor && (this$1.type === tt._in || this$1.isContextual("of")))) { - this$1.raise(this$1.lastTokEnd, "Complex binding patterns require an initialization value") - } else { - decl.init = null - } - node.declarations.push(this$1.finishNode(decl, "VariableDeclarator")) - if (!this$1.eat(tt.comma)) break - } - return node -} - -pp$1.parseVarId = function(decl) { - decl.id = this.parseBindingAtom() - this.checkLVal(decl.id, true) -} - -// Parse a function declaration or literal (depending on the -// `isStatement` parameter). - -pp$1.parseFunction = function(node, isStatement, allowExpressionBody) { - this.initFunction(node) - if (this.options.ecmaVersion >= 6) - node.generator = this.eat(tt.star) - var oldInGen = this.inGenerator - this.inGenerator = node.generator - if (isStatement || this.type === tt.name) - node.id = this.parseIdent() - this.parseFunctionParams(node) - this.parseFunctionBody(node, allowExpressionBody) - this.inGenerator = oldInGen - return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression") -} - -pp$1.parseFunctionParams = function(node) { - this.expect(tt.parenL) - node.params = this.parseBindingList(tt.parenR, false, false, true) -} - -// Parse a class declaration or literal (depending on the -// `isStatement` parameter). - -pp$1.parseClass = function(node, isStatement) { - var this$1 = this; - - this.next() - this.parseClassId(node, isStatement) - this.parseClassSuper(node) - var classBody = this.startNode() - var hadConstructor = false - classBody.body = [] - this.expect(tt.braceL) - while (!this.eat(tt.braceR)) { - if (this$1.eat(tt.semi)) continue - var method = this$1.startNode() - var isGenerator = this$1.eat(tt.star) - var isMaybeStatic = this$1.type === tt.name && this$1.value === "static" - this$1.parsePropertyName(method) - method.static = isMaybeStatic && this$1.type !== tt.parenL - if (method.static) { - if (isGenerator) this$1.unexpected() - isGenerator = this$1.eat(tt.star) - this$1.parsePropertyName(method) - } - method.kind = "method" - var isGetSet = false - if (!method.computed) { - var key = method.key; - if (!isGenerator && key.type === "Identifier" && this$1.type !== tt.parenL && (key.name === "get" || key.name === "set")) { - isGetSet = true - method.kind = key.name - key = this$1.parsePropertyName(method) - } - if (!method.static && (key.type === "Identifier" && key.name === "constructor" || - key.type === "Literal" && key.value === "constructor")) { - if (hadConstructor) this$1.raise(key.start, "Duplicate constructor in the same class") - if (isGetSet) this$1.raise(key.start, "Constructor can't have get/set modifier") - if (isGenerator) this$1.raise(key.start, "Constructor can't be a generator") - method.kind = "constructor" - hadConstructor = true - } - } - this$1.parseClassMethod(classBody, method, isGenerator) - if (isGetSet) { - var paramCount = method.kind === "get" ? 0 : 1 - if (method.value.params.length !== paramCount) { - var start = method.value.start - if (method.kind === "get") - this$1.raiseRecoverable(start, "getter should have no params") - else - this$1.raiseRecoverable(start, "setter should have exactly one param") - } - if (method.kind === "set" && method.value.params[0].type === "RestElement") - this$1.raise(method.value.params[0].start, "Setter cannot use rest params") - } - } - node.body = this.finishNode(classBody, "ClassBody") - return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression") -} - -pp$1.parseClassMethod = function(classBody, method, isGenerator) { - method.value = this.parseMethod(isGenerator) - classBody.body.push(this.finishNode(method, "MethodDefinition")) -} - -pp$1.parseClassId = function(node, isStatement) { - node.id = this.type === tt.name ? this.parseIdent() : isStatement ? this.unexpected() : null -} - -pp$1.parseClassSuper = function(node) { - node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null -} - -// Parses module export declaration. - -pp$1.parseExport = function(node) { - var this$1 = this; - - this.next() - // export * from '...' - if (this.eat(tt.star)) { - this.expectContextual("from") - node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected() - this.semicolon() - return this.finishNode(node, "ExportAllDeclaration") - } - if (this.eat(tt._default)) { // export default ... - var parens = this.type == tt.parenL - var expr = this.parseMaybeAssign() - var needsSemi = true - if (!parens && (expr.type == "FunctionExpression" || - expr.type == "ClassExpression")) { - needsSemi = false - if (expr.id) { - expr.type = expr.type == "FunctionExpression" - ? "FunctionDeclaration" - : "ClassDeclaration" - } - } - node.declaration = expr - if (needsSemi) this.semicolon() - return this.finishNode(node, "ExportDefaultDeclaration") - } - // export var|const|let|function|class ... - if (this.shouldParseExportStatement()) { - node.declaration = this.parseStatement(true) - node.specifiers = [] - node.source = null - } else { // export { x, y as z } [from '...'] - node.declaration = null - node.specifiers = this.parseExportSpecifiers() - if (this.eatContextual("from")) { - node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected() - } else { - // check for keywords used as local names - for (var i = 0; i < node.specifiers.length; i++) { - if (this$1.keywords.test(node.specifiers[i].local.name) || this$1.reservedWords.test(node.specifiers[i].local.name)) { - this$1.unexpected(node.specifiers[i].local.start) - } - } - - node.source = null - } - this.semicolon() - } - return this.finishNode(node, "ExportNamedDeclaration") -} - -pp$1.shouldParseExportStatement = function() { - return this.type.keyword || this.isLet() -} - -// Parses a comma-separated list of module exports. - -pp$1.parseExportSpecifiers = function() { - var this$1 = this; - - var nodes = [], first = true - // export { x, y as z } [from '...'] - this.expect(tt.braceL) - while (!this.eat(tt.braceR)) { - if (!first) { - this$1.expect(tt.comma) - if (this$1.afterTrailingComma(tt.braceR)) break - } else first = false - - var node = this$1.startNode() - node.local = this$1.parseIdent(this$1.type === tt._default) - node.exported = this$1.eatContextual("as") ? this$1.parseIdent(true) : node.local - nodes.push(this$1.finishNode(node, "ExportSpecifier")) - } - return nodes -} - -// Parses import declaration. - -pp$1.parseImport = function(node) { - this.next() - // import '...' - if (this.type === tt.string) { - node.specifiers = empty - node.source = this.parseExprAtom() - } else { - node.specifiers = this.parseImportSpecifiers() - this.expectContextual("from") - node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected() - } - this.semicolon() - return this.finishNode(node, "ImportDeclaration") -} - -// Parses a comma-separated list of module imports. - -pp$1.parseImportSpecifiers = function() { - var this$1 = this; - - var nodes = [], first = true - if (this.type === tt.name) { - // import defaultObj, { x, y as z } from '...' - var node = this.startNode() - node.local = this.parseIdent() - this.checkLVal(node.local, true) - nodes.push(this.finishNode(node, "ImportDefaultSpecifier")) - if (!this.eat(tt.comma)) return nodes - } - if (this.type === tt.star) { - var node$1 = this.startNode() - this.next() - this.expectContextual("as") - node$1.local = this.parseIdent() - this.checkLVal(node$1.local, true) - nodes.push(this.finishNode(node$1, "ImportNamespaceSpecifier")) - return nodes - } - this.expect(tt.braceL) - while (!this.eat(tt.braceR)) { - if (!first) { - this$1.expect(tt.comma) - if (this$1.afterTrailingComma(tt.braceR)) break - } else first = false - - var node$2 = this$1.startNode() - node$2.imported = this$1.parseIdent(true) - if (this$1.eatContextual("as")) { - node$2.local = this$1.parseIdent() - } else { - node$2.local = node$2.imported - if (this$1.isKeyword(node$2.local.name)) this$1.unexpected(node$2.local.start) - if (this$1.reservedWordsStrict.test(node$2.local.name)) this$1.raise(node$2.local.start, "The keyword '" + node$2.local.name + "' is reserved") - } - this$1.checkLVal(node$2.local, true) - nodes.push(this$1.finishNode(node$2, "ImportSpecifier")) - } - return nodes -} - -var pp$2 = Parser.prototype - -// Convert existing expression atom to assignable pattern -// if possible. - -pp$2.toAssignable = function(node, isBinding) { - var this$1 = this; - - if (this.options.ecmaVersion >= 6 && node) { - switch (node.type) { - case "Identifier": - case "ObjectPattern": - case "ArrayPattern": - break - - case "ObjectExpression": - node.type = "ObjectPattern" - for (var i = 0; i < node.properties.length; i++) { - var prop = node.properties[i] - if (prop.kind !== "init") this$1.raise(prop.key.start, "Object pattern can't contain getter or setter") - this$1.toAssignable(prop.value, isBinding) - } - break - - case "ArrayExpression": - node.type = "ArrayPattern" - this.toAssignableList(node.elements, isBinding) - break - - case "AssignmentExpression": - if (node.operator === "=") { - node.type = "AssignmentPattern" - delete node.operator - // falls through to AssignmentPattern - } else { - this.raise(node.left.end, "Only '=' operator can be used for specifying default value.") - break - } - - case "AssignmentPattern": - if (node.right.type === "YieldExpression") - this.raise(node.right.start, "Yield expression cannot be a default value") - break - - case "ParenthesizedExpression": - node.expression = this.toAssignable(node.expression, isBinding) - break - - case "MemberExpression": - if (!isBinding) break - - default: - this.raise(node.start, "Assigning to rvalue") - } - } - return node -} - -// Convert list of expression atoms to binding list. - -pp$2.toAssignableList = function(exprList, isBinding) { - var this$1 = this; - - var end = exprList.length - if (end) { - var last = exprList[end - 1] - if (last && last.type == "RestElement") { - --end - } else if (last && last.type == "SpreadElement") { - last.type = "RestElement" - var arg = last.argument - this.toAssignable(arg, isBinding) - if (arg.type !== "Identifier" && arg.type !== "MemberExpression" && arg.type !== "ArrayPattern") - this.unexpected(arg.start) - --end - } - - if (isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier") - this.unexpected(last.argument.start) - } - for (var i = 0; i < end; i++) { - var elt = exprList[i] - if (elt) this$1.toAssignable(elt, isBinding) - } - return exprList -} - -// Parses spread element. - -pp$2.parseSpread = function(refDestructuringErrors) { - var node = this.startNode() - this.next() - node.argument = this.parseMaybeAssign(false, refDestructuringErrors) - return this.finishNode(node, "SpreadElement") -} - -pp$2.parseRest = function(allowNonIdent) { - var node = this.startNode() - this.next() - - // RestElement inside of a function parameter must be an identifier - if (allowNonIdent) node.argument = this.type === tt.name ? this.parseIdent() : this.unexpected() - else node.argument = this.type === tt.name || this.type === tt.bracketL ? this.parseBindingAtom() : this.unexpected() - - return this.finishNode(node, "RestElement") -} - -// Parses lvalue (assignable) atom. - -pp$2.parseBindingAtom = function() { - if (this.options.ecmaVersion < 6) return this.parseIdent() - switch (this.type) { - case tt.name: - return this.parseIdent() - - case tt.bracketL: - var node = this.startNode() - this.next() - node.elements = this.parseBindingList(tt.bracketR, true, true) - return this.finishNode(node, "ArrayPattern") - - case tt.braceL: - return this.parseObj(true) - - default: - this.unexpected() - } -} - -pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma, allowNonIdent) { - var this$1 = this; - - var elts = [], first = true - while (!this.eat(close)) { - if (first) first = false - else this$1.expect(tt.comma) - if (allowEmpty && this$1.type === tt.comma) { - elts.push(null) - } else if (allowTrailingComma && this$1.afterTrailingComma(close)) { - break - } else if (this$1.type === tt.ellipsis) { - var rest = this$1.parseRest(allowNonIdent) - this$1.parseBindingListItem(rest) - elts.push(rest) - if (this$1.type === tt.comma) this$1.raise(this$1.start, "Comma is not permitted after the rest element") - this$1.expect(close) - break - } else { - var elem = this$1.parseMaybeDefault(this$1.start, this$1.startLoc) - this$1.parseBindingListItem(elem) - elts.push(elem) - } - } - return elts -} - -pp$2.parseBindingListItem = function(param) { - return param -} - -// Parses assignment pattern around given atom if possible. - -pp$2.parseMaybeDefault = function(startPos, startLoc, left) { - left = left || this.parseBindingAtom() - if (this.options.ecmaVersion < 6 || !this.eat(tt.eq)) return left - var node = this.startNodeAt(startPos, startLoc) - node.left = left - node.right = this.parseMaybeAssign() - return this.finishNode(node, "AssignmentPattern") -} - -// Verify that a node is an lval — something that can be assigned -// to. - -pp$2.checkLVal = function(expr, isBinding, checkClashes) { - var this$1 = this; - - switch (expr.type) { - case "Identifier": - if (this.strict && this.reservedWordsStrictBind.test(expr.name)) - this.raiseRecoverable(expr.start, (isBinding ? "Binding " : "Assigning to ") + expr.name + " in strict mode") - if (checkClashes) { - if (has(checkClashes, expr.name)) - this.raiseRecoverable(expr.start, "Argument name clash") - checkClashes[expr.name] = true - } - break - - case "MemberExpression": - if (isBinding) this.raiseRecoverable(expr.start, (isBinding ? "Binding" : "Assigning to") + " member expression") - break - - case "ObjectPattern": - for (var i = 0; i < expr.properties.length; i++) - this$1.checkLVal(expr.properties[i].value, isBinding, checkClashes) - break - - case "ArrayPattern": - for (var i$1 = 0; i$1 < expr.elements.length; i$1++) { - var elem = expr.elements[i$1] - if (elem) this$1.checkLVal(elem, isBinding, checkClashes) - } - break - - case "AssignmentPattern": - this.checkLVal(expr.left, isBinding, checkClashes) - break - - case "RestElement": - this.checkLVal(expr.argument, isBinding, checkClashes) - break - - case "ParenthesizedExpression": - this.checkLVal(expr.expression, isBinding, checkClashes) - break - - default: - this.raise(expr.start, (isBinding ? "Binding" : "Assigning to") + " rvalue") - } -} - -var pp$3 = Parser.prototype - -// Check if property name clashes with already added. -// Object/class getters and setters are not allowed to clash — -// either with each other or with an init property — and in -// strict mode, init properties are also not allowed to be repeated. - -pp$3.checkPropClash = function(prop, propHash) { - if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand)) - return - var key = prop.key; - var name - switch (key.type) { - case "Identifier": name = key.name; break - case "Literal": name = String(key.value); break - default: return - } - var kind = prop.kind; - if (this.options.ecmaVersion >= 6) { - if (name === "__proto__" && kind === "init") { - if (propHash.proto) this.raiseRecoverable(key.start, "Redefinition of __proto__ property") - propHash.proto = true - } - return - } - name = "$" + name - var other = propHash[name] - if (other) { - var isGetSet = kind !== "init" - if ((this.strict || isGetSet) && other[kind] || !(isGetSet ^ other.init)) - this.raiseRecoverable(key.start, "Redefinition of property") - } else { - other = propHash[name] = { - init: false, - get: false, - set: false - } - } - other[kind] = true -} - -// ### Expression parsing - -// These nest, from the most general expression type at the top to -// 'atomic', nondivisible expression types at the bottom. Most of -// the functions will simply let the function(s) below them parse, -// and, *if* the syntactic construct they handle is present, wrap -// the AST node that the inner parser gave them in another node. - -// Parse a full expression. The optional arguments are used to -// forbid the `in` operator (in for loops initalization expressions) -// and provide reference for storing '=' operator inside shorthand -// property assignment in contexts where both object expression -// and object pattern might appear (so it's possible to raise -// delayed syntax error at correct position). - -pp$3.parseExpression = function(noIn, refDestructuringErrors) { - var this$1 = this; - - var startPos = this.start, startLoc = this.startLoc - var expr = this.parseMaybeAssign(noIn, refDestructuringErrors) - if (this.type === tt.comma) { - var node = this.startNodeAt(startPos, startLoc) - node.expressions = [expr] - while (this.eat(tt.comma)) node.expressions.push(this$1.parseMaybeAssign(noIn, refDestructuringErrors)) - return this.finishNode(node, "SequenceExpression") - } - return expr -} - -// Parse an assignment expression. This includes applications of -// operators like `+=`. - -pp$3.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) { - if (this.inGenerator && this.isContextual("yield")) return this.parseYield() - - var ownDestructuringErrors = false - if (!refDestructuringErrors) { - refDestructuringErrors = new DestructuringErrors - ownDestructuringErrors = true - } - var startPos = this.start, startLoc = this.startLoc - if (this.type == tt.parenL || this.type == tt.name) - this.potentialArrowAt = this.start - var left = this.parseMaybeConditional(noIn, refDestructuringErrors) - if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc) - if (this.type.isAssign) { - this.checkPatternErrors(refDestructuringErrors, true) - if (!ownDestructuringErrors) DestructuringErrors.call(refDestructuringErrors) - var node = this.startNodeAt(startPos, startLoc) - node.operator = this.value - node.left = this.type === tt.eq ? this.toAssignable(left) : left - refDestructuringErrors.shorthandAssign = 0 // reset because shorthand default was used correctly - this.checkLVal(left) - this.next() - node.right = this.parseMaybeAssign(noIn) - return this.finishNode(node, "AssignmentExpression") - } else { - if (ownDestructuringErrors) this.checkExpressionErrors(refDestructuringErrors, true) - } - return left -} - -// Parse a ternary conditional (`?:`) operator. - -pp$3.parseMaybeConditional = function(noIn, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc - var expr = this.parseExprOps(noIn, refDestructuringErrors) - if (this.checkExpressionErrors(refDestructuringErrors)) return expr - if (this.eat(tt.question)) { - var node = this.startNodeAt(startPos, startLoc) - node.test = expr - node.consequent = this.parseMaybeAssign() - this.expect(tt.colon) - node.alternate = this.parseMaybeAssign(noIn) - return this.finishNode(node, "ConditionalExpression") - } - return expr -} - -// Start the precedence parser. - -pp$3.parseExprOps = function(noIn, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc - var expr = this.parseMaybeUnary(refDestructuringErrors, false) - if (this.checkExpressionErrors(refDestructuringErrors)) return expr - return this.parseExprOp(expr, startPos, startLoc, -1, noIn) -} - -// Parse binary operators with the operator precedence parsing -// algorithm. `left` is the left-hand side of the operator. -// `minPrec` provides context that allows the function to stop and -// defer further parser to one of its callers when it encounters an -// operator that has a lower precedence than the set it is parsing. - -pp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) { - var prec = this.type.binop - if (prec != null && (!noIn || this.type !== tt._in)) { - if (prec > minPrec) { - var logical = this.type === tt.logicalOR || this.type === tt.logicalAND - var op = this.value - this.next() - var startPos = this.start, startLoc = this.startLoc - var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn) - var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical) - return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn) - } - } - return left -} - -pp$3.buildBinary = function(startPos, startLoc, left, right, op, logical) { - var node = this.startNodeAt(startPos, startLoc) - node.left = left - node.operator = op - node.right = right - return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression") -} - -// Parse unary operators, both prefix and postfix. - -pp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary) { - var this$1 = this; - - var startPos = this.start, startLoc = this.startLoc, expr - if (this.type.prefix) { - var node = this.startNode(), update = this.type === tt.incDec - node.operator = this.value - node.prefix = true - this.next() - node.argument = this.parseMaybeUnary(null, true) - this.checkExpressionErrors(refDestructuringErrors, true) - if (update) this.checkLVal(node.argument) - else if (this.strict && node.operator === "delete" && - node.argument.type === "Identifier") - this.raiseRecoverable(node.start, "Deleting local variable in strict mode") - else sawUnary = true - expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression") - } else { - expr = this.parseExprSubscripts(refDestructuringErrors) - if (this.checkExpressionErrors(refDestructuringErrors)) return expr - while (this.type.postfix && !this.canInsertSemicolon()) { - var node$1 = this$1.startNodeAt(startPos, startLoc) - node$1.operator = this$1.value - node$1.prefix = false - node$1.argument = expr - this$1.checkLVal(expr) - this$1.next() - expr = this$1.finishNode(node$1, "UpdateExpression") - } - } - - if (!sawUnary && this.eat(tt.starstar)) - return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), "**", false) - else - return expr -} - -// Parse call, dot, and `[]`-subscript expressions. - -pp$3.parseExprSubscripts = function(refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc - var expr = this.parseExprAtom(refDestructuringErrors) - var skipArrowSubscripts = expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")" - if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) return expr - return this.parseSubscripts(expr, startPos, startLoc) -} - -pp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) { - var this$1 = this; - - for (;;) { - if (this$1.eat(tt.dot)) { - var node = this$1.startNodeAt(startPos, startLoc) - node.object = base - node.property = this$1.parseIdent(true) - node.computed = false - base = this$1.finishNode(node, "MemberExpression") - } else if (this$1.eat(tt.bracketL)) { - var node$1 = this$1.startNodeAt(startPos, startLoc) - node$1.object = base - node$1.property = this$1.parseExpression() - node$1.computed = true - this$1.expect(tt.bracketR) - base = this$1.finishNode(node$1, "MemberExpression") - } else if (!noCalls && this$1.eat(tt.parenL)) { - var node$2 = this$1.startNodeAt(startPos, startLoc) - node$2.callee = base - node$2.arguments = this$1.parseExprList(tt.parenR, false) - base = this$1.finishNode(node$2, "CallExpression") - } else if (this$1.type === tt.backQuote) { - var node$3 = this$1.startNodeAt(startPos, startLoc) - node$3.tag = base - node$3.quasi = this$1.parseTemplate() - base = this$1.finishNode(node$3, "TaggedTemplateExpression") - } else { - return base - } - } -} - -// Parse an atomic expression — either a single token that is an -// expression, an expression started by a keyword like `function` or -// `new`, or an expression wrapped in punctuation like `()`, `[]`, -// or `{}`. - -pp$3.parseExprAtom = function(refDestructuringErrors) { - var node, canBeArrow = this.potentialArrowAt == this.start - switch (this.type) { - case tt._super: - if (!this.inFunction) - this.raise(this.start, "'super' outside of function or class") - - case tt._this: - var type = this.type === tt._this ? "ThisExpression" : "Super" - node = this.startNode() - this.next() - return this.finishNode(node, type) - - case tt.name: - var startPos = this.start, startLoc = this.startLoc - var id = this.parseIdent(this.type !== tt.name) - if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id]) - return id - - case tt.regexp: - var value = this.value - node = this.parseLiteral(value.value) - node.regex = {pattern: value.pattern, flags: value.flags} - return node - - case tt.num: case tt.string: - return this.parseLiteral(this.value) - - case tt._null: case tt._true: case tt._false: - node = this.startNode() - node.value = this.type === tt._null ? null : this.type === tt._true - node.raw = this.type.keyword - this.next() - return this.finishNode(node, "Literal") - - case tt.parenL: - return this.parseParenAndDistinguishExpression(canBeArrow) - - case tt.bracketL: - node = this.startNode() - this.next() - node.elements = this.parseExprList(tt.bracketR, true, true, refDestructuringErrors) - return this.finishNode(node, "ArrayExpression") - - case tt.braceL: - return this.parseObj(false, refDestructuringErrors) - - case tt._function: - node = this.startNode() - this.next() - return this.parseFunction(node, false) - - case tt._class: - return this.parseClass(this.startNode(), false) - - case tt._new: - return this.parseNew() - - case tt.backQuote: - return this.parseTemplate() - - default: - this.unexpected() - } -} - -pp$3.parseLiteral = function(value) { - var node = this.startNode() - node.value = value - node.raw = this.input.slice(this.start, this.end) - this.next() - return this.finishNode(node, "Literal") -} - -pp$3.parseParenExpression = function() { - this.expect(tt.parenL) - var val = this.parseExpression() - this.expect(tt.parenR) - return val -} - -pp$3.parseParenAndDistinguishExpression = function(canBeArrow) { - var this$1 = this; - - var startPos = this.start, startLoc = this.startLoc, val - if (this.options.ecmaVersion >= 6) { - this.next() - - var innerStartPos = this.start, innerStartLoc = this.startLoc - var exprList = [], first = true - var refDestructuringErrors = new DestructuringErrors, spreadStart, innerParenStart - while (this.type !== tt.parenR) { - first ? first = false : this$1.expect(tt.comma) - if (this$1.type === tt.ellipsis) { - spreadStart = this$1.start - exprList.push(this$1.parseParenItem(this$1.parseRest())) - break - } else { - if (this$1.type === tt.parenL && !innerParenStart) { - innerParenStart = this$1.start - } - exprList.push(this$1.parseMaybeAssign(false, refDestructuringErrors, this$1.parseParenItem)) - } - } - var innerEndPos = this.start, innerEndLoc = this.startLoc - this.expect(tt.parenR) - - if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) { - this.checkPatternErrors(refDestructuringErrors, true) - if (innerParenStart) this.unexpected(innerParenStart) - return this.parseParenArrowList(startPos, startLoc, exprList) - } - - if (!exprList.length) this.unexpected(this.lastTokStart) - if (spreadStart) this.unexpected(spreadStart) - this.checkExpressionErrors(refDestructuringErrors, true) - - if (exprList.length > 1) { - val = this.startNodeAt(innerStartPos, innerStartLoc) - val.expressions = exprList - this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc) - } else { - val = exprList[0] - } - } else { - val = this.parseParenExpression() - } - - if (this.options.preserveParens) { - var par = this.startNodeAt(startPos, startLoc) - par.expression = val - return this.finishNode(par, "ParenthesizedExpression") - } else { - return val - } -} - -pp$3.parseParenItem = function(item) { - return item -} - -pp$3.parseParenArrowList = function(startPos, startLoc, exprList) { - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList) -} - -// New's precedence is slightly tricky. It must allow its argument to -// be a `[]` or dot subscript expression, but not a call — at least, -// not without wrapping it in parentheses. Thus, it uses the noCalls -// argument to parseSubscripts to prevent it from consuming the -// argument list. - -var empty$1 = [] - -pp$3.parseNew = function() { - var node = this.startNode() - var meta = this.parseIdent(true) - if (this.options.ecmaVersion >= 6 && this.eat(tt.dot)) { - node.meta = meta - node.property = this.parseIdent(true) - if (node.property.name !== "target") - this.raiseRecoverable(node.property.start, "The only valid meta property for new is new.target") - if (!this.inFunction) - this.raiseRecoverable(node.start, "new.target can only be used in functions") - return this.finishNode(node, "MetaProperty") - } - var startPos = this.start, startLoc = this.startLoc - node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true) - if (this.eat(tt.parenL)) node.arguments = this.parseExprList(tt.parenR, false) - else node.arguments = empty$1 - return this.finishNode(node, "NewExpression") -} - -// Parse template expression. - -pp$3.parseTemplateElement = function() { - var elem = this.startNode() - elem.value = { - raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, '\n'), - cooked: this.value - } - this.next() - elem.tail = this.type === tt.backQuote - return this.finishNode(elem, "TemplateElement") -} - -pp$3.parseTemplate = function() { - var this$1 = this; - - var node = this.startNode() - this.next() - node.expressions = [] - var curElt = this.parseTemplateElement() - node.quasis = [curElt] - while (!curElt.tail) { - this$1.expect(tt.dollarBraceL) - node.expressions.push(this$1.parseExpression()) - this$1.expect(tt.braceR) - node.quasis.push(curElt = this$1.parseTemplateElement()) - } - this.next() - return this.finishNode(node, "TemplateLiteral") -} - -// Parse an object literal or binding pattern. - -pp$3.parseObj = function(isPattern, refDestructuringErrors) { - var this$1 = this; - - var node = this.startNode(), first = true, propHash = {} - node.properties = [] - this.next() - while (!this.eat(tt.braceR)) { - if (!first) { - this$1.expect(tt.comma) - if (this$1.afterTrailingComma(tt.braceR)) break - } else first = false - - var prop = this$1.startNode(), isGenerator, startPos, startLoc - if (this$1.options.ecmaVersion >= 6) { - prop.method = false - prop.shorthand = false - if (isPattern || refDestructuringErrors) { - startPos = this$1.start - startLoc = this$1.startLoc - } - if (!isPattern) - isGenerator = this$1.eat(tt.star) - } - this$1.parsePropertyName(prop) - this$1.parsePropertyValue(prop, isPattern, isGenerator, startPos, startLoc, refDestructuringErrors) - this$1.checkPropClash(prop, propHash) - node.properties.push(this$1.finishNode(prop, "Property")) - } - return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression") -} - -pp$3.parsePropertyValue = function(prop, isPattern, isGenerator, startPos, startLoc, refDestructuringErrors) { - if (this.eat(tt.colon)) { - prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors) - prop.kind = "init" - } else if (this.options.ecmaVersion >= 6 && this.type === tt.parenL) { - if (isPattern) this.unexpected() - prop.kind = "init" - prop.method = true - prop.value = this.parseMethod(isGenerator) - } else if (this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && - (prop.key.name === "get" || prop.key.name === "set") && - (this.type != tt.comma && this.type != tt.braceR)) { - if (isGenerator || isPattern) this.unexpected() - prop.kind = prop.key.name - this.parsePropertyName(prop) - prop.value = this.parseMethod(false) - var paramCount = prop.kind === "get" ? 0 : 1 - if (prop.value.params.length !== paramCount) { - var start = prop.value.start - if (prop.kind === "get") - this.raiseRecoverable(start, "getter should have no params") - else - this.raiseRecoverable(start, "setter should have exactly one param") - } - if (prop.kind === "set" && prop.value.params[0].type === "RestElement") - this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params") - } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") { - if (this.keywords.test(prop.key.name) || - (this.strict ? this.reservedWordsStrictBind : this.reservedWords).test(prop.key.name) || - (this.inGenerator && prop.key.name == "yield")) - this.raiseRecoverable(prop.key.start, "'" + prop.key.name + "' can not be used as shorthand property") - prop.kind = "init" - if (isPattern) { - prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key) - } else if (this.type === tt.eq && refDestructuringErrors) { - if (!refDestructuringErrors.shorthandAssign) - refDestructuringErrors.shorthandAssign = this.start - prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key) - } else { - prop.value = prop.key - } - prop.shorthand = true - } else this.unexpected() -} - -pp$3.parsePropertyName = function(prop) { - if (this.options.ecmaVersion >= 6) { - if (this.eat(tt.bracketL)) { - prop.computed = true - prop.key = this.parseMaybeAssign() - this.expect(tt.bracketR) - return prop.key - } else { - prop.computed = false - } - } - return prop.key = this.type === tt.num || this.type === tt.string ? this.parseExprAtom() : this.parseIdent(true) -} - -// Initialize empty function node. - -pp$3.initFunction = function(node) { - node.id = null - if (this.options.ecmaVersion >= 6) { - node.generator = false - node.expression = false - } -} - -// Parse object or class method. - -pp$3.parseMethod = function(isGenerator) { - var node = this.startNode(), oldInGen = this.inGenerator - this.inGenerator = isGenerator - this.initFunction(node) - this.expect(tt.parenL) - node.params = this.parseBindingList(tt.parenR, false, false) - if (this.options.ecmaVersion >= 6) - node.generator = isGenerator - this.parseFunctionBody(node, false) - this.inGenerator = oldInGen - return this.finishNode(node, "FunctionExpression") -} - -// Parse arrow function expression with given parameters. - -pp$3.parseArrowExpression = function(node, params) { - var oldInGen = this.inGenerator - this.inGenerator = false - this.initFunction(node) - node.params = this.toAssignableList(params, true) - this.parseFunctionBody(node, true) - this.inGenerator = oldInGen - return this.finishNode(node, "ArrowFunctionExpression") -} - -// Parse function body and check parameters. - -pp$3.parseFunctionBody = function(node, isArrowFunction) { - var isExpression = isArrowFunction && this.type !== tt.braceL - - if (isExpression) { - node.body = this.parseMaybeAssign() - node.expression = true - } else { - // Start a new scope with regard to labels and the `inFunction` - // flag (restore them to their old value afterwards). - var oldInFunc = this.inFunction, oldLabels = this.labels - this.inFunction = true; this.labels = [] - node.body = this.parseBlock(true) - node.expression = false - this.inFunction = oldInFunc; this.labels = oldLabels - } - - // If this is a strict mode function, verify that argument names - // are not repeated, and it does not try to bind the words `eval` - // or `arguments`. - var useStrict = (!isExpression && node.body.body.length && this.isUseStrict(node.body.body[0])) ? node.body.body[0] : null; - if (this.strict || useStrict) { - var oldStrict = this.strict - this.strict = true - if (node.id) - this.checkLVal(node.id, true) - this.checkParams(node, useStrict) - this.strict = oldStrict - } else if (isArrowFunction) { - this.checkParams(node, useStrict) - } -} - -// Checks function params for various disallowed patterns such as using "eval" -// or "arguments" and duplicate parameters. - -pp$3.checkParams = function(node, useStrict) { - var this$1 = this; - - var nameHash = {} - for (var i = 0; i < node.params.length; i++) { - if (useStrict && this$1.options.ecmaVersion >= 7 && node.params[i].type !== "Identifier") - this$1.raiseRecoverable(useStrict.start, "Illegal 'use strict' directive in function with non-simple parameter list"); - this$1.checkLVal(node.params[i], true, nameHash) - } -} - -// Parses a comma-separated list of expressions, and returns them as -// an array. `close` is the token type that ends the list, and -// `allowEmpty` can be turned on to allow subsequent commas with -// nothing in between them to be parsed as `null` (which is needed -// for array literals). - -pp$3.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) { - var this$1 = this; - - var elts = [], first = true - while (!this.eat(close)) { - if (!first) { - this$1.expect(tt.comma) - if (allowTrailingComma && this$1.afterTrailingComma(close)) break - } else first = false - - var elt - if (allowEmpty && this$1.type === tt.comma) - elt = null - else if (this$1.type === tt.ellipsis) { - elt = this$1.parseSpread(refDestructuringErrors) - if (this$1.type === tt.comma && refDestructuringErrors && !refDestructuringErrors.trailingComma) { - refDestructuringErrors.trailingComma = this$1.lastTokStart - } - } else - elt = this$1.parseMaybeAssign(false, refDestructuringErrors) - elts.push(elt) - } - return elts -} - -// Parse the next token as an identifier. If `liberal` is true (used -// when parsing properties), it will also convert keywords into -// identifiers. - -pp$3.parseIdent = function(liberal) { - var node = this.startNode() - if (liberal && this.options.allowReserved == "never") liberal = false - if (this.type === tt.name) { - if (!liberal && (this.strict ? this.reservedWordsStrict : this.reservedWords).test(this.value) && - (this.options.ecmaVersion >= 6 || - this.input.slice(this.start, this.end).indexOf("\\") == -1)) - this.raiseRecoverable(this.start, "The keyword '" + this.value + "' is reserved") - if (!liberal && this.inGenerator && this.value === "yield") - this.raiseRecoverable(this.start, "Can not use 'yield' as identifier inside a generator") - node.name = this.value - } else if (liberal && this.type.keyword) { - node.name = this.type.keyword - } else { - this.unexpected() - } - this.next() - return this.finishNode(node, "Identifier") -} - -// Parses yield expression inside generator. - -pp$3.parseYield = function() { - var node = this.startNode() - this.next() - if (this.type == tt.semi || this.canInsertSemicolon() || (this.type != tt.star && !this.type.startsExpr)) { - node.delegate = false - node.argument = null - } else { - node.delegate = this.eat(tt.star) - node.argument = this.parseMaybeAssign() - } - return this.finishNode(node, "YieldExpression") -} - -var pp$4 = Parser.prototype - -// This function is used to raise exceptions on parse errors. It -// takes an offset integer (into the current `input`) to indicate -// the location of the error, attaches the position to the end -// of the error message, and then raises a `SyntaxError` with that -// message. - -pp$4.raise = function(pos, message) { - var loc = getLineInfo(this.input, pos) - message += " (" + loc.line + ":" + loc.column + ")" - var err = new SyntaxError(message) - err.pos = pos; err.loc = loc; err.raisedAt = this.pos - throw err -} - -pp$4.raiseRecoverable = pp$4.raise - -pp$4.curPosition = function() { - if (this.options.locations) { - return new Position(this.curLine, this.pos - this.lineStart) - } -} - -var Node = function Node(parser, pos, loc) { - this.type = "" - this.start = pos - this.end = 0 - if (parser.options.locations) - this.loc = new SourceLocation(parser, loc) - if (parser.options.directSourceFile) - this.sourceFile = parser.options.directSourceFile - if (parser.options.ranges) - this.range = [pos, 0] -}; - -// Start an AST node, attaching a start offset. - -var pp$5 = Parser.prototype - -pp$5.startNode = function() { - return new Node(this, this.start, this.startLoc) -} - -pp$5.startNodeAt = function(pos, loc) { - return new Node(this, pos, loc) -} - -// Finish an AST node, adding `type` and `end` properties. - -function finishNodeAt(node, type, pos, loc) { - node.type = type - node.end = pos - if (this.options.locations) - node.loc.end = loc - if (this.options.ranges) - node.range[1] = pos - return node -} - -pp$5.finishNode = function(node, type) { - return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc) -} - -// Finish node at given position - -pp$5.finishNodeAt = function(node, type, pos, loc) { - return finishNodeAt.call(this, node, type, pos, loc) -} - -var TokContext = function TokContext(token, isExpr, preserveSpace, override) { - this.token = token - this.isExpr = !!isExpr - this.preserveSpace = !!preserveSpace - this.override = override -}; - -var types = { - b_stat: new TokContext("{", false), - b_expr: new TokContext("{", true), - b_tmpl: new TokContext("${", true), - p_stat: new TokContext("(", false), - p_expr: new TokContext("(", true), - q_tmpl: new TokContext("`", true, true, function (p) { return p.readTmplToken(); }), - f_expr: new TokContext("function", true) -} - -var pp$6 = Parser.prototype - -pp$6.initialContext = function() { - return [types.b_stat] -} - -pp$6.braceIsBlock = function(prevType) { - if (prevType === tt.colon) { - var parent = this.curContext() - if (parent === types.b_stat || parent === types.b_expr) - return !parent.isExpr - } - if (prevType === tt._return) - return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) - if (prevType === tt._else || prevType === tt.semi || prevType === tt.eof || prevType === tt.parenR) - return true - if (prevType == tt.braceL) - return this.curContext() === types.b_stat - return !this.exprAllowed -} - -pp$6.updateContext = function(prevType) { - var update, type = this.type - if (type.keyword && prevType == tt.dot) - this.exprAllowed = false - else if (update = type.updateContext) - update.call(this, prevType) - else - this.exprAllowed = type.beforeExpr -} - -// Token-specific context update code - -tt.parenR.updateContext = tt.braceR.updateContext = function() { - if (this.context.length == 1) { - this.exprAllowed = true - return - } - var out = this.context.pop() - if (out === types.b_stat && this.curContext() === types.f_expr) { - this.context.pop() - this.exprAllowed = false - } else if (out === types.b_tmpl) { - this.exprAllowed = true - } else { - this.exprAllowed = !out.isExpr - } -} - -tt.braceL.updateContext = function(prevType) { - this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr) - this.exprAllowed = true -} - -tt.dollarBraceL.updateContext = function() { - this.context.push(types.b_tmpl) - this.exprAllowed = true -} - -tt.parenL.updateContext = function(prevType) { - var statementParens = prevType === tt._if || prevType === tt._for || prevType === tt._with || prevType === tt._while - this.context.push(statementParens ? types.p_stat : types.p_expr) - this.exprAllowed = true -} - -tt.incDec.updateContext = function() { - // tokExprAllowed stays unchanged -} - -tt._function.updateContext = function(prevType) { - if (prevType.beforeExpr && prevType !== tt.semi && prevType !== tt._else && - !((prevType === tt.colon || prevType === tt.braceL) && this.curContext() === types.b_stat)) - this.context.push(types.f_expr) - this.exprAllowed = false -} - -tt.backQuote.updateContext = function() { - if (this.curContext() === types.q_tmpl) - this.context.pop() - else - this.context.push(types.q_tmpl) - this.exprAllowed = false -} - -// Object type used to represent tokens. Note that normally, tokens -// simply exist as properties on the parser object. This is only -// used for the onToken callback and the external tokenizer. - -var Token = function Token(p) { - this.type = p.type - this.value = p.value - this.start = p.start - this.end = p.end - if (p.options.locations) - this.loc = new SourceLocation(p, p.startLoc, p.endLoc) - if (p.options.ranges) - this.range = [p.start, p.end] -}; - -// ## Tokenizer - -var pp$7 = Parser.prototype - -// Are we running under Rhino? -var isRhino = typeof Packages == "object" && Object.prototype.toString.call(Packages) == "[object JavaPackage]" - -// Move to the next token - -pp$7.next = function() { - if (this.options.onToken) - this.options.onToken(new Token(this)) - - this.lastTokEnd = this.end - this.lastTokStart = this.start - this.lastTokEndLoc = this.endLoc - this.lastTokStartLoc = this.startLoc - this.nextToken() -} - -pp$7.getToken = function() { - this.next() - return new Token(this) -} - -// If we're in an ES6 environment, make parsers iterable -if (typeof Symbol !== "undefined") - pp$7[Symbol.iterator] = function () { - var self = this - return {next: function () { - var token = self.getToken() - return { - done: token.type === tt.eof, - value: token - } - }} - } - -// Toggle strict mode. Re-reads the next number or string to please -// pedantic tests (`"use strict"; 010;` should fail). - -pp$7.setStrict = function(strict) { - var this$1 = this; - - this.strict = strict - if (this.type !== tt.num && this.type !== tt.string) return - this.pos = this.start - if (this.options.locations) { - while (this.pos < this.lineStart) { - this$1.lineStart = this$1.input.lastIndexOf("\n", this$1.lineStart - 2) + 1 - --this$1.curLine - } - } - this.nextToken() -} - -pp$7.curContext = function() { - return this.context[this.context.length - 1] -} - -// Read a single token, updating the parser object's token-related -// properties. - -pp$7.nextToken = function() { - var curContext = this.curContext() - if (!curContext || !curContext.preserveSpace) this.skipSpace() - - this.start = this.pos - if (this.options.locations) this.startLoc = this.curPosition() - if (this.pos >= this.input.length) return this.finishToken(tt.eof) - - if (curContext.override) return curContext.override(this) - else this.readToken(this.fullCharCodeAtPos()) -} - -pp$7.readToken = function(code) { - // Identifier or keyword. '\uXXXX' sequences are allowed in - // identifiers, so '\' also dispatches to that. - if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */) - return this.readWord() - - return this.getTokenFromCode(code) -} - -pp$7.fullCharCodeAtPos = function() { - var code = this.input.charCodeAt(this.pos) - if (code <= 0xd7ff || code >= 0xe000) return code - var next = this.input.charCodeAt(this.pos + 1) - return (code << 10) + next - 0x35fdc00 -} - -pp$7.skipBlockComment = function() { - var this$1 = this; - - var startLoc = this.options.onComment && this.curPosition() - var start = this.pos, end = this.input.indexOf("*/", this.pos += 2) - if (end === -1) this.raise(this.pos - 2, "Unterminated comment") - this.pos = end + 2 - if (this.options.locations) { - lineBreakG.lastIndex = start - var match - while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) { - ++this$1.curLine - this$1.lineStart = match.index + match[0].length - } - } - if (this.options.onComment) - this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos, - startLoc, this.curPosition()) -} - -pp$7.skipLineComment = function(startSkip) { - var this$1 = this; - - var start = this.pos - var startLoc = this.options.onComment && this.curPosition() - var ch = this.input.charCodeAt(this.pos+=startSkip) - while (this.pos < this.input.length && ch !== 10 && ch !== 13 && ch !== 8232 && ch !== 8233) { - ++this$1.pos - ch = this$1.input.charCodeAt(this$1.pos) - } - if (this.options.onComment) - this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos, - startLoc, this.curPosition()) -} - -// Called at the start of the parse and after every token. Skips -// whitespace and comments, and. - -pp$7.skipSpace = function() { - var this$1 = this; - - loop: while (this.pos < this.input.length) { - var ch = this$1.input.charCodeAt(this$1.pos) - switch (ch) { - case 32: case 160: // ' ' - ++this$1.pos - break - case 13: - if (this$1.input.charCodeAt(this$1.pos + 1) === 10) { - ++this$1.pos - } - case 10: case 8232: case 8233: - ++this$1.pos - if (this$1.options.locations) { - ++this$1.curLine - this$1.lineStart = this$1.pos - } - break - case 47: // '/' - switch (this$1.input.charCodeAt(this$1.pos + 1)) { - case 42: // '*' - this$1.skipBlockComment() - break - case 47: - this$1.skipLineComment(2) - break - default: - break loop - } - break - default: - if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) { - ++this$1.pos - } else { - break loop - } - } - } -} - -// Called at the end of every token. Sets `end`, `val`, and -// maintains `context` and `exprAllowed`, and skips the space after -// the token, so that the next one's `start` will point at the -// right position. - -pp$7.finishToken = function(type, val) { - this.end = this.pos - if (this.options.locations) this.endLoc = this.curPosition() - var prevType = this.type - this.type = type - this.value = val - - this.updateContext(prevType) -} - -// ### Token reading - -// This is the function that is called to fetch the next token. It -// is somewhat obscure, because it works in character codes rather -// than characters, and because operator parsing has been inlined -// into it. -// -// All in the name of speed. -// -pp$7.readToken_dot = function() { - var next = this.input.charCodeAt(this.pos + 1) - if (next >= 48 && next <= 57) return this.readNumber(true) - var next2 = this.input.charCodeAt(this.pos + 2) - if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.' - this.pos += 3 - return this.finishToken(tt.ellipsis) - } else { - ++this.pos - return this.finishToken(tt.dot) - } -} - -pp$7.readToken_slash = function() { // '/' - var next = this.input.charCodeAt(this.pos + 1) - if (this.exprAllowed) {++this.pos; return this.readRegexp()} - if (next === 61) return this.finishOp(tt.assign, 2) - return this.finishOp(tt.slash, 1) -} - -pp$7.readToken_mult_modulo_exp = function(code) { // '%*' - var next = this.input.charCodeAt(this.pos + 1) - var size = 1 - var tokentype = code === 42 ? tt.star : tt.modulo - - // exponentiation operator ** and **= - if (this.options.ecmaVersion >= 7 && next === 42) { - ++size - tokentype = tt.starstar - next = this.input.charCodeAt(this.pos + 2) - } - - if (next === 61) return this.finishOp(tt.assign, size + 1) - return this.finishOp(tokentype, size) -} - -pp$7.readToken_pipe_amp = function(code) { // '|&' - var next = this.input.charCodeAt(this.pos + 1) - if (next === code) return this.finishOp(code === 124 ? tt.logicalOR : tt.logicalAND, 2) - if (next === 61) return this.finishOp(tt.assign, 2) - return this.finishOp(code === 124 ? tt.bitwiseOR : tt.bitwiseAND, 1) -} - -pp$7.readToken_caret = function() { // '^' - var next = this.input.charCodeAt(this.pos + 1) - if (next === 61) return this.finishOp(tt.assign, 2) - return this.finishOp(tt.bitwiseXOR, 1) -} - -pp$7.readToken_plus_min = function(code) { // '+-' - var next = this.input.charCodeAt(this.pos + 1) - if (next === code) { - if (next == 45 && this.input.charCodeAt(this.pos + 2) == 62 && - lineBreak.test(this.input.slice(this.lastTokEnd, this.pos))) { - // A `-->` line comment - this.skipLineComment(3) - this.skipSpace() - return this.nextToken() - } - return this.finishOp(tt.incDec, 2) - } - if (next === 61) return this.finishOp(tt.assign, 2) - return this.finishOp(tt.plusMin, 1) -} - -pp$7.readToken_lt_gt = function(code) { // '<>' - var next = this.input.charCodeAt(this.pos + 1) - var size = 1 - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2 - if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1) - return this.finishOp(tt.bitShift, size) - } - if (next == 33 && code == 60 && this.input.charCodeAt(this.pos + 2) == 45 && - this.input.charCodeAt(this.pos + 3) == 45) { - if (this.inModule) this.unexpected() - // `` line comment - this.skipLineComment(3) - this.skipSpace() - return this.nextToken() - } - return this.finishOp(tt.incDec, 2) - } - if (next === 61) return this.finishOp(tt.assign, 2) - return this.finishOp(tt.plusMin, 1) - } - - pp$7.readToken_lt_gt = function(code) { // '<>' - var next = this.input.charCodeAt(this.pos + 1) - var size = 1 - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2 - if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1) - return this.finishOp(tt.bitShift, size) - } - if (next == 33 && code == 60 && this.input.charCodeAt(this.pos + 2) == 45 && - this.input.charCodeAt(this.pos + 3) == 45) { - if (this.inModule) this.unexpected() - // `` line comment - this.skipLineComment(3) - this.skipSpace() - return this.nextToken() - } - return this.finishOp(tt.incDec, 2) - } - if (next === 61) return this.finishOp(tt.assign, 2) - return this.finishOp(tt.plusMin, 1) -} - -pp.readToken_lt_gt = function(code) { // '<>' - let next = this.input.charCodeAt(this.pos + 1) - let size = 1 - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2 - if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1) - return this.finishOp(tt.bitShift, size) - } - if (next == 33 && code == 60 && this.input.charCodeAt(this.pos + 2) == 45 && - this.input.charCodeAt(this.pos + 3) == 45) { - if (this.inModule) this.unexpected() - // `` line comment this.skipLineComment(3); @@ -4796,8 +4804,8 @@ pp$8.readToken_lt_gt = function(code) { // '<>' if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) } return this.finishOp(types.bitShift, size) } - if (next == 33 && code == 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) == 45 && - this.input.charCodeAt(this.pos + 3) == 45) { + if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && + this.input.charCodeAt(this.pos + 3) === 45) { // `` line comment this.skipLineComment(3); @@ -4802,8 +4810,8 @@ pp$8.readToken_lt_gt = function(code) { // '<>' if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) } return this.finishOp(types.bitShift, size) } - if (next == 33 && code == 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) == 45 && - this.input.charCodeAt(this.pos + 3) == 45) { + if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && + this.input.charCodeAt(this.pos + 3) === 45) { // `"; - var prefix = "eslint"; + var regex = /^(eslint\b|global\s)/; if ( html.slice(0, commentStart.length) !== commentStart || @@ -58,7 +59,7 @@ function getComment(html) { html = html.slice(commentStart.length, -commentEnd.length); - if (html.trim().slice(0, prefix.length) !== prefix) { + if (!regex.test(html.trim())) { return ""; } diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-markdown/package.json b/tools/node_modules/eslint/node_modules/eslint-plugin-markdown/package.json index 41f14cb9acb7be..5741624d0aa59c 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-markdown/package.json +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-markdown/package.json @@ -1,8 +1,8 @@ { "_from": "eslint-plugin-markdown@next", - "_id": "eslint-plugin-markdown@1.0.0-beta.7", + "_id": "eslint-plugin-markdown@1.0.0-beta.8", "_inBundle": false, - "_integrity": "sha1-Euc6QSfEpLedlm+fR1hR3Q949+c=", + "_integrity": "sha512-prVwlwGQLaBaVGUhSa68KLvZDKc789ezMqY1kbKaGA7KyLN0OW64yBFjnTRRFdWBGx3SQ+BYAvuK2W4dzy9eoA==", "_location": "/eslint-plugin-markdown", "_phantomChildren": {}, "_requested": { @@ -19,10 +19,10 @@ "#USER", "/" ], - "_resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.0-beta.7.tgz", - "_shasum": "12e73a4127c4a4b79d966f9f475851dd0f78f7e7", + "_resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.0-beta.8.tgz", + "_shasum": "8d10707fdc551dc28ed9e14bd03c18f776e2fb76", "_spec": "eslint-plugin-markdown@next", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Brandon Mills", "url": "https://github.com/btmills" @@ -76,5 +76,5 @@ "test": "npm run lint && npm run test-cov", "test-cov": "istanbul cover _mocha -- -c tests/lib/**/*.js" }, - "version": "1.0.0-beta.7" + "version": "1.0.0-beta.8" } diff --git a/tools/node_modules/eslint/node_modules/eslint-scope/LICENSE b/tools/node_modules/eslint/node_modules/eslint-scope/LICENSE index 4419797c9c8524..d36a526f7ed5d1 100644 --- a/tools/node_modules/eslint/node_modules/eslint-scope/LICENSE +++ b/tools/node_modules/eslint/node_modules/eslint-scope/LICENSE @@ -1,4 +1,3 @@ -eslint-scope Copyright JS Foundation and other contributors, https://js.foundation Copyright (C) 2012-2013 Yusuke Suzuki (twitter: @Constellation) and other contributors. diff --git a/tools/node_modules/eslint/node_modules/eslint-scope/lib/referencer.js b/tools/node_modules/eslint/node_modules/eslint-scope/lib/referencer.js index b7cdbb6003ecc9..55d0223df8bf2c 100644 --- a/tools/node_modules/eslint/node_modules/eslint-scope/lib/referencer.js +++ b/tools/node_modules/eslint/node_modules/eslint-scope/lib/referencer.js @@ -141,26 +141,6 @@ class Referencer extends esrecurse.Visitor { this.isInnerMethodDefinition = isInnerMethodDefinition; } - materializeTDZScope(node, iterationNode) { - - // http://people.mozilla.org/~jorendorff/es6-draft.html#sec-runtime-semantics-forin-div-ofexpressionevaluation-abstract-operation - // TDZ scope hides the declaration's names. - this.scopeManager.__nestTDZScope(node, iterationNode); - this.visitVariableDeclaration(this.currentScope(), Variable.TDZ, iterationNode.left, 0, true); - } - - materializeIterationScope(node) { - - // Generate iteration scope for upper ForIn/ForOf Statements. - const letOrConstDecl = node.left; - - this.scopeManager.__nestForScope(node); - this.visitVariableDeclaration(this.currentScope(), Variable.Variable, letOrConstDecl, 0); - this.visitPattern(letOrConstDecl.declarations[0].id, pattern => { - this.currentScope().__referencing(pattern, Reference.WRITE, node.right, null, true, true); - }); - } - referencingDefaultValue(pattern, assignments, maybeImplicitGlobal, init) { const scope = this.currentScope(); @@ -288,7 +268,6 @@ class Referencer extends esrecurse.Visitor { )); } - // FIXME: Maybe consider TDZ. this.visit(node.superClass); this.scopeManager.__nestClassScope(node); @@ -326,46 +305,42 @@ class Referencer extends esrecurse.Visitor { visitForIn(node) { if (node.left.type === Syntax.VariableDeclaration && node.left.kind !== "var") { - this.materializeTDZScope(node.right, node); - this.visit(node.right); - this.close(node.right); + this.scopeManager.__nestForScope(node); + } - this.materializeIterationScope(node); - this.visit(node.body); - this.close(node); + if (node.left.type === Syntax.VariableDeclaration) { + this.visit(node.left); + this.visitPattern(node.left.declarations[0].id, pattern => { + this.currentScope().__referencing(pattern, Reference.WRITE, node.right, null, true, true); + }); } else { - if (node.left.type === Syntax.VariableDeclaration) { - this.visit(node.left); - this.visitPattern(node.left.declarations[0].id, pattern => { - this.currentScope().__referencing(pattern, Reference.WRITE, node.right, null, true, true); - }); - } else { - this.visitPattern(node.left, { processRightHandNodes: true }, (pattern, info) => { - let maybeImplicitGlobal = null; + this.visitPattern(node.left, { processRightHandNodes: true }, (pattern, info) => { + let maybeImplicitGlobal = null; - if (!this.currentScope().isStrict) { - maybeImplicitGlobal = { - pattern, - node - }; - } - this.referencingDefaultValue(pattern, info.assignments, maybeImplicitGlobal, false); - this.currentScope().__referencing(pattern, Reference.WRITE, node.right, maybeImplicitGlobal, true, false); - }); - } - this.visit(node.right); - this.visit(node.body); + if (!this.currentScope().isStrict) { + maybeImplicitGlobal = { + pattern, + node + }; + } + this.referencingDefaultValue(pattern, info.assignments, maybeImplicitGlobal, false); + this.currentScope().__referencing(pattern, Reference.WRITE, node.right, maybeImplicitGlobal, true, false); + }); } + this.visit(node.right); + this.visit(node.body); + + this.close(node); } - visitVariableDeclaration(variableTargetScope, type, node, index, fromTDZ) { + visitVariableDeclaration(variableTargetScope, type, node, index) { - // If this was called to initialize a TDZ scope, this needs to make definitions, but doesn't make references. const decl = node.declarations[index]; const init = decl.init; - this.visitPattern(decl.id, { processRightHandNodes: !fromTDZ }, (pattern, info) => { - variableTargetScope.__define(pattern, + this.visitPattern(decl.id, { processRightHandNodes: true }, (pattern, info) => { + variableTargetScope.__define( + pattern, new Definition( type, pattern, @@ -373,11 +348,10 @@ class Referencer extends esrecurse.Visitor { node, index, node.kind - )); + ) + ); - if (!fromTDZ) { - this.referencingDefaultValue(pattern, info.assignments, null, true); - } + this.referencingDefaultValue(pattern, info.assignments, null, true); if (init) { this.currentScope().__referencing(pattern, Reference.WRITE, init, null, !info.topLevel, true); } diff --git a/tools/node_modules/eslint/node_modules/eslint-scope/lib/scope-manager.js b/tools/node_modules/eslint/node_modules/eslint-scope/lib/scope-manager.js index 0cc75a03bad6af..c1927994b1166e 100644 --- a/tools/node_modules/eslint/node_modules/eslint-scope/lib/scope-manager.js +++ b/tools/node_modules/eslint/node_modules/eslint-scope/lib/scope-manager.js @@ -36,7 +36,6 @@ const ClassScope = Scope.ClassScope; const SwitchScope = Scope.SwitchScope; const FunctionScope = Scope.FunctionScope; const ForScope = Scope.ForScope; -const TDZScope = Scope.TDZScope; const FunctionExpressionNameScope = Scope.FunctionExpressionNameScope; const BlockScope = Scope.BlockScope; @@ -118,9 +117,6 @@ class ScopeManager { if (testScope.type === "function" && testScope.functionExpressionScope) { return false; } - if (testScope.type === "TDZ") { - return false; - } return true; } @@ -237,10 +233,6 @@ class ScopeManager { return this.__nestScope(new ModuleScope(this, this.__currentScope, node)); } - __nestTDZScope(node) { - return this.__nestScope(new TDZScope(this, this.__currentScope, node)); - } - __nestFunctionExpressionNameScope(node) { return this.__nestScope(new FunctionExpressionNameScope(this, this.__currentScope, node)); } diff --git a/tools/node_modules/eslint/node_modules/eslint-scope/lib/scope.js b/tools/node_modules/eslint/node_modules/eslint-scope/lib/scope.js index 3307a36adec7af..b3c5040bb1ae1c 100644 --- a/tools/node_modules/eslint/node_modules/eslint-scope/lib/scope.js +++ b/tools/node_modules/eslint/node_modules/eslint-scope/lib/scope.js @@ -157,7 +157,7 @@ class Scope { constructor(scopeManager, type, upperScope, block, isMethodDefinition) { /** - * One of 'TDZ', 'module', 'block', 'switch', 'function', 'catch', 'with', 'function', 'class', 'global'. + * One of 'module', 'block', 'switch', 'function', 'catch', 'with', 'function', 'class', 'global'. * @member {String} Scope#type */ this.type = type; @@ -341,22 +341,32 @@ class Scope { return this.upper; } + // To override by function scopes. + // References in default parameters isn't resolved to variables which are in their function body. + __isValidResolution(ref, variable) { // eslint-disable-line class-methods-use-this, no-unused-vars + return true; + } + __resolve(ref) { const name = ref.identifier.name; - if (this.set.has(name)) { - const variable = this.set.get(name); + if (!this.set.has(name)) { + return false; + } + const variable = this.set.get(name); - variable.references.push(ref); - variable.stack = variable.stack && ref.from.variableScope === this.variableScope; - if (ref.tainted) { - variable.tainted = true; - this.taints.set(variable.name, true); - } - ref.resolved = variable; - return true; + if (!this.__isValidResolution(ref, variable)) { + return false; } - return false; + variable.references.push(ref); + variable.stack = variable.stack && ref.from.variableScope === this.variableScope; + if (ref.tainted) { + variable.tainted = true; + this.taints.set(variable.name, true); + } + ref.resolved = variable; + + return true; } __delegateToUpperScope(ref) { @@ -394,10 +404,8 @@ class Scope { if (def) { variable.defs.push(def); - if (def.type !== Variable.TDZ) { - this.__addDeclaredVariablesOfNode(variable, def.node); - this.__addDeclaredVariablesOfNode(variable, def.parent); - } + this.__addDeclaredVariablesOfNode(variable, def.node); + this.__addDeclaredVariablesOfNode(variable, def.parent); } if (node) { variable.identifiers.push(node); @@ -621,12 +629,6 @@ class WithScope extends Scope { } } -class TDZScope extends Scope { - constructor(scopeManager, upperScope, block) { - super(scopeManager, "TDZ", upperScope, block, false); - } -} - class BlockScope extends Scope { constructor(scopeManager, upperScope, block) { super(scopeManager, "block", upperScope, block, false); @@ -690,6 +692,29 @@ class FunctionScope extends Scope { null); this.taints.set("arguments", true); } + + // References in default parameters isn't resolved to variables which are in their function body. + // const x = 1 + // function f(a = x) { // This `x` is resolved to the `x` in the outer scope. + // const x = 2 + // console.log(a) + // } + __isValidResolution(ref, variable) { + + // If `options.nodejsScope` is true, `this.block` becomes a Program node. + if (this.block.type === "Program") { + return true; + } + + const bodyStart = this.block.body.range[0]; + + // It's invalid resolution in the following case: + return !( + variable.scope === this && + ref.identifier.range[0] < bodyStart && // the reference is in the parameter part. + variable.defs.every(d => d.name.range[0] >= bodyStart) // the variable is in the body. + ); + } } class ForScope extends Scope { @@ -711,7 +736,6 @@ module.exports = { FunctionExpressionNameScope, CatchScope, WithScope, - TDZScope, BlockScope, SwitchScope, FunctionScope, diff --git a/tools/node_modules/eslint/node_modules/eslint-scope/lib/variable.js b/tools/node_modules/eslint/node_modules/eslint-scope/lib/variable.js index 63732099140f50..702c4780a248a3 100644 --- a/tools/node_modules/eslint/node_modules/eslint-scope/lib/variable.js +++ b/tools/node_modules/eslint/node_modules/eslint-scope/lib/variable.js @@ -81,7 +81,6 @@ Variable.FunctionName = "FunctionName"; Variable.ClassName = "ClassName"; Variable.Variable = "Variable"; Variable.ImportBinding = "ImportBinding"; -Variable.TDZ = "TDZ"; Variable.ImplicitGlobalVariable = "ImplicitGlobalVariable"; module.exports = Variable; diff --git a/tools/node_modules/eslint/node_modules/eslint-scope/package.json b/tools/node_modules/eslint/node_modules/eslint-scope/package.json index a8f3142707c1a3..05cf16a6004e1d 100644 --- a/tools/node_modules/eslint/node_modules/eslint-scope/package.json +++ b/tools/node_modules/eslint/node_modules/eslint-scope/package.json @@ -1,27 +1,27 @@ { - "_from": "eslint-scope@^3.7.1", - "_id": "eslint-scope@3.7.1", + "_from": "eslint-scope@^4.0.0", + "_id": "eslint-scope@4.0.0", "_inBundle": false, - "_integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "_integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "_location": "/eslint/eslint-scope", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "eslint-scope@^3.7.1", + "raw": "eslint-scope@^4.0.0", "name": "eslint-scope", "escapedName": "eslint-scope", - "rawSpec": "^3.7.1", + "rawSpec": "^4.0.0", "saveSpec": null, - "fetchSpec": "^3.7.1" + "fetchSpec": "^4.0.0" }, "_requiredBy": [ "/eslint" ], - "_resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "_shasum": "3d63c3edfda02e06e01a452ad88caacc7cdcb6e8", - "_spec": "eslint-scope@^3.7.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "_shasum": "50bf3071e9338bcdc43331794a0cb533f0136172", + "_spec": "eslint-scope@^4.0.0", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "bugs": { "url": "https://github.com/eslint/eslint-scope/issues" }, @@ -36,7 +36,7 @@ "chai": "^3.4.1", "eslint": "^3.15.0", "eslint-config-eslint": "^4.0.0", - "eslint-release": "^0.10.1", + "eslint-release": "^0.11.1", "espree": "^3.1.1", "istanbul": "^0.4.5", "mocha": "^3.2.0", @@ -67,8 +67,9 @@ "ci-release": "eslint-ci-release", "gh-release": "eslint-gh-release", "lint": "node Makefile.js lint", + "rcrelease": "eslint-prerelease rc", "release": "eslint-release", "test": "node Makefile.js test" }, - "version": "3.7.1" + "version": "4.0.0" } diff --git a/tools/node_modules/eslint/node_modules/eslint-visitor-keys/package.json b/tools/node_modules/eslint/node_modules/eslint-visitor-keys/package.json index 4537479e2ed548..84c8ac9511eb12 100644 --- a/tools/node_modules/eslint/node_modules/eslint-visitor-keys/package.json +++ b/tools/node_modules/eslint/node_modules/eslint-visitor-keys/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", "_shasum": "3f3180fb2e291017716acb4c9d6d5b5c34a6a81d", "_spec": "eslint-visitor-keys@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Toru Nagashima", "url": "https://github.com/mysticatea" diff --git a/tools/node_modules/eslint/node_modules/espree/README.md b/tools/node_modules/eslint/node_modules/espree/README.md index d2b1288bd2a93b..37a609493da667 100644 --- a/tools/node_modules/eslint/node_modules/espree/README.md +++ b/tools/node_modules/eslint/node_modules/espree/README.md @@ -46,8 +46,8 @@ var ast = espree.parse(code, { // create a top-level tokens array containing all tokens tokens: false, - // Set to 3, 5 (default), 6, 7, 8, or 9 to specify the version of ECMAScript syntax you want to use. - // You can also set to 2015 (same as 6), 2016 (same as 7), 2017 (same as 8), or 2018 (same as 9) to use the year-based naming. + // Set to 3, 5 (default), 6, 7, 8, 9, or 10 to specify the version of ECMAScript syntax you want to use. + // You can also set to 2015 (same as 6), 2016 (same as 7), 2017 (same as 8), 2018 (same as 9), or 2019 (same as 10) to use the year-based naming. ecmaVersion: 5, // specify which type of script you're parsing ("script" or "module") @@ -63,10 +63,7 @@ var ast = espree.parse(code, { globalReturn: false, // enable implied strict mode (if ecmaVersion >= 5) - impliedStrict: false, - - // allow experimental object rest/spread - experimentalObjectRestSpread: false + impliedStrict: false } }); ``` @@ -146,11 +143,24 @@ There are two ECMAScript 2017 syntax changes: `async` functions, and trailing co ### What ECMAScript 2018 features do you support? -Because ECMAScript 2018 is still under development, we are implementing features as they are finalized. Currently, Espree supports: +There are seven ECMAScript 2018 syntax changes: * Invalid escape sequences in tagged template literals * Rest/spread properties -* Async Iteration +* Async iteration +* RegExp `s` flag +* RegExp named capture groups +* RegExp lookhehind assersions +* RegExp unicode property escapes + +Espree supports all of them. + +### What ECMAScript 2019 features do you support? + +Because ECMAScript 2019 is still under development, we are implementing features as they are finalized. Currently, Espree supports: + +* Optional `catch` binding +* JSON superset (`\u2028` and `\u2029` in string literals) ### How do you determine which experimental features to support? diff --git a/tools/node_modules/eslint/node_modules/espree/espree.js b/tools/node_modules/eslint/node_modules/espree/espree.js index 23d434e5cbf240..e50fc5666f6191 100644 --- a/tools/node_modules/eslint/node_modules/espree/espree.js +++ b/tools/node_modules/eslint/node_modules/espree/espree.js @@ -71,26 +71,6 @@ var lookahead, extra, lastToken; -/** - * Object.assign polyfill for Node < 4 - * @param {Object} target The target object - * @param {...Object} sources Sources for the object - * @returns {Object} `target` after being mutated - */ -var assign = Object.assign || function assign(target) { - for (var argIndex = 1; argIndex < arguments.length; argIndex++) { - if (arguments[argIndex] !== null && typeof arguments[argIndex] === "object") { - var keys = Object.keys(arguments[argIndex]); - - for (var keyIndex = 0; keyIndex < keys.length; keyIndex++) { - target[keys[keyIndex]] = arguments[argIndex][keys[keyIndex]]; - } - } - } - - return target; -}; - /** * Resets the extra object to its default. * @returns {void} @@ -142,6 +122,7 @@ function normalizeEcmaVersion(ecmaVersion) { case 7: case 8: case 9: + case 10: return version; default: @@ -159,13 +140,7 @@ function normalizeEcmaVersion(ecmaVersion) { * @private */ function isValidNode(node) { - var ecma = extra.ecmaFeatures; - switch (node.type) { - case "ExperimentalSpreadProperty": - case "ExperimentalRestProperty": - return ecma.experimentalObjectRestSpread; - case "ImportDeclaration": case "ExportNamedDeclaration": case "ExportDefaultDeclaration": @@ -190,13 +165,6 @@ function esprimaFinishNode(result) { this.unexpected(result.start); } - // https://github.com/marijnh/acorn/issues/323 - if (result.type === "TryStatement") { - delete result.guardedHandlers; - } else if (result.type === "CatchClause") { - delete result.guard; - } - // Acorn doesn't count the opening and closing backticks as part of templates // so we have to adjust ranges/locations appropriately. if (result.type === "TemplateElement") { @@ -215,11 +183,6 @@ function esprimaFinishNode(result) { } } - // Acorn uses undefined instead of null, which affects serialization - if (result.type === "Literal" && result.value === undefined) { - result.value = null; - } - if (extra.attachComment) { commentAttachment.processComment(result); } @@ -289,24 +252,6 @@ acorn.plugins.espree = function(instance) { }; }); - // needed for experimental object rest/spread - instance.extend("checkLVal", function(checkLVal) { - - return /** @this acorn.Parser */ function(expr, isBinding, checkClashes) { - - if (extra.ecmaFeatures.experimentalObjectRestSpread && expr.type === "ObjectPattern") { - for (var i = 0; i < expr.properties.length; i++) { - if (expr.properties[i].type.indexOf("Experimental") === -1) { - this.checkLVal(expr.properties[i].value, isBinding, checkClashes); - } - } - return undefined; - } - - return checkLVal.call(this, expr, isBinding, checkClashes); - }; - }); - instance.extend("parseTopLevel", function(parseTopLevel) { return /** @this acorn.Parser */ function(node) { if (extra.ecmaFeatures.impliedStrict && this.options.ecmaVersion >= 5) { @@ -316,95 +261,6 @@ acorn.plugins.espree = function(instance) { }; }); - instance.extend("toAssignable", function(toAssignable) { - - return /** @this acorn.Parser */ function(node, isBinding, refDestructuringErrors) { - - if (extra.ecmaFeatures.experimentalObjectRestSpread && - node.type === "ObjectExpression" - ) { - node.type = "ObjectPattern"; - - for (var i = 0; i < node.properties.length; i++) { - var prop = node.properties[i]; - - if (prop.type === "ExperimentalSpreadProperty") { - prop.type = "ExperimentalRestProperty"; - } else if (prop.kind !== "init") { - this.raise(prop.key.start, "Object pattern can't contain getter or setter"); - } else { - this.toAssignable(prop.value, isBinding); - } - } - - return node; - } else { - return toAssignable.call(this, node, isBinding, refDestructuringErrors); - } - }; - - }); - - /** - * Method to parse an object rest or object spread. - * @returns {ASTNode} The node representing object rest or object spread. - * @this acorn.Parser - */ - instance.parseObjectRest = function() { - var node = this.startNode(); - this.next(); - node.argument = this.parseIdent(); - - if (this.type === tt.comma) { - this.raise(this.start, "Unexpected trailing comma after rest property"); - } - - return this.finishNode(node, "ExperimentalRestProperty"); - }; - - instance.extend("parseProperty", function(parseProperty) { - /** - * Override `parseProperty` method to parse rest/spread properties. - * @param {boolean} isPattern True if the object is a destructuring pattern. - * @param {Object} refDestructuringErrors ? - * @returns {ASTNode} The node representing a rest/spread property. - * @this acorn.Parser - */ - return function(isPattern, refDestructuringErrors) { - if (extra.ecmaFeatures.experimentalObjectRestSpread && this.type === tt.ellipsis) { - var prop; - - if (isPattern) { - prop = this.parseObjectRest(); - } else { - prop = this.parseSpread(); - prop.type = "ExperimentalSpreadProperty"; - } - - return prop; - } - - return parseProperty.call(this, isPattern, refDestructuringErrors); - }; - }); - - instance.extend("checkPropClash", function(checkPropClash) { - /** - * Override `checkPropClash` method to avoid clash on rest/spread properties. - * @param {ASTNode} prop A property node to check. - * @param {Object} propHash Names map. - * @param {Object} refDestructuringErrors Destructuring error information. - * @returns {void} - * @this acorn.Parser - */ - return function(prop, propHash, refDestructuringErrors) { - if (prop.type === "ExperimentalRestProperty" || prop.type === "ExperimentalSpreadProperty") { - return; - } - checkPropClash.call(this, prop, propHash, refDestructuringErrors); - }; - }); - /** * Overwrites the default raise method to throw Esprima-style errors. * @param {int} pos The position of the error. @@ -495,7 +351,7 @@ function tokenize(code, options) { lookahead = null; // Options matching. - options = assign({}, options); + options = Object.assign({}, options); var acornOptions = { ecmaVersion: DEFAULT_ECMA_VERSION, @@ -531,7 +387,7 @@ function tokenize(code, options) { // apply parsing flags if (options.ecmaFeatures && typeof options.ecmaFeatures === "object") { - extra.ecmaFeatures = assign({}, options.ecmaFeatures); + extra.ecmaFeatures = Object.assign({}, options.ecmaFeatures); impliedStrict = extra.ecmaFeatures.impliedStrict; extra.ecmaFeatures.impliedStrict = typeof impliedStrict === "boolean" && impliedStrict; } @@ -667,7 +523,7 @@ function parse(code, options) { // apply parsing flags after sourceType to allow overriding if (options.ecmaFeatures && typeof options.ecmaFeatures === "object") { - extra.ecmaFeatures = assign({}, options.ecmaFeatures); + extra.ecmaFeatures = Object.assign({}, options.ecmaFeatures); impliedStrict = extra.ecmaFeatures.impliedStrict; extra.ecmaFeatures.impliedStrict = typeof impliedStrict === "boolean" && impliedStrict; if (options.ecmaFeatures.globalReturn) { diff --git a/tools/node_modules/eslint/node_modules/espree/lib/ast-node-types.js b/tools/node_modules/eslint/node_modules/espree/lib/ast-node-types.js index 35bcaed0871d38..2844024d539ddd 100644 --- a/tools/node_modules/eslint/node_modules/espree/lib/ast-node-types.js +++ b/tools/node_modules/eslint/node_modules/espree/lib/ast-node-types.js @@ -35,8 +35,6 @@ module.exports = { DoWhileStatement: "DoWhileStatement", DebuggerStatement: "DebuggerStatement", EmptyStatement: "EmptyStatement", - ExperimentalRestProperty: "ExperimentalRestProperty", - ExperimentalSpreadProperty: "ExperimentalSpreadProperty", ExpressionStatement: "ExpressionStatement", ForStatement: "ForStatement", ForInStatement: "ForInStatement", diff --git a/tools/node_modules/eslint/node_modules/espree/lib/features.js b/tools/node_modules/eslint/node_modules/espree/lib/features.js index 774f8e5e581d05..d1ad5f851f413a 100644 --- a/tools/node_modules/eslint/node_modules/espree/lib/features.js +++ b/tools/node_modules/eslint/node_modules/espree/lib/features.js @@ -25,8 +25,5 @@ module.exports = { globalReturn: false, // allow implied strict mode - impliedStrict: false, - - // allow experimental object rest/spread - experimentalObjectRestSpread: false + impliedStrict: false }; diff --git a/tools/node_modules/eslint/node_modules/espree/lib/visitor-keys.js b/tools/node_modules/eslint/node_modules/espree/lib/visitor-keys.js index d1efeb7afc3f34..efc6c616fe52f8 100644 --- a/tools/node_modules/eslint/node_modules/espree/lib/visitor-keys.js +++ b/tools/node_modules/eslint/node_modules/espree/lib/visitor-keys.js @@ -119,9 +119,5 @@ module.exports = { JSXOpeningElement: ["name", "attributes"], JSXAttribute: ["name", "value"], JSXText: null, - JSXSpreadAttribute: ["argument"], - - // Experimental features - ExperimentalRestProperty: ["argument"], - ExperimentalSpreadProperty: ["argument"] + JSXSpreadAttribute: ["argument"] }; diff --git a/tools/node_modules/eslint/node_modules/espree/package.json b/tools/node_modules/eslint/node_modules/espree/package.json index ed0fe48d38c5f8..5e1e8b5a2a47d9 100644 --- a/tools/node_modules/eslint/node_modules/espree/package.json +++ b/tools/node_modules/eslint/node_modules/espree/package.json @@ -1,27 +1,27 @@ { - "_from": "espree@^3.5.4", - "_id": "espree@3.5.4", + "_from": "espree@^4.0.0", + "_id": "espree@4.0.0", "_inBundle": false, - "_integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "_integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "_location": "/eslint/espree", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "espree@^3.5.4", + "raw": "espree@^4.0.0", "name": "espree", "escapedName": "espree", - "rawSpec": "^3.5.4", + "rawSpec": "^4.0.0", "saveSpec": null, - "fetchSpec": "^3.5.4" + "fetchSpec": "^4.0.0" }, "_requiredBy": [ "/eslint" ], - "_resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "_shasum": "b0f447187c8a8bed944b815a660bddf5deb5d1a7", - "_spec": "espree@^3.5.4", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", + "_shasum": "253998f20a0f82db5d866385799d912a83a36634", + "_spec": "espree@^4.0.0", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Nicholas C. Zakas", "email": "nicholas+npm@nczconsulting.com" @@ -31,8 +31,8 @@ }, "bundleDependencies": false, "dependencies": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "^5.6.0", + "acorn-jsx": "^4.1.1" }, "deprecated": false, "description": "An Esprima-compatible JavaScript parser built on Acorn", @@ -41,7 +41,7 @@ "chai": "^1.10.0", "eslint": "^2.13.1", "eslint-config-eslint": "^3.0.0", - "eslint-release": "^0.10.0", + "eslint-release": "^0.11.1", "esprima": "latest", "esprima-fb": "^8001.2001.0-dev-harmony-fb", "istanbul": "~0.2.6", @@ -54,7 +54,7 @@ "unicode-6.3.0": "~0.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" }, "files": [ "lib", @@ -77,15 +77,16 @@ "url": "git+https://github.com/eslint/espree.git" }, "scripts": { - "alpharelease": "eslint-prelease alpha", - "betarelease": "eslint-prelease beta", + "alpharelease": "eslint-prerelease alpha", + "betarelease": "eslint-prerelease beta", "browserify": "node Makefile.js browserify", "ci-release": "eslint-ci-release", "generate-regex": "node tools/generate-identifier-regex.js", "gh-release": "eslint-gh-release", "lint": "node Makefile.js lint", + "rcrelease": "eslint-prerelease rc", "release": "eslint-release", "test": "npm run-script lint && node Makefile.js test" }, - "version": "3.5.4" + "version": "4.0.0" } diff --git a/tools/node_modules/eslint/node_modules/esprima/package.json b/tools/node_modules/eslint/node_modules/esprima/package.json index 3c24e3d1078ac6..f451cbc44273cc 100644 --- a/tools/node_modules/eslint/node_modules/esprima/package.json +++ b/tools/node_modules/eslint/node_modules/esprima/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", "_shasum": "4499eddcd1110e0b218bacf2fa7f7f59f55ca804", "_spec": "esprima@^4.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/js-yaml", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/js-yaml", "author": { "name": "Ariya Hidayat", "email": "ariya.hidayat@gmail.com" diff --git a/tools/node_modules/eslint/node_modules/esquery/esquery.js b/tools/node_modules/eslint/node_modules/esquery/esquery.js index 5b67924a12836a..97407ffaa41727 100644 --- a/tools/node_modules/eslint/node_modules/esquery/esquery.js +++ b/tools/node_modules/eslint/node_modules/esquery/esquery.js @@ -83,6 +83,22 @@ } return true; + case 'has': + var a, collector = []; + for (i = 0, l = selector.selectors.length; i < l; ++i) { + a = []; + estraverse.traverse(node, { + enter: function (node, parent) { + if (parent != null) { a.unshift(parent); } + if (matches(node, selector.selectors[i], a)) { + collector.push(node); + } + }, + leave: function () { a.shift(); } + }); + } + return collector.length !== 0; + case 'child': if (matches(node, selector.right, ancestry)) { return matches(ancestry[0], selector.left, ancestry.slice(1)); @@ -107,7 +123,7 @@ return p != null; case '=': switch (selector.value.type) { - case 'regexp': return selector.value.value.test(p); + case 'regexp': return typeof p === 'string' && selector.value.value.test(p); case 'literal': return '' + selector.value.value === '' + p; case 'type': return selector.value.value === typeof p; } @@ -162,8 +178,12 @@ // fallthrough: interface Expression <: Node, Pattern { } case 'expression': return node.type.slice(-10) === 'Expression' || - node.type === 'Literal' || - node.type === 'Identifier'; + node.type.slice(-7) === 'Literal' || + ( + node.type === 'Identifier' && + (ancestry.length === 0 || ancestry[0].type !== 'MetaProperty') + ) || + node.type === 'MetaProperty'; case 'function': return node.type.slice(0, 8) === 'Function' || node.type === 'ArrowFunctionExpression'; diff --git a/tools/node_modules/eslint/node_modules/esquery/package.json b/tools/node_modules/eslint/node_modules/esquery/package.json index ce8ebda26639df..a6df70169b3a24 100644 --- a/tools/node_modules/eslint/node_modules/esquery/package.json +++ b/tools/node_modules/eslint/node_modules/esquery/package.json @@ -1,27 +1,27 @@ { - "_from": "esquery@^1.0.0", - "_id": "esquery@1.0.0", + "_from": "esquery@^1.0.1", + "_id": "esquery@1.0.1", "_inBundle": false, - "_integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "_integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "_location": "/eslint/esquery", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "esquery@^1.0.0", + "raw": "esquery@^1.0.1", "name": "esquery", "escapedName": "esquery", - "rawSpec": "^1.0.0", + "rawSpec": "^1.0.1", "saveSpec": null, - "fetchSpec": "^1.0.0" + "fetchSpec": "^1.0.1" }, "_requiredBy": [ "/eslint" ], - "_resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", - "_shasum": "cfba8b57d7fba93f17298a8a006a04cda13d80fa", - "_spec": "esquery@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "_shasum": "406c51658b1f5991a5f9b62b1dc25b00e3e5c708", + "_spec": "esquery@^1.0.1", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Joel Feenstra", "email": "jrfeenst+esquery@gmail.com" @@ -57,7 +57,7 @@ "javascript", "query" ], - "license": "BSD", + "license": "BSD-3-Clause", "main": "esquery.js", "name": "esquery", "preferGlobal": false, @@ -68,5 +68,5 @@ "scripts": { "test": "node node_modules/jstestr/bin/jstestr.js path=tests" }, - "version": "1.0.0" + "version": "1.0.1" } diff --git a/tools/node_modules/eslint/node_modules/esquery/parser.js b/tools/node_modules/eslint/node_modules/esquery/parser.js index 2ce813459212e6..5e250f7d5ec097 100644 --- a/tools/node_modules/eslint/node_modules/esquery/parser.js +++ b/tools/node_modules/eslint/node_modules/esquery/parser.js @@ -60,6 +60,7 @@ var result = (function(){ "field": parse_field, "negation": parse_negation, "matches": parse_matches, + "has": parse_has, "firstChild": parse_firstChild, "lastChild": parse_lastChild, "nthChild": parse_nthChild, @@ -700,15 +701,18 @@ var result = (function(){ if (result0 === null) { result0 = parse_matches(); if (result0 === null) { - result0 = parse_firstChild(); + result0 = parse_has(); if (result0 === null) { - result0 = parse_lastChild(); + result0 = parse_firstChild(); if (result0 === null) { - result0 = parse_nthChild(); + result0 = parse_lastChild(); if (result0 === null) { - result0 = parse_nthLastChild(); + result0 = parse_nthChild(); if (result0 === null) { - result0 = parse_class(); + result0 = parse_nthLastChild(); + if (result0 === null) { + result0 = parse_class(); + } } } } @@ -2073,6 +2077,80 @@ var result = (function(){ return result0; } + function parse_has() { + var cacheKey = "has@" + pos; + var cachedResult = cache[cacheKey]; + if (cachedResult) { + pos = cachedResult.nextPos; + return cachedResult.result; + } + + var result0, result1, result2, result3, result4; + var pos0, pos1; + + pos0 = pos; + pos1 = pos; + if (input.substr(pos, 5) === ":has(") { + result0 = ":has("; + pos += 5; + } else { + result0 = null; + if (reportFailures === 0) { + matchFailed("\":has(\""); + } + } + if (result0 !== null) { + result1 = parse__(); + if (result1 !== null) { + result2 = parse_selectors(); + if (result2 !== null) { + result3 = parse__(); + if (result3 !== null) { + if (input.charCodeAt(pos) === 41) { + result4 = ")"; + pos++; + } else { + result4 = null; + if (reportFailures === 0) { + matchFailed("\")\""); + } + } + if (result4 !== null) { + result0 = [result0, result1, result2, result3, result4]; + } else { + result0 = null; + pos = pos1; + } + } else { + result0 = null; + pos = pos1; + } + } else { + result0 = null; + pos = pos1; + } + } else { + result0 = null; + pos = pos1; + } + } else { + result0 = null; + pos = pos1; + } + if (result0 !== null) { + result0 = (function(offset, ss) { return { type: 'has', selectors: ss }; })(pos0, result0[2]); + } + if (result0 === null) { + pos = pos0; + } + + cache[cacheKey] = { + nextPos: pos, + result: result0 + }; + return result0; + } + function parse_firstChild() { var cacheKey = "firstChild@" + pos; var cachedResult = cache[cacheKey]; diff --git a/tools/node_modules/eslint/node_modules/esrecurse/package.json b/tools/node_modules/eslint/node_modules/esrecurse/package.json index da415e8be5d2d9..58ea81c2ad7c83 100755 --- a/tools/node_modules/eslint/node_modules/esrecurse/package.json +++ b/tools/node_modules/eslint/node_modules/esrecurse/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "_shasum": "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf", "_spec": "esrecurse@^4.1.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/eslint-scope", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/eslint-scope", "babel": { "presets": [ "es2015" diff --git a/tools/node_modules/eslint/node_modules/estraverse/package.json b/tools/node_modules/eslint/node_modules/estraverse/package.json index 953fde272b7ddf..a8234ac475728f 100644 --- a/tools/node_modules/eslint/node_modules/estraverse/package.json +++ b/tools/node_modules/eslint/node_modules/estraverse/package.json @@ -23,7 +23,7 @@ "_resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", "_shasum": "0dee3fed31fcd469618ce7342099fc1afa0bdb13", "_spec": "estraverse@^4.1.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/eslint-scope", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/eslint-scope", "bugs": { "url": "https://github.com/estools/estraverse/issues" }, diff --git a/tools/node_modules/eslint/node_modules/esutils/package.json b/tools/node_modules/eslint/node_modules/esutils/package.json index 6050334e29c442..c308ba2ebdb81f 100644 --- a/tools/node_modules/eslint/node_modules/esutils/package.json +++ b/tools/node_modules/eslint/node_modules/esutils/package.json @@ -23,7 +23,7 @@ "_resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "_shasum": "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b", "_spec": "esutils@^2.0.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "bugs": { "url": "https://github.com/estools/esutils/issues" }, diff --git a/tools/node_modules/eslint/node_modules/extend/package.json b/tools/node_modules/eslint/node_modules/extend/package.json index 18640430831e74..935c911c2db448 100644 --- a/tools/node_modules/eslint/node_modules/extend/package.json +++ b/tools/node_modules/eslint/node_modules/extend/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "_shasum": "a755ea7bc1adfcc5a31ce7e762dbaadc5e636444", "_spec": "extend@^3.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/unified", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/unified", "author": { "name": "Stefan Thomas", "email": "justmoon@members.fsf.org", diff --git a/tools/node_modules/eslint/node_modules/external-editor/README.md b/tools/node_modules/eslint/node_modules/external-editor/README.md index 53f2dfc35d43eb..e052fc572f987f 100644 --- a/tools/node_modules/eslint/node_modules/external-editor/README.md +++ b/tools/node_modules/eslint/node_modules/external-editor/README.md @@ -7,7 +7,7 @@ A node module to edit a string with a users preferred text editor using $VISUAL or $ENVIRONMENT. -Version: 2.1.0 +Version: 2.2.0 As of version 2.0.0, node 0.10 is no longer support. Minimum node version is now 0.12. @@ -29,8 +29,11 @@ A full featured example try { var editor = new ExternalEditor(); - var text = editor.run() - // the text is also available in editor.text + var text = editor.run() // the text is also available in editor.text + + if (editor.last_exit_status !== 0) { + console.log("The editor exited with a non-zero code"); + } } catch (err) { if (err instanceOf ExternalEditor.CreateFileError) { console.log('Failed to create the temporary file'); @@ -100,6 +103,7 @@ A full featured example - `editor.args` (array) Default arguments for the bin - `temp_file` (string) Path to temporary file. Can be changed, but be careful as the temporary file probably already exists and would need be removed manually. +- `last_exit_status` (number) The last exit code emitted from the editor. ## Errors diff --git a/tools/node_modules/eslint/node_modules/external-editor/example_sync.js b/tools/node_modules/eslint/node_modules/external-editor/example_sync.js index 138f23075739bb..5df4a85a91f293 100644 --- a/tools/node_modules/eslint/node_modules/external-editor/example_sync.js +++ b/tools/node_modules/eslint/node_modules/external-editor/example_sync.js @@ -17,6 +17,10 @@ rl.on('line', function () { // Get response, remove all lines starting with #, remove any trailing newlines. var response = editor.run().replace(/^#.*\n?/gm, '').replace(/\n+$/g, '').trim(); + if (editor.last_exit_status !== 0) { + process.stderr.write("WARN: The editor exited with a non-zero status\n\n") + } + if (response.length === 0) { readline.moveCursor(process.stdout, 0, -1); process.stdout.write('Your message was empty, please try again. (press enter to launch your preferred editor)'); diff --git a/tools/node_modules/eslint/node_modules/external-editor/main/index.js b/tools/node_modules/eslint/node_modules/external-editor/main/index.js index 0ec45e3a8bfa47..520c227d5b7089 100644 --- a/tools/node_modules/eslint/node_modules/external-editor/main/index.js +++ b/tools/node_modules/eslint/node_modules/external-editor/main/index.js @@ -48,20 +48,24 @@ text = ''; } editor = new ExternalEditor(text); - return editor.runAsync(function(error_run, response) { + return editor.runAsync(function(error_run, text) { var error_cleanup; if (!error_run) { try { editor.cleanup(); + if (typeof callback === 'function') { + return setImmediate(callback, null, text); + } } catch (error) { error_cleanup = error; if (typeof callback === 'function') { - callback(error_cleanup); + return setImmediate(callback, error_cleanup, null); } } - return callback(null, response); } else { - return callback(error_run) in typeof callback === 'function'; + if (typeof callback === 'function') { + return setImmediate(callback, error_run, null); + } } }); }; @@ -83,6 +87,8 @@ args: [] }; + ExternalEditor.prototype.last_exit_status = void 0; + function ExternalEditor(text1) { this.text = text1 != null ? text1 : ''; this.launchEditorAsync = bind(this.launchEditorAsync, this); @@ -112,12 +118,12 @@ try { _this.readTemporaryFile(); if (typeof callback === 'function') { - return callback(null, _this.text); + return setImmediate(callback, null, _this.text); } } catch (error) { error_read = error; if (typeof callback === 'function') { - return callback(error_read); + return setImmediate(callback, error_read, null); } } }; @@ -125,7 +131,7 @@ } catch (error) { error_launch = error; if (typeof callback === 'function') { - return callback(error_launch); + return setImmediate(callback, error_launch, null); } } }; @@ -139,8 +145,8 @@ ed = /^win/.test(process.platform) ? 'notepad' : 'vim'; editor = process.env.VISUAL || process.env.EDITOR || ed; args = editor.split(/\s+/); - this.bin = args.shift(); - return this.args = args; + this.editor.bin = args.shift(); + return this.editor.args = args; }; ExternalEditor.prototype.createTemporaryFile = function() { @@ -182,11 +188,12 @@ }; ExternalEditor.prototype.launchEditor = function() { - var e; + var e, run; try { - return SpawnSync(this.bin, this.args.concat([this.temp_file]), { + run = SpawnSync(this.editor.bin, this.editor.args.concat([this.temp_file]), { stdio: 'inherit' }); + return this.last_exit_status = run.status; } catch (error) { e = error; throw new LaunchEditorError(e); @@ -196,14 +203,17 @@ ExternalEditor.prototype.launchEditorAsync = function(callback) { var child_process, e; try { - child_process = Spawn(this.bin, this.args.concat([this.temp_file]), { + child_process = Spawn(this.editor.bin, this.editor.args.concat([this.temp_file]), { stdio: 'inherit' }); - return child_process.on('exit', function() { - if (typeof callback === 'function') { - return callback(); - } - }); + return child_process.on('exit', (function(_this) { + return function(code) { + _this.last_exit_status = code; + if (typeof callback === 'function') { + return callback(); + } + }; + })(this)); } catch (error) { e = error; throw new LaunchEditorError(e); diff --git a/tools/node_modules/eslint/node_modules/external-editor/package.json b/tools/node_modules/eslint/node_modules/external-editor/package.json index 27194861c00fa3..03804f15bad226 100644 --- a/tools/node_modules/eslint/node_modules/external-editor/package.json +++ b/tools/node_modules/eslint/node_modules/external-editor/package.json @@ -1,27 +1,27 @@ { - "_from": "external-editor@^2.0.4", - "_id": "external-editor@2.1.0", + "_from": "external-editor@^2.1.0", + "_id": "external-editor@2.2.0", "_inBundle": false, - "_integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "_integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "_location": "/eslint/external-editor", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "external-editor@^2.0.4", + "raw": "external-editor@^2.1.0", "name": "external-editor", "escapedName": "external-editor", - "rawSpec": "^2.0.4", + "rawSpec": "^2.1.0", "saveSpec": null, - "fetchSpec": "^2.0.4" + "fetchSpec": "^2.1.0" }, "_requiredBy": [ "/eslint/inquirer" ], - "_resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", - "_shasum": "3d026a21b7f95b5726387d4200ac160d372c3b48", - "_spec": "external-editor@^2.0.4", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", + "_resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "_shasum": "045511cfd8d133f3846673d1047c154e214ad3d5", + "_spec": "external-editor@^2.1.0", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", "author": { "name": "Kevin Gravier", "email": "kevin@mrkmg.com", @@ -72,5 +72,5 @@ "test": "npm run lint && npm run unit", "unit": "mocha --recursive --compilers coffee:coffee-script/register --timeout 10000 ./test/spec" }, - "version": "2.1.0" + "version": "2.2.0" } diff --git a/tools/node_modules/eslint/node_modules/fast-deep-equal/README.md b/tools/node_modules/eslint/node_modules/fast-deep-equal/README.md index ee83edd45428e2..326bb2a5827bc9 100644 --- a/tools/node_modules/eslint/node_modules/fast-deep-equal/README.md +++ b/tools/node_modules/eslint/node_modules/fast-deep-equal/README.md @@ -30,15 +30,18 @@ console.log(equal({foo: 'bar'}, {foo: 'bar'})); // true ## Performance benchmark +Node.js v9.11.1: + ``` -fast-deep-equal x 82,915 ops/sec ±0.63% (89 runs sampled) -nano-equal x 50,506 ops/sec ±2.23% (86 runs sampled) -shallow-equal-fuzzy x 14,873 ops/sec ±3.19% (83 runs sampled) -underscore.isEqual x 16,055 ops/sec ±2.29% (85 runs sampled) -lodash.isEqual x 10,740 ops/sec ±1.04% (89 runs sampled) -deep-equal x 12,276 ops/sec ±2.44% (84 runs sampled) -deep-eql x 10,565 ops/sec ±0.89% (90 runs sampled) -assert.deepStrictEqual x 965 ops/sec ±2.99% (81 runs sampled) +fast-deep-equal x 226,960 ops/sec ±1.55% (86 runs sampled) +nano-equal x 218,210 ops/sec ±0.79% (89 runs sampled) +shallow-equal-fuzzy x 206,762 ops/sec ±0.84% (88 runs sampled) +underscore.isEqual x 128,668 ops/sec ±0.75% (91 runs sampled) +lodash.isEqual x 44,895 ops/sec ±0.67% (85 runs sampled) +deep-equal x 51,616 ops/sec ±0.96% (90 runs sampled) +deep-eql x 28,218 ops/sec ±0.42% (85 runs sampled) +assert.deepStrictEqual x 1,777 ops/sec ±1.05% (86 runs sampled) +ramda.equals x 13,466 ops/sec ±0.82% (86 runs sampled) The fastest is fast-deep-equal ``` diff --git a/tools/node_modules/eslint/node_modules/fast-deep-equal/index.js b/tools/node_modules/eslint/node_modules/fast-deep-equal/index.js index 7aaaba3f6c1678..27264f5b29d2f8 100644 --- a/tools/node_modules/eslint/node_modules/fast-deep-equal/index.js +++ b/tools/node_modules/eslint/node_modules/fast-deep-equal/index.js @@ -7,43 +7,43 @@ var hasProp = Object.prototype.hasOwnProperty; module.exports = function equal(a, b) { if (a === b) return true; - var arrA = isArray(a) - , arrB = isArray(b) - , i - , length - , key; - - if (arrA && arrB) { - length = a.length; - if (length != b.length) return false; - for (i = 0; i < length; i++) - if (!equal(a[i], b[i])) return false; - return true; - } + if (a && b && typeof a == 'object' && typeof b == 'object') { + var arrA = isArray(a) + , arrB = isArray(b) + , i + , length + , key; + + if (arrA && arrB) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (!equal(a[i], b[i])) return false; + return true; + } - if (arrA != arrB) return false; + if (arrA != arrB) return false; - var dateA = a instanceof Date - , dateB = b instanceof Date; - if (dateA != dateB) return false; - if (dateA && dateB) return a.getTime() == b.getTime(); + var dateA = a instanceof Date + , dateB = b instanceof Date; + if (dateA != dateB) return false; + if (dateA && dateB) return a.getTime() == b.getTime(); - var regexpA = a instanceof RegExp - , regexpB = b instanceof RegExp; - if (regexpA != regexpB) return false; - if (regexpA && regexpB) return a.toString() == b.toString(); + var regexpA = a instanceof RegExp + , regexpB = b instanceof RegExp; + if (regexpA != regexpB) return false; + if (regexpA && regexpB) return a.toString() == b.toString(); - if (a instanceof Object && b instanceof Object) { var keys = keyList(a); length = keys.length; if (length !== keyList(b).length) return false; - for (i = 0; i < length; i++) + for (i = length; i-- !== 0;) if (!hasProp.call(b, keys[i])) return false; - for (i = 0; i < length; i++) { + for (i = length; i-- !== 0;) { key = keys[i]; if (!equal(a[key], b[key])) return false; } @@ -51,5 +51,5 @@ module.exports = function equal(a, b) { return true; } - return false; + return a!==a && b!==b; }; diff --git a/tools/node_modules/eslint/node_modules/fast-deep-equal/package.json b/tools/node_modules/eslint/node_modules/fast-deep-equal/package.json index b1c7ec0b146278..64a147d11879b0 100644 --- a/tools/node_modules/eslint/node_modules/fast-deep-equal/package.json +++ b/tools/node_modules/eslint/node_modules/fast-deep-equal/package.json @@ -1,27 +1,27 @@ { - "_from": "fast-deep-equal@^1.0.0", - "_id": "fast-deep-equal@1.1.0", + "_from": "fast-deep-equal@^2.0.1", + "_id": "fast-deep-equal@2.0.1", "_inBundle": false, - "_integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "_integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "_location": "/eslint/fast-deep-equal", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "fast-deep-equal@^1.0.0", + "raw": "fast-deep-equal@^2.0.1", "name": "fast-deep-equal", "escapedName": "fast-deep-equal", - "rawSpec": "^1.0.0", + "rawSpec": "^2.0.1", "saveSpec": null, - "fetchSpec": "^1.0.0" + "fetchSpec": "^2.0.1" }, "_requiredBy": [ "/eslint/ajv" ], - "_resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "_shasum": "c053477817c86b51daa853c81e059b733d023614", - "_spec": "fast-deep-equal@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/ajv", + "_resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "_shasum": "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49", + "_spec": "fast-deep-equal@^2.0.1", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/ajv", "author": { "name": "Evgeny Poberezkin" }, @@ -34,17 +34,18 @@ "devDependencies": { "benchmark": "^2.1.4", "coveralls": "^2.13.1", - "deep-eql": "^2.0.2", - "deep-equal": "^1.0.1", + "deep-eql": "latest", + "deep-equal": "latest", "eslint": "^4.0.0", - "lodash": "^4.17.4", + "lodash": "latest", "mocha": "^3.4.2", - "nano-equal": "^1.0.1", + "nano-equal": "latest", "nyc": "^11.0.2", "pre-commit": "^1.2.2", - "shallow-equal-fuzzy": "0.0.2", + "ramda": "latest", + "shallow-equal-fuzzy": "latest", "typescript": "^2.6.1", - "underscore": "^1.8.3" + "underscore": "latest" }, "files": [ "index.js", @@ -81,5 +82,5 @@ "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts" }, "types": "index.d.ts", - "version": "1.1.0" + "version": "2.0.1" } diff --git a/tools/node_modules/eslint/node_modules/fast-json-stable-stringify/package.json b/tools/node_modules/eslint/node_modules/fast-json-stable-stringify/package.json index df152f1a73f00b..71e6a371e1825d 100644 --- a/tools/node_modules/eslint/node_modules/fast-json-stable-stringify/package.json +++ b/tools/node_modules/eslint/node_modules/fast-json-stable-stringify/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "_shasum": "d5142c0caee6b1189f87d3a76111064f86c8bbf2", "_spec": "fast-json-stable-stringify@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/ajv", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/ajv", "author": { "name": "James Halliday", "email": "mail@substack.net", diff --git a/tools/node_modules/eslint/node_modules/fast-levenshtein/package.json b/tools/node_modules/eslint/node_modules/fast-levenshtein/package.json index 8f99b9b0f3a6d0..9afbe02e1198a7 100644 --- a/tools/node_modules/eslint/node_modules/fast-levenshtein/package.json +++ b/tools/node_modules/eslint/node_modules/fast-levenshtein/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "_shasum": "3d8a5c66883a16a30ca8643e851f19baa7797917", "_spec": "fast-levenshtein@~2.0.4", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/optionator", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/optionator", "author": { "name": "Ramesh Nair", "email": "ram@hiddentao.com", diff --git a/tools/node_modules/eslint/node_modules/figures/package.json b/tools/node_modules/eslint/node_modules/figures/package.json index a176621381e82d..f52135148aa3ed 100644 --- a/tools/node_modules/eslint/node_modules/figures/package.json +++ b/tools/node_modules/eslint/node_modules/figures/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "_shasum": "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962", "_spec": "figures@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/file-entry-cache/package.json b/tools/node_modules/eslint/node_modules/file-entry-cache/package.json index 55345014714cf0..47a7e7cfd50a50 100644 --- a/tools/node_modules/eslint/node_modules/file-entry-cache/package.json +++ b/tools/node_modules/eslint/node_modules/file-entry-cache/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "_shasum": "c392990c3e684783d838b8c84a45d8a048458361", "_spec": "file-entry-cache@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Roy Riojas", "url": "http://royriojas.com" diff --git a/tools/node_modules/eslint/node_modules/flat-cache/package.json b/tools/node_modules/eslint/node_modules/flat-cache/package.json index 71273ba92c2fcc..f43642cbb44dad 100644 --- a/tools/node_modules/eslint/node_modules/flat-cache/package.json +++ b/tools/node_modules/eslint/node_modules/flat-cache/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "_shasum": "d3030b32b38154f4e3b7e9c709f490f7ef97c481", "_spec": "flat-cache@^1.2.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/file-entry-cache", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/file-entry-cache", "author": { "name": "Roy Riojas", "url": "http://royriojas.com" diff --git a/tools/node_modules/eslint/node_modules/util-deprecate/LICENSE b/tools/node_modules/eslint/node_modules/foreach/LICENSE similarity index 93% rename from tools/node_modules/eslint/node_modules/util-deprecate/LICENSE rename to tools/node_modules/eslint/node_modules/foreach/LICENSE index 6a60e8c225c9ba..3032d6e34cc525 100644 --- a/tools/node_modules/eslint/node_modules/util-deprecate/LICENSE +++ b/tools/node_modules/eslint/node_modules/foreach/LICENSE @@ -1,6 +1,6 @@ -(The MIT License) +The MIT License -Copyright (c) 2014 Nathan Rajlich +Copyright (c) 2013 Manuel Stofer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation diff --git a/tools/node_modules/eslint/node_modules/foreach/Makefile b/tools/node_modules/eslint/node_modules/foreach/Makefile new file mode 100644 index 00000000000000..eae41178666a0e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/foreach/Makefile @@ -0,0 +1,11 @@ + +build: components + @component build + +components: component.json + @component install --dev + +clean: + rm -fr build components template.js + +.PHONY: clean diff --git a/tools/node_modules/eslint/node_modules/foreach/Readme.md b/tools/node_modules/eslint/node_modules/foreach/Readme.md new file mode 100644 index 00000000000000..2752b5746a472d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/foreach/Readme.md @@ -0,0 +1,30 @@ + +# foreach + +Iterate over the key value pairs of either an array-like object or a dictionary like object. + +[![browser support][1]][2] + +## API + +### foreach(object, function, [context]) + +```js +var each = require('foreach'); + +each([1,2,3], function (value, key, array) { + // value === 1, 2, 3 + // key === 0, 1, 2 + // array === [1, 2, 3] +}); + +each({0:1,1:2,2:3}, function (value, key, object) { + // value === 1, 2, 3 + // key === 0, 1, 2 + // object === {0:1,1:2,2:3} +}); +``` + +[1]: https://ci.testling.com/manuelstofer/foreach.png +[2]: https://ci.testling.com/manuelstofer/foreach + diff --git a/tools/node_modules/eslint/node_modules/foreach/index.js b/tools/node_modules/eslint/node_modules/foreach/index.js new file mode 100644 index 00000000000000..a961e4e128cfd7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/foreach/index.js @@ -0,0 +1,22 @@ + +var hasOwn = Object.prototype.hasOwnProperty; +var toString = Object.prototype.toString; + +module.exports = function forEach (obj, fn, ctx) { + if (toString.call(fn) !== '[object Function]') { + throw new TypeError('iterator must be a function'); + } + var l = obj.length; + if (l === +l) { + for (var i = 0; i < l; i++) { + fn.call(ctx, obj[i], i, obj); + } + } else { + for (var k in obj) { + if (hasOwn.call(obj, k)) { + fn.call(ctx, obj[k], k, obj); + } + } + } +}; + diff --git a/tools/node_modules/eslint/node_modules/foreach/package.json b/tools/node_modules/eslint/node_modules/foreach/package.json new file mode 100644 index 00000000000000..252cc9e4fa5443 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/foreach/package.json @@ -0,0 +1,88 @@ +{ + "_from": "foreach@^2.0.5", + "_id": "foreach@2.0.5", + "_inBundle": false, + "_integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "_location": "/eslint/foreach", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "foreach@^2.0.5", + "name": "foreach", + "escapedName": "foreach", + "rawSpec": "^2.0.5", + "saveSpec": null, + "fetchSpec": "^2.0.5" + }, + "_requiredBy": [ + "/eslint/define-properties" + ], + "_resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "_shasum": "0bee005018aeb260d0a3af3ae658dd0136ec1b99", + "_spec": "foreach@^2.0.5", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/define-properties", + "author": { + "name": "Manuel Stofer", + "email": "manuel@takimata.ch" + }, + "bugs": { + "url": "https://github.com/manuelstofer/foreach/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Manuel Stofer" + }, + { + "name": "Jordan Harband", + "url": "https://github.com/ljharb" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "foreach component + npm package", + "devDependencies": { + "covert": "*", + "tape": "*" + }, + "homepage": "https://github.com/manuelstofer/foreach#readme", + "keywords": [ + "shim", + "Array.prototype.forEach", + "forEach", + "Array#forEach", + "each" + ], + "license": "MIT", + "main": "index.js", + "name": "foreach", + "repository": { + "type": "git", + "url": "git://github.com/manuelstofer/foreach.git" + }, + "scripts": { + "coverage": "covert test.js", + "coverage-quiet": "covert --quiet test.js", + "test": "node test.js" + }, + "testling": { + "files": "test.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0", + "chrome/22.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/5.0.5..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "2.0.5" +} diff --git a/tools/node_modules/eslint/node_modules/fs.realpath/package.json b/tools/node_modules/eslint/node_modules/fs.realpath/package.json index fce472f61eb92f..fe019db0e89313 100644 --- a/tools/node_modules/eslint/node_modules/fs.realpath/package.json +++ b/tools/node_modules/eslint/node_modules/fs.realpath/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "_shasum": "1504ad2523158caa40db4a2787cb01411994ea4f", "_spec": "fs.realpath@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/glob", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/glob", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", diff --git a/tools/node_modules/eslint/node_modules/function-bind/package.json b/tools/node_modules/eslint/node_modules/function-bind/package.json index 4527da5ebbe95e..7ed7604ab08f89 100644 --- a/tools/node_modules/eslint/node_modules/function-bind/package.json +++ b/tools/node_modules/eslint/node_modules/function-bind/package.json @@ -1,27 +1,29 @@ { - "_from": "function-bind@^1.0.2", + "_from": "function-bind@^1.1.1", "_id": "function-bind@1.1.1", "_inBundle": false, "_integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "_location": "/function-bind", + "_location": "/eslint/function-bind", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "function-bind@^1.0.2", + "raw": "function-bind@^1.1.1", "name": "function-bind", "escapedName": "function-bind", - "rawSpec": "^1.0.2", + "rawSpec": "^1.1.1", "saveSpec": null, - "fetchSpec": "^1.0.2" + "fetchSpec": "^1.1.1" }, "_requiredBy": [ - "/has" + "/eslint/es-abstract", + "/eslint/has", + "/eslint/string.prototype.matchall" ], "_resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "_shasum": "a56899d3ea3c9bab874bb9773b7c5ede92f4895d", - "_spec": "function-bind@^1.0.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/has", + "_spec": "function-bind@^1.1.1", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/string.prototype.matchall", "author": { "name": "Raynos", "email": "raynos2@gmail.com" diff --git a/tools/node_modules/eslint/node_modules/functional-red-black-tree/package.json b/tools/node_modules/eslint/node_modules/functional-red-black-tree/package.json index 57693e21aca5a0..eb2cc4e4216f4d 100644 --- a/tools/node_modules/eslint/node_modules/functional-red-black-tree/package.json +++ b/tools/node_modules/eslint/node_modules/functional-red-black-tree/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "_shasum": "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327", "_spec": "functional-red-black-tree@^1.0.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Mikola Lysenko" }, diff --git a/tools/node_modules/eslint/node_modules/glob/package.json b/tools/node_modules/eslint/node_modules/glob/package.json index 33cdc54fca9466..a3a5b99d1b3cee 100644 --- a/tools/node_modules/eslint/node_modules/glob/package.json +++ b/tools/node_modules/eslint/node_modules/glob/package.json @@ -23,7 +23,7 @@ "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "_shasum": "c19c9df9a028702d678612384a6552404c636d15", "_spec": "glob@^7.1.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", diff --git a/tools/node_modules/eslint/node_modules/globals/globals.json b/tools/node_modules/eslint/node_modules/globals/globals.json index 07dbc728194507..4e6bbb13825147 100644 --- a/tools/node_modules/eslint/node_modules/globals/globals.json +++ b/tools/node_modules/eslint/node_modules/globals/globals.json @@ -3,6 +3,9 @@ "Array": false, "ArrayBuffer": false, "Atomics": false, + "BigInt": false, + "BigInt64Array": false, + "BigUint64Array": false, "Boolean": false, "constructor": false, "DataView": false, @@ -248,6 +251,9 @@ "AudioParam": false, "AudioProcessingEvent": false, "AudioScheduledSourceNode": false, + "AudioWorkletGlobalScope ": false, + "AudioWorkletNode": false, + "AudioWorkletProcessor": false, "BarProp": false, "BaseAudioContext": false, "BatteryManager": false, @@ -695,6 +701,7 @@ "RadioNodeList": false, "Range": false, "ReadableStream": false, + "registerProcessor": false, "RemotePlayback": false, "removeEventListener": false, "Request": false, @@ -1007,7 +1014,9 @@ "require": false, "setImmediate": false, "setInterval": false, - "setTimeout": false + "setTimeout": false, + "URL": false, + "URLSearchParams": false }, "commonjs": { "exports": true, @@ -1384,6 +1393,7 @@ "currentURL": false, "fillIn": false, "find": false, + "findAll": false, "findWithAssert": false, "keyEvent": false, "pauseTest": false, @@ -1407,7 +1417,9 @@ "clearTimeout": false, "console": false, "setInterval": false, - "setTimeout": false + "setTimeout": false, + "URL": false, + "URLSearchParams": false }, "webextensions": { "browser": false, diff --git a/tools/node_modules/eslint/node_modules/globals/package.json b/tools/node_modules/eslint/node_modules/globals/package.json index d2cbe83e35894d..b1221b7c5eaae9 100644 --- a/tools/node_modules/eslint/node_modules/globals/package.json +++ b/tools/node_modules/eslint/node_modules/globals/package.json @@ -1,27 +1,27 @@ { - "_from": "globals@^11.0.1", - "_id": "globals@11.3.0", + "_from": "globals@^11.5.0", + "_id": "globals@11.7.0", "_inBundle": false, - "_integrity": "sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw==", + "_integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", "_location": "/eslint/globals", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "globals@^11.0.1", + "raw": "globals@^11.5.0", "name": "globals", "escapedName": "globals", - "rawSpec": "^11.0.1", + "rawSpec": "^11.5.0", "saveSpec": null, - "fetchSpec": "^11.0.1" + "fetchSpec": "^11.5.0" }, "_requiredBy": [ "/eslint" ], - "_resolved": "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz", - "_shasum": "e04fdb7b9796d8adac9c8f64c14837b2313378b0", - "_spec": "globals@^11.0.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "_shasum": "a583faa43055b1aca771914bf68258e2fc125673", + "_spec": "globals@^11.5.0", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -34,8 +34,8 @@ "deprecated": false, "description": "Global identifiers from different JavaScript environments", "devDependencies": { - "ava": "*", - "xo": "*" + "ava": "0.21.0", + "xo": "0.18.0" }, "engines": { "node": ">=4" @@ -64,7 +64,7 @@ "scripts": { "test": "xo && ava" }, - "version": "11.3.0", + "version": "11.7.0", "xo": { "ignores": [ "get-browser-globals.js" diff --git a/tools/node_modules/eslint/node_modules/globby/package.json b/tools/node_modules/eslint/node_modules/globby/package.json index 7d089f8ff255cf..911f86bc3df80e 100644 --- a/tools/node_modules/eslint/node_modules/globby/package.json +++ b/tools/node_modules/eslint/node_modules/globby/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "_shasum": "ebd84667ca0dbb330b99bcfc68eac2bc54370e0d", "_spec": "globby@^5.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/del", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/del", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/graceful-fs/package.json b/tools/node_modules/eslint/node_modules/graceful-fs/package.json index 139d3220bca756..5c0d1bc9a65488 100644 --- a/tools/node_modules/eslint/node_modules/graceful-fs/package.json +++ b/tools/node_modules/eslint/node_modules/graceful-fs/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "_shasum": "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658", "_spec": "graceful-fs@^4.1.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/flat-cache", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/flat-cache", "bugs": { "url": "https://github.com/isaacs/node-graceful-fs/issues" }, diff --git a/tools/node_modules/eslint/node_modules/has-ansi/package.json b/tools/node_modules/eslint/node_modules/has-ansi/package.json index 704a65bdfa7ac1..b05b7536b510bb 100644 --- a/tools/node_modules/eslint/node_modules/has-ansi/package.json +++ b/tools/node_modules/eslint/node_modules/has-ansi/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "_shasum": "34f5049ce1ecdf2b0649af3ef24e45ed35416d91", "_spec": "has-ansi@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/babel-code-frame/node_modules/chalk", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/babel-code-frame/node_modules/chalk", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/has-flag/package.json b/tools/node_modules/eslint/node_modules/has-flag/package.json index cd967798204e8c..f5da2db5aaa452 100644 --- a/tools/node_modules/eslint/node_modules/has-flag/package.json +++ b/tools/node_modules/eslint/node_modules/has-flag/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "_shasum": "b5d454dc2199ae225699f3467e5a07f3b955bafd", "_spec": "has-flag@^3.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/chalk/node_modules/supports-color", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/chalk/node_modules/supports-color", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/x-is-function/LICENSE b/tools/node_modules/eslint/node_modules/has-symbols/LICENSE similarity index 96% rename from tools/node_modules/eslint/node_modules/x-is-function/LICENSE rename to tools/node_modules/eslint/node_modules/has-symbols/LICENSE index 4f2aa21a49912c..df31cbf3c064d0 100644 --- a/tools/node_modules/eslint/node_modules/x-is-function/LICENSE +++ b/tools/node_modules/eslint/node_modules/has-symbols/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2016 Alexander Praetorius +Copyright (c) 2016 Jordan Harband Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/tools/node_modules/eslint/node_modules/has-symbols/README.md b/tools/node_modules/eslint/node_modules/has-symbols/README.md new file mode 100644 index 00000000000000..b27b31acbc71bc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/has-symbols/README.md @@ -0,0 +1,45 @@ +# has-symbols [![Version Badge][2]][1] + +[![Build Status][3]][4] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +Determine if the JS environment has Symbol support. Supports spec, or shams. + +## Example + +```js +var hasSymbols = require('has-symbols'); + +hasSymbols() === true; // if the environment has native Symbol support. Not polyfillable, not forgeable. + +var hasSymbolsKinda = require('has-symbols/shams'); +hasSymbolsKinda() === true; // if the environment has a Symbol sham that mostly follows the spec. +``` + +## Supported Symbol shams + - get-own-property-symbols [npm](https://www.npmjs.com/package/get-own-property-symbols) | [github](https://github.com/WebReflection/get-own-property-symbols) + - core-js [npm](https://www.npmjs.com/package/core-js) | [github](https://github.com/zloirock/core-js) + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/has-symbols +[2]: http://versionbadg.es/ljharb/has-symbols.svg +[3]: https://travis-ci.org/ljharb/has-symbols.svg +[4]: https://travis-ci.org/ljharb/has-symbols +[5]: https://david-dm.org/ljharb/has-symbols.svg +[6]: https://david-dm.org/ljharb/has-symbols +[7]: https://david-dm.org/ljharb/has-symbols/dev-status.svg +[8]: https://david-dm.org/ljharb/has-symbols#info=devDependencies +[9]: https://ci.testling.com/ljharb/has-symbols.png +[10]: https://ci.testling.com/ljharb/has-symbols +[11]: https://nodei.co/npm/has-symbols.png?downloads=true&stars=true +[license-image]: http://img.shields.io/npm/l/has-symbols.svg +[license-url]: LICENSE +[downloads-image]: http://img.shields.io/npm/dm/has-symbols.svg +[downloads-url]: http://npm-stat.com/charts.html?package=has-symbols diff --git a/tools/node_modules/eslint/node_modules/has-symbols/index.js b/tools/node_modules/eslint/node_modules/has-symbols/index.js new file mode 100644 index 00000000000000..f72159e0ac7dcd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/has-symbols/index.js @@ -0,0 +1,13 @@ +'use strict'; + +var origSymbol = global.Symbol; +var hasSymbolSham = require('./shams'); + +module.exports = function hasNativeSymbols() { + if (typeof origSymbol !== 'function') { return false; } + if (typeof Symbol !== 'function') { return false; } + if (typeof origSymbol('foo') !== 'symbol') { return false; } + if (typeof Symbol('bar') !== 'symbol') { return false; } + + return hasSymbolSham(); +}; diff --git a/tools/node_modules/eslint/node_modules/has-symbols/package.json b/tools/node_modules/eslint/node_modules/has-symbols/package.json new file mode 100644 index 00000000000000..9260afd89936af --- /dev/null +++ b/tools/node_modules/eslint/node_modules/has-symbols/package.json @@ -0,0 +1,107 @@ +{ + "_from": "has-symbols@^1.0.0", + "_id": "has-symbols@1.0.0", + "_inBundle": false, + "_integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "_location": "/eslint/has-symbols", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "has-symbols@^1.0.0", + "name": "has-symbols", + "escapedName": "has-symbols", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/eslint/string.prototype.matchall" + ], + "_resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "_shasum": "ba1a8f1af2a0fc39650f5c850367704122063b44", + "_spec": "has-symbols@^1.0.0", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/string.prototype.matchall", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "bugs": { + "url": "https://github.com/ljharb/has-symbols/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "Determine if the JS environment has Symbol support. Supports spec, or shams.", + "devDependencies": { + "@ljharb/eslint-config": "^8.0.0", + "core-js": "^2.4.1", + "eslint": "^3.5.0", + "get-own-property-symbols": "^0.9.2", + "nsp": "^2.6.1", + "safe-publish-latest": "^1.0.1", + "tape": "^4.6.0" + }, + "engines": { + "node": ">= 0.4" + }, + "homepage": "https://github.com/ljharb/has-symbols#readme", + "keywords": [ + "Symbol", + "symbols", + "typeof", + "sham", + "polyfill", + "native", + "core-js", + "ES6" + ], + "license": "MIT", + "main": "index.js", + "name": "has-symbols", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/has-symbols.git" + }, + "scripts": { + "lint": "eslint *.js", + "posttest": "npm run --silent security", + "prepublish": "safe-publish-latest", + "pretest": "npm run --silent lint", + "security": "nsp check", + "test": "npm run --silent tests-only", + "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs", + "test:shams:corejs": "node test/shams/core-js.js", + "test:shams:getownpropertysymbols": "node test/shams/get-own-property-symbols.js", + "test:staging": "node --harmony --es-staging test", + "test:stock": "node test", + "tests-only": "npm run --silent test:stock && npm run --silent test:staging && npm run --silent test:shams" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.0.0" +} diff --git a/tools/node_modules/eslint/node_modules/has-symbols/shams.js b/tools/node_modules/eslint/node_modules/has-symbols/shams.js new file mode 100644 index 00000000000000..f6c1ff4a236371 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/has-symbols/shams.js @@ -0,0 +1,42 @@ +'use strict'; + +/* eslint complexity: [2, 17], max-statements: [2, 33] */ +module.exports = function hasSymbols() { + if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } + if (typeof Symbol.iterator === 'symbol') { return true; } + + var obj = {}; + var sym = Symbol('test'); + var symObj = Object(sym); + if (typeof sym === 'string') { return false; } + + if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } + if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } + + // temp disabled per https://github.com/ljharb/object.assign/issues/17 + // if (sym instanceof Symbol) { return false; } + // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 + // if (!(symObj instanceof Symbol)) { return false; } + + // if (typeof Symbol.prototype.toString !== 'function') { return false; } + // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } + + var symVal = 42; + obj[sym] = symVal; + for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax + if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } + + if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } + + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { return false; } + + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } + + if (typeof Object.getOwnPropertyDescriptor === 'function') { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } + } + + return true; +}; diff --git a/tools/node_modules/eslint/node_modules/has/README.mkd b/tools/node_modules/eslint/node_modules/has/README.md similarity index 100% rename from tools/node_modules/eslint/node_modules/has/README.mkd rename to tools/node_modules/eslint/node_modules/has/README.md diff --git a/tools/node_modules/eslint/node_modules/has/package.json b/tools/node_modules/eslint/node_modules/has/package.json index 1dc7641feaf438..960e40d40bf681 100644 --- a/tools/node_modules/eslint/node_modules/has/package.json +++ b/tools/node_modules/eslint/node_modules/has/package.json @@ -1,9 +1,9 @@ { "_from": "has@^1.0.1", - "_id": "has@1.0.1", + "_id": "has@1.0.3", "_inBundle": false, - "_integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "_location": "/has", + "_integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "_location": "/eslint/has", "_phantomChildren": {}, "_requested": { "type": "range", @@ -16,12 +16,13 @@ "fetchSpec": "^1.0.1" }, "_requiredBy": [ - "/remark-parse" + "/eslint/es-abstract", + "/eslint/is-regex" ], - "_resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "_shasum": "8461733f538b0837c9361e39a9ab9e9704dc2f28", + "_resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "_shasum": "722d7cbfc1f6aa8241f16dd814e011e1f41e8796", "_spec": "has@^1.0.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/es-abstract", "author": { "name": "Thiago de Arruda", "email": "tpadilha84@gmail.com" @@ -30,33 +31,44 @@ "url": "https://github.com/tarruda/has/issues" }, "bundleDependencies": false, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], "dependencies": { - "function-bind": "^1.0.2" + "function-bind": "^1.1.1" }, "deprecated": false, "description": "Object.prototype.hasOwnProperty.call shortcut", "devDependencies": { - "chai": "~1.7.2", - "mocha": "^1.21.4" + "@ljharb/eslint-config": "^12.2.1", + "eslint": "^4.19.1", + "tape": "^4.9.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4.0" }, "homepage": "https://github.com/tarruda/has", + "license": "MIT", "licenses": [ { "type": "MIT", "url": "https://github.com/tarruda/has/blob/master/LICENSE-MIT" } ], - "main": "./src/index", + "main": "./src", "name": "has", "repository": { "type": "git", "url": "git://github.com/tarruda/has.git" }, "scripts": { - "test": "node_modules/mocha/bin/mocha" + "lint": "eslint .", + "pretest": "npm run lint", + "test": "tape test" }, - "version": "1.0.1" + "version": "1.0.3" } diff --git a/tools/node_modules/eslint/node_modules/has/src/index.js b/tools/node_modules/eslint/node_modules/has/src/index.js index cdf328576e70c2..dd92dd9094edb0 100644 --- a/tools/node_modules/eslint/node_modules/has/src/index.js +++ b/tools/node_modules/eslint/node_modules/has/src/index.js @@ -1,3 +1,5 @@ +'use strict'; + var bind = require('function-bind'); module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); diff --git a/tools/node_modules/eslint/node_modules/iconv-lite/README.md b/tools/node_modules/eslint/node_modules/iconv-lite/README.md index 767daedef07cb3..c981c3708582a5 100644 --- a/tools/node_modules/eslint/node_modules/iconv-lite/README.md +++ b/tools/node_modules/eslint/node_modules/iconv-lite/README.md @@ -20,7 +20,7 @@ var iconv = require('iconv-lite'); // Convert from an encoded buffer to js string. -str = iconv.decode(new Buffer([0x68, 0x65, 0x6c, 0x6c, 0x6f]), 'win1251'); +str = iconv.decode(Buffer.from([0x68, 0x65, 0x6c, 0x6c, 0x6f]), 'win1251'); // Convert from js string to an encoded buffer. buf = iconv.encode("Sample input string", 'win1251'); @@ -154,7 +154,3 @@ $ # To view test coverage: $ npm run coverage $ open coverage/lcov-report/index.html ``` - -## Adoption -[![NPM](https://nodei.co/npm-dl/iconv-lite.png)](https://nodei.co/npm/iconv-lite/) -[![Codeship Status for ashtuchkin/iconv-lite](https://www.codeship.com/projects/81670840-fa72-0131-4520-4a01a6c01acc/status)](https://www.codeship.com/projects/29053) diff --git a/tools/node_modules/eslint/node_modules/iconv-lite/encodings/dbcs-codec.js b/tools/node_modules/eslint/node_modules/iconv-lite/encodings/dbcs-codec.js index 7b3c980b3e8c39..1fe3e160112aa9 100644 --- a/tools/node_modules/eslint/node_modules/iconv-lite/encodings/dbcs-codec.js +++ b/tools/node_modules/eslint/node_modules/iconv-lite/encodings/dbcs-codec.js @@ -1,5 +1,5 @@ "use strict"; -var Buffer = require("buffer").Buffer; +var Buffer = require("safer-buffer").Buffer; // Multibyte codec. In this scheme, a character is represented by 1 or more bytes. // Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences. @@ -281,7 +281,7 @@ function DBCSEncoder(options, codec) { } DBCSEncoder.prototype.write = function(str) { - var newBuf = new Buffer(str.length * (this.gb18030 ? 4 : 3)), + var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3)), leadSurrogate = this.leadSurrogate, seqObj = this.seqObj, nextChar = -1, i = 0, j = 0; @@ -404,7 +404,7 @@ DBCSEncoder.prototype.end = function() { if (this.leadSurrogate === -1 && this.seqObj === undefined) return; // All clean. Most often case. - var newBuf = new Buffer(10), j = 0; + var newBuf = Buffer.alloc(10), j = 0; if (this.seqObj) { // We're in the sequence. var dbcsCode = this.seqObj[DEF_CHAR]; @@ -440,7 +440,7 @@ DBCSEncoder.prototype.findIdx = findIdx; function DBCSDecoder(options, codec) { // Decoder state this.nodeIdx = 0; - this.prevBuf = new Buffer(0); + this.prevBuf = Buffer.alloc(0); // Static data this.decodeTables = codec.decodeTables; @@ -450,7 +450,7 @@ function DBCSDecoder(options, codec) { } DBCSDecoder.prototype.write = function(buf) { - var newBuf = new Buffer(buf.length*2), + var newBuf = Buffer.alloc(buf.length*2), nodeIdx = this.nodeIdx, prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length, seqStart = -this.prevBuf.length, // idx of the start of current parsed sequence. @@ -527,7 +527,7 @@ DBCSDecoder.prototype.end = function() { var buf = this.prevBuf.slice(1); // Parse remaining as usual. - this.prevBuf = new Buffer(0); + this.prevBuf = Buffer.alloc(0); this.nodeIdx = 0; if (buf.length > 0) ret += this.write(buf); diff --git a/tools/node_modules/eslint/node_modules/iconv-lite/encodings/internal.js b/tools/node_modules/eslint/node_modules/iconv-lite/encodings/internal.js index b0adf6a920c456..05ce38b276eee2 100644 --- a/tools/node_modules/eslint/node_modules/iconv-lite/encodings/internal.js +++ b/tools/node_modules/eslint/node_modules/iconv-lite/encodings/internal.js @@ -1,5 +1,5 @@ "use strict"; -var Buffer = require("buffer").Buffer; +var Buffer = require("safer-buffer").Buffer; // Export Node.js internal encodings. @@ -33,7 +33,7 @@ function InternalCodec(codecOptions, iconv) { this.encoder = InternalEncoderCesu8; // Add decoder for versions of Node not supporting CESU-8 - if (new Buffer('eda0bdedb2a9', 'hex').toString() !== '💩') { + if (Buffer.from('eda0bdedb2a9', 'hex').toString() !== '💩') { this.decoder = InternalDecoderCesu8; this.defaultCharUnicode = iconv.defaultCharUnicode; } @@ -67,7 +67,7 @@ function InternalEncoder(options, codec) { } InternalEncoder.prototype.write = function(str) { - return new Buffer(str, this.enc); + return Buffer.from(str, this.enc); } InternalEncoder.prototype.end = function() { @@ -87,11 +87,11 @@ InternalEncoderBase64.prototype.write = function(str) { this.prevStr = str.slice(completeQuads); str = str.slice(0, completeQuads); - return new Buffer(str, "base64"); + return Buffer.from(str, "base64"); } InternalEncoderBase64.prototype.end = function() { - return new Buffer(this.prevStr, "base64"); + return Buffer.from(this.prevStr, "base64"); } @@ -102,7 +102,7 @@ function InternalEncoderCesu8(options, codec) { } InternalEncoderCesu8.prototype.write = function(str) { - var buf = new Buffer(str.length * 3), bufIdx = 0; + var buf = Buffer.alloc(str.length * 3), bufIdx = 0; for (var i = 0; i < str.length; i++) { var charCode = str.charCodeAt(i); // Naive implementation, but it works because CESU-8 is especially easy diff --git a/tools/node_modules/eslint/node_modules/iconv-lite/encodings/sbcs-codec.js b/tools/node_modules/eslint/node_modules/iconv-lite/encodings/sbcs-codec.js index 7789e00ed05293..f2258237ba2724 100644 --- a/tools/node_modules/eslint/node_modules/iconv-lite/encodings/sbcs-codec.js +++ b/tools/node_modules/eslint/node_modules/iconv-lite/encodings/sbcs-codec.js @@ -1,5 +1,5 @@ "use strict"; -var Buffer = require("buffer").Buffer; +var Buffer = require("safer-buffer").Buffer; // Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that // correspond to encoded bytes (if 128 - then lower half is ASCII). @@ -20,11 +20,10 @@ function SBCSCodec(codecOptions, iconv) { codecOptions.chars = asciiString + codecOptions.chars; } - this.decodeBuf = new Buffer(codecOptions.chars, 'ucs2'); + this.decodeBuf = new Buffer.from(codecOptions.chars, 'ucs2'); // Encoding buffer. - var encodeBuf = new Buffer(65536); - encodeBuf.fill(iconv.defaultCharSingleByte.charCodeAt(0)); + var encodeBuf = new Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0)); for (var i = 0; i < codecOptions.chars.length; i++) encodeBuf[codecOptions.chars.charCodeAt(i)] = i; @@ -41,7 +40,7 @@ function SBCSEncoder(options, codec) { } SBCSEncoder.prototype.write = function(str) { - var buf = new Buffer(str.length); + var buf = Buffer.alloc(str.length); for (var i = 0; i < str.length; i++) buf[i] = this.encodeBuf[str.charCodeAt(i)]; @@ -59,7 +58,7 @@ function SBCSDecoder(options, codec) { SBCSDecoder.prototype.write = function(buf) { // Strings are immutable in JS -> we use ucs2 buffer to speed up computations. var decodeBuf = this.decodeBuf; - var newBuf = new Buffer(buf.length*2); + var newBuf = Buffer.alloc(buf.length*2); var idx1 = 0, idx2 = 0; for (var i = 0; i < buf.length; i++) { idx1 = buf[i]*2; idx2 = i*2; diff --git a/tools/node_modules/eslint/node_modules/iconv-lite/encodings/utf16.js b/tools/node_modules/eslint/node_modules/iconv-lite/encodings/utf16.js index 7e8f1591a8e6bf..54765aeee2f11e 100644 --- a/tools/node_modules/eslint/node_modules/iconv-lite/encodings/utf16.js +++ b/tools/node_modules/eslint/node_modules/iconv-lite/encodings/utf16.js @@ -1,5 +1,5 @@ "use strict"; -var Buffer = require("buffer").Buffer; +var Buffer = require("safer-buffer").Buffer; // Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js @@ -20,7 +20,7 @@ function Utf16BEEncoder() { } Utf16BEEncoder.prototype.write = function(str) { - var buf = new Buffer(str, 'ucs2'); + var buf = Buffer.from(str, 'ucs2'); for (var i = 0; i < buf.length; i += 2) { var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp; } @@ -41,7 +41,7 @@ Utf16BEDecoder.prototype.write = function(buf) { if (buf.length == 0) return ''; - var buf2 = new Buffer(buf.length + 1), + var buf2 = Buffer.alloc(buf.length + 1), i = 0, j = 0; if (this.overflowByte !== -1) { diff --git a/tools/node_modules/eslint/node_modules/iconv-lite/encodings/utf7.js b/tools/node_modules/eslint/node_modules/iconv-lite/encodings/utf7.js index 19b7194aafbd79..b7631c23a801b0 100644 --- a/tools/node_modules/eslint/node_modules/iconv-lite/encodings/utf7.js +++ b/tools/node_modules/eslint/node_modules/iconv-lite/encodings/utf7.js @@ -1,5 +1,5 @@ "use strict"; -var Buffer = require("buffer").Buffer; +var Buffer = require("safer-buffer").Buffer; // UTF-7 codec, according to https://tools.ietf.org/html/rfc2152 // See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3 @@ -26,7 +26,7 @@ function Utf7Encoder(options, codec) { Utf7Encoder.prototype.write = function(str) { // Naive implementation. // Non-direct chars are encoded as "+-"; single "+" char is encoded as "+-". - return new Buffer(str.replace(nonDirectChars, function(chunk) { + return Buffer.from(str.replace(nonDirectChars, function(chunk) { return "+" + (chunk === '+' ? '' : this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, '')) + "-"; @@ -75,7 +75,7 @@ Utf7Decoder.prototype.write = function(buf) { res += "+"; } else { var b64str = base64Accum + buf.slice(lastI, i).toString(); - res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be"); + res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be"); } if (buf[i] != minusChar) // Minus is absorbed after base64. @@ -97,7 +97,7 @@ Utf7Decoder.prototype.write = function(buf) { base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future. b64str = b64str.slice(0, canBeDecoded); - res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be"); + res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be"); } this.inBase64 = inBase64; @@ -109,7 +109,7 @@ Utf7Decoder.prototype.write = function(buf) { Utf7Decoder.prototype.end = function() { var res = ""; if (this.inBase64 && this.base64Accum.length > 0) - res = this.iconv.decode(new Buffer(this.base64Accum, 'base64'), "utf16-be"); + res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be"); this.inBase64 = false; this.base64Accum = ''; @@ -144,7 +144,7 @@ Utf7IMAPCodec.prototype.bomAware = true; function Utf7IMAPEncoder(options, codec) { this.iconv = codec.iconv; this.inBase64 = false; - this.base64Accum = new Buffer(6); + this.base64Accum = Buffer.alloc(6); this.base64AccumIdx = 0; } @@ -152,7 +152,7 @@ Utf7IMAPEncoder.prototype.write = function(str) { var inBase64 = this.inBase64, base64Accum = this.base64Accum, base64AccumIdx = this.base64AccumIdx, - buf = new Buffer(str.length*5 + 10), bufIdx = 0; + buf = Buffer.alloc(str.length*5 + 10), bufIdx = 0; for (var i = 0; i < str.length; i++) { var uChar = str.charCodeAt(i); @@ -198,7 +198,7 @@ Utf7IMAPEncoder.prototype.write = function(str) { } Utf7IMAPEncoder.prototype.end = function() { - var buf = new Buffer(10), bufIdx = 0; + var buf = Buffer.alloc(10), bufIdx = 0; if (this.inBase64) { if (this.base64AccumIdx > 0) { bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx); @@ -246,7 +246,7 @@ Utf7IMAPDecoder.prototype.write = function(buf) { res += "&"; } else { var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/'); - res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be"); + res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be"); } if (buf[i] != minusChar) // Minus may be absorbed after base64. @@ -268,7 +268,7 @@ Utf7IMAPDecoder.prototype.write = function(buf) { base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future. b64str = b64str.slice(0, canBeDecoded); - res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be"); + res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be"); } this.inBase64 = inBase64; @@ -280,7 +280,7 @@ Utf7IMAPDecoder.prototype.write = function(buf) { Utf7IMAPDecoder.prototype.end = function() { var res = ""; if (this.inBase64 && this.base64Accum.length > 0) - res = this.iconv.decode(new Buffer(this.base64Accum, 'base64'), "utf16-be"); + res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be"); this.inBase64 = false; this.base64Accum = ''; diff --git a/tools/node_modules/eslint/node_modules/iconv-lite/lib/extend-node.js b/tools/node_modules/eslint/node_modules/iconv-lite/lib/extend-node.js index a120400be99c28..87f5394a4b3966 100644 --- a/tools/node_modules/eslint/node_modules/iconv-lite/lib/extend-node.js +++ b/tools/node_modules/eslint/node_modules/iconv-lite/lib/extend-node.js @@ -1,5 +1,6 @@ "use strict"; var Buffer = require("buffer").Buffer; +// Note: not polyfilled with safer-buffer on a purpose, as overrides Buffer // == Extend Node primitives to use iconv-lite ================================= @@ -8,7 +9,8 @@ module.exports = function (iconv) { // Node authors rewrote Buffer internals to make it compatible with // Uint8Array and we cannot patch key functions since then. - iconv.supportsNodeEncodingsExtension = !(new Buffer(0) instanceof Uint8Array); + // Note: this does use older Buffer API on a purpose + iconv.supportsNodeEncodingsExtension = !(Buffer.from || new Buffer(0) instanceof Uint8Array); iconv.extendNodeEncodings = function extendNodeEncodings() { if (original) return; diff --git a/tools/node_modules/eslint/node_modules/iconv-lite/lib/index.d.ts b/tools/node_modules/eslint/node_modules/iconv-lite/lib/index.d.ts index b9c83613ef6cee..0547eb346b24f4 100644 --- a/tools/node_modules/eslint/node_modules/iconv-lite/lib/index.d.ts +++ b/tools/node_modules/eslint/node_modules/iconv-lite/lib/index.d.ts @@ -6,9 +6,9 @@ *--------------------------------------------------------------------------------------------*/ declare module 'iconv-lite' { - export function decode(buffer: NodeBuffer, encoding: string, options?: Options): string; + export function decode(buffer: Buffer, encoding: string, options?: Options): string; - export function encode(content: string, encoding: string, options?: Options): NodeBuffer; + export function encode(content: string, encoding: string, options?: Options): Buffer; export function encodingExists(encoding: string): boolean; diff --git a/tools/node_modules/eslint/node_modules/iconv-lite/lib/index.js b/tools/node_modules/eslint/node_modules/iconv-lite/lib/index.js index 9a5247212dc5ad..5391919ca2c631 100644 --- a/tools/node_modules/eslint/node_modules/iconv-lite/lib/index.js +++ b/tools/node_modules/eslint/node_modules/iconv-lite/lib/index.js @@ -2,7 +2,7 @@ // Some environments don't have global Buffer (e.g. React Native). // Solution would be installing npm modules "buffer" and "stream" explicitly. -var Buffer = require("buffer").Buffer; +var Buffer = require("safer-buffer").Buffer; var bomHandling = require("./bom-handling"), iconv = module.exports; @@ -34,7 +34,7 @@ iconv.decode = function decode(buf, encoding, options) { iconv.skipDecodeWarning = true; } - buf = new Buffer("" + (buf || ""), "binary"); // Ensure buffer. + buf = Buffer.from("" + (buf || ""), "binary"); // Ensure buffer. } var decoder = iconv.getDecoder(encoding, options); @@ -65,7 +65,7 @@ iconv.getCodec = function getCodec(encoding) { iconv.encodings = require("../encodings"); // Lazy load all encoding definitions. // Canonicalize encoding name: strip all non-alphanumeric chars and appended year. - var enc = (''+encoding).toLowerCase().replace(/[^0-9a-z]|:\d{4}$/g, ""); + var enc = iconv._canonicalizeEncoding(encoding); // Traverse iconv.encodings to find actual codec. var codecOptions = {}; @@ -108,6 +108,11 @@ iconv.getCodec = function getCodec(encoding) { } } +iconv._canonicalizeEncoding = function(encoding) { + // Canonicalize encoding name: strip all non-alphanumeric chars and appended year. + return (''+encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); +} + iconv.getEncoder = function getEncoder(encoding, options) { var codec = iconv.getCodec(encoding), encoder = new codec.encoder(options, codec); diff --git a/tools/node_modules/eslint/node_modules/iconv-lite/package.json b/tools/node_modules/eslint/node_modules/iconv-lite/package.json index e29da0275c8596..7d1e9addd3179f 100644 --- a/tools/node_modules/eslint/node_modules/iconv-lite/package.json +++ b/tools/node_modules/eslint/node_modules/iconv-lite/package.json @@ -1,8 +1,8 @@ { "_from": "iconv-lite@^0.4.17", - "_id": "iconv-lite@0.4.19", + "_id": "iconv-lite@0.4.23", "_inBundle": false, - "_integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "_integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "_location": "/eslint/iconv-lite", "_phantomChildren": {}, "_requested": { @@ -18,72 +18,25 @@ "_requiredBy": [ "/eslint/external-editor" ], - "_resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "_shasum": "f7468f60135f5e5dad3399c0a81be9a1603a082b", + "_resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "_shasum": "297871f63be507adcfbfca715d0cd0eed84e9a63", "_spec": "iconv-lite@^0.4.17", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/external-editor", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/external-editor", "author": { "name": "Alexander Shtuchkin", "email": "ashtuchkin@gmail.com" }, "browser": { - "./extend-node": false, - "./streams": false + "./lib/extend-node": false, + "./lib/streams": false }, "bugs": { "url": "https://github.com/ashtuchkin/iconv-lite/issues" }, "bundleDependencies": false, - "contributors": [ - { - "name": "Jinwu Zhan", - "url": "https://github.com/jenkinv" - }, - { - "name": "Adamansky Anton", - "url": "https://github.com/adamansky" - }, - { - "name": "George Stagas", - "url": "https://github.com/stagas" - }, - { - "name": "Mike D Pilsbury", - "url": "https://github.com/pekim" - }, - { - "name": "Niggler", - "url": "https://github.com/Niggler" - }, - { - "name": "wychi", - "url": "https://github.com/wychi" - }, - { - "name": "David Kuo", - "url": "https://github.com/david50407" - }, - { - "name": "ChangZhuo Chen", - "url": "https://github.com/czchen" - }, - { - "name": "Lee Treveil", - "url": "https://github.com/leetreveil" - }, - { - "name": "Brian White", - "url": "https://github.com/mscdex" - }, - { - "name": "Mithgol", - "url": "https://github.com/Mithgol" - }, - { - "name": "Nazar Leush", - "url": "https://github.com/nleush" - } - ], + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, "deprecated": false, "description": "Convert character encodings in pure javascript.", "devDependencies": { @@ -91,8 +44,8 @@ "errto": "*", "iconv": "*", "istanbul": "*", - "mocha": "*", - "request": "*", + "mocha": "^3.1.0", + "request": "~2.81.0", "semver": "*", "unorm": "*" }, @@ -119,5 +72,5 @@ "test": "mocha --reporter spec --grep ." }, "typings": "./lib/index.d.ts", - "version": "0.4.19" + "version": "0.4.23" } diff --git a/tools/node_modules/eslint/node_modules/ignore/ignore.js b/tools/node_modules/eslint/node_modules/ignore/ignore.js index 0c2f15e1778ae6..111fceb2c2d766 100644 --- a/tools/node_modules/eslint/node_modules/ignore/ignore.js +++ b/tools/node_modules/eslint/node_modules/ignore/ignore.js @@ -374,7 +374,7 @@ function (match) { var NEGATIVE_REPLACERS = [].concat(DEFAULT_REPLACER_PREFIX, [ -// #24 +// #24, #38 // The MISSING rule of [gitignore docs](https://git-scm.com/docs/gitignore) // A negative pattern without a trailing wildcard should not // re-include the things inside that directory. @@ -382,7 +382,7 @@ var NEGATIVE_REPLACERS = [].concat(DEFAULT_REPLACER_PREFIX, [ // eg: // ['node_modules/*', '!node_modules'] // should ignore `node_modules/a.js` -[/(?:[^*\/])$/, function (match) { +[/(?:[^*])$/, function (match) { return match + '(?=$|\\/$)'; }]], DEFAULT_REPLACER_SUFFIX); diff --git a/tools/node_modules/eslint/node_modules/ignore/index.d.ts b/tools/node_modules/eslint/node_modules/ignore/index.d.ts index 38cde09a77256b..fab7d480ba14c1 100644 --- a/tools/node_modules/eslint/node_modules/ignore/index.d.ts +++ b/tools/node_modules/eslint/node_modules/ignore/index.d.ts @@ -15,15 +15,15 @@ interface Ignore { /** * Filters the given array of pathnames, and returns the filtered array. * NOTICE that each path here should be a relative path to the root of your repository. - * @param {string[]} paths the array of paths to be filtered. - * @returns IgnoreBase + * @param paths the array of paths to be filtered. + * @returns The filtered array of paths */ - filter(paths: string[]): Ignore + filter(paths: string[]): string[] /** - * Creates a filter function which could filter + * Creates a filter function which could filter * an array of paths with Array.prototype.filter. */ - createFilter(): (path: string) => Ignore + createFilter(): (path: string) => boolean /** * Returns Boolean whether pathname should be ignored. @@ -38,4 +38,4 @@ interface Ignore { */ declare function ignore(): Ignore -export = ignore +export default ignore diff --git a/tools/node_modules/eslint/node_modules/ignore/package.json b/tools/node_modules/eslint/node_modules/ignore/package.json index 4369a42cd555c8..54fe7fb02988bd 100644 --- a/tools/node_modules/eslint/node_modules/ignore/package.json +++ b/tools/node_modules/eslint/node_modules/ignore/package.json @@ -1,8 +1,8 @@ { "_from": "ignore@^3.3.3", - "_id": "ignore@3.3.7", + "_id": "ignore@3.3.10", "_inBundle": false, - "_integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "_integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "_location": "/eslint/ignore", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/eslint" ], - "_resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", - "_shasum": "612289bfb3c220e186a58118618d5be8c1bab021", + "_resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "_shasum": "0a97fb876986e8081c631160f8f9f389157f0043", "_spec": "ignore@^3.3.3", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "kael" }, @@ -35,14 +35,15 @@ "babel-cli": "^6.26.0", "babel-preset-es2015": "^6.24.1", "chai": "~1.7.2", - "codecov": "^1.0.1", + "codecov": "^3.0.2", "istanbul": "^0.4.5", "mkdirp": "^0.5.1", "mocha": "~1.13.0", "pre-suf": "^1.0.4", "rimraf": "^2.6.2", "spawn-sync": "^1.0.15", - "tmp": "0.0.33" + "tmp": "0.0.33", + "typescript": "^2.9.2" }, "files": [ "ignore.js", @@ -75,8 +76,9 @@ "build": "babel -o ignore.js index.js", "cov-report": "istanbul report", "prepublish": "npm run build", - "test": "npm run build && istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec ./test/ignore.js && codecov", - "test-no-cov": "npm run build && mocha --reporter spec ./test/ignore.js" + "test": "npm run tsc && npm run build && istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec ./test/ignore.js && codecov", + "test-no-cov": "npm run tsc && npm run build && mocha --reporter spec ./test/ignore.js", + "tsc": "tsc ./test/ts/simple.ts" }, - "version": "3.3.7" + "version": "3.3.10" } diff --git a/tools/node_modules/eslint/node_modules/imurmurhash/package.json b/tools/node_modules/eslint/node_modules/imurmurhash/package.json index a26cadb571f623..06c14f0353f145 100644 --- a/tools/node_modules/eslint/node_modules/imurmurhash/package.json +++ b/tools/node_modules/eslint/node_modules/imurmurhash/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "_shasum": "9218b9b2b928a238b13dc4fb6b6d576f231453ea", "_spec": "imurmurhash@^0.1.4", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Jens Taylor", "email": "jensyt@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/inflight/package.json b/tools/node_modules/eslint/node_modules/inflight/package.json index 3e010604e7064b..99287f1b4c0b95 100644 --- a/tools/node_modules/eslint/node_modules/inflight/package.json +++ b/tools/node_modules/eslint/node_modules/inflight/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "_shasum": "49bd6331d7d02d0c09bc910a1075ba8165b56df9", "_spec": "inflight@^1.0.4", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/glob", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/glob", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", diff --git a/tools/node_modules/eslint/node_modules/inherits/package.json b/tools/node_modules/eslint/node_modules/inherits/package.json index 32a17b952efca7..22c4721011aff0 100644 --- a/tools/node_modules/eslint/node_modules/inherits/package.json +++ b/tools/node_modules/eslint/node_modules/inherits/package.json @@ -1,5 +1,5 @@ { - "_from": "inherits@^2.0.3", + "_from": "inherits@2", "_id": "inherits@2.0.3", "_inBundle": false, "_integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", @@ -8,22 +8,20 @@ "_requested": { "type": "range", "registry": true, - "raw": "inherits@^2.0.3", + "raw": "inherits@2", "name": "inherits", "escapedName": "inherits", - "rawSpec": "^2.0.3", + "rawSpec": "2", "saveSpec": null, - "fetchSpec": "^2.0.3" + "fetchSpec": "2" }, "_requiredBy": [ - "/eslint/concat-stream", - "/eslint/glob", - "/eslint/readable-stream" + "/eslint/glob" ], "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "_shasum": "633c2c83e3da42a502f52466022480f4208261de", - "_spec": "inherits@^2.0.3", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/concat-stream", + "_spec": "inherits@2", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/glob", "browser": "./inherits_browser.js", "bugs": { "url": "https://github.com/isaacs/inherits/issues" diff --git a/tools/node_modules/eslint/node_modules/inquirer/README.md b/tools/node_modules/eslint/node_modules/inquirer/README.md index 56f65b5cb6f738..8989249d582677 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/README.md +++ b/tools/node_modules/eslint/node_modules/inquirer/README.md @@ -5,6 +5,8 @@ Inquirer.js A collection of common interactive command line user interfaces. +**Version 4.x** only supports Node 6 and over. For Node 4 support please use [version 3.x](https://github.com/SBoudrias/Inquirer.js/tree/v3.3.0). + ## Table of Contents 1. [Documentation](#documentation) @@ -53,7 +55,7 @@ npm install inquirer ```javascript var inquirer = require('inquirer'); -inquirer.prompt([/* Pass your questions in here */]).then(function (answers) { +inquirer.prompt([/* Pass your questions in here */]).then(answers => { // Use user feedback for... whatever!! }); ``` @@ -111,17 +113,18 @@ A question object is a `hash` containing question related values: Array values can be simple `strings`, or `objects` containing a `name` (to display in list), a `value` (to save in the answers hash) and a `short` (to display after selection) properties. The choices array can also contain [a `Separator`](#separator). - **validate**: (Function) Receive the user input and answers hash. Should return `true` if the value is valid, and an error message (`String`) otherwise. If `false` is returned, a default error message is provided. - **filter**: (Function) Receive the user input and return the filtered value to be used inside the program. The value returned will be added to the _Answers_ hash. +- **transformer**: (Function) Receive the user input and answers hash, and return a transformed value to display to the user. The transformation only impacts what is shown while editing. It does not modify the answers hash. - **when**: (Function, Boolean) Receive the current user answers hash and should return `true` or `false` depending on whether or not this question should be asked. The value can also be a simple boolean. - **pageSize**: (Number) Change the number of lines that will be rendered when using `list`, `rawList`, `expand` or `checkbox`. - **prefix**: (String) Change the default _prefix_ message. - **suffix**: (String) Change the default _suffix_ message. -`default`, `choices`(if defined as functions), `validate`, `filter` and `when` functions can be called asynchronous. Either return a promise or use `this.async()` to get a callback you'll call with the final value. +`default`, `choices`(if defined as functions), `validate`, `filter` and `when` functions can be called asynchronously. Either return a promise or use `this.async()` to get a callback you'll call with the final value. ``` javascript { /* Preferred way: with promise */ - filter: function () { + filter() { return new Promise(/* etc... */); }, @@ -131,7 +134,7 @@ Array values can be simple `strings`, or `objects` containing a `name` (to displ var done = this.async(); // Do async stuff - setTimeout(function () { + setTimeout(function() { if (typeof input !== 'number') { // Pass the return value in the done callback done('You need to provide a number'); @@ -186,16 +189,16 @@ Separator instances have a property `type` equal to `separator`. This should all Take `type`, `name`, `message`, `choices`[, `default`, `filter`] properties. (Note that default must be the choice `index` in the array or a choice `value`) -![List prompt](assets/screenshots/list-prompt.png) +![List prompt](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/list.svg) --- #### Raw List - `{type: 'rawlist'}` Take `type`, `name`, `message`, `choices`[, `default`, `filter`] properties. (Note that -default must the choice `index` in the array) +default must be the choice `index` in the array) -![Raw list prompt](assets/screenshots/rawlist-prompt.png) +![Raw list prompt](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/rawlist.svg) --- @@ -208,8 +211,8 @@ Note that the `choices` object will take an extra parameter called `key` for the See `examples/expand.js` for a running example. -![Expand prompt closed](assets/screenshots/expand-prompt-1.png) -![Expand prompt expanded](assets/screenshots/expand-prompt-2.png) +![Expand prompt closed](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/expand-y.svg) +![Expand prompt expanded](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/expand-d.svg) --- @@ -221,7 +224,7 @@ Choices marked as `{checked: true}` will be checked by default. Choices whose property `disabled` is truthy will be unselectable. If `disabled` is a string, then the string will be outputted next to the disabled choice, otherwise it'll default to `"Disabled"`. The `disabled` property can also be a synchronous function receiving the current answers as argument and returning a boolean or a string. -![Checkbox prompt](assets/screenshots/checkbox-prompt.png) +![Checkbox prompt](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/checkbox.svg) --- @@ -229,15 +232,15 @@ Choices whose property `disabled` is truthy will be unselectable. If `disabled` Take `type`, `name`, `message`[, `default`] properties. `default` is expected to be a boolean if used. -![Confirm prompt](assets/screenshots/confirm-prompt.png) +![Confirm prompt](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/confirm.svg) --- #### Input - `{type: 'input'}` -Take `type`, `name`, `message`[, `default`, `filter`, `validate`] properties. +Take `type`, `name`, `message`[, `default`, `filter`, `validate`, `transformer`] properties. -![Input prompt](assets/screenshots/input-prompt.png) +![Input prompt](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/input.svg) --- @@ -245,7 +248,7 @@ Take `type`, `name`, `message`[, `default`, `filter`, `validate`] properties. Take `type`, `name`, `message`[, `default`, `filter`, `validate`] properties. -![Password prompt](assets/screenshots/password-prompt.png) +![Password prompt](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/password.svg) --- @@ -284,7 +287,7 @@ ui.updateBottomBar('new bottom bar content'); ## Reactive interface -Internally, Inquirer uses the [JS reactive extension](https://github.com/Reactive-Extensions/RxJS) to handle events and async flows. +Internally, Inquirer uses the [JS reactive extension](https://github.com/ReactiveX/rxjs) to handle events and async flows. This mean you can take advantage of this feature to provide more advanced flows. For example, you can dynamically add questions to be asked: @@ -293,11 +296,11 @@ var prompts = new Rx.Subject(); inquirer.prompt(prompts); // At some point in the future, push new questions -prompts.onNext({ /* question... */ }); -prompts.onNext({ /* question... */ }); +prompts.next({ /* question... */ }); +prompts.next({ /* question... */ }); // When you're done -prompts.onCompleted(); +prompts.complete(); ``` And using the return value `process` property, you can access more fine grained callbacks: @@ -366,6 +369,11 @@ Presents a list of options as the user types, compatible with other packages suc
![autocomplete prompt](https://github.com/mokkabonna/inquirer-autocomplete-prompt/raw/master/inquirer.gif) +[__checkbox-plus__](https://github.com/faressoft/inquirer-checkbox-plus-prompt)
+Checkbox list with autocomplete and other additions
+
+![checkbox-plus](https://github.com/faressoft/inquirer-checkbox-plus-prompt/raw/master/demo.gif) + [__datetime__](https://github.com/DerekTBrown/inquirer-datepicker-prompt)
Customizable date/time selector using both number pad and arrow keys

@@ -384,3 +392,6 @@ Simple prompt with command history and dynamic autocomplete Prompt for input chalk-pipe style strings

![inquirer-chalk-pipe](https://github.com/LitoMore/inquirer-chalk-pipe/raw/master/screenshot.gif) + +[__inquirer-search-checkbox__](https://github.com/clinyong/inquirer-search-checkbox)
+Searchable Inquirer checkbox
diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/inquirer.js b/tools/node_modules/eslint/node_modules/inquirer/lib/inquirer.js index 5bbd801b42897d..292fccdbf03412 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/inquirer.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/inquirer.js @@ -1,3 +1,4 @@ +'use strict'; /** * Inquirer.js * A collection of common interactive command line user interfaces. @@ -21,8 +22,8 @@ inquirer.ui = { /** * Create a new self-contained prompt module. */ -inquirer.createPromptModule = function (opt) { - var promptModule = function (questions) { +inquirer.createPromptModule = function(opt) { + var promptModule = function(questions) { var ui = new inquirer.ui.Prompt(promptModule.prompts, opt); var promise = ui.run(questions); @@ -41,7 +42,7 @@ inquirer.createPromptModule = function (opt) { * @return {inquirer} */ - promptModule.registerPrompt = function (name, prompt) { + promptModule.registerPrompt = function(name, prompt) { promptModule.prompts[name] = prompt; return this; }; @@ -50,7 +51,7 @@ inquirer.createPromptModule = function (opt) { * Register the defaults provider prompts */ - promptModule.restoreDefaultPrompts = function () { + promptModule.restoreDefaultPrompts = function() { this.registerPrompt('list', require('./prompts/list')); this.registerPrompt('input', require('./prompts/input')); this.registerPrompt('confirm', require('./prompts/confirm')); @@ -68,7 +69,7 @@ inquirer.createPromptModule = function (opt) { /** * Public CLI helper interface - * @param {Array|Object|rx.Observable} questions - Questions settings array + * @param {Array|Object|Rx.Observable} questions - Questions settings array * @param {Function} cb - Callback being passed the user answers * @return {inquirer.ui.Prompt} */ @@ -76,9 +77,9 @@ inquirer.createPromptModule = function (opt) { inquirer.prompt = inquirer.createPromptModule(); // Expose helper functions on the top level for easiest usage by common users -inquirer.registerPrompt = function (name, prompt) { +inquirer.registerPrompt = function(name, prompt) { inquirer.prompt.registerPrompt(name, prompt); }; -inquirer.restoreDefaultPrompts = function () { +inquirer.restoreDefaultPrompts = function() { inquirer.prompt.restoreDefaultPrompts(); }; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/objects/choice.js b/tools/node_modules/eslint/node_modules/inquirer/lib/objects/choice.js index 51affac6dc1476..634e6bcd1d6636 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/objects/choice.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/objects/choice.js @@ -9,27 +9,29 @@ var _ = require('lodash'); * at least one of `value` or `name` property */ -var Choice = module.exports = function (val, answers) { - // Don't process Choice and Separator object - if (val instanceof Choice || val.type === 'separator') { - return val; - } +module.exports = class Choice { + constructor(val, answers) { + // Don't process Choice and Separator object + if (val instanceof Choice || val.type === 'separator') { + return val; + } - if (_.isString(val)) { - this.name = val; - this.value = val; - this.short = val; - } else { - _.extend(this, val, { - name: val.name || val.value, - value: 'value' in val ? val.value : val.name, - short: val.short || val.name || val.value - }); - } + if (_.isString(val)) { + this.name = val; + this.value = val; + this.short = val; + } else { + _.extend(this, val, { + name: val.name || val.value, + value: 'value' in val ? val.value : val.name, + short: val.short || val.name || val.value + }); + } - if (_.isFunction(val.disabled)) { - this.disabled = val.disabled(answers); - } else { - this.disabled = val.disabled; + if (_.isFunction(val.disabled)) { + this.disabled = val.disabled(answers); + } else { + this.disabled = val.disabled; + } } }; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/objects/choices.js b/tools/node_modules/eslint/node_modules/inquirer/lib/objects/choices.js index 41a36293cde64c..7dd18a9149c9b6 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/objects/choices.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/objects/choices.js @@ -11,102 +11,104 @@ var Choice = require('./choice'); * @param {Array} choices All `choice` to keep in the collection */ -var Choices = module.exports = function (choices, answers) { - this.choices = choices.map(function (val) { - if (val.type === 'separator') { - if (!(val instanceof Separator)) { - val = new Separator(val.line); +module.exports = class Choices { + constructor(choices, answers) { + this.choices = choices.map(val => { + if (val.type === 'separator') { + if (!(val instanceof Separator)) { + val = new Separator(val.line); + } + return val; } - return val; - } - return new Choice(val, answers); - }); - - this.realChoices = this.choices - .filter(Separator.exclude) - .filter(function (item) { - return !item.disabled; + return new Choice(val, answers); }); - Object.defineProperty(this, 'length', { - get: function () { - return this.choices.length; - }, - set: function (val) { - this.choices.length = val; - } - }); - - Object.defineProperty(this, 'realLength', { - get: function () { - return this.realChoices.length; - }, - set: function () { - throw new Error('Cannot set `realLength` of a Choices collection'); - } - }); -}; + this.realChoices = this.choices + .filter(Separator.exclude) + .filter(item => !item.disabled); -/** - * Get a valid choice from the collection - * @param {Number} selector The selected choice index - * @return {Choice|Undefined} Return the matched choice or undefined - */ + Object.defineProperty(this, 'length', { + get() { + return this.choices.length; + }, + set(val) { + this.choices.length = val; + } + }); -Choices.prototype.getChoice = function (selector) { - assert(_.isNumber(selector)); - return this.realChoices[selector]; -}; + Object.defineProperty(this, 'realLength', { + get() { + return this.realChoices.length; + }, + set() { + throw new Error('Cannot set `realLength` of a Choices collection'); + } + }); + } -/** - * Get a raw element from the collection - * @param {Number} selector The selected index value - * @return {Choice|Undefined} Return the matched choice or undefined - */ + /** + * Get a valid choice from the collection + * @param {Number} selector The selected choice index + * @return {Choice|Undefined} Return the matched choice or undefined + */ -Choices.prototype.get = function (selector) { - assert(_.isNumber(selector)); - return this.choices[selector]; -}; + getChoice(selector) { + assert(_.isNumber(selector)); + return this.realChoices[selector]; + } -/** - * Match the valid choices against a where clause - * @param {Object} whereClause Lodash `where` clause - * @return {Array} Matching choices or empty array - */ + /** + * Get a raw element from the collection + * @param {Number} selector The selected index value + * @return {Choice|Undefined} Return the matched choice or undefined + */ -Choices.prototype.where = function (whereClause) { - return _.filter(this.realChoices, whereClause); -}; + get(selector) { + assert(_.isNumber(selector)); + return this.choices[selector]; + } -/** - * Pluck a particular key from the choices - * @param {String} propertyName Property name to select - * @return {Array} Selected properties - */ + /** + * Match the valid choices against a where clause + * @param {Object} whereClause Lodash `where` clause + * @return {Array} Matching choices or empty array + */ -Choices.prototype.pluck = function (propertyName) { - return _.map(this.realChoices, propertyName); -}; + where(whereClause) { + return _.filter(this.realChoices, whereClause); + } -// Expose usual Array methods -Choices.prototype.indexOf = function () { - return this.choices.indexOf.apply(this.choices, arguments); -}; -Choices.prototype.forEach = function () { - return this.choices.forEach.apply(this.choices, arguments); -}; -Choices.prototype.filter = function () { - return this.choices.filter.apply(this.choices, arguments); -}; -Choices.prototype.find = function (func) { - return _.find(this.choices, func); -}; -Choices.prototype.push = function () { - var objs = _.map(arguments, function (val) { - return new Choice(val); - }); - this.choices.push.apply(this.choices, objs); - this.realChoices = this.choices.filter(Separator.exclude); - return this.choices; + /** + * Pluck a particular key from the choices + * @param {String} propertyName Property name to select + * @return {Array} Selected properties + */ + + pluck(propertyName) { + return _.map(this.realChoices, propertyName); + } + + // Expose usual Array methods + indexOf() { + return this.choices.indexOf.apply(this.choices, arguments); + } + + forEach() { + return this.choices.forEach.apply(this.choices, arguments); + } + + filter() { + return this.choices.filter.apply(this.choices, arguments); + } + + find(func) { + return _.find(this.choices, func); + } + + push() { + var objs = _.map(arguments, val => new Choice(val)); + this.choices.push.apply(this.choices, objs); + this.realChoices = this.choices.filter(Separator.exclude); + return this.choices; + } }; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/objects/separator.js b/tools/node_modules/eslint/node_modules/inquirer/lib/objects/separator.js index abfaef17f2e625..e4beb7a1fa3806 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/objects/separator.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/objects/separator.js @@ -9,10 +9,20 @@ var figures = require('figures'); * @param {String} line Separation line content (facultative) */ -var Separator = module.exports = function (line) { - this.type = 'separator'; - this.line = chalk.dim(line || new Array(15).join(figures.line)); -}; +class Separator { + constructor(line) { + this.type = 'separator'; + this.line = chalk.dim(line || new Array(15).join(figures.line)); + } + + /** + * Stringify separator + * @return {String} the separator display string + */ + toString() { + return this.line; + } +} /** * Helper function returning false if object is a separator @@ -20,15 +30,8 @@ var Separator = module.exports = function (line) { * @return {Boolean} `false` if object is a separator */ -Separator.exclude = function (obj) { +Separator.exclude = function(obj) { return obj.type !== 'separator'; }; -/** - * Stringify separator - * @return {String} the separator display string - */ - -Separator.prototype.toString = function () { - return this.line; -}; +module.exports = Separator; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/base.js b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/base.js index c7fd14fbef0092..603558c0c6a413 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/base.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/base.js @@ -1,3 +1,4 @@ +'use strict'; /** * Base prompt implementation * Should be extended by prompt types. @@ -9,131 +10,124 @@ var runAsync = require('run-async'); var Choices = require('../objects/choices'); var ScreenManager = require('../utils/screen-manager'); -var Prompt = module.exports = function (question, rl, answers) { - // Setup instance defaults property - _.assign(this, { - answers: answers, - status: 'pending' - }); - - // Set defaults prompt options - this.opt = _.defaults(_.clone(question), { - validate: function () { - return true; - }, - filter: function (val) { - return val; - }, - when: function () { - return true; - }, - suffix: '', - prefix: chalk.green('?') - }); - - // Check to make sure prompt requirements are there - if (!this.opt.message) { - this.throwParamError('message'); - } - if (!this.opt.name) { - this.throwParamError('name'); - } +class Prompt { + constructor(question, rl, answers) { + // Setup instance defaults property + _.assign(this, { + answers: answers, + status: 'pending' + }); - // Normalize choices - if (Array.isArray(this.opt.choices)) { - this.opt.choices = new Choices(this.opt.choices, answers); - } + // Set defaults prompt options + this.opt = _.defaults(_.clone(question), { + validate: () => true, + filter: val => val, + when: () => true, + suffix: '', + prefix: chalk.green('?') + }); - this.rl = rl; - this.screen = new ScreenManager(this.rl); -}; + // Check to make sure prompt requirements are there + if (!this.opt.message) { + this.throwParamError('message'); + } + if (!this.opt.name) { + this.throwParamError('name'); + } + + // Normalize choices + if (Array.isArray(this.opt.choices)) { + this.opt.choices = new Choices(this.opt.choices, answers); + } + + this.rl = rl; + this.screen = new ScreenManager(this.rl); + } -/** - * Start the Inquiry session and manage output value filtering - * @return {Promise} - */ + /** + * Start the Inquiry session and manage output value filtering + * @return {Promise} + */ -Prompt.prototype.run = function () { - return new Promise(function (resolve) { - this._run(function (value) { - resolve(value); + run() { + return new Promise(resolve => { + this._run(value => resolve(value)); }); - }.bind(this)); -}; - -// default noop (this one should be overwritten in prompts) -Prompt.prototype._run = function (cb) { - cb(); -}; - -/** - * Throw an error telling a required parameter is missing - * @param {String} name Name of the missing param - * @return {Throw Error} - */ + } -Prompt.prototype.throwParamError = function (name) { - throw new Error('You must provide a `' + name + '` parameter'); -}; + // Default noop (this one should be overwritten in prompts) + _run(cb) { + cb(); + } -/** - * Called when the UI closes. Override to do any specific cleanup necessary - */ -Prompt.prototype.close = function () { - this.screen.releaseCursor(); -}; + /** + * Throw an error telling a required parameter is missing + * @param {String} name Name of the missing param + * @return {Throw Error} + */ -/** - * Run the provided validation method each time a submit event occur. - * @param {Rx.Observable} submit - submit event flow - * @return {Object} Object containing two observables: `success` and `error` - */ -Prompt.prototype.handleSubmitEvents = function (submit) { - var self = this; - var validate = runAsync(this.opt.validate); - var filter = runAsync(this.opt.filter); - var validation = submit.flatMap(function (value) { - return filter(value, self.answers).then(function (filteredValue) { - return validate(filteredValue, self.answers).then(function (isValid) { - return {isValid: isValid, value: filteredValue}; - }, function (err) { - return {isValid: err}; - }); - }, function (err) { - return {isValid: err}; - }); - }).share(); - - var success = validation - .filter(function (state) { - return state.isValid === true; - }) - .take(1); - - var error = validation - .filter(function (state) { - return state.isValid !== true; - }) - .takeUntil(success); - - return { - success: success, - error: error - }; -}; + throwParamError(name) { + throw new Error('You must provide a `' + name + '` parameter'); + } -/** - * Generate the prompt question string - * @return {String} prompt question string - */ + /** + * Called when the UI closes. Override to do any specific cleanup necessary + */ + close() { + this.screen.releaseCursor(); + } -Prompt.prototype.getQuestion = function () { - var message = this.opt.prefix + ' ' + chalk.bold(this.opt.message) + this.opt.suffix + chalk.reset(' '); + /** + * Run the provided validation method each time a submit event occur. + * @param {Rx.Observable} submit - submit event flow + * @return {Object} Object containing two observables: `success` and `error` + */ + handleSubmitEvents(submit) { + var self = this; + var validate = runAsync(this.opt.validate); + var filter = runAsync(this.opt.filter); + var validation = submit + .flatMap(value => + filter(value, self.answers).then( + filteredValue => + validate(filteredValue, self.answers).then( + isValid => ({ isValid: isValid, value: filteredValue }), + err => ({ isValid: err }) + ), + err => ({ isValid: err }) + ) + ) + .share(); + + var success = validation.filter(state => state.isValid === true).take(1); + var error = validation.filter(state => state.isValid !== true).takeUntil(success); + + return { + success: success, + error: error + }; + } - // Append the default if available, and if question isn't answered - if (this.opt.default != null && this.status !== 'answered') { - message += chalk.dim('(' + this.opt.default + ') '); + /** + * Generate the prompt question string + * @return {String} prompt question string + */ + + getQuestion() { + var message = + this.opt.prefix + + ' ' + + chalk.bold(this.opt.message) + + this.opt.suffix + + chalk.reset(' '); + + // Append the default if available, and if question isn't answered + if (this.opt.default != null && this.status !== 'answered') { + message += chalk.dim('(' + this.opt.default + ') '); + } + + return message; } +} - return message; -}; +module.exports = Prompt; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/checkbox.js b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/checkbox.js index 52336e3f79d116..5566a1601dbb7c 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/checkbox.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/checkbox.js @@ -1,9 +1,9 @@ +'use strict'; /** * `list` type prompt */ var _ = require('lodash'); -var util = require('util'); var chalk = require('chalk'); var cliCursor = require('cli-cursor'); var figures = require('figures'); @@ -11,186 +11,191 @@ var Base = require('./base'); var observe = require('../utils/events'); var Paginator = require('../utils/paginator'); -/** - * Module exports - */ +class CheckboxPrompt extends Base { + constructor(questions, rl, answers) { + super(questions, rl, answers); -module.exports = Prompt; + if (!this.opt.choices) { + this.throwParamError('choices'); + } -/** - * Constructor - */ + if (_.isArray(this.opt.default)) { + this.opt.choices.forEach(function(choice) { + if (this.opt.default.indexOf(choice.value) >= 0) { + choice.checked = true; + } + }, this); + } -function Prompt() { - Base.apply(this, arguments); + this.pointer = 0; + this.firstRender = true; - if (!this.opt.choices) { - this.throwParamError('choices'); - } + // Make sure no default is set (so it won't be printed) + this.opt.default = null; - if (_.isArray(this.opt.default)) { - this.opt.choices.forEach(function (choice) { - if (this.opt.default.indexOf(choice.value) >= 0) { - choice.checked = true; - } - }, this); + this.paginator = new Paginator(this.screen); } - this.pointer = 0; - this.firstRender = true; - - // Make sure no default is set (so it won't be printed) - this.opt.default = null; + /** + * Start the Inquiry session + * @param {Function} cb Callback when prompt is done + * @return {this} + */ + + _run(cb) { + this.done = cb; + + var events = observe(this.rl); + + var validation = this.handleSubmitEvents( + events.line.map(this.getCurrentValue.bind(this)) + ); + validation.success.forEach(this.onEnd.bind(this)); + validation.error.forEach(this.onError.bind(this)); + + events.normalizedUpKey.takeUntil(validation.success).forEach(this.onUpKey.bind(this)); + events.normalizedDownKey + .takeUntil(validation.success) + .forEach(this.onDownKey.bind(this)); + events.numberKey.takeUntil(validation.success).forEach(this.onNumberKey.bind(this)); + events.spaceKey.takeUntil(validation.success).forEach(this.onSpaceKey.bind(this)); + events.aKey.takeUntil(validation.success).forEach(this.onAllKey.bind(this)); + events.iKey.takeUntil(validation.success).forEach(this.onInverseKey.bind(this)); + + // Init the prompt + cliCursor.hide(); + this.render(); + this.firstRender = false; + + return this; + } - this.paginator = new Paginator(); -} -util.inherits(Prompt, Base); + /** + * Render the prompt to screen + * @return {CheckboxPrompt} self + */ + + render(error) { + // Render question + var message = this.getQuestion(); + var bottomContent = ''; + + if (this.firstRender) { + message += + '(Press ' + + chalk.cyan.bold('') + + ' to select, ' + + chalk.cyan.bold('') + + ' to toggle all, ' + + chalk.cyan.bold('') + + ' to invert selection)'; + } -/** - * Start the Inquiry session - * @param {Function} cb Callback when prompt is done - * @return {this} - */ + // Render choices or answer depending on the state + if (this.status === 'answered') { + message += chalk.cyan(this.selection.join(', ')); + } else { + var choicesStr = renderChoices(this.opt.choices, this.pointer); + var indexPosition = this.opt.choices.indexOf( + this.opt.choices.getChoice(this.pointer) + ); + message += + '\n' + this.paginator.paginate(choicesStr, indexPosition, this.opt.pageSize); + } -Prompt.prototype._run = function (cb) { - this.done = cb; + if (error) { + bottomContent = chalk.red('>> ') + error; + } - var events = observe(this.rl); + this.screen.render(message, bottomContent); + } - var validation = this.handleSubmitEvents( - events.line.map(this.getCurrentValue.bind(this)) - ); - validation.success.forEach(this.onEnd.bind(this)); - validation.error.forEach(this.onError.bind(this)); + /** + * When user press `enter` key + */ - events.normalizedUpKey.takeUntil(validation.success).forEach(this.onUpKey.bind(this)); - events.normalizedDownKey.takeUntil(validation.success).forEach(this.onDownKey.bind(this)); - events.numberKey.takeUntil(validation.success).forEach(this.onNumberKey.bind(this)); - events.spaceKey.takeUntil(validation.success).forEach(this.onSpaceKey.bind(this)); - events.aKey.takeUntil(validation.success).forEach(this.onAllKey.bind(this)); - events.iKey.takeUntil(validation.success).forEach(this.onInverseKey.bind(this)); + onEnd(state) { + this.status = 'answered'; - // Init the prompt - cliCursor.hide(); - this.render(); - this.firstRender = false; + // Rerender prompt (and clean subline error) + this.render(); - return this; -}; + this.screen.done(); + cliCursor.show(); + this.done(state.value); + } -/** - * Render the prompt to screen - * @return {Prompt} self - */ + onError(state) { + this.render(state.isValid); + } -Prompt.prototype.render = function (error) { - // Render question - var message = this.getQuestion(); - var bottomContent = ''; + getCurrentValue() { + var choices = this.opt.choices.filter(function(choice) { + return Boolean(choice.checked) && !choice.disabled; + }); - if (this.firstRender) { - message += '(Press ' + chalk.cyan.bold('') + ' to select, ' + chalk.cyan.bold('') + ' to toggle all, ' + chalk.cyan.bold('') + ' to inverse selection)'; + this.selection = _.map(choices, 'short'); + return _.map(choices, 'value'); } - // Render choices or answer depending on the state - if (this.status === 'answered') { - message += chalk.cyan(this.selection.join(', ')); - } else { - var choicesStr = renderChoices(this.opt.choices, this.pointer); - var indexPosition = this.opt.choices.indexOf(this.opt.choices.getChoice(this.pointer)); - message += '\n' + this.paginator.paginate(choicesStr, indexPosition, this.opt.pageSize); + onUpKey() { + var len = this.opt.choices.realLength; + this.pointer = this.pointer > 0 ? this.pointer - 1 : len - 1; + this.render(); } - if (error) { - bottomContent = chalk.red('>> ') + error; + onDownKey() { + var len = this.opt.choices.realLength; + this.pointer = this.pointer < len - 1 ? this.pointer + 1 : 0; + this.render(); } - this.screen.render(message, bottomContent); -}; - -/** - * When user press `enter` key - */ + onNumberKey(input) { + if (input <= this.opt.choices.realLength) { + this.pointer = input - 1; + this.toggleChoice(this.pointer); + } + this.render(); + } -Prompt.prototype.onEnd = function (state) { - this.status = 'answered'; + onSpaceKey() { + this.toggleChoice(this.pointer); + this.render(); + } - // Rerender prompt (and clean subline error) - this.render(); + onAllKey() { + var shouldBeChecked = Boolean( + this.opt.choices.find(function(choice) { + return choice.type !== 'separator' && !choice.checked; + }) + ); - this.screen.done(); - cliCursor.show(); - this.done(state.value); -}; + this.opt.choices.forEach(function(choice) { + if (choice.type !== 'separator') { + choice.checked = shouldBeChecked; + } + }); -Prompt.prototype.onError = function (state) { - this.render(state.isValid); -}; + this.render(); + } -Prompt.prototype.getCurrentValue = function () { - var choices = this.opt.choices.filter(function (choice) { - return Boolean(choice.checked) && !choice.disabled; - }); + onInverseKey() { + this.opt.choices.forEach(function(choice) { + if (choice.type !== 'separator') { + choice.checked = !choice.checked; + } + }); - this.selection = _.map(choices, 'short'); - return _.map(choices, 'value'); -}; - -Prompt.prototype.onUpKey = function () { - var len = this.opt.choices.realLength; - this.pointer = (this.pointer > 0) ? this.pointer - 1 : len - 1; - this.render(); -}; - -Prompt.prototype.onDownKey = function () { - var len = this.opt.choices.realLength; - this.pointer = (this.pointer < len - 1) ? this.pointer + 1 : 0; - this.render(); -}; - -Prompt.prototype.onNumberKey = function (input) { - if (input <= this.opt.choices.realLength) { - this.pointer = input - 1; - this.toggleChoice(this.pointer); + this.render(); } - this.render(); -}; - -Prompt.prototype.onSpaceKey = function () { - this.toggleChoice(this.pointer); - this.render(); -}; - -Prompt.prototype.onAllKey = function () { - var shouldBeChecked = Boolean(this.opt.choices.find(function (choice) { - return choice.type !== 'separator' && !choice.checked; - })); - - this.opt.choices.forEach(function (choice) { - if (choice.type !== 'separator') { - choice.checked = shouldBeChecked; - } - }); - - this.render(); -}; -Prompt.prototype.onInverseKey = function () { - this.opt.choices.forEach(function (choice) { - if (choice.type !== 'separator') { - choice.checked = !choice.checked; + toggleChoice(index) { + var item = this.opt.choices.getChoice(index); + if (item !== undefined) { + this.opt.choices.getChoice(index).checked = !item.checked; } - }); - - this.render(); -}; - -Prompt.prototype.toggleChoice = function (index) { - var item = this.opt.choices.getChoice(index); - if (item !== undefined) { - this.opt.choices.getChoice(index).checked = !item.checked; } -}; +} /** * Function for rendering checkbox choices @@ -202,7 +207,7 @@ function renderChoices(choices, pointer) { var output = ''; var separatorOffset = 0; - choices.forEach(function (choice, i) { + choices.forEach(function(choice, i) { if (choice.type === 'separator') { separatorOffset++; output += ' ' + choice + '\n'; @@ -214,7 +219,7 @@ function renderChoices(choices, pointer) { output += ' - ' + choice.name; output += ' (' + (_.isString(choice.disabled) ? choice.disabled : 'Disabled') + ')'; } else { - var isSelected = (i - separatorOffset === pointer); + var isSelected = i - separatorOffset === pointer; output += isSelected ? chalk.cyan(figures.pointer) : ' '; output += getCheckbox(choice.checked) + ' ' + choice.name; } @@ -234,3 +239,5 @@ function renderChoices(choices, pointer) { function getCheckbox(checked) { return checked ? chalk.green(figures.radioOn) : figures.radioOff; } + +module.exports = CheckboxPrompt; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/confirm.js b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/confirm.js index 542d120394e328..b5e3d2f0c15ce2 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/confirm.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/confirm.js @@ -1,106 +1,99 @@ +'use strict'; /** * `confirm` type prompt */ var _ = require('lodash'); -var util = require('util'); var chalk = require('chalk'); var Base = require('./base'); var observe = require('../utils/events'); -/** - * Module exports - */ - -module.exports = Prompt; - -/** - * Constructor - */ +class ConfirmPrompt extends Base { + constructor(questions, rl, answers) { + super(questions, rl, answers); -function Prompt() { - Base.apply(this, arguments); + var rawDefault = true; - var rawDefault = true; - - _.extend(this.opt, { - filter: function (input) { - var value = rawDefault; - if (input != null && input !== '') { - value = /^y(es)?/i.test(input); + _.extend(this.opt, { + filter: function(input) { + var value = rawDefault; + if (input != null && input !== '') { + value = /^y(es)?/i.test(input); + } + return value; } - return value; + }); + + if (_.isBoolean(this.opt.default)) { + rawDefault = this.opt.default; } - }); - if (_.isBoolean(this.opt.default)) { - rawDefault = this.opt.default; + this.opt.default = rawDefault ? 'Y/n' : 'y/N'; + + return this; } - this.opt.default = rawDefault ? 'Y/n' : 'y/N'; + /** + * Start the Inquiry session + * @param {Function} cb Callback when prompt is done + * @return {this} + */ - return this; -} -util.inherits(Prompt, Base); + _run(cb) { + this.done = cb; -/** - * Start the Inquiry session - * @param {Function} cb Callback when prompt is done - * @return {this} - */ + // Once user confirm (enter key) + var events = observe(this.rl); + events.keypress.takeUntil(events.line).forEach(this.onKeypress.bind(this)); -Prompt.prototype._run = function (cb) { - this.done = cb; + events.line.take(1).forEach(this.onEnd.bind(this)); - // Once user confirm (enter key) - var events = observe(this.rl); - events.keypress.takeUntil(events.line).forEach(this.onKeypress.bind(this)); + // Init + this.render(); - events.line.take(1).forEach(this.onEnd.bind(this)); + return this; + } - // Init - this.render(); + /** + * Render the prompt to screen + * @return {ConfirmPrompt} self + */ - return this; -}; + render(answer) { + var message = this.getQuestion(); -/** - * Render the prompt to screen - * @return {Prompt} self - */ + if (typeof answer === 'boolean') { + message += chalk.cyan(answer ? 'Yes' : 'No'); + } else { + message += this.rl.line; + } -Prompt.prototype.render = function (answer) { - var message = this.getQuestion(); + this.screen.render(message); - if (typeof answer === 'boolean') { - message += chalk.cyan(answer ? 'Yes' : 'No'); - } else { - message += this.rl.line; + return this; } - this.screen.render(message); - - return this; -}; + /** + * When user press `enter` key + */ -/** - * When user press `enter` key - */ + onEnd(input) { + this.status = 'answered'; -Prompt.prototype.onEnd = function (input) { - this.status = 'answered'; + var output = this.opt.filter(input); + this.render(output); - var output = this.opt.filter(input); - this.render(output); + this.screen.done(); + this.done(output); + } - this.screen.done(); - this.done(output); -}; + /** + * When user press a key + */ -/** - * When user press a key - */ + onKeypress() { + this.render(); + } +} -Prompt.prototype.onKeypress = function () { - this.render(); -}; +module.exports = ConfirmPrompt; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/editor.js b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/editor.js index e4bb2664a9bebe..bdbea4033011c1 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/editor.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/editor.js @@ -1,111 +1,100 @@ +'use strict'; /** * `editor` type prompt */ -var util = require('util'); var chalk = require('chalk'); var ExternalEditor = require('external-editor'); var Base = require('./base'); var observe = require('../utils/events'); -var rx = require('rx-lite-aggregates'); +var Rx = require('rxjs/Rx'); -/** - * Module exports - */ +class EditorPrompt extends Base { + /** + * Start the Inquiry session + * @param {Function} cb Callback when prompt is done + * @return {this} + */ -module.exports = Prompt; + _run(cb) { + this.done = cb; -/** - * Constructor - */ + this.editorResult = new Rx.Subject(); -function Prompt() { - return Base.apply(this, arguments); -} -util.inherits(Prompt, Base); + // Open Editor on "line" (Enter Key) + var events = observe(this.rl); + this.lineSubscription = events.line.subscribe(this.startExternalEditor.bind(this)); -/** - * Start the Inquiry session - * @param {Function} cb Callback when prompt is done - * @return {this} - */ + // Trigger Validation when editor closes + var validation = this.handleSubmitEvents(this.editorResult); + validation.success.forEach(this.onEnd.bind(this)); + validation.error.forEach(this.onError.bind(this)); -Prompt.prototype._run = function (cb) { - this.done = cb; + // Prevents default from being printed on screen (can look weird with multiple lines) + this.currentText = this.opt.default; + this.opt.default = null; - this.editorResult = new rx.Subject(); + // Init + this.render(); - // Open Editor on "line" (Enter Key) - var events = observe(this.rl); - this.lineSubscription = events.line.forEach(this.startExternalEditor.bind(this)); + return this; + } - // Trigger Validation when editor closes - var validation = this.handleSubmitEvents(this.editorResult); - validation.success.forEach(this.onEnd.bind(this)); - validation.error.forEach(this.onError.bind(this)); + /** + * Render the prompt to screen + * @return {EditorPrompt} self + */ - // Prevents default from being printed on screen (can look weird with multiple lines) - this.currentText = this.opt.default; - this.opt.default = null; + render(error) { + var bottomContent = ''; + var message = this.getQuestion(); - // Init - this.render(); + if (this.status === 'answered') { + message += chalk.dim('Received'); + } else { + message += chalk.dim('Press to launch your preferred editor.'); + } - return this; -}; + if (error) { + bottomContent = chalk.red('>> ') + error; + } -/** - * Render the prompt to screen - * @return {Prompt} self - */ + this.screen.render(message, bottomContent); + } -Prompt.prototype.render = function (error) { - var bottomContent = ''; - var message = this.getQuestion(); + /** + * Launch $EDITOR on user press enter + */ - if (this.status === 'answered') { - message += chalk.dim('Received'); - } else { - message += chalk.dim('Press to launch your preferred editor.'); + startExternalEditor() { + // Pause Readline to prevent stdin and stdout from being modified while the editor is showing + this.rl.pause(); + ExternalEditor.editAsync(this.currentText, this.endExternalEditor.bind(this)); } - if (error) { - bottomContent = chalk.red('>> ') + error; + endExternalEditor(error, result) { + this.rl.resume(); + if (error) { + this.editorResult.error(error); + } else { + this.editorResult.next(result); + } } - this.screen.render(message, bottomContent); -}; - -/** - * Launch $EDITOR on user press enter - */ + onEnd(state) { + this.editorResult.unsubscribe(); + this.lineSubscription.unsubscribe(); + this.answer = state.value; + this.status = 'answered'; + // Re-render prompt + this.render(); + this.screen.done(); + this.done(this.answer); + } -Prompt.prototype.startExternalEditor = function () { - // Pause Readline to prevent stdin and stdout from being modified while the editor is showing - this.rl.pause(); - ExternalEditor.editAsync(this.currentText, this.endExternalEditor.bind(this)); -}; - -Prompt.prototype.endExternalEditor = function (error, result) { - this.rl.resume(); - if (error) { - this.editorResult.onError(error); - } else { - this.editorResult.onNext(result); + onError(state) { + this.render(state.isValid); } -}; - -Prompt.prototype.onEnd = function (state) { - this.editorResult.dispose(); - this.lineSubscription.dispose(); - this.answer = state.value; - this.status = 'answered'; - // Re-render prompt - this.render(); - this.screen.done(); - this.done(this.answer); -}; - -Prompt.prototype.onError = function (state) { - this.render(state.isValid); -}; +} + +module.exports = EditorPrompt; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/expand.js b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/expand.js index 336d98c5af88a3..d9ac2f9b14feb3 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/expand.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/expand.js @@ -1,236 +1,240 @@ +'use strict'; /** * `rawlist` type prompt */ var _ = require('lodash'); -var util = require('util'); var chalk = require('chalk'); var Base = require('./base'); var Separator = require('../objects/separator'); var observe = require('../utils/events'); var Paginator = require('../utils/paginator'); -/** - * Module exports - */ - -module.exports = Prompt; - -/** - * Constructor - */ - -function Prompt() { - Base.apply(this, arguments); - - if (!this.opt.choices) { - this.throwParamError('choices'); - } +class ExpandPrompt extends Base { + constructor(questions, rl, answers) { + super(questions, rl, answers); - this.validateChoices(this.opt.choices); - - // Add the default `help` (/expand) option - this.opt.choices.push({ - key: 'h', - name: 'Help, list all options', - value: 'help' - }); - - this.opt.validate = function (choice) { - if (choice == null) { - return 'Please enter a valid command'; + if (!this.opt.choices) { + this.throwParamError('choices'); } - return choice !== 'help'; - }; + this.validateChoices(this.opt.choices); - // Setup the default string (capitalize the default key) - this.opt.default = this.generateChoicesString(this.opt.choices, this.opt.default); + // Add the default `help` (/expand) option + this.opt.choices.push({ + key: 'h', + name: 'Help, list all options', + value: 'help' + }); - this.paginator = new Paginator(); -} -util.inherits(Prompt, Base); + this.opt.validate = choice => { + if (choice == null) { + return 'Please enter a valid command'; + } -/** - * Start the Inquiry session - * @param {Function} cb Callback when prompt is done - * @return {this} - */ + return choice !== 'help'; + }; -Prompt.prototype._run = function (cb) { - this.done = cb; + // Setup the default string (capitalize the default key) + this.opt.default = this.generateChoicesString(this.opt.choices, this.opt.default); - // Save user answer and update prompt to show selected option. - var events = observe(this.rl); - var validation = this.handleSubmitEvents( - events.line.map(this.getCurrentValue.bind(this)) - ); - validation.success.forEach(this.onSubmit.bind(this)); - validation.error.forEach(this.onError.bind(this)); - this.keypressObs = events.keypress.takeUntil(validation.success) - .forEach(this.onKeypress.bind(this)); + this.paginator = new Paginator(this.screen); + } - // Init the prompt - this.render(); + /** + * Start the Inquiry session + * @param {Function} cb Callback when prompt is done + * @return {this} + */ + + _run(cb) { + this.done = cb; + + // Save user answer and update prompt to show selected option. + var events = observe(this.rl); + var validation = this.handleSubmitEvents( + events.line.map(this.getCurrentValue.bind(this)) + ); + validation.success.forEach(this.onSubmit.bind(this)); + validation.error.forEach(this.onError.bind(this)); + this.keypressObs = events.keypress + .takeUntil(validation.success) + .forEach(this.onKeypress.bind(this)); + + // Init the prompt + this.render(); - return this; -}; + return this; + } -/** - * Render the prompt to screen - * @return {Prompt} self - */ + /** + * Render the prompt to screen + * @return {ExpandPrompt} self + */ + + render(error, hint) { + var message = this.getQuestion(); + var bottomContent = ''; + + if (this.status === 'answered') { + message += chalk.cyan(this.answer); + } else if (this.status === 'expanded') { + var choicesStr = renderChoices(this.opt.choices, this.selectedKey); + message += this.paginator.paginate(choicesStr, this.selectedKey, this.opt.pageSize); + message += '\n Answer: '; + } -Prompt.prototype.render = function (error, hint) { - var message = this.getQuestion(); - var bottomContent = ''; + message += this.rl.line; - if (this.status === 'answered') { - message += chalk.cyan(this.answer); - } else if (this.status === 'expanded') { - var choicesStr = renderChoices(this.opt.choices, this.selectedKey); - message += this.paginator.paginate(choicesStr, this.selectedKey, this.opt.pageSize); - message += '\n Answer: '; - } + if (error) { + bottomContent = chalk.red('>> ') + error; + } - message += this.rl.line; + if (hint) { + bottomContent = chalk.cyan('>> ') + hint; + } - if (error) { - bottomContent = chalk.red('>> ') + error; + this.screen.render(message, bottomContent); } - if (hint) { - bottomContent = chalk.cyan('>> ') + hint; + getCurrentValue(input) { + if (!input) { + input = this.rawDefault; + } + var selected = this.opt.choices.where({ key: input.toLowerCase().trim() })[0]; + if (!selected) { + return null; + } + + return selected.value; } - this.screen.render(message, bottomContent); -}; + /** + * Generate the prompt choices string + * @return {String} Choices string + */ -Prompt.prototype.getCurrentValue = function (input) { - if (!input) { - input = this.rawDefault; - } - var selected = this.opt.choices.where({key: input.toLowerCase().trim()})[0]; - if (!selected) { - return null; - } + getChoices() { + var output = ''; - return selected.value; -}; + this.opt.choices.forEach(choice => { + output += '\n '; -/** - * Generate the prompt choices string - * @return {String} Choices string - */ + if (choice.type === 'separator') { + output += ' ' + choice; + return; + } -Prompt.prototype.getChoices = function () { - var output = ''; + var choiceStr = choice.key + ') ' + choice.name; + if (this.selectedKey === choice.key) { + choiceStr = chalk.cyan(choiceStr); + } + output += choiceStr; + }); - this.opt.choices.forEach(function (choice) { - output += '\n '; + return output; + } - if (choice.type === 'separator') { - output += ' ' + choice; + onError(state) { + if (state.value === 'help') { + this.selectedKey = ''; + this.status = 'expanded'; + this.render(); return; } - - var choiceStr = choice.key + ') ' + choice.name; - if (this.selectedKey === choice.key) { - choiceStr = chalk.cyan(choiceStr); - } - output += choiceStr; - }.bind(this)); - - return output; -}; - -Prompt.prototype.onError = function (state) { - if (state.value === 'help') { - this.selectedKey = ''; - this.status = 'expanded'; - this.render(); - return; + this.render(state.isValid); } - this.render(state.isValid); -}; - -/** - * When user press `enter` key - */ - -Prompt.prototype.onSubmit = function (state) { - this.status = 'answered'; - var choice = this.opt.choices.where({value: state.value})[0]; - this.answer = choice.short || choice.name; - // Re-render prompt - this.render(); - this.screen.done(); - this.done(state.value); -}; + /** + * When user press `enter` key + */ -/** - * When user press a key - */ + onSubmit(state) { + this.status = 'answered'; + var choice = this.opt.choices.where({ value: state.value })[0]; + this.answer = choice.short || choice.name; -Prompt.prototype.onKeypress = function () { - this.selectedKey = this.rl.line.toLowerCase(); - var selected = this.opt.choices.where({key: this.selectedKey})[0]; - if (this.status === 'expanded') { + // Re-render prompt this.render(); - } else { - this.render(null, selected ? selected.name : null); + this.screen.done(); + this.done(state.value); } -}; -/** - * Validate the choices - * @param {Array} choices - */ + /** + * When user press a key + */ + + onKeypress() { + this.selectedKey = this.rl.line.toLowerCase(); + var selected = this.opt.choices.where({ key: this.selectedKey })[0]; + if (this.status === 'expanded') { + this.render(); + } else { + this.render(null, selected ? selected.name : null); + } + } -Prompt.prototype.validateChoices = function (choices) { - var formatError; - var errors = []; - var keymap = {}; - choices.filter(Separator.exclude).forEach(function (choice) { - if (!choice.key || choice.key.length !== 1) { - formatError = true; + /** + * Validate the choices + * @param {Array} choices + */ + + validateChoices(choices) { + var formatError; + var errors = []; + var keymap = {}; + choices.filter(Separator.exclude).forEach(choice => { + if (!choice.key || choice.key.length !== 1) { + formatError = true; + } + if (keymap[choice.key]) { + errors.push(choice.key); + } + keymap[choice.key] = true; + choice.key = String(choice.key).toLowerCase(); + }); + + if (formatError) { + throw new Error( + 'Format error: `key` param must be a single letter and is required.' + ); } - if (keymap[choice.key]) { - errors.push(choice.key); + if (keymap.h) { + throw new Error( + 'Reserved key error: `key` param cannot be `h` - this value is reserved.' + ); + } + if (errors.length) { + throw new Error( + 'Duplicate key error: `key` param must be unique. Duplicates: ' + + _.uniq(errors).join(', ') + ); } - keymap[choice.key] = true; - choice.key = String(choice.key).toLowerCase(); - }); - - if (formatError) { - throw new Error('Format error: `key` param must be a single letter and is required.'); - } - if (keymap.h) { - throw new Error('Reserved key error: `key` param cannot be `h` - this value is reserved.'); - } - if (errors.length) { - throw new Error('Duplicate key error: `key` param must be unique. Duplicates: ' + - _.uniq(errors).join(', ')); } -}; -/** - * Generate a string out of the choices keys - * @param {Array} choices - * @param {Number} defaultIndex - the choice index to capitalize - * @return {String} The rendered choices key string - */ -Prompt.prototype.generateChoicesString = function (choices, defaultIndex) { - var defIndex = choices.realLength - 1; - if (_.isNumber(defaultIndex) && this.opt.choices.getChoice(defaultIndex)) { - defIndex = defaultIndex; + /** + * Generate a string out of the choices keys + * @param {Array} choices + * @param {Number|String} default - the choice index or name to capitalize + * @return {String} The rendered choices key string + */ + generateChoicesString(choices, defaultChoice) { + var defIndex = choices.realLength - 1; + if (_.isNumber(defaultChoice) && this.opt.choices.getChoice(defaultChoice)) { + defIndex = defaultChoice; + } else if (_.isString(defaultChoice)) { + let index = _.findIndex( + choices.realChoices, + ({ value }) => value === defaultChoice + ); + defIndex = index === -1 ? defIndex : index; + } + var defStr = this.opt.choices.pluck('key'); + this.rawDefault = defStr[defIndex]; + defStr[defIndex] = String(defStr[defIndex]).toUpperCase(); + return defStr.join(''); } - var defStr = this.opt.choices.pluck('key'); - this.rawDefault = defStr[defIndex]; - defStr[defIndex] = String(defStr[defIndex]).toUpperCase(); - return defStr.join(''); -}; +} /** * Function for rendering checkbox choices @@ -241,7 +245,7 @@ Prompt.prototype.generateChoicesString = function (choices, defaultIndex) { function renderChoices(choices, pointer) { var output = ''; - choices.forEach(function (choice) { + choices.forEach(choice => { output += '\n '; if (choice.type === 'separator') { @@ -258,3 +262,5 @@ function renderChoices(choices, pointer) { return output; } + +module.exports = ExpandPrompt; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/input.js b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/input.js index a1c7be2accf33b..4fd765e3c3b444 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/input.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/input.js @@ -1,104 +1,96 @@ +'use strict'; /** * `input` type prompt */ -var util = require('util'); var chalk = require('chalk'); var Base = require('./base'); var observe = require('../utils/events'); -/** - * Module exports - */ - -module.exports = Prompt; +class InputPrompt extends Base { + /** + * Start the Inquiry session + * @param {Function} cb Callback when prompt is done + * @return {this} + */ -/** - * Constructor - */ + _run(cb) { + this.done = cb; -function Prompt() { - return Base.apply(this, arguments); -} -util.inherits(Prompt, Base); + // Once user confirm (enter key) + var events = observe(this.rl); + var submit = events.line.map(this.filterInput.bind(this)); -/** - * Start the Inquiry session - * @param {Function} cb Callback when prompt is done - * @return {this} - */ + var validation = this.handleSubmitEvents(submit); + validation.success.forEach(this.onEnd.bind(this)); + validation.error.forEach(this.onError.bind(this)); -Prompt.prototype._run = function (cb) { - this.done = cb; + events.keypress.takeUntil(validation.success).forEach(this.onKeypress.bind(this)); - // Once user confirm (enter key) - var events = observe(this.rl); - var submit = events.line.map(this.filterInput.bind(this)); + // Init + this.render(); - var validation = this.handleSubmitEvents(submit); - validation.success.forEach(this.onEnd.bind(this)); - validation.error.forEach(this.onError.bind(this)); + return this; + } - events.keypress.takeUntil(validation.success).forEach(this.onKeypress.bind(this)); + /** + * Render the prompt to screen + * @return {InputPrompt} self + */ + + render(error) { + var bottomContent = ''; + var message = this.getQuestion(); + var transformer = this.opt.transformer; + + if (this.status === 'answered') { + message += chalk.cyan(this.answer); + } else if (transformer) { + message += transformer(this.rl.line, this.answers); + } else { + message += this.rl.line; + } + + if (error) { + bottomContent = chalk.red('>> ') + error; + } + + this.screen.render(message, bottomContent); + } - // Init - this.render(); + /** + * When user press `enter` key + */ - return this; -}; + filterInput(input) { + if (!input) { + return this.opt.default == null ? '' : this.opt.default; + } + return input; + } -/** - * Render the prompt to screen - * @return {Prompt} self - */ + onEnd(state) { + this.answer = state.value; + this.status = 'answered'; -Prompt.prototype.render = function (error) { - var bottomContent = ''; - var message = this.getQuestion(); + // Re-render prompt + this.render(); - if (this.status === 'answered') { - message += chalk.cyan(this.answer); - } else { - message += this.rl.line; + this.screen.done(); + this.done(state.value); } - if (error) { - bottomContent = chalk.red('>> ') + error; + onError(state) { + this.render(state.isValid); } - this.screen.render(message, bottomContent); -}; - -/** - * When user press `enter` key - */ + /** + * When user press a key + */ -Prompt.prototype.filterInput = function (input) { - if (!input) { - return this.opt.default == null ? '' : this.opt.default; + onKeypress() { + this.render(); } - return input; -}; - -Prompt.prototype.onEnd = function (state) { - this.answer = state.value; - this.status = 'answered'; - - // Re-render prompt - this.render(); - - this.screen.done(); - this.done(state.value); -}; - -Prompt.prototype.onError = function (state) { - this.render(state.isValid); -}; - -/** - * When user press a key - */ +} -Prompt.prototype.onKeypress = function () { - this.render(); -}; +module.exports = InputPrompt; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/list.js b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/list.js index c29542f228c8a7..e458f0358ea3ed 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/list.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/list.js @@ -1,9 +1,9 @@ +'use strict'; /** * `list` type prompt */ var _ = require('lodash'); -var util = require('util'); var chalk = require('chalk'); var figures = require('figures'); var cliCursor = require('cli-cursor'); @@ -12,141 +12,132 @@ var Base = require('./base'); var observe = require('../utils/events'); var Paginator = require('../utils/paginator'); -/** - * Module exports - */ +class ListPrompt extends Base { + constructor(questions, rl, answers) { + super(questions, rl, answers); -module.exports = Prompt; - -/** - * Constructor - */ + if (!this.opt.choices) { + this.throwParamError('choices'); + } -function Prompt() { - Base.apply(this, arguments); + this.firstRender = true; + this.selected = 0; - if (!this.opt.choices) { - this.throwParamError('choices'); - } + var def = this.opt.default; - this.firstRender = true; - this.selected = 0; + // If def is a Number, then use as index. Otherwise, check for value. + if (_.isNumber(def) && def >= 0 && def < this.opt.choices.realLength) { + this.selected = def; + } else if (!_.isNumber(def) && def != null) { + let index = _.findIndex(this.opt.choices.realChoices, ({ value }) => value === def); + this.selected = Math.max(index, 0); + } - var def = this.opt.default; + // Make sure no default is set (so it won't be printed) + this.opt.default = null; - // If def is a Number, then use as index. Otherwise, check for value. - if (_.isNumber(def) && def >= 0 && def < this.opt.choices.realLength) { - this.selected = def; - } else if (!_.isNumber(def) && def != null) { - this.selected = this.opt.choices.pluck('value').indexOf(def); + this.paginator = new Paginator(this.screen); } - // Make sure no default is set (so it won't be printed) - this.opt.default = null; + /** + * Start the Inquiry session + * @param {Function} cb Callback when prompt is done + * @return {this} + */ - this.paginator = new Paginator(); -} -util.inherits(Prompt, Base); + _run(cb) { + this.done = cb; -/** - * Start the Inquiry session - * @param {Function} cb Callback when prompt is done - * @return {this} - */ + var self = this; -Prompt.prototype._run = function (cb) { - this.done = cb; + var events = observe(this.rl); + events.normalizedUpKey.takeUntil(events.line).forEach(this.onUpKey.bind(this)); + events.normalizedDownKey.takeUntil(events.line).forEach(this.onDownKey.bind(this)); + events.numberKey.takeUntil(events.line).forEach(this.onNumberKey.bind(this)); + events.line + .take(1) + .map(this.getCurrentValue.bind(this)) + .flatMap(value => runAsync(self.opt.filter)(value).catch(err => err)) + .forEach(this.onSubmit.bind(this)); - var self = this; + // Init the prompt + cliCursor.hide(); + this.render(); - var events = observe(this.rl); - events.normalizedUpKey.takeUntil(events.line).forEach(this.onUpKey.bind(this)); - events.normalizedDownKey.takeUntil(events.line).forEach(this.onDownKey.bind(this)); - events.numberKey.takeUntil(events.line).forEach(this.onNumberKey.bind(this)); - events.line - .take(1) - .map(this.getCurrentValue.bind(this)) - .flatMap(function (value) { - return runAsync(self.opt.filter)(value).catch(function (err) { - return err; - }); - }) - .forEach(this.onSubmit.bind(this)); + return this; + } - // Init the prompt - cliCursor.hide(); - this.render(); + /** + * Render the prompt to screen + * @return {ListPrompt} self + */ - return this; -}; + render() { + // Render question + var message = this.getQuestion(); -/** - * Render the prompt to screen - * @return {Prompt} self - */ + if (this.firstRender) { + message += chalk.dim('(Use arrow keys)'); + } -Prompt.prototype.render = function () { - // Render question - var message = this.getQuestion(); + // Render choices or answer depending on the state + if (this.status === 'answered') { + message += chalk.cyan(this.opt.choices.getChoice(this.selected).short); + } else { + var choicesStr = listRender(this.opt.choices, this.selected); + var indexPosition = this.opt.choices.indexOf( + this.opt.choices.getChoice(this.selected) + ); + message += + '\n' + this.paginator.paginate(choicesStr, indexPosition, this.opt.pageSize); + } - if (this.firstRender) { - message += chalk.dim('(Use arrow keys)'); - } + this.firstRender = false; - // Render choices or answer depending on the state - if (this.status === 'answered') { - message += chalk.cyan(this.opt.choices.getChoice(this.selected).short); - } else { - var choicesStr = listRender(this.opt.choices, this.selected); - var indexPosition = this.opt.choices.indexOf(this.opt.choices.getChoice(this.selected)); - message += '\n' + this.paginator.paginate(choicesStr, indexPosition, this.opt.pageSize); + this.screen.render(message); } - this.firstRender = false; + /** + * When user press `enter` key + */ - this.screen.render(message); -}; + onSubmit(value) { + this.status = 'answered'; -/** - * When user press `enter` key - */ + // Rerender prompt + this.render(); -Prompt.prototype.onSubmit = function (value) { - this.status = 'answered'; + this.screen.done(); + cliCursor.show(); + this.done(value); + } - // Rerender prompt - this.render(); + getCurrentValue() { + return this.opt.choices.getChoice(this.selected).value; + } - this.screen.done(); - cliCursor.show(); - this.done(value); -}; + /** + * When user press a key + */ + onUpKey() { + var len = this.opt.choices.realLength; + this.selected = this.selected > 0 ? this.selected - 1 : len - 1; + this.render(); + } -Prompt.prototype.getCurrentValue = function () { - return this.opt.choices.getChoice(this.selected).value; -}; + onDownKey() { + var len = this.opt.choices.realLength; + this.selected = this.selected < len - 1 ? this.selected + 1 : 0; + this.render(); + } -/** - * When user press a key - */ -Prompt.prototype.onUpKey = function () { - var len = this.opt.choices.realLength; - this.selected = (this.selected > 0) ? this.selected - 1 : len - 1; - this.render(); -}; - -Prompt.prototype.onDownKey = function () { - var len = this.opt.choices.realLength; - this.selected = (this.selected < len - 1) ? this.selected + 1 : 0; - this.render(); -}; - -Prompt.prototype.onNumberKey = function (input) { - if (input <= this.opt.choices.realLength) { - this.selected = input - 1; + onNumberKey(input) { + if (input <= this.opt.choices.realLength) { + this.selected = input - 1; + } + this.render(); } - this.render(); -}; +} /** * Function for rendering list choices @@ -157,7 +148,7 @@ function listRender(choices, pointer) { var output = ''; var separatorOffset = 0; - choices.forEach(function (choice, i) { + choices.forEach((choice, i) => { if (choice.type === 'separator') { separatorOffset++; output += ' ' + choice + '\n'; @@ -172,7 +163,7 @@ function listRender(choices, pointer) { return; } - var isSelected = (i - separatorOffset === pointer); + var isSelected = i - separatorOffset === pointer; var line = (isSelected ? figures.pointer + ' ' : ' ') + choice.name; if (isSelected) { line = chalk.cyan(line); @@ -182,3 +173,5 @@ function listRender(choices, pointer) { return output.replace(/\n$/, ''); } + +module.exports = ListPrompt; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/password.js b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/password.js index 2a9a5e2e6a2109..1b7a79bd571116 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/password.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/password.js @@ -1,8 +1,8 @@ +'use strict'; /** * `password` type prompt */ -var util = require('util'); var chalk = require('chalk'); var Base = require('./base'); var observe = require('../utils/events'); @@ -17,99 +17,90 @@ function mask(input, maskChar) { return new Array(input.length + 1).join(maskChar); } -/** - * Module exports - */ +class PasswordPrompt extends Base { + /** + * Start the Inquiry session + * @param {Function} cb Callback when prompt is done + * @return {this} + */ -module.exports = Prompt; + _run(cb) { + this.done = cb; -/** - * Constructor - */ + var events = observe(this.rl); -function Prompt() { - return Base.apply(this, arguments); -} -util.inherits(Prompt, Base); + // Once user confirm (enter key) + var submit = events.line.map(this.filterInput.bind(this)); -/** - * Start the Inquiry session - * @param {Function} cb Callback when prompt is done - * @return {this} - */ - -Prompt.prototype._run = function (cb) { - this.done = cb; + var validation = this.handleSubmitEvents(submit); + validation.success.forEach(this.onEnd.bind(this)); + validation.error.forEach(this.onError.bind(this)); - var events = observe(this.rl); + if (this.opt.mask) { + events.keypress.takeUntil(validation.success).forEach(this.onKeypress.bind(this)); + } - // Once user confirm (enter key) - var submit = events.line.map(this.filterInput.bind(this)); + // Init + this.render(); - var validation = this.handleSubmitEvents(submit); - validation.success.forEach(this.onEnd.bind(this)); - validation.error.forEach(this.onError.bind(this)); + return this; + } - if (this.opt.mask) { - events.keypress.takeUntil(validation.success).forEach(this.onKeypress.bind(this)); + /** + * Render the prompt to screen + * @return {PasswordPrompt} self + */ + + render(error) { + var message = this.getQuestion(); + var bottomContent = ''; + + if (this.status === 'answered') { + message += this.opt.mask + ? chalk.cyan(mask(this.answer, this.opt.mask)) + : chalk.italic.dim('[hidden]'); + } else if (this.opt.mask) { + message += mask(this.rl.line || '', this.opt.mask); + } else { + message += chalk.italic.dim('[input is hidden] '); + } + + if (error) { + bottomContent = '\n' + chalk.red('>> ') + error; + } + + this.screen.render(message, bottomContent); } - // Init - this.render(); + /** + * When user press `enter` key + */ - return this; -}; + filterInput(input) { + if (!input) { + return this.opt.default == null ? '' : this.opt.default; + } + return input; + } -/** - * Render the prompt to screen - * @return {Prompt} self - */ + onEnd(state) { + this.status = 'answered'; + this.answer = state.value; -Prompt.prototype.render = function (error) { - var message = this.getQuestion(); - var bottomContent = ''; + // Re-render prompt + this.render(); - if (this.status === 'answered') { - message += this.opt.mask ? chalk.cyan(mask(this.answer, this.opt.mask)) : chalk.italic.dim('[hidden]'); - } else if (this.opt.mask) { - message += mask(this.rl.line || '', this.opt.mask); - } else { - message += chalk.italic.dim('[input is hidden] '); + this.screen.done(); + this.done(state.value); } - if (error) { - bottomContent = '\n' + chalk.red('>> ') + error; + onError(state) { + this.render(state.isValid); } - this.screen.render(message, bottomContent); -}; - -/** - * When user press `enter` key - */ - -Prompt.prototype.filterInput = function (input) { - if (!input) { - return this.opt.default == null ? '' : this.opt.default; + onKeypress() { + this.render(); } - return input; -}; - -Prompt.prototype.onEnd = function (state) { - this.status = 'answered'; - this.answer = state.value; - - // Re-render prompt - this.render(); - - this.screen.done(); - this.done(state.value); -}; - -Prompt.prototype.onError = function (state) { - this.render(state.isValid); -}; +} -Prompt.prototype.onKeypress = function () { - this.render(); -}; +module.exports = PasswordPrompt; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/rawlist.js b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/rawlist.js index 15e99110b676a2..e689e16cb30a98 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/rawlist.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/prompts/rawlist.js @@ -1,152 +1,149 @@ +'use strict'; /** * `rawlist` type prompt */ var _ = require('lodash'); -var util = require('util'); var chalk = require('chalk'); var Base = require('./base'); var Separator = require('../objects/separator'); var observe = require('../utils/events'); var Paginator = require('../utils/paginator'); -/** - * Module exports - */ - -module.exports = Prompt; - -/** - * Constructor - */ - -function Prompt() { - Base.apply(this, arguments); - - if (!this.opt.choices) { - this.throwParamError('choices'); - } +class RawListPrompt extends Base { + constructor(questions, rl, answers) { + super(questions, rl, answers); - this.opt.validChoices = this.opt.choices.filter(Separator.exclude); - - this.selected = 0; - this.rawDefault = 0; - - _.extend(this.opt, { - validate: function (val) { - return val != null; + if (!this.opt.choices) { + this.throwParamError('choices'); } - }); - var def = this.opt.default; - if (_.isNumber(def) && def >= 0 && def < this.opt.choices.realLength) { - this.selected = this.rawDefault = def; - } + this.opt.validChoices = this.opt.choices.filter(Separator.exclude); + + this.selected = 0; + this.rawDefault = 0; + + _.extend(this.opt, { + validate: function(val) { + return val != null; + } + }); + + var def = this.opt.default; + if (_.isNumber(def) && def >= 0 && def < this.opt.choices.realLength) { + this.selected = def; + this.rawDefault = def; + } else if (!_.isNumber(def) && def != null) { + let index = _.findIndex(this.opt.choices.realChoices, ({ value }) => value === def); + let safeIndex = Math.max(index, 0); + this.selected = safeIndex; + this.rawDefault = safeIndex; + } - // Make sure no default is set (so it won't be printed) - this.opt.default = null; + // Make sure no default is set (so it won't be printed) + this.opt.default = null; - this.paginator = new Paginator(); -} -util.inherits(Prompt, Base); + this.paginator = new Paginator(); + } -/** - * Start the Inquiry session - * @param {Function} cb Callback when prompt is done - * @return {this} - */ + /** + * Start the Inquiry session + * @param {Function} cb Callback when prompt is done + * @return {this} + */ -Prompt.prototype._run = function (cb) { - this.done = cb; + _run(cb) { + this.done = cb; - // Once user confirm (enter key) - var events = observe(this.rl); - var submit = events.line.map(this.getCurrentValue.bind(this)); + // Once user confirm (enter key) + var events = observe(this.rl); + var submit = events.line.map(this.getCurrentValue.bind(this)); - var validation = this.handleSubmitEvents(submit); - validation.success.forEach(this.onEnd.bind(this)); - validation.error.forEach(this.onError.bind(this)); + var validation = this.handleSubmitEvents(submit); + validation.success.forEach(this.onEnd.bind(this)); + validation.error.forEach(this.onError.bind(this)); - events.keypress.takeUntil(validation.success).forEach(this.onKeypress.bind(this)); + events.keypress.takeUntil(validation.success).forEach(this.onKeypress.bind(this)); - // Init the prompt - this.render(); + // Init the prompt + this.render(); - return this; -}; + return this; + } -/** - * Render the prompt to screen - * @return {Prompt} self - */ + /** + * Render the prompt to screen + * @return {RawListPrompt} self + */ + + render(error) { + // Render question + var message = this.getQuestion(); + var bottomContent = ''; + + if (this.status === 'answered') { + message += chalk.cyan(this.answer); + } else { + var choicesStr = renderChoices(this.opt.choices, this.selected); + message += this.paginator.paginate(choicesStr, this.selected, this.opt.pageSize); + message += '\n Answer: '; + } -Prompt.prototype.render = function (error) { - // Render question - var message = this.getQuestion(); - var bottomContent = ''; - - if (this.status === 'answered') { - message += chalk.cyan(this.answer); - } else { - var choicesStr = renderChoices(this.opt.choices, this.selected); - message += this.paginator.paginate(choicesStr, this.selected, this.opt.pageSize); - message += '\n Answer: '; - } + message += this.rl.line; - message += this.rl.line; + if (error) { + bottomContent = '\n' + chalk.red('>> ') + error; + } - if (error) { - bottomContent = '\n' + chalk.red('>> ') + error; + this.screen.render(message, bottomContent); } - this.screen.render(message, bottomContent); -}; + /** + * When user press `enter` key + */ -/** - * When user press `enter` key - */ + getCurrentValue(index) { + if (index == null || index === '') { + index = this.rawDefault; + } else { + index -= 1; + } -Prompt.prototype.getCurrentValue = function (index) { - if (index == null || index === '') { - index = this.rawDefault; - } else { - index -= 1; + var choice = this.opt.choices.getChoice(index); + return choice ? choice.value : null; } - var choice = this.opt.choices.getChoice(index); - return choice ? choice.value : null; -}; + onEnd(state) { + this.status = 'answered'; + this.answer = state.value; -Prompt.prototype.onEnd = function (state) { - this.status = 'answered'; - this.answer = state.value; + // Re-render prompt + this.render(); - // Re-render prompt - this.render(); + this.screen.done(); + this.done(state.value); + } - this.screen.done(); - this.done(state.value); -}; + onError() { + this.render('Please enter a valid index'); + } -Prompt.prototype.onError = function () { - this.render('Please enter a valid index'); -}; + /** + * When user press a key + */ -/** - * When user press a key - */ + onKeypress() { + var index = this.rl.line.length ? Number(this.rl.line) - 1 : 0; -Prompt.prototype.onKeypress = function () { - var index = this.rl.line.length ? Number(this.rl.line) - 1 : 0; + if (this.opt.choices.getChoice(index)) { + this.selected = index; + } else { + this.selected = undefined; + } - if (this.opt.choices.getChoice(index)) { - this.selected = index; - } else { - this.selected = undefined; + this.render(); } - - this.render(); -}; +} /** * Function for rendering list choices @@ -158,7 +155,7 @@ function renderChoices(choices, pointer) { var output = ''; var separatorOffset = 0; - choices.forEach(function (choice, i) { + choices.forEach(function(choice, i) { output += '\n '; if (choice.type === 'separator') { @@ -168,7 +165,7 @@ function renderChoices(choices, pointer) { } var index = i - separatorOffset; - var display = (index + 1) + ') ' + choice.name; + var display = index + 1 + ') ' + choice.name; if (index === pointer) { display = chalk.cyan(display); } @@ -177,3 +174,5 @@ function renderChoices(choices, pointer) { return output; } + +module.exports = RawListPrompt; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/ui/baseUI.js b/tools/node_modules/eslint/node_modules/inquirer/lib/ui/baseUI.js index 98bb9a28972252..973d2db515e9ba 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/ui/baseUI.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/ui/baseUI.js @@ -7,54 +7,56 @@ var readline = require('readline'); * Base interface class other can inherits from */ -var UI = module.exports = function (opt) { - // Instantiate the Readline interface - // @Note: Don't reassign if already present (allow test to override the Stream) - if (!this.rl) { - this.rl = readline.createInterface(setupReadlineOptions(opt)); +class UI { + constructor(opt) { + // Instantiate the Readline interface + // @Note: Don't reassign if already present (allow test to override the Stream) + if (!this.rl) { + this.rl = readline.createInterface(setupReadlineOptions(opt)); + } + this.rl.resume(); + + this.onForceClose = this.onForceClose.bind(this); + + // Make sure new prompt start on a newline when closing + process.on('exit', this.onForceClose); + + // Terminate process on SIGINT (which will call process.on('exit') in return) + this.rl.on('SIGINT', this.onForceClose); } - this.rl.resume(); - this.onForceClose = this.onForceClose.bind(this); + /** + * Handle the ^C exit + * @return {null} + */ - // Make sure new prompt start on a newline when closing - process.on('exit', this.onForceClose); - - // Terminate process on SIGINT (which will call process.on('exit') in return) - this.rl.on('SIGINT', this.onForceClose); -}; - -/** - * Handle the ^C exit - * @return {null} - */ + onForceClose() { + this.close(); + process.kill(process.pid, 'SIGINT'); + console.log(''); + } -UI.prototype.onForceClose = function () { - this.close(); - process.kill(process.pid, 'SIGINT'); - console.log(''); -}; + /** + * Close the interface and cleanup listeners + */ -/** - * Close the interface and cleanup listeners - */ + close() { + // Remove events listeners + this.rl.removeListener('SIGINT', this.onForceClose); + process.removeListener('exit', this.onForceClose); -UI.prototype.close = function () { - // Remove events listeners - this.rl.removeListener('SIGINT', this.onForceClose); - process.removeListener('exit', this.onForceClose); + this.rl.output.unmute(); - this.rl.output.unmute(); + if (this.activePrompt && typeof this.activePrompt.close === 'function') { + this.activePrompt.close(); + } - if (this.activePrompt && typeof this.activePrompt.close === 'function') { - this.activePrompt.close(); + // Close the readline + this.rl.output.end(); + this.rl.pause(); + this.rl.close(); } - - // Close the readline - this.rl.output.end(); - this.rl.pause(); - this.rl.close(); -}; +} function setupReadlineOptions(opt) { opt = opt || {}; @@ -67,9 +69,14 @@ function setupReadlineOptions(opt) { ms.pipe(opt.output || process.stdout); var output = ms; - return _.extend({ - terminal: true, - input: input, - output: output - }, _.omit(opt, ['input', 'output'])); + return _.extend( + { + terminal: true, + input: input, + output: output + }, + _.omit(opt, ['input', 'output']) + ); } + +module.exports = UI; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/ui/bottom-bar.js b/tools/node_modules/eslint/node_modules/inquirer/lib/ui/bottom-bar.js index 90f9b60d98184d..810769c04b2c87 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/ui/bottom-bar.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/ui/bottom-bar.js @@ -1,106 +1,99 @@ +'use strict'; /** * Sticky bottom bar user interface */ -var util = require('util'); var through = require('through'); var Base = require('./baseUI'); var rlUtils = require('../utils/readline'); var _ = require('lodash'); -/** - * Module exports - */ - -module.exports = Prompt; - -/** - * Constructor - */ +class BottomBar extends Base { + constructor(opt) { + opt = opt || {}; -function Prompt(opt) { - opt || (opt = {}); + super(opt); - Base.apply(this, arguments); - - this.log = through(this.writeLog.bind(this)); - this.bottomBar = opt.bottomBar || ''; - this.render(); -} -util.inherits(Prompt, Base); - -/** - * Render the prompt to screen - * @return {Prompt} self - */ - -Prompt.prototype.render = function () { - this.write(this.bottomBar); - return this; -}; - -Prompt.prototype.clean = function () { - rlUtils.clearLine(this.rl, this.bottomBar.split('\n').length); - return this; -}; - -/** - * Update the bottom bar content and rerender - * @param {String} bottomBar Bottom bar content - * @return {Prompt} self - */ + this.log = through(this.writeLog.bind(this)); + this.bottomBar = opt.bottomBar || ''; + this.render(); + } -Prompt.prototype.updateBottomBar = function (bottomBar) { - rlUtils.clearLine(this.rl, 1); - this.rl.output.unmute(); - this.clean(); - this.bottomBar = bottomBar; - this.render(); - this.rl.output.mute(); - return this; -}; + /** + * Render the prompt to screen + * @return {BottomBar} self + */ -/** - * Write out log data - * @param {String} data - The log data to be output - * @return {Prompt} self - */ + render() { + this.write(this.bottomBar); + return this; + } -Prompt.prototype.writeLog = function (data) { - this.rl.output.unmute(); - this.clean(); - this.rl.output.write(this.enforceLF(data.toString())); - this.render(); - this.rl.output.mute(); - return this; -}; + clean() { + rlUtils.clearLine(this.rl, this.bottomBar.split('\n').length); + return this; + } -/** - * Make sure line end on a line feed - * @param {String} str Input string - * @return {String} The input string with a final line feed - */ + /** + * Update the bottom bar content and rerender + * @param {String} bottomBar Bottom bar content + * @return {BottomBar} self + */ + + updateBottomBar(bottomBar) { + rlUtils.clearLine(this.rl, 1); + this.rl.output.unmute(); + this.clean(); + this.bottomBar = bottomBar; + this.render(); + this.rl.output.mute(); + return this; + } -Prompt.prototype.enforceLF = function (str) { - return str.match(/[\r\n]$/) ? str : str + '\n'; -}; + /** + * Write out log data + * @param {String} data - The log data to be output + * @return {BottomBar} self + */ + + writeLog(data) { + this.rl.output.unmute(); + this.clean(); + this.rl.output.write(this.enforceLF(data.toString())); + this.render(); + this.rl.output.mute(); + return this; + } -/** - * Helper for writing message in Prompt - * @param {Prompt} prompt - The Prompt object that extends tty - * @param {String} message - The message to be output - */ -Prompt.prototype.write = function (message) { - var msgLines = message.split(/\n/); - this.height = msgLines.length; + /** + * Make sure line end on a line feed + * @param {String} str Input string + * @return {String} The input string with a final line feed + */ - // Write message to screen and setPrompt to control backspace - this.rl.setPrompt(_.last(msgLines)); + enforceLF(str) { + return str.match(/[\r\n]$/) ? str : str + '\n'; + } - if (this.rl.output.rows === 0 && this.rl.output.columns === 0) { - /* When it's a tty through serial port there's no terminal info and the render will malfunction, - so we need enforce the cursor to locate to the leftmost position for rendering. */ - rlUtils.left(this.rl, message.length + this.rl.line.length); + /** + * Helper for writing message in Prompt + * @param {BottomBar} prompt - The Prompt object that extends tty + * @param {String} message - The message to be output + */ + write(message) { + var msgLines = message.split(/\n/); + this.height = msgLines.length; + + // Write message to screen and setPrompt to control backspace + this.rl.setPrompt(_.last(msgLines)); + + if (this.rl.output.rows === 0 && this.rl.output.columns === 0) { + /* When it's a tty through serial port there's no terminal info and the render will malfunction, + so we need enforce the cursor to locate to the leftmost position for rendering. */ + rlUtils.left(this.rl, message.length + this.rl.line.length); + } + this.rl.output.write(message); } - this.rl.output.write(message); -}; +} + +module.exports = BottomBar; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/ui/prompt.js b/tools/node_modules/eslint/node_modules/inquirer/lib/ui/prompt.js index 9b56fe4dfe5888..c90540140dc278 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/ui/prompt.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/ui/prompt.js @@ -1,7 +1,6 @@ 'use strict'; var _ = require('lodash'); -var rx = require('rx-lite-aggregates'); -var util = require('util'); +var Rx = require('rxjs/Rx'); var runAsync = require('run-async'); var utils = require('../utils/utils'); var Base = require('./baseUI'); @@ -10,106 +9,111 @@ var Base = require('./baseUI'); * Base interface class other can inherits from */ -var PromptUI = module.exports = function (prompts, opt) { - Base.call(this, opt); - this.prompts = prompts; -}; -util.inherits(PromptUI, Base); - -PromptUI.prototype.run = function (questions) { - // Keep global reference to the answers - this.answers = {}; - - // Make sure questions is an array. - if (_.isPlainObject(questions)) { - questions = [questions]; +class PromptUI extends Base { + constructor(prompts, opt) { + super(opt); + this.prompts = prompts; } - // Create an observable, unless we received one as parameter. - // Note: As this is a public interface, we cannot do an instanceof check as we won't - // be using the exact same object in memory. - var obs = _.isArray(questions) ? rx.Observable.from(questions) : questions; + run(questions) { + // Keep global reference to the answers + this.answers = {}; + + // Make sure questions is an array. + if (_.isPlainObject(questions)) { + questions = [questions]; + } + + // Create an observable, unless we received one as parameter. + // Note: As this is a public interface, we cannot do an instanceof check as we won't + // be using the exact same object in memory. + var obs = _.isArray(questions) ? Rx.Observable.from(questions) : questions; + + this.process = obs + .concatMap(this.processQuestion.bind(this)) + // `publish` creates a hot Observable. It prevents duplicating prompts. + .publish(); + + this.process.connect(); + + return this.process + .reduce((answers, answer) => { + _.set(this.answers, answer.name, answer.answer); + return this.answers; + }, {}) + .toPromise(Promise) + .then(this.onCompletion.bind(this)); + } - this.process = obs - .concatMap(this.processQuestion.bind(this)) - // `publish` creates a hot Observable. It prevents duplicating prompts. - .publish(); + /** + * Once all prompt are over + */ - this.process.connect(); + onCompletion(answers) { + this.close(); - return this.process - .reduce(function (answers, answer) { - _.set(this.answers, answer.name, answer.answer); - return this.answers; - }.bind(this), {}) - .toPromise(Promise) - .then(this.onCompletion.bind(this)); -}; + return answers; + } -/** - * Once all prompt are over - */ + processQuestion(question) { + question = _.clone(question); + return Rx.Observable.defer(() => { + var obs = Rx.Observable.of(question); + + return obs + .concatMap(this.setDefaultType.bind(this)) + .concatMap(this.filterIfRunnable.bind(this)) + .concatMap(() => + utils.fetchAsyncQuestionProperty(question, 'message', this.answers) + ) + .concatMap(() => + utils.fetchAsyncQuestionProperty(question, 'default', this.answers) + ) + .concatMap(() => + utils.fetchAsyncQuestionProperty(question, 'choices', this.answers) + ) + .concatMap(this.fetchAnswer.bind(this)); + }); + } -PromptUI.prototype.onCompletion = function (answers) { - this.close(); - - return answers; -}; - -PromptUI.prototype.processQuestion = function (question) { - question = _.clone(question); - return rx.Observable.defer(function () { - var obs = rx.Observable.of(question); - - return obs - .concatMap(this.setDefaultType.bind(this)) - .concatMap(this.filterIfRunnable.bind(this)) - .concatMap(utils.fetchAsyncQuestionProperty.bind(null, question, 'message', this.answers)) - .concatMap(utils.fetchAsyncQuestionProperty.bind(null, question, 'default', this.answers)) - .concatMap(utils.fetchAsyncQuestionProperty.bind(null, question, 'choices', this.answers)) - .concatMap(this.fetchAnswer.bind(this)); - }.bind(this)); -}; - -PromptUI.prototype.fetchAnswer = function (question) { - var Prompt = this.prompts[question.type]; - this.activePrompt = new Prompt(question, this.rl, this.answers); - return rx.Observable.defer(function () { - return rx.Observable.fromPromise(this.activePrompt.run().then(function (answer) { - return {name: question.name, answer: answer}; - })); - }.bind(this)); -}; - -PromptUI.prototype.setDefaultType = function (question) { - // Default type to input - if (!this.prompts[question.type]) { - question.type = 'input'; + fetchAnswer(question) { + var Prompt = this.prompts[question.type]; + this.activePrompt = new Prompt(question, this.rl, this.answers); + return Rx.Observable.defer(() => + Rx.Observable.fromPromise( + this.activePrompt.run().then(answer => ({ name: question.name, answer: answer })) + ) + ); } - return rx.Observable.defer(function () { - return rx.Observable.return(question); - }); -}; - -PromptUI.prototype.filterIfRunnable = function (question) { - if (question.when === false) { - return rx.Observable.empty(); + + setDefaultType(question) { + // Default type to input + if (!this.prompts[question.type]) { + question.type = 'input'; + } + return Rx.Observable.defer(() => Rx.Observable.of(question)); } - if (!_.isFunction(question.when)) { - return rx.Observable.return(question); + filterIfRunnable(question) { + if (question.when === false) { + return Rx.Observable.empty(); + } + + if (!_.isFunction(question.when)) { + return Rx.Observable.of(question); + } + + var answers = this.answers; + return Rx.Observable.defer(() => + Rx.Observable.fromPromise( + runAsync(question.when)(answers).then(shouldRun => { + if (shouldRun) { + return question; + } + }) + ).filter(val => val != null) + ); } +} - var answers = this.answers; - return rx.Observable.defer(function () { - return rx.Observable.fromPromise( - runAsync(question.when)(answers).then(function (shouldRun) { - if (shouldRun) { - return question; - } - }) - ).filter(function (val) { - return val != null; - }); - }); -}; +module.exports = PromptUI; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/utils/events.js b/tools/node_modules/eslint/node_modules/inquirer/lib/utils/events.js index 3d2e147c59f26e..73117f3f37265f 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/utils/events.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/utils/events.js @@ -1,45 +1,40 @@ 'use strict'; -var rx = require('rx-lite-aggregates'); +var Rx = require('rxjs/Rx'); function normalizeKeypressEvents(value, key) { - return {value: value, key: key || {}}; + return { value: value, key: key || {} }; } -module.exports = function (rl) { - var keypress = rx.Observable.fromEvent(rl.input, 'keypress', normalizeKeypressEvents) - .filter(function (e) { - // Ignore `enter` key. On the readline, we only care about the `line` event. - return e.key.name !== 'enter' && e.key.name !== 'return'; - }); +module.exports = function(rl) { + var keypress = Rx.Observable.fromEvent(rl.input, 'keypress', normalizeKeypressEvents) + // Ignore `enter` key. On the readline, we only care about the `line` event. + .filter(({ key }) => key.name !== 'enter' && key.name !== 'return'); return { - line: rx.Observable.fromEvent(rl, 'line'), + line: Rx.Observable.fromEvent(rl, 'line'), keypress: keypress, - normalizedUpKey: keypress.filter(function (e) { - return e.key.name === 'up' || e.key.name === 'k' || (e.key.name === 'p' && e.key.ctrl); - }).share(), - - normalizedDownKey: keypress.filter(function (e) { - return e.key.name === 'down' || e.key.name === 'j' || (e.key.name === 'n' && e.key.ctrl); - }).share(), - - numberKey: keypress.filter(function (e) { - return e.value && '123456789'.indexOf(e.value) >= 0; - }).map(function (e) { - return Number(e.value); - }).share(), - - spaceKey: keypress.filter(function (e) { - return e.key && e.key.name === 'space'; - }).share(), - - aKey: keypress.filter(function (e) { - return e.key && e.key.name === 'a'; - }).share(), - - iKey: keypress.filter(function (e) { - return e.key && e.key.name === 'i'; - }).share() + normalizedUpKey: keypress + .filter( + ({ key }) => + key.name === 'up' || key.name === 'k' || (key.name === 'p' && key.ctrl) + ) + .share(), + + normalizedDownKey: keypress + .filter( + ({ key }) => + key.name === 'down' || key.name === 'j' || (key.name === 'n' && key.ctrl) + ) + .share(), + + numberKey: keypress + .filter(e => e.value && '123456789'.indexOf(e.value) >= 0) + .map(e => Number(e.value)) + .share(), + + spaceKey: keypress.filter(({ key }) => key && key.name === 'space').share(), + aKey: keypress.filter(({ key }) => key && key.name === 'a').share(), + iKey: keypress.filter(({ key }) => key && key.name === 'i').share() }; }; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/utils/paginator.js b/tools/node_modules/eslint/node_modules/inquirer/lib/utils/paginator.js index fc7ebe06697052..ff42dfeddf35ef 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/utils/paginator.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/utils/paginator.js @@ -8,31 +8,46 @@ var chalk = require('chalk'); * a subset of the choices if the list is too long. */ -var Paginator = module.exports = function () { - this.pointer = 0; - this.lastIndex = 0; -}; - -Paginator.prototype.paginate = function (output, active, pageSize) { - pageSize = pageSize || 7; - var middleOfList = Math.floor(pageSize / 2); - var lines = output.split('\n'); - - // Make sure there's enough lines to paginate - if (lines.length <= pageSize) { - return output; +class Paginator { + constructor(screen) { + this.pointer = 0; + this.lastIndex = 0; + this.screen = screen; } - // Move the pointer only when the user go down and limit it to the middle of the list - if (this.pointer < middleOfList && this.lastIndex < active && active - this.lastIndex < pageSize) { - this.pointer = Math.min(middleOfList, this.pointer + active - this.lastIndex); + paginate(output, active, pageSize) { + pageSize = pageSize || 7; + var middleOfList = Math.floor(pageSize / 2); + var lines = output.split('\n'); + + if (this.screen) { + lines = this.screen.breakLines(lines); + active = _.sum(lines.map(lineParts => lineParts.length).splice(0, active)); + lines = _.flatten(lines); + } + + // Make sure there's enough lines to paginate + if (lines.length <= pageSize) { + return output; + } + + // Move the pointer only when the user go down and limit it to the middle of the list + if ( + this.pointer < middleOfList && + this.lastIndex < active && + active - this.lastIndex < pageSize + ) { + this.pointer = Math.min(middleOfList, this.pointer + active - this.lastIndex); + } + this.lastIndex = active; + + // Duplicate the lines so it give an infinite list look + var infinite = _.flatten([lines, lines, lines]); + var topIndex = Math.max(0, active + lines.length - this.pointer); + + var section = infinite.splice(topIndex, pageSize).join('\n'); + return section + '\n' + chalk.dim('(Move up and down to reveal more choices)'); } - this.lastIndex = active; +} - // Duplicate the lines so it give an infinite list look - var infinite = _.flatten([lines, lines, lines]); - var topIndex = Math.max(0, active + lines.length - this.pointer); - - var section = infinite.splice(topIndex, pageSize).join('\n'); - return section + '\n' + chalk.dim('(Move up and down to reveal more choices)'); -}; +module.exports = Paginator; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/utils/readline.js b/tools/node_modules/eslint/node_modules/inquirer/lib/utils/readline.js index 092059b81dbde6..929b6723b814b5 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/utils/readline.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/utils/readline.js @@ -7,7 +7,7 @@ var ansiEscapes = require('ansi-escapes'); * @param {Number} x - How far to go left (default to 1) */ -exports.left = function (rl, x) { +exports.left = function(rl, x) { rl.output.write(ansiEscapes.cursorBackward(x)); }; @@ -17,7 +17,7 @@ exports.left = function (rl, x) { * @param {Number} x - How far to go left (default to 1) */ -exports.right = function (rl, x) { +exports.right = function(rl, x) { rl.output.write(ansiEscapes.cursorForward(x)); }; @@ -27,7 +27,7 @@ exports.right = function (rl, x) { * @param {Number} x - How far to go up (default to 1) */ -exports.up = function (rl, x) { +exports.up = function(rl, x) { rl.output.write(ansiEscapes.cursorUp(x)); }; @@ -37,7 +37,7 @@ exports.up = function (rl, x) { * @param {Number} x - How far to go down (default to 1) */ -exports.down = function (rl, x) { +exports.down = function(rl, x) { rl.output.write(ansiEscapes.cursorDown(x)); }; @@ -46,6 +46,6 @@ exports.down = function (rl, x) { * @param {Readline} rl - Readline instance * @param {Number} len - number of line to delete */ -exports.clearLine = function (rl, len) { +exports.clearLine = function(rl, len) { rl.output.write(ansiEscapes.eraseLines(len)); }; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/utils/screen-manager.js b/tools/node_modules/eslint/node_modules/inquirer/lib/utils/screen-manager.js index e5d60fd40a28bd..f19126ef703d45 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/utils/screen-manager.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/utils/screen-manager.js @@ -13,123 +13,126 @@ function lastLine(content) { return _.last(content.split('\n')); } -var ScreenManager = module.exports = function (rl) { - // These variables are keeping information to allow correct prompt re-rendering - this.height = 0; - this.extraLinesUnderPrompt = 0; - - this.rl = rl; -}; - -ScreenManager.prototype.render = function (content, bottomContent) { - this.rl.output.unmute(); - this.clean(this.extraLinesUnderPrompt); - - /** - * Write message to screen and setPrompt to control backspace - */ - - var promptLine = lastLine(content); - var rawPromptLine = stripAnsi(promptLine); - - // Remove the rl.line from our prompt. We can't rely on the content of - // rl.line (mainly because of the password prompt), so just rely on it's - // length. - var prompt = rawPromptLine; - if (this.rl.line.length) { - prompt = prompt.slice(0, -this.rl.line.length); - } - this.rl.setPrompt(prompt); - - // setPrompt will change cursor position, now we can get correct value - var cursorPos = this.rl._getCursorPos(); - var width = this.normalizedCliWidth(); +class ScreenManager { + constructor(rl) { + // These variables are keeping information to allow correct prompt re-rendering + this.height = 0; + this.extraLinesUnderPrompt = 0; - content = forceLineReturn(content, width); - if (bottomContent) { - bottomContent = forceLineReturn(bottomContent, width); - } - // Manually insert an extra line if we're at the end of the line. - // This prevent the cursor from appearing at the beginning of the - // current line. - if (rawPromptLine.length % width === 0) { - content += '\n'; - } - var fullContent = content + (bottomContent ? '\n' + bottomContent : ''); - this.rl.output.write(fullContent); - - /** - * Re-adjust the cursor at the correct position. - */ - - // We need to consider parts of the prompt under the cursor as part of the bottom - // content in order to correctly cleanup and re-render. - var promptLineUpDiff = Math.floor(rawPromptLine.length / width) - cursorPos.rows; - var bottomContentHeight = promptLineUpDiff + (bottomContent ? height(bottomContent) : 0); - if (bottomContentHeight > 0) { - util.up(this.rl, bottomContentHeight); + this.rl = rl; } - // Reset cursor at the beginning of the line - util.left(this.rl, stringWidth(lastLine(fullContent))); + render(content, bottomContent) { + this.rl.output.unmute(); + this.clean(this.extraLinesUnderPrompt); + + /** + * Write message to screen and setPrompt to control backspace + */ + + var promptLine = lastLine(content); + var rawPromptLine = stripAnsi(promptLine); + + // Remove the rl.line from our prompt. We can't rely on the content of + // rl.line (mainly because of the password prompt), so just rely on it's + // length. + var prompt = rawPromptLine; + if (this.rl.line.length) { + prompt = prompt.slice(0, -this.rl.line.length); + } + this.rl.setPrompt(prompt); + + // SetPrompt will change cursor position, now we can get correct value + var cursorPos = this.rl._getCursorPos(); + var width = this.normalizedCliWidth(); + + content = this.forceLineReturn(content, width); + if (bottomContent) { + bottomContent = this.forceLineReturn(bottomContent, width); + } + // Manually insert an extra line if we're at the end of the line. + // This prevent the cursor from appearing at the beginning of the + // current line. + if (rawPromptLine.length % width === 0) { + content += '\n'; + } + var fullContent = content + (bottomContent ? '\n' + bottomContent : ''); + this.rl.output.write(fullContent); + + /** + * Re-adjust the cursor at the correct position. + */ + + // We need to consider parts of the prompt under the cursor as part of the bottom + // content in order to correctly cleanup and re-render. + var promptLineUpDiff = Math.floor(rawPromptLine.length / width) - cursorPos.rows; + var bottomContentHeight = + promptLineUpDiff + (bottomContent ? height(bottomContent) : 0); + if (bottomContentHeight > 0) { + util.up(this.rl, bottomContentHeight); + } + + // Reset cursor at the beginning of the line + util.left(this.rl, stringWidth(lastLine(fullContent))); + + // Adjust cursor on the right + if (cursorPos.cols > 0) { + util.right(this.rl, cursorPos.cols); + } + + /** + * Set up state for next re-rendering + */ + this.extraLinesUnderPrompt = bottomContentHeight; + this.height = height(fullContent); + + this.rl.output.mute(); + } - // Adjust cursor on the right - util.right(this.rl, cursorPos.cols); + clean(extraLines) { + if (extraLines > 0) { + util.down(this.rl, extraLines); + } + util.clearLine(this.rl, this.height); + } - /** - * Set up state for next re-rendering - */ - this.extraLinesUnderPrompt = bottomContentHeight; - this.height = height(fullContent); + done() { + this.rl.setPrompt(''); + this.rl.output.unmute(); + this.rl.output.write('\n'); + } - this.rl.output.mute(); -}; + releaseCursor() { + if (this.extraLinesUnderPrompt > 0) { + util.down(this.rl, this.extraLinesUnderPrompt); + } + } -ScreenManager.prototype.clean = function (extraLines) { - if (extraLines > 0) { - util.down(this.rl, extraLines); + normalizedCliWidth() { + var width = cliWidth({ + defaultWidth: 80, + output: this.rl.output + }); + return width; } - util.clearLine(this.rl, this.height); -}; - -ScreenManager.prototype.done = function () { - this.rl.setPrompt(''); - this.rl.output.unmute(); - this.rl.output.write('\n'); -}; - -ScreenManager.prototype.releaseCursor = function () { - if (this.extraLinesUnderPrompt > 0) { - util.down(this.rl, this.extraLinesUnderPrompt); + + breakLines(lines, width) { + // Break lines who're longer than the cli width so we can normalize the natural line + // returns behavior across terminals. + width = width || this.normalizedCliWidth(); + var regex = new RegExp('(?:(?:\\033[[0-9;]*m)*.?){1,' + width + '}', 'g'); + return lines.map(line => { + var chunk = line.match(regex); + // Last match is always empty + chunk.pop(); + return chunk || ''; + }); } -}; - -ScreenManager.prototype.normalizedCliWidth = function () { - var width = cliWidth({ - defaultWidth: 80, - output: this.rl.output - }); - if (process.platform === 'win32') { - return width - 1; + + forceLineReturn(content, width) { + width = width || this.normalizedCliWidth(); + return _.flatten(this.breakLines(content.split('\n'), width)).join('\n'); } - return width; -}; - -function breakLines(lines, width) { - // Break lines who're longuer than the cli width so we can normalize the natural line - // returns behavior accross terminals. - var regex = new RegExp( - '(?:(?:\\033[[0-9;]*m)*.?){1,' + width + '}', - 'g' - ); - return lines.map(function (line) { - var chunk = line.match(regex); - // last match is always empty - chunk.pop(); - return chunk || ''; - }); } -function forceLineReturn(content, width) { - return _.flatten(breakLines(content.split('\n'), width)).join('\n'); -} +module.exports = ScreenManager; diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/utils/utils.js b/tools/node_modules/eslint/node_modules/inquirer/lib/utils/utils.js index 63f20d77bb8574..12e218ac1c48a5 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/lib/utils/utils.js +++ b/tools/node_modules/eslint/node_modules/inquirer/lib/utils/utils.js @@ -1,6 +1,6 @@ 'use strict'; var _ = require('lodash'); -var rx = require('rx-lite-aggregates'); +var Rx = require('rxjs/Rx'); var runAsync = require('run-async'); /** @@ -9,16 +9,16 @@ var runAsync = require('run-async'); * @param {Object} question - Question object * @param {String} prop - Property to fetch name * @param {Object} answers - Answers object - * @return {rx.Obsersable} - Observable emitting once value is known + * @return {Rx.Observable} - Observable emitting once value is known */ -exports.fetchAsyncQuestionProperty = function (question, prop, answers) { +exports.fetchAsyncQuestionProperty = function(question, prop, answers) { if (!_.isFunction(question[prop])) { - return rx.Observable.return(question); + return Rx.Observable.of(question); } - return rx.Observable.fromPromise(runAsync(question[prop])(answers) - .then(function (value) { + return Rx.Observable.fromPromise( + runAsync(question[prop])(answers).then(value => { question[prop] = value; return question; }) diff --git a/tools/node_modules/eslint/node_modules/inquirer/package.json b/tools/node_modules/eslint/node_modules/inquirer/package.json index d3959f7b47972c..c04be22c2a9ac7 100644 --- a/tools/node_modules/eslint/node_modules/inquirer/package.json +++ b/tools/node_modules/eslint/node_modules/inquirer/package.json @@ -1,27 +1,27 @@ { - "_from": "inquirer@^3.0.6", - "_id": "inquirer@3.3.0", + "_from": "inquirer@^5.2.0", + "_id": "inquirer@5.2.0", "_inBundle": false, - "_integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "_integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", "_location": "/eslint/inquirer", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "inquirer@^3.0.6", + "raw": "inquirer@^5.2.0", "name": "inquirer", "escapedName": "inquirer", - "rawSpec": "^3.0.6", + "rawSpec": "^5.2.0", "saveSpec": null, - "fetchSpec": "^3.0.6" + "fetchSpec": "^5.2.0" }, "_requiredBy": [ "/eslint" ], - "_resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "_shasum": "9dd2f2ad765dcab1ff0443b491442a20ba227dc9", - "_spec": "inquirer@^3.0.6", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", + "_shasum": "db350c2b73daca77ff1243962e9f22f099685726", + "_spec": "inquirer@^5.2.0", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Simon Boudrias", "email": "admin@simonboudrias.com" @@ -35,13 +35,12 @@ "chalk": "^2.0.0", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", - "external-editor": "^2.0.4", + "external-editor": "^2.1.0", "figures": "^2.0.0", "lodash": "^4.3.0", "mute-stream": "0.0.7", "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", + "rxjs": "^5.5.2", "string-width": "^2.1.0", "strip-ansi": "^4.0.0", "through": "^2.3.6" @@ -50,22 +49,54 @@ "description": "A collection of common interactive command line user interfaces.", "devDependencies": { "chai": "^4.0.1", + "chalk-pipe": "^1.2.0", "cmdify": "^0.0.4", - "eslint": "^4.2.0", - "eslint-config-xo-space": "^0.16.0", - "gulp": "^3.9.0", - "gulp-codacy": "^1.0.0", - "gulp-coveralls": "^0.1.0", - "gulp-eslint": "^4.0.0", - "gulp-exclude-gitignore": "^1.0.0", - "gulp-istanbul": "^1.1.2", - "gulp-line-ending-corrector": "^1.0.1", - "gulp-mocha": "^3.0.0", - "gulp-nsp": "^2.1.0", - "gulp-plumber": "^1.0.0", - "mocha": "^3.4.2", + "coveralls": "^3.0.0", + "eslint": "^4.1.0", + "eslint-config-prettier": "^2.4.0", + "eslint-config-xo": "^0.20.0", + "eslint-plugin-prettier": "^2.2.0", + "husky": "^0.14.3", + "lint-staged": "^7.0.0", + "mocha": "^5.0.0", "mockery": "^2.1.0", - "sinon": "^3.0.0" + "nsp": "^3.0.0", + "nyc": "^11.3.0", + "prettier": "^1.7.0", + "sinon": "^4.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "eslintConfig": { + "extends": [ + "xo", + "prettier" + ], + "env": { + "mocha": true, + "node": true + }, + "rules": { + "no-eq-null": "off", + "eqeqeq": [ + "error", + "always", + { + "null": "ignore" + } + ], + "prettier/prettier": [ + "error", + { + "singleQuote": true, + "printWidth": 90 + } + ] + }, + "plugins": [ + "prettier" + ] }, "files": [ "lib" @@ -80,6 +111,16 @@ "menu" ], "license": "MIT", + "lint-staged": { + "*.js": [ + "eslint --fix", + "git add" + ], + "*.json": [ + "prettier --write", + "git add" + ] + }, "main": "lib/inquirer.js", "name": "inquirer", "repository": { @@ -87,8 +128,11 @@ "url": "git+https://github.com/SBoudrias/Inquirer.js.git" }, "scripts": { - "prepublish": "gulp prepublish", - "test": "gulp" + "coverage": "nyc report --reporter=text-lcov | coveralls", + "precommit": "lint-staged", + "prepublish": "nsp check", + "pretest": "eslint .", + "test": "nyc mocha test/**/* -r ./test/before" }, - "version": "3.3.0" + "version": "5.2.0" } diff --git a/tools/node_modules/eslint/node_modules/is-alphabetical/index.js b/tools/node_modules/eslint/node_modules/is-alphabetical/index.js index 3b27588720441b..d65e531a16823f 100644 --- a/tools/node_modules/eslint/node_modules/is-alphabetical/index.js +++ b/tools/node_modules/eslint/node_modules/is-alphabetical/index.js @@ -1,13 +1,14 @@ -'use strict'; +'use strict' -module.exports = alphabetical; +module.exports = alphabetical /* Check if the given character code, or the character * code at the first character, is alphabetical. */ function alphabetical(character) { - var code = typeof character === 'string' ? - character.charCodeAt(0) : character; + var code = typeof character === 'string' ? character.charCodeAt(0) : character - return (code >= 97 && code <= 122) || /* a-z */ - (code >= 65 && code <= 90); /* A-Z */ + return ( + (code >= 97 && code <= 122) /* a-z */ || + (code >= 65 && code <= 90) /* A-Z */ + ) } diff --git a/tools/node_modules/eslint/node_modules/is-alphabetical/package.json b/tools/node_modules/eslint/node_modules/is-alphabetical/package.json index 2c7811526a082b..e15774516db6cc 100644 --- a/tools/node_modules/eslint/node_modules/is-alphabetical/package.json +++ b/tools/node_modules/eslint/node_modules/is-alphabetical/package.json @@ -1,8 +1,8 @@ { "_from": "is-alphabetical@^1.0.0", - "_id": "is-alphabetical@1.0.1", + "_id": "is-alphabetical@1.0.2", "_inBundle": false, - "_integrity": "sha1-x3B5zJHU76x3W+EDS/LSQ/lebwg=", + "_integrity": "sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg==", "_location": "/is-alphabetical", "_phantomChildren": {}, "_requested": { @@ -19,10 +19,10 @@ "/is-alphanumerical", "/remark-parse" ], - "_resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.1.tgz", - "_shasum": "c77079cc91d4efac775be1034bf2d243f95e6f08", + "_resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.2.tgz", + "_shasum": "1fa6e49213cb7885b75d15862fb3f3d96c884f41", "_spec": "is-alphabetical@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -43,13 +43,14 @@ "deprecated": false, "description": "Check if a character is alphabetical", "devDependencies": { - "browserify": "^14.1.0", + "browserify": "^16.0.0", "esmangle": "^1.0.1", "nyc": "^11.0.0", - "remark-cli": "^3.0.0", - "remark-preset-wooorm": "^3.0.0", + "prettier": "^1.12.1", + "remark-cli": "^5.0.0", + "remark-preset-wooorm": "^4.0.0", "tape": "^4.0.0", - "xo": "^0.18.0" + "xo": "^0.20.0" }, "files": [ "index.js" @@ -70,6 +71,14 @@ "functions": 100, "branches": 100 }, + "prettier": { + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "bracketSpacing": false, + "semi": false, + "trailingComma": "none" + }, "remarkConfig": { "plugins": [ "preset-wooorm" @@ -80,20 +89,21 @@ "url": "git+https://github.com/wooorm/is-alphabetical.git" }, "scripts": { - "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build": "npm run build-bundle && npm run build-mangle", "build-bundle": "browserify index.js --bare -s isAlphabetical > is-alphabetical.js", "build-mangle": "esmangle < is-alphabetical.js > is-alphabetical.min.js", - "build-md": "remark . -qfo", - "lint": "xo", - "test": "npm run build && npm run lint && npm run test-coverage", + "format": "remark . -qfo && prettier --write '**/*.js' && xo --fix", + "test": "npm run format && npm run build && npm run test-coverage", "test-api": "node test", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.0.1", + "version": "1.0.2", "xo": { - "space": true, + "prettier": true, "esnext": false, "rules": { + "no-var": "off", + "prefer-arrow-callback": "off", "capitalized-comments": "off" }, "ignores": [ diff --git a/tools/node_modules/eslint/node_modules/is-alphabetical/readme.md b/tools/node_modules/eslint/node_modules/is-alphabetical/readme.md index 372b18837889b0..42952e9c89b05c 100644 --- a/tools/node_modules/eslint/node_modules/is-alphabetical/readme.md +++ b/tools/node_modules/eslint/node_modules/is-alphabetical/readme.md @@ -13,12 +13,12 @@ npm install is-alphabetical ## Usage ```javascript -var alphabetical = require('is-alphabetical'); +var alphabetical = require('is-alphabetical') -alphabetical('a'); // true -alphabetical('B'); // true -alphabetical('0'); // false -alphabetical('💩'); // false +alphabetical('a') // => true +alphabetical('B') // => true +alphabetical('0') // => false +alphabetical('💩') // => false ``` ## API diff --git a/tools/node_modules/eslint/node_modules/is-alphanumerical/index.js b/tools/node_modules/eslint/node_modules/is-alphanumerical/index.js index 441d6171fa4037..707033ee391f5a 100644 --- a/tools/node_modules/eslint/node_modules/is-alphanumerical/index.js +++ b/tools/node_modules/eslint/node_modules/is-alphanumerical/index.js @@ -1,12 +1,12 @@ -'use strict'; +'use strict' -var alphabetical = require('is-alphabetical'); -var decimal = require('is-decimal'); +var alphabetical = require('is-alphabetical') +var decimal = require('is-decimal') -module.exports = alphanumerical; +module.exports = alphanumerical /* Check if the given character code, or the character * code at the first character, is alphanumerical. */ function alphanumerical(character) { - return alphabetical(character) || decimal(character); + return alphabetical(character) || decimal(character) } diff --git a/tools/node_modules/eslint/node_modules/is-alphanumerical/package.json b/tools/node_modules/eslint/node_modules/is-alphanumerical/package.json index aafc45e7979df0..12a64f4a323f39 100644 --- a/tools/node_modules/eslint/node_modules/is-alphanumerical/package.json +++ b/tools/node_modules/eslint/node_modules/is-alphanumerical/package.json @@ -1,8 +1,8 @@ { "_from": "is-alphanumerical@^1.0.0", - "_id": "is-alphanumerical@1.0.1", + "_id": "is-alphanumerical@1.0.2", "_inBundle": false, - "_integrity": "sha1-37SqTRCF4zvbYcLe6cgOnGwZ9Ts=", + "_integrity": "sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg==", "_location": "/is-alphanumerical", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/parse-entities" ], - "_resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.1.tgz", - "_shasum": "dfb4aa4d1085e33bdb61c2dee9c80e9c6c19f53b", + "_resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz", + "_shasum": "1138e9ae5040158dc6ff76b820acd6b7a181fd40", "_spec": "is-alphanumerical@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/parse-entities", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/parse-entities", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -45,13 +45,14 @@ "deprecated": false, "description": "Check if a character is alphanumerical", "devDependencies": { - "browserify": "^14.1.0", + "browserify": "^16.0.0", "esmangle": "^1.0.1", "nyc": "^11.0.0", - "remark-cli": "^3.0.0", - "remark-preset-wooorm": "^3.0.0", + "prettier": "^1.12.1", + "remark-cli": "^5.0.0", + "remark-preset-wooorm": "^4.0.0", "tape": "^4.0.0", - "xo": "^0.18.0" + "xo": "^0.20.0" }, "files": [ "index.js" @@ -74,6 +75,14 @@ "functions": 100, "branches": 100 }, + "prettier": { + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "bracketSpacing": false, + "semi": false, + "trailingComma": "none" + }, "remarkConfig": { "plugins": [ "preset-wooorm" @@ -84,19 +93,22 @@ "url": "git+https://github.com/wooorm/is-alphanumerical.git" }, "scripts": { - "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build": "npm run build-bundle && npm run build-mangle", "build-bundle": "browserify index.js --bare -s isAlphanumerical > is-alphanumerical.js", "build-mangle": "esmangle < is-alphanumerical.js > is-alphanumerical.min.js", - "build-md": "remark . -qfo", - "lint": "xo", - "test": "npm run build && npm run lint && npm run test-coverage", + "format": "remark . -qfo && prettier --write '**/*.js' && xo --fix", + "test": "npm run format && npm run build && npm run test-coverage", "test-api": "node test", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.0.1", + "version": "1.0.2", "xo": { - "space": true, + "prettier": true, "esnext": false, + "rules": { + "no-var": "off", + "prefer-arrow-callback": "off" + }, "ignores": [ "is-alphanumerical.js" ] diff --git a/tools/node_modules/eslint/node_modules/is-alphanumerical/readme.md b/tools/node_modules/eslint/node_modules/is-alphanumerical/readme.md index 9b1ffddddcc1c5..d5c2013368bb1c 100644 --- a/tools/node_modules/eslint/node_modules/is-alphanumerical/readme.md +++ b/tools/node_modules/eslint/node_modules/is-alphanumerical/readme.md @@ -13,13 +13,13 @@ npm install is-alphanumerical ## Usage ```javascript -var alphanumerical = require('is-alphanumerical'); +var alphanumerical = require('is-alphanumerical') -alphanumerical('a'); //=> true -alphanumerical('Z'); //=> true -alphanumerical('0'); //=> true -alphanumerical(' '); //=> false -alphanumerical('💩'); //=> false +alphanumerical('a') // => true +alphanumerical('Z') // => true +alphanumerical('0') // => true +alphanumerical(' ') // => false +alphanumerical('💩') // => false ``` ## API diff --git a/tools/node_modules/eslint/node_modules/is-buffer/package.json b/tools/node_modules/eslint/node_modules/is-buffer/package.json index 4c39698bf0da37..2d7a39434cce13 100644 --- a/tools/node_modules/eslint/node_modules/is-buffer/package.json +++ b/tools/node_modules/eslint/node_modules/is-buffer/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "_shasum": "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be", "_spec": "is-buffer@^1.1.4", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/vfile", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/vfile", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", diff --git a/tools/node_modules/eslint/node_modules/is-callable/LICENSE b/tools/node_modules/eslint/node_modules/is-callable/LICENSE new file mode 100644 index 00000000000000..b43df444e51828 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-callable/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/tools/node_modules/eslint/node_modules/is-callable/Makefile b/tools/node_modules/eslint/node_modules/is-callable/Makefile new file mode 100644 index 00000000000000..b9e4fe1aab3dde --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-callable/Makefile @@ -0,0 +1,61 @@ +# Since we rely on paths relative to the makefile location, abort if make isn't being run from there. +$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in)) + + # The files that need updating when incrementing the version number. +VERSIONED_FILES := *.js *.json README* + + +# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly. +# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment +# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests. +export PATH := $(shell printf '%s' "$$PWD/node_modules/.bin:$$PATH") +UTILS := semver +# Make sure that all required utilities can be located. +UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS))) + +# Default target (by virtue of being the first non '.'-prefixed in the file). +.PHONY: _no-target-specified +_no-target-specified: + $(error Please specify the target to make - `make list` shows targets. Alternatively, use `npm test` to run the default tests; `npm run` shows all tests) + +# Lists all targets defined in this makefile. +.PHONY: list +list: + @$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | command grep -v -e '^[^[:alnum:]]' -e '^$@$$command ' | sort + +# All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS). +.PHONY: test +test: + @npm test + +.PHONY: _ensure-tag +_ensure-tag: +ifndef TAG + $(error Please invoke with `make TAG= release`, where is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number) +endif + +CHANGELOG_ERROR = $(error No CHANGELOG specified) +.PHONY: _ensure-changelog +_ensure-changelog: + @ (git status -sb --porcelain | command grep -E '^( M|[MA] ) CHANGELOG.md' > /dev/null) || (echo no CHANGELOG.md specified && exit 2) + +# Ensures that the git workspace is clean. +.PHONY: _ensure-clean +_ensure-clean: + @[ -z "$$((git status --porcelain --untracked-files=no || echo err) | command grep -v 'CHANGELOG.md')" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; } + +# Makes a release; invoke with `make TAG= release`. +.PHONY: release +release: _ensure-tag _ensure-changelog _ensure-clean + @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \ + new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \ + if printf "$$new_ver" | command grep -q '^[0-9]'; then \ + semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \ + semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \ + else \ + new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \ + fi; \ + printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ + replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \ + git commit -m "v$$new_ver" $(VERSIONED_FILES) CHANGELOG.md && \ + git tag -a -m "v$$new_ver" "v$$new_ver" diff --git a/tools/node_modules/eslint/node_modules/is-callable/README.md b/tools/node_modules/eslint/node_modules/is-callable/README.md new file mode 100644 index 00000000000000..0cb65879972bfb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-callable/README.md @@ -0,0 +1,59 @@ +# is-callable [![Version Badge][2]][1] + +[![Build Status][3]][4] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +[![browser support][9]][10] + +Is this JS value callable? Works with Functions and GeneratorFunctions, despite ES6 @@toStringTag. + +## Example + +```js +var isCallable = require('is-callable'); +var assert = require('assert'); + +assert.notOk(isCallable(undefined)); +assert.notOk(isCallable(null)); +assert.notOk(isCallable(false)); +assert.notOk(isCallable(true)); +assert.notOk(isCallable([])); +assert.notOk(isCallable({})); +assert.notOk(isCallable(/a/g)); +assert.notOk(isCallable(new RegExp('a', 'g'))); +assert.notOk(isCallable(new Date())); +assert.notOk(isCallable(42)); +assert.notOk(isCallable(NaN)); +assert.notOk(isCallable(Infinity)); +assert.notOk(isCallable(new Number(42))); +assert.notOk(isCallable('foo')); +assert.notOk(isCallable(Object('foo'))); + +assert.ok(isCallable(function () {})); +assert.ok(isCallable(function* () {})); +assert.ok(isCallable(x => x * x)); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/is-callable +[2]: http://versionbadg.es/ljharb/is-callable.svg +[3]: https://travis-ci.org/ljharb/is-callable.svg +[4]: https://travis-ci.org/ljharb/is-callable +[5]: https://david-dm.org/ljharb/is-callable.svg +[6]: https://david-dm.org/ljharb/is-callable +[7]: https://david-dm.org/ljharb/is-callable/dev-status.svg +[8]: https://david-dm.org/ljharb/is-callable#info=devDependencies +[9]: https://ci.testling.com/ljharb/is-callable.png +[10]: https://ci.testling.com/ljharb/is-callable +[11]: https://nodei.co/npm/is-callable.png?downloads=true&stars=true +[license-image]: http://img.shields.io/npm/l/is-callable.svg +[license-url]: LICENSE +[downloads-image]: http://img.shields.io/npm/dm/is-callable.svg +[downloads-url]: http://npm-stat.com/charts.html?package=is-callable diff --git a/tools/node_modules/eslint/node_modules/is-callable/index.js b/tools/node_modules/eslint/node_modules/is-callable/index.js new file mode 100644 index 00000000000000..9e70b7978ad094 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-callable/index.js @@ -0,0 +1,39 @@ +'use strict'; + +var fnToStr = Function.prototype.toString; + +var constructorRegex = /^\s*class /; +var isES6ClassFn = function isES6ClassFn(value) { + try { + var fnStr = fnToStr.call(value); + var singleStripped = fnStr.replace(/\/\/.*\n/g, ''); + var multiStripped = singleStripped.replace(/\/\*[.\s\S]*\*\//g, ''); + var spaceStripped = multiStripped.replace(/\n/mg, ' ').replace(/ {2}/g, ' '); + return constructorRegex.test(spaceStripped); + } catch (e) { + return false; // not a function + } +}; + +var tryFunctionObject = function tryFunctionObject(value) { + try { + if (isES6ClassFn(value)) { return false; } + fnToStr.call(value); + return true; + } catch (e) { + return false; + } +}; +var toStr = Object.prototype.toString; +var fnClass = '[object Function]'; +var genClass = '[object GeneratorFunction]'; +var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; + +module.exports = function isCallable(value) { + if (!value) { return false; } + if (typeof value !== 'function' && typeof value !== 'object') { return false; } + if (hasToStringTag) { return tryFunctionObject(value); } + if (isES6ClassFn(value)) { return false; } + var strClass = toStr.call(value); + return strClass === fnClass || strClass === genClass; +}; diff --git a/tools/node_modules/eslint/node_modules/is-callable/package.json b/tools/node_modules/eslint/node_modules/is-callable/package.json new file mode 100644 index 00000000000000..09116f0661aaa5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-callable/package.json @@ -0,0 +1,114 @@ +{ + "_from": "is-callable@^1.1.3", + "_id": "is-callable@1.1.3", + "_inBundle": false, + "_integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "_location": "/eslint/is-callable", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-callable@^1.1.3", + "name": "is-callable", + "escapedName": "is-callable", + "rawSpec": "^1.1.3", + "saveSpec": null, + "fetchSpec": "^1.1.3" + }, + "_requiredBy": [ + "/eslint/es-abstract", + "/eslint/es-to-primitive" + ], + "_resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "_shasum": "86eb75392805ddc33af71c92a0eedf74ee7604b2", + "_spec": "is-callable@^1.1.3", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/es-abstract", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "bugs": { + "url": "https://github.com/ljharb/is-callable/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "Is this JS value callable? Works with Functions and GeneratorFunctions, despite ES6 @@toStringTag.", + "devDependencies": { + "@ljharb/eslint-config": "^2.1.1", + "covert": "^1.1.0", + "editorconfig-tools": "^0.1.1", + "eslint": "^2.2.0", + "foreach": "^2.0.5", + "jscs": "^2.10.1", + "make-arrow-function": "^1.1.0", + "make-generator-function": "^1.1.0", + "nsp": "^2.2.0", + "parallelshell": "^2.0.0", + "semver": "^5.1.0", + "tape": "^4.4.0" + }, + "engines": { + "node": ">= 0.4" + }, + "homepage": "https://github.com/ljharb/is-callable#readme", + "keywords": [ + "Function", + "function", + "callable", + "generator", + "generator function", + "arrow", + "arrow function", + "ES6", + "toStringTag", + "@@toStringTag" + ], + "license": "MIT", + "main": "index.js", + "name": "is-callable", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/is-callable.git" + }, + "scripts": { + "coverage": "covert test.js", + "coverage-quiet": "covert test.js --quiet", + "eccheck": "editorconfig-tools check *.js **/*.js > /dev/null", + "eslint": "eslint *.js", + "jscs": "jscs *.js", + "lint": "npm run jscs && npm run eslint", + "security": "nsp check", + "test": "npm run lint && npm run tests-only && npm run security", + "test:staging": "node --es-staging test.js", + "test:stock": "node test.js", + "tests-only": "parallelshell 'npm run test:stock' 'npm run test:staging'" + }, + "testling": { + "files": "test.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.1.3" +} diff --git a/tools/node_modules/eslint/node_modules/is-date-object/LICENSE b/tools/node_modules/eslint/node_modules/is-date-object/LICENSE new file mode 100644 index 00000000000000..b43df444e51828 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-date-object/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/tools/node_modules/eslint/node_modules/is-date-object/Makefile b/tools/node_modules/eslint/node_modules/is-date-object/Makefile new file mode 100644 index 00000000000000..b9e4fe1aab3dde --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-date-object/Makefile @@ -0,0 +1,61 @@ +# Since we rely on paths relative to the makefile location, abort if make isn't being run from there. +$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in)) + + # The files that need updating when incrementing the version number. +VERSIONED_FILES := *.js *.json README* + + +# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly. +# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment +# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests. +export PATH := $(shell printf '%s' "$$PWD/node_modules/.bin:$$PATH") +UTILS := semver +# Make sure that all required utilities can be located. +UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS))) + +# Default target (by virtue of being the first non '.'-prefixed in the file). +.PHONY: _no-target-specified +_no-target-specified: + $(error Please specify the target to make - `make list` shows targets. Alternatively, use `npm test` to run the default tests; `npm run` shows all tests) + +# Lists all targets defined in this makefile. +.PHONY: list +list: + @$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | command grep -v -e '^[^[:alnum:]]' -e '^$@$$command ' | sort + +# All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS). +.PHONY: test +test: + @npm test + +.PHONY: _ensure-tag +_ensure-tag: +ifndef TAG + $(error Please invoke with `make TAG= release`, where is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number) +endif + +CHANGELOG_ERROR = $(error No CHANGELOG specified) +.PHONY: _ensure-changelog +_ensure-changelog: + @ (git status -sb --porcelain | command grep -E '^( M|[MA] ) CHANGELOG.md' > /dev/null) || (echo no CHANGELOG.md specified && exit 2) + +# Ensures that the git workspace is clean. +.PHONY: _ensure-clean +_ensure-clean: + @[ -z "$$((git status --porcelain --untracked-files=no || echo err) | command grep -v 'CHANGELOG.md')" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; } + +# Makes a release; invoke with `make TAG= release`. +.PHONY: release +release: _ensure-tag _ensure-changelog _ensure-clean + @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \ + new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \ + if printf "$$new_ver" | command grep -q '^[0-9]'; then \ + semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \ + semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \ + else \ + new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \ + fi; \ + printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ + replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \ + git commit -m "v$$new_ver" $(VERSIONED_FILES) CHANGELOG.md && \ + git tag -a -m "v$$new_ver" "v$$new_ver" diff --git a/tools/node_modules/eslint/node_modules/is-date-object/README.md b/tools/node_modules/eslint/node_modules/is-date-object/README.md new file mode 100644 index 00000000000000..55b0c59673e603 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-date-object/README.md @@ -0,0 +1,53 @@ +# is-date-object [![Version Badge][2]][1] + +[![Build Status][3]][4] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +[![browser support][9]][10] + +Is this value a JS Date object? This module works cross-realm/iframe, and despite ES6 @@toStringTag. + +## Example + +```js +var isDate = require('is-date-object'); +var assert = require('assert'); + +assert.notOk(isDate(undefined)); +assert.notOk(isDate(null)); +assert.notOk(isDate(false)); +assert.notOk(isDate(true)); +assert.notOk(isDate(42)); +assert.notOk(isDate('foo')); +assert.notOk(isDate(function () {})); +assert.notOk(isDate([])); +assert.notOk(isDate({})); +assert.notOk(isDate(/a/g)); +assert.notOk(isDate(new RegExp('a', 'g'))); + +assert.ok(isDate(new Date())); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/is-date-object +[2]: http://versionbadg.es/ljharb/is-date-object.svg +[3]: https://travis-ci.org/ljharb/is-date-object.svg +[4]: https://travis-ci.org/ljharb/is-date-object +[5]: https://david-dm.org/ljharb/is-date-object.svg +[6]: https://david-dm.org/ljharb/is-date-object +[7]: https://david-dm.org/ljharb/is-date-object/dev-status.svg +[8]: https://david-dm.org/ljharb/is-date-object#info=devDependencies +[9]: https://ci.testling.com/ljharb/is-date-object.png +[10]: https://ci.testling.com/ljharb/is-date-object +[11]: https://nodei.co/npm/is-date-object.png?downloads=true&stars=true +[license-image]: http://img.shields.io/npm/l/is-date-object.svg +[license-url]: LICENSE +[downloads-image]: http://img.shields.io/npm/dm/is-date-object.svg +[downloads-url]: http://npm-stat.com/charts.html?package=is-date-object diff --git a/tools/node_modules/eslint/node_modules/is-date-object/index.js b/tools/node_modules/eslint/node_modules/is-date-object/index.js new file mode 100644 index 00000000000000..fe0d7ecd7c145c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-date-object/index.js @@ -0,0 +1,20 @@ +'use strict'; + +var getDay = Date.prototype.getDay; +var tryDateObject = function tryDateObject(value) { + try { + getDay.call(value); + return true; + } catch (e) { + return false; + } +}; + +var toStr = Object.prototype.toString; +var dateClass = '[object Date]'; +var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; + +module.exports = function isDateObject(value) { + if (typeof value !== 'object' || value === null) { return false; } + return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass; +}; diff --git a/tools/node_modules/eslint/node_modules/is-date-object/package.json b/tools/node_modules/eslint/node_modules/is-date-object/package.json new file mode 100644 index 00000000000000..1bc20025110cab --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-date-object/package.json @@ -0,0 +1,93 @@ +{ + "_from": "is-date-object@^1.0.1", + "_id": "is-date-object@1.0.1", + "_inBundle": false, + "_integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "_location": "/eslint/is-date-object", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-date-object@^1.0.1", + "name": "is-date-object", + "escapedName": "is-date-object", + "rawSpec": "^1.0.1", + "saveSpec": null, + "fetchSpec": "^1.0.1" + }, + "_requiredBy": [ + "/eslint/es-to-primitive" + ], + "_resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "_shasum": "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16", + "_spec": "is-date-object@^1.0.1", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/es-to-primitive", + "author": { + "name": "Jordan Harband" + }, + "bugs": { + "url": "https://github.com/ljharb/is-date-object/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Is this value a JS Date object? This module works cross-realm/iframe, and despite ES6 @@toStringTag.", + "devDependencies": { + "@ljharb/eslint-config": "^1.2.0", + "covert": "^1.1.0", + "eslint": "^1.5.1", + "foreach": "^2.0.5", + "indexof": "^0.0.1", + "is": "^3.1.0", + "jscs": "^2.1.1", + "nsp": "^1.1.0", + "semver": "^5.0.3", + "tape": "^4.2.0" + }, + "engines": { + "node": ">= 0.4" + }, + "homepage": "https://github.com/ljharb/is-date-object#readme", + "keywords": [ + "Date", + "ES6", + "toStringTag", + "@@toStringTag", + "Date object" + ], + "license": "MIT", + "main": "index.js", + "name": "is-date-object", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/is-date-object.git" + }, + "scripts": { + "coverage": "covert test.js", + "coverage-quiet": "covert test.js --quiet", + "eslint": "eslint test.js *.js", + "jscs": "jscs test.js *.js", + "lint": "npm run jscs && npm run eslint", + "security": "nsp package", + "test": "npm run lint && node --harmony --es-staging test.js && npm run security" + }, + "testling": { + "files": "test.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.0.1" +} diff --git a/tools/node_modules/eslint/node_modules/is-decimal/index.js b/tools/node_modules/eslint/node_modules/is-decimal/index.js index e0940c040da7cc..0414800d1b90eb 100644 --- a/tools/node_modules/eslint/node_modules/is-decimal/index.js +++ b/tools/node_modules/eslint/node_modules/is-decimal/index.js @@ -1,12 +1,11 @@ -'use strict'; +'use strict' -module.exports = decimal; +module.exports = decimal /* Check if the given character code, or the character * code at the first character, is decimal. */ function decimal(character) { - var code = typeof character === 'string' ? - character.charCodeAt(0) : character; + var code = typeof character === 'string' ? character.charCodeAt(0) : character - return code >= 48 && code <= 57; /* 0-9 */ + return code >= 48 && code <= 57 /* 0-9 */ } diff --git a/tools/node_modules/eslint/node_modules/is-decimal/package.json b/tools/node_modules/eslint/node_modules/is-decimal/package.json index fb2988848f35b3..bb0a9cbacd099f 100644 --- a/tools/node_modules/eslint/node_modules/is-decimal/package.json +++ b/tools/node_modules/eslint/node_modules/is-decimal/package.json @@ -1,8 +1,8 @@ { "_from": "is-decimal@^1.0.0", - "_id": "is-decimal@1.0.1", + "_id": "is-decimal@1.0.2", "_inBundle": false, - "_integrity": "sha1-9ftqlJlq2ejjdh+/vQkfH8qMToI=", + "_integrity": "sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg==", "_location": "/is-decimal", "_phantomChildren": {}, "_requested": { @@ -20,10 +20,10 @@ "/parse-entities", "/remark-parse" ], - "_resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.1.tgz", - "_shasum": "f5fb6a94996ad9e8e3761fbfbd091f1fca8c4e82", + "_resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.2.tgz", + "_shasum": "894662d6a8709d307f3a276ca4339c8fa5dff0ff", "_spec": "is-decimal@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -44,13 +44,14 @@ "deprecated": false, "description": "Check if a character is decimal", "devDependencies": { - "browserify": "^14.1.0", + "browserify": "^16.0.0", "esmangle": "^1.0.1", "nyc": "^11.0.0", - "remark-cli": "^3.0.0", - "remark-preset-wooorm": "^3.0.0", + "prettier": "^1.12.1", + "remark-cli": "^5.0.0", + "remark-preset-wooorm": "^4.0.0", "tape": "^4.0.0", - "xo": "^0.18.0" + "xo": "^0.20.0" }, "files": [ "index.js" @@ -71,6 +72,14 @@ "functions": 100, "branches": 100 }, + "prettier": { + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "bracketSpacing": false, + "semi": false, + "trailingComma": "none" + }, "remarkConfig": { "plugins": [ "preset-wooorm" @@ -81,19 +90,22 @@ "url": "git+https://github.com/wooorm/is-decimal.git" }, "scripts": { - "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build": "npm run build-bundle && npm run build-mangle", "build-bundle": "browserify index.js --bare -s isDecimal > is-decimal.js", "build-mangle": "esmangle < is-decimal.js > is-decimal.min.js", - "build-md": "remark . -qfo", - "lint": "xo", - "test": "npm run build && npm run lint && npm run test-coverage", + "format": "remark . -qfo && prettier --write '**/*.js' && xo --fix", + "test": "npm run format && npm run build && npm run test-coverage", "test-api": "node test", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.0.1", + "version": "1.0.2", "xo": { - "space": true, + "prettier": true, "esnext": false, + "rules": { + "no-var": "off", + "prefer-arrow-callback": "off" + }, "ignores": [ "is-decimal.js" ] diff --git a/tools/node_modules/eslint/node_modules/is-decimal/readme.md b/tools/node_modules/eslint/node_modules/is-decimal/readme.md index 5d5de46683a536..48464b6a457641 100644 --- a/tools/node_modules/eslint/node_modules/is-decimal/readme.md +++ b/tools/node_modules/eslint/node_modules/is-decimal/readme.md @@ -13,12 +13,12 @@ npm install is-decimal ## Usage ```javascript -var decimal = require('is-decimal'); +var decimal = require('is-decimal') -decimal('0'); //=> true -decimal('9'); //=> true -decimal('a'); //=> false -decimal('💩'); //=> false +decimal('0') // => true +decimal('9') // => true +decimal('a') // => false +decimal('💩') // => false ``` ## API diff --git a/tools/node_modules/eslint/node_modules/is-fullwidth-code-point/package.json b/tools/node_modules/eslint/node_modules/is-fullwidth-code-point/package.json index 7dcb7ef2e423c6..065e24d4582741 100644 --- a/tools/node_modules/eslint/node_modules/is-fullwidth-code-point/package.json +++ b/tools/node_modules/eslint/node_modules/is-fullwidth-code-point/package.json @@ -22,7 +22,7 @@ "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "_shasum": "a3b30a5c4f199183167aaab93beefae3ddfb654f", "_spec": "is-fullwidth-code-point@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/string-width", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/string-width", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/is-hexadecimal/index.js b/tools/node_modules/eslint/node_modules/is-hexadecimal/index.js index 533e74a67f6579..40b6a111ffa974 100644 --- a/tools/node_modules/eslint/node_modules/is-hexadecimal/index.js +++ b/tools/node_modules/eslint/node_modules/is-hexadecimal/index.js @@ -1,14 +1,15 @@ -'use strict'; +'use strict' -module.exports = hexadecimal; +module.exports = hexadecimal /* Check if the given character code, or the character * code at the first character, is hexadecimal. */ function hexadecimal(character) { - var code = typeof character === 'string' ? - character.charCodeAt(0) : character; + var code = typeof character === 'string' ? character.charCodeAt(0) : character - return (code >= 97 /* a */ && code <= 102 /* z */) || - (code >= 65 /* A */ && code <= 70 /* Z */) || - (code >= 48 /* A */ && code <= 57 /* Z */); + return ( + (code >= 97 /* a */ && code <= 102) /* z */ || + (code >= 65 /* A */ && code <= 70) /* Z */ || + (code >= 48 /* A */ && code <= 57) /* Z */ + ) } diff --git a/tools/node_modules/eslint/node_modules/is-hexadecimal/package.json b/tools/node_modules/eslint/node_modules/is-hexadecimal/package.json index d8a2111a3a03e3..0c762e4e64f1e6 100644 --- a/tools/node_modules/eslint/node_modules/is-hexadecimal/package.json +++ b/tools/node_modules/eslint/node_modules/is-hexadecimal/package.json @@ -1,8 +1,8 @@ { "_from": "is-hexadecimal@^1.0.0", - "_id": "is-hexadecimal@1.0.1", + "_id": "is-hexadecimal@1.0.2", "_inBundle": false, - "_integrity": "sha1-bghLvJIGH7sJcexYts5tQE4k2mk=", + "_integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==", "_location": "/is-hexadecimal", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/parse-entities" ], - "_resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.1.tgz", - "_shasum": "6e084bbc92061fbb0971ec58b6ce6d404e24da69", + "_resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz", + "_shasum": "b6e710d7d07bb66b98cb8cece5c9b4921deeb835", "_spec": "is-hexadecimal@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/parse-entities", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/parse-entities", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -42,13 +42,14 @@ "deprecated": false, "description": "Check if a character is hexadecimal", "devDependencies": { - "browserify": "^14.1.0", + "browserify": "^16.0.0", "esmangle": "^1.0.1", "nyc": "^11.0.0", - "remark-cli": "^3.0.0", - "remark-preset-wooorm": "^3.0.0", + "prettier": "^1.12.1", + "remark-cli": "^5.0.0", + "remark-preset-wooorm": "^4.0.0", "tape": "^4.0.0", - "xo": "^0.18.0" + "xo": "^0.20.0" }, "files": [ "index.js" @@ -69,6 +70,14 @@ "functions": 100, "branches": 100 }, + "prettier": { + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "bracketSpacing": false, + "semi": false, + "trailingComma": "none" + }, "remarkConfig": { "plugins": [ "preset-wooorm" @@ -79,19 +88,22 @@ "url": "git+https://github.com/wooorm/is-hexadecimal.git" }, "scripts": { - "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build": "npm run build-bundle && npm run build-mangle", "build-bundle": "browserify index.js --bare -s isHexadecimal > is-hexadecimal.js", "build-mangle": "esmangle < is-hexadecimal.js > is-hexadecimal.min.js", - "build-md": "remark . -qfo", - "lint": "xo", - "test": "npm run build && npm run lint && npm run test-coverage", + "format": "remark . -qfo && prettier --write '**/*.js' && xo --fix", + "test": "npm run format && npm run build && npm run test-coverage", "test-api": "node test", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.0.1", + "version": "1.0.2", "xo": { - "space": true, + "prettier": true, "esnext": false, + "rules": { + "no-var": "off", + "prefer-arrow-callback": "off" + }, "ignores": [ "is-hexadecimal.js" ] diff --git a/tools/node_modules/eslint/node_modules/is-hexadecimal/readme.md b/tools/node_modules/eslint/node_modules/is-hexadecimal/readme.md index 5c4b6e63d26db1..5bcf07a40dbfcd 100644 --- a/tools/node_modules/eslint/node_modules/is-hexadecimal/readme.md +++ b/tools/node_modules/eslint/node_modules/is-hexadecimal/readme.md @@ -13,12 +13,12 @@ npm install is-hexadecimal ## Usage ```javascript -var hexadecimal = require('is-hexadecimal'); +var hexadecimal = require('is-hexadecimal') -hexadecimal('a'); //=> true -hexadecimal('0'); //=> true -hexadecimal('G'); //=> false -hexadecimal('💩'); //=> false +hexadecimal('a') // => true +hexadecimal('0') // => true +hexadecimal('G') // => false +hexadecimal('💩') // => false ``` ## API diff --git a/tools/node_modules/eslint/node_modules/is-path-cwd/package.json b/tools/node_modules/eslint/node_modules/is-path-cwd/package.json index 95bceb56faeeee..b68f13924dfc94 100644 --- a/tools/node_modules/eslint/node_modules/is-path-cwd/package.json +++ b/tools/node_modules/eslint/node_modules/is-path-cwd/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", "_shasum": "d225ec23132e89edd38fda767472e62e65f1106d", "_spec": "is-path-cwd@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/del", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/del", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/is-path-in-cwd/license b/tools/node_modules/eslint/node_modules/is-path-in-cwd/license new file mode 100644 index 00000000000000..654d0bfe943437 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-path-in-cwd/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/is-path-in-cwd/package.json b/tools/node_modules/eslint/node_modules/is-path-in-cwd/package.json index 30d072a2ab37bf..cb69f0c0c6015f 100644 --- a/tools/node_modules/eslint/node_modules/is-path-in-cwd/package.json +++ b/tools/node_modules/eslint/node_modules/is-path-in-cwd/package.json @@ -1,8 +1,8 @@ { "_from": "is-path-in-cwd@^1.0.0", - "_id": "is-path-in-cwd@1.0.0", + "_id": "is-path-in-cwd@1.0.1", "_inBundle": false, - "_integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "_integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "_location": "/eslint/is-path-in-cwd", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/eslint/del" ], - "_resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "_shasum": "6477582b8214d602346094567003be8a9eac04dc", + "_resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "_shasum": "5ac48b345ef675339bd6c7a48a912110b241cf52", "_spec": "is-path-in-cwd@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/del", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/del", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -66,5 +66,5 @@ "scripts": { "test": "mocha" }, - "version": "1.0.0" + "version": "1.0.1" } diff --git a/tools/node_modules/eslint/node_modules/is-path-in-cwd/readme.md b/tools/node_modules/eslint/node_modules/is-path-in-cwd/readme.md index 4e4f3a8838d490..81185502a810c0 100644 --- a/tools/node_modules/eslint/node_modules/is-path-in-cwd/readme.md +++ b/tools/node_modules/eslint/node_modules/is-path-in-cwd/readme.md @@ -20,6 +20,9 @@ isPathInCwd('unicorn'); isPathInCwd('../rainbow'); //=> false + +isPathInCwd('.'); +//=> false ``` diff --git a/tools/node_modules/eslint/node_modules/is-path-inside/package.json b/tools/node_modules/eslint/node_modules/is-path-inside/package.json index 38a121e709baa5..d1b0e3c2935c74 100644 --- a/tools/node_modules/eslint/node_modules/is-path-inside/package.json +++ b/tools/node_modules/eslint/node_modules/is-path-inside/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "_shasum": "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036", "_spec": "is-path-inside@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/is-path-in-cwd", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/is-path-in-cwd", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/is-plain-obj/package.json b/tools/node_modules/eslint/node_modules/is-plain-obj/package.json index 07b22ed34d4a33..4f165ae70824ae 100644 --- a/tools/node_modules/eslint/node_modules/is-plain-obj/package.json +++ b/tools/node_modules/eslint/node_modules/is-plain-obj/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "_shasum": "71a50c8429dfca773c92a390a4a03b39fcd51d3e", "_spec": "is-plain-obj@^1.1.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/unified", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/unified", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/is-promise/package.json b/tools/node_modules/eslint/node_modules/is-promise/package.json index f3b5559a8de558..d8d6694f4cfef8 100644 --- a/tools/node_modules/eslint/node_modules/is-promise/package.json +++ b/tools/node_modules/eslint/node_modules/is-promise/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "_shasum": "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa", "_spec": "is-promise@^2.1.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/run-async", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/run-async", "author": { "name": "ForbesLindesay" }, diff --git a/tools/node_modules/eslint/node_modules/is-regex/LICENSE b/tools/node_modules/eslint/node_modules/is-regex/LICENSE new file mode 100644 index 00000000000000..47b7b5078fce38 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-regex/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/is-regex/Makefile b/tools/node_modules/eslint/node_modules/is-regex/Makefile new file mode 100644 index 00000000000000..b9e4fe1aab3dde --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-regex/Makefile @@ -0,0 +1,61 @@ +# Since we rely on paths relative to the makefile location, abort if make isn't being run from there. +$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in)) + + # The files that need updating when incrementing the version number. +VERSIONED_FILES := *.js *.json README* + + +# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly. +# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment +# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests. +export PATH := $(shell printf '%s' "$$PWD/node_modules/.bin:$$PATH") +UTILS := semver +# Make sure that all required utilities can be located. +UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS))) + +# Default target (by virtue of being the first non '.'-prefixed in the file). +.PHONY: _no-target-specified +_no-target-specified: + $(error Please specify the target to make - `make list` shows targets. Alternatively, use `npm test` to run the default tests; `npm run` shows all tests) + +# Lists all targets defined in this makefile. +.PHONY: list +list: + @$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | command grep -v -e '^[^[:alnum:]]' -e '^$@$$command ' | sort + +# All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS). +.PHONY: test +test: + @npm test + +.PHONY: _ensure-tag +_ensure-tag: +ifndef TAG + $(error Please invoke with `make TAG= release`, where is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number) +endif + +CHANGELOG_ERROR = $(error No CHANGELOG specified) +.PHONY: _ensure-changelog +_ensure-changelog: + @ (git status -sb --porcelain | command grep -E '^( M|[MA] ) CHANGELOG.md' > /dev/null) || (echo no CHANGELOG.md specified && exit 2) + +# Ensures that the git workspace is clean. +.PHONY: _ensure-clean +_ensure-clean: + @[ -z "$$((git status --porcelain --untracked-files=no || echo err) | command grep -v 'CHANGELOG.md')" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; } + +# Makes a release; invoke with `make TAG= release`. +.PHONY: release +release: _ensure-tag _ensure-changelog _ensure-clean + @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \ + new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \ + if printf "$$new_ver" | command grep -q '^[0-9]'; then \ + semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \ + semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \ + else \ + new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \ + fi; \ + printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ + replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \ + git commit -m "v$$new_ver" $(VERSIONED_FILES) CHANGELOG.md && \ + git tag -a -m "v$$new_ver" "v$$new_ver" diff --git a/tools/node_modules/eslint/node_modules/is-regex/README.md b/tools/node_modules/eslint/node_modules/is-regex/README.md new file mode 100644 index 00000000000000..05baa0ebca339b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-regex/README.md @@ -0,0 +1,54 @@ +#is-regex [![Version Badge][2]][1] + +[![Build Status][3]][4] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +[![browser support][9]][10] + +Is this value a JS regex? +This module works cross-realm/iframe, and despite ES6 @@toStringTag. + +## Example + +```js +var isRegex = require('is-regex'); +var assert = require('assert'); + +assert.notOk(isRegex(undefined)); +assert.notOk(isRegex(null)); +assert.notOk(isRegex(false)); +assert.notOk(isRegex(true)); +assert.notOk(isRegex(42)); +assert.notOk(isRegex('foo')); +assert.notOk(isRegex(function () {})); +assert.notOk(isRegex([])); +assert.notOk(isRegex({})); + +assert.ok(isRegex(/a/g)); +assert.ok(isRegex(new RegExp('a', 'g'))); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/is-regex +[2]: http://versionbadg.es/ljharb/is-regex.svg +[3]: https://travis-ci.org/ljharb/is-regex.svg +[4]: https://travis-ci.org/ljharb/is-regex +[5]: https://david-dm.org/ljharb/is-regex.svg +[6]: https://david-dm.org/ljharb/is-regex +[7]: https://david-dm.org/ljharb/is-regex/dev-status.svg +[8]: https://david-dm.org/ljharb/is-regex#info=devDependencies +[9]: https://ci.testling.com/ljharb/is-regex.png +[10]: https://ci.testling.com/ljharb/is-regex +[11]: https://nodei.co/npm/is-regex.png?downloads=true&stars=true +[license-image]: http://img.shields.io/npm/l/is-regex.svg +[license-url]: LICENSE +[downloads-image]: http://img.shields.io/npm/dm/is-regex.svg +[downloads-url]: http://npm-stat.com/charts.html?package=is-regex + diff --git a/tools/node_modules/eslint/node_modules/is-regex/index.js b/tools/node_modules/eslint/node_modules/is-regex/index.js new file mode 100644 index 00000000000000..be6513390f7d38 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-regex/index.js @@ -0,0 +1,39 @@ +'use strict'; + +var has = require('has'); +var regexExec = RegExp.prototype.exec; +var gOPD = Object.getOwnPropertyDescriptor; + +var tryRegexExecCall = function tryRegexExec(value) { + try { + var lastIndex = value.lastIndex; + value.lastIndex = 0; + + regexExec.call(value); + return true; + } catch (e) { + return false; + } finally { + value.lastIndex = lastIndex; + } +}; +var toStr = Object.prototype.toString; +var regexClass = '[object RegExp]'; +var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; + +module.exports = function isRegex(value) { + if (!value || typeof value !== 'object') { + return false; + } + if (!hasToStringTag) { + return toStr.call(value) === regexClass; + } + + var descriptor = gOPD(value, 'lastIndex'); + var hasLastIndexDataProperty = descriptor && has(descriptor, 'value'); + if (!hasLastIndexDataProperty) { + return false; + } + + return tryRegexExecCall(value); +}; diff --git a/tools/node_modules/eslint/node_modules/is-regex/package.json b/tools/node_modules/eslint/node_modules/is-regex/package.json new file mode 100644 index 00000000000000..d1d54776dcab0c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-regex/package.json @@ -0,0 +1,100 @@ +{ + "_from": "is-regex@^1.0.4", + "_id": "is-regex@1.0.4", + "_inBundle": false, + "_integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "_location": "/eslint/is-regex", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-regex@^1.0.4", + "name": "is-regex", + "escapedName": "is-regex", + "rawSpec": "^1.0.4", + "saveSpec": null, + "fetchSpec": "^1.0.4" + }, + "_requiredBy": [ + "/eslint/es-abstract" + ], + "_resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "_shasum": "5517489b547091b0930e095654ced25ee97e9491", + "_spec": "is-regex@^1.0.4", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/es-abstract", + "author": { + "name": "Jordan Harband" + }, + "bugs": { + "url": "https://github.com/ljharb/is-regex/issues" + }, + "bundleDependencies": false, + "dependencies": { + "has": "^1.0.1" + }, + "deprecated": false, + "description": "Is this value a JS regex? Works cross-realm/iframe, and despite ES6 @@toStringTag", + "devDependencies": { + "@ljharb/eslint-config": "^11.0.0", + "covert": "^1.1.0", + "editorconfig-tools": "^0.1.1", + "eslint": "^3.15.0", + "jscs": "^3.0.7", + "nsp": "^2.6.2", + "replace": "^0.3.0", + "semver": "^5.3.0", + "tape": "^4.6.3" + }, + "engines": { + "node": ">= 0.4" + }, + "homepage": "https://github.com/ljharb/is-regex", + "keywords": [ + "regex", + "regexp", + "is", + "regular expression", + "regular", + "expression" + ], + "license": "MIT", + "main": "index.js", + "name": "is-regex", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/is-regex.git" + }, + "scripts": { + "coverage": "covert test.js", + "coverage-quiet": "covert test.js --quiet", + "eccheck": "editorconfig-tools check *.js **/*.js > /dev/null", + "eslint": "eslint test.js *.js", + "jscs": "jscs *.js", + "lint": "npm run jscs && npm run eslint", + "posttest": "npm run security", + "pretest": "npm run lint", + "security": "nsp check", + "test": "npm run tests-only", + "tests-only": "node --harmony --es-staging test.js" + }, + "testling": { + "files": "test.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..12.0", + "opera/15.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.0.4" +} diff --git a/tools/node_modules/eslint/node_modules/is-resolvable/README.md b/tools/node_modules/eslint/node_modules/is-resolvable/README.md index 613c9ba91ad788..040c165ac8aed7 100644 --- a/tools/node_modules/eslint/node_modules/is-resolvable/README.md +++ b/tools/node_modules/eslint/node_modules/is-resolvable/README.md @@ -35,8 +35,8 @@ const isResolvable = require('is-resolvable'); ### isResolvable(*moduleId* [, *options*]) -*moduleId*: `string` (module ID) -*options*: `Object` ([`require.resolve`](https://nodejs.org/api/modules.html#modules_require_resolve_request_options) options) +*moduleId*: `string` (module ID) +*options*: `Object` ([`require.resolve`](https://nodejs.org/api/modules.html#modules_require_resolve_request_options) options) Return: `boolean` It returns `true` if `require()` can load a file form a given module ID, otherwise `false`. diff --git a/tools/node_modules/eslint/node_modules/is-resolvable/package.json b/tools/node_modules/eslint/node_modules/is-resolvable/package.json index fc1eaa71de38d0..3c51624a8650ec 100644 --- a/tools/node_modules/eslint/node_modules/is-resolvable/package.json +++ b/tools/node_modules/eslint/node_modules/is-resolvable/package.json @@ -1,5 +1,5 @@ { - "_from": "is-resolvable@^1.0.0", + "_from": "is-resolvable@^1.1.0", "_id": "is-resolvable@1.1.0", "_inBundle": false, "_integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", @@ -8,20 +8,20 @@ "_requested": { "type": "range", "registry": true, - "raw": "is-resolvable@^1.0.0", + "raw": "is-resolvable@^1.1.0", "name": "is-resolvable", "escapedName": "is-resolvable", - "rawSpec": "^1.0.0", + "rawSpec": "^1.1.0", "saveSpec": null, - "fetchSpec": "^1.0.0" + "fetchSpec": "^1.1.0" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", "_shasum": "fb18f87ce1feb925169c9a407c19318a3206ed88", - "_spec": "is-resolvable@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_spec": "is-resolvable@^1.1.0", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Shinnosuke Watanabe", "url": "https://github.com/shinnn" diff --git a/tools/node_modules/eslint/node_modules/is-symbol/.nvmrc b/tools/node_modules/eslint/node_modules/is-symbol/.nvmrc new file mode 100644 index 00000000000000..c9c594ca4332b4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-symbol/.nvmrc @@ -0,0 +1 @@ +iojs diff --git a/tools/node_modules/eslint/node_modules/is-symbol/LICENSE b/tools/node_modules/eslint/node_modules/is-symbol/LICENSE new file mode 100644 index 00000000000000..b43df444e51828 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-symbol/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/tools/node_modules/eslint/node_modules/is-symbol/Makefile b/tools/node_modules/eslint/node_modules/is-symbol/Makefile new file mode 100644 index 00000000000000..b9e4fe1aab3dde --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-symbol/Makefile @@ -0,0 +1,61 @@ +# Since we rely on paths relative to the makefile location, abort if make isn't being run from there. +$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in)) + + # The files that need updating when incrementing the version number. +VERSIONED_FILES := *.js *.json README* + + +# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly. +# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment +# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests. +export PATH := $(shell printf '%s' "$$PWD/node_modules/.bin:$$PATH") +UTILS := semver +# Make sure that all required utilities can be located. +UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS))) + +# Default target (by virtue of being the first non '.'-prefixed in the file). +.PHONY: _no-target-specified +_no-target-specified: + $(error Please specify the target to make - `make list` shows targets. Alternatively, use `npm test` to run the default tests; `npm run` shows all tests) + +# Lists all targets defined in this makefile. +.PHONY: list +list: + @$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | command grep -v -e '^[^[:alnum:]]' -e '^$@$$command ' | sort + +# All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS). +.PHONY: test +test: + @npm test + +.PHONY: _ensure-tag +_ensure-tag: +ifndef TAG + $(error Please invoke with `make TAG= release`, where is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number) +endif + +CHANGELOG_ERROR = $(error No CHANGELOG specified) +.PHONY: _ensure-changelog +_ensure-changelog: + @ (git status -sb --porcelain | command grep -E '^( M|[MA] ) CHANGELOG.md' > /dev/null) || (echo no CHANGELOG.md specified && exit 2) + +# Ensures that the git workspace is clean. +.PHONY: _ensure-clean +_ensure-clean: + @[ -z "$$((git status --porcelain --untracked-files=no || echo err) | command grep -v 'CHANGELOG.md')" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; } + +# Makes a release; invoke with `make TAG= release`. +.PHONY: release +release: _ensure-tag _ensure-changelog _ensure-clean + @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \ + new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \ + if printf "$$new_ver" | command grep -q '^[0-9]'; then \ + semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \ + semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \ + else \ + new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \ + fi; \ + printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ + replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \ + git commit -m "v$$new_ver" $(VERSIONED_FILES) CHANGELOG.md && \ + git tag -a -m "v$$new_ver" "v$$new_ver" diff --git a/tools/node_modules/eslint/node_modules/is-symbol/README.md b/tools/node_modules/eslint/node_modules/is-symbol/README.md new file mode 100644 index 00000000000000..ad3df64b0d8a72 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-symbol/README.md @@ -0,0 +1,46 @@ +#is-symbol [![Version Badge][2]][1] + +[![Build Status][3]][4] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +[![browser support][9]][10] + +Is this an ES6 Symbol value? + +## Example + +```js +var isSymbol = require('is-symbol'); +assert(!isSymbol(function () {})); +assert(!isSymbol(null)); +assert(!isSymbol(function* () { yield 42; return Infinity; }); + +assert(isSymbol(Symbol.iterator)); +assert(isSymbol(Symbol('foo'))); +assert(isSymbol(Symbol.for('foo'))); +assert(isSymbol(Object(Symbol('foo')))); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/is-symbol +[2]: http://vb.teelaun.ch/ljharb/is-symbol.svg +[3]: https://travis-ci.org/ljharb/is-symbol.svg +[4]: https://travis-ci.org/ljharb/is-symbol +[5]: https://david-dm.org/ljharb/is-symbol.svg +[6]: https://david-dm.org/ljharb/is-symbol +[7]: https://david-dm.org/ljharb/is-symbol/dev-status.svg +[8]: https://david-dm.org/ljharb/is-symbol#info=devDependencies +[9]: https://ci.testling.com/ljharb/is-symbol.png +[10]: https://ci.testling.com/ljharb/is-symbol +[11]: https://nodei.co/npm/is-symbol.png?downloads=true&stars=true +[license-image]: http://img.shields.io/npm/l/is-symbol.svg +[license-url]: LICENSE +[downloads-image]: http://img.shields.io/npm/dm/is-symbol.svg +[downloads-url]: http://npm-stat.com/charts.html?package=is-symbol diff --git a/tools/node_modules/eslint/node_modules/is-symbol/index.js b/tools/node_modules/eslint/node_modules/is-symbol/index.js new file mode 100644 index 00000000000000..a938cbf6bea0ef --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-symbol/index.js @@ -0,0 +1,27 @@ +'use strict'; + +var toStr = Object.prototype.toString; +var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol'; + +if (hasSymbols) { + var symToStr = Symbol.prototype.toString; + var symStringRegex = /^Symbol\(.*\)$/; + var isSymbolObject = function isSymbolObject(value) { + if (typeof value.valueOf() !== 'symbol') { return false; } + return symStringRegex.test(symToStr.call(value)); + }; + module.exports = function isSymbol(value) { + if (typeof value === 'symbol') { return true; } + if (toStr.call(value) !== '[object Symbol]') { return false; } + try { + return isSymbolObject(value); + } catch (e) { + return false; + } + }; +} else { + module.exports = function isSymbol(value) { + // this environment does not support Symbols. + return false; + }; +} diff --git a/tools/node_modules/eslint/node_modules/is-symbol/package.json b/tools/node_modules/eslint/node_modules/is-symbol/package.json new file mode 100644 index 00000000000000..17510bd29b6b75 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/is-symbol/package.json @@ -0,0 +1,85 @@ +{ + "_from": "is-symbol@^1.0.1", + "_id": "is-symbol@1.0.1", + "_inBundle": false, + "_integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "_location": "/eslint/is-symbol", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-symbol@^1.0.1", + "name": "is-symbol", + "escapedName": "is-symbol", + "rawSpec": "^1.0.1", + "saveSpec": null, + "fetchSpec": "^1.0.1" + }, + "_requiredBy": [ + "/eslint/es-to-primitive" + ], + "_resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "_shasum": "3cc59f00025194b6ab2e38dbae6689256b660572", + "_spec": "is-symbol@^1.0.1", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/es-to-primitive", + "author": { + "name": "Jordan Harband" + }, + "bugs": { + "url": "https://github.com/ljharb/is-symbol/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Determine if a value is an ES6 Symbol or not.", + "devDependencies": { + "covert": "1.0.0", + "jscs": "~1.10.0", + "nsp": "~1.0.0", + "semver": "~4.2.0", + "tape": "~3.4.0" + }, + "engines": { + "node": ">= 0.4" + }, + "homepage": "https://github.com/ljharb/is-symbol#readme", + "keywords": [ + "symbol", + "es6", + "is", + "Symbol" + ], + "license": "MIT", + "main": "index.js", + "name": "is-symbol", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/is-symbol.git" + }, + "scripts": { + "coverage": "covert test/index.js", + "coverage:quiet": "covert test/index.js --quiet", + "lint": "jscs *.js */*.js", + "security": "nsp package", + "test": "npm run lint && node --es-staging --harmony test/index.js && npm run security" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.0.1" +} diff --git a/tools/node_modules/eslint/node_modules/is-whitespace-character/index.js b/tools/node_modules/eslint/node_modules/is-whitespace-character/index.js index 57d4ca68eb2e9b..93db585d638668 100644 --- a/tools/node_modules/eslint/node_modules/is-whitespace-character/index.js +++ b/tools/node_modules/eslint/node_modules/is-whitespace-character/index.js @@ -1,14 +1,14 @@ -'use strict'; +'use strict' -module.exports = whitespace; +module.exports = whitespace -var fromCode = String.fromCharCode; -var re = /\s/; +var fromCode = String.fromCharCode +var re = /\s/ /* Check if the given character code, or the character * code at the first character, is a whitespace character. */ function whitespace(character) { return re.test( typeof character === 'number' ? fromCode(character) : character.charAt(0) - ); + ) } diff --git a/tools/node_modules/eslint/node_modules/is-whitespace-character/package.json b/tools/node_modules/eslint/node_modules/is-whitespace-character/package.json index 5639b3bd425c24..0ee81f36a603ac 100644 --- a/tools/node_modules/eslint/node_modules/is-whitespace-character/package.json +++ b/tools/node_modules/eslint/node_modules/is-whitespace-character/package.json @@ -1,8 +1,8 @@ { "_from": "is-whitespace-character@^1.0.0", - "_id": "is-whitespace-character@1.0.1", + "_id": "is-whitespace-character@1.0.2", "_inBundle": false, - "_integrity": "sha1-muAXbzKCtlRXoZks2whPil+DPjs=", + "_integrity": "sha512-SzM+T5GKUCtLhlHFKt2SDAX2RFzfS6joT91F2/WSi9LxgFdsnhfPK/UIA+JhRR2xuyLdrCys2PiFDrtn1fU5hQ==", "_location": "/is-whitespace-character", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/remark-parse" ], - "_resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.1.tgz", - "_shasum": "9ae0176f3282b65457a1992cdb084f8a5f833e3b", + "_resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz", + "_shasum": "ede53b4c6f6fb3874533751ec9280d01928d03ed", "_spec": "is-whitespace-character@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -42,13 +42,14 @@ "deprecated": false, "description": "Check if a character is a whitespace character", "devDependencies": { - "browserify": "^14.1.0", + "browserify": "^16.0.0", "esmangle": "^1.0.1", "nyc": "^11.0.0", - "remark-cli": "^3.0.0", - "remark-preset-wooorm": "^3.0.0", + "prettier": "^1.12.1", + "remark-cli": "^5.0.0", + "remark-preset-wooorm": "^4.0.0", "tape": "^4.0.0", - "xo": "^0.18.0" + "xo": "^0.20.0" }, "files": [ "index.js" @@ -71,6 +72,14 @@ "functions": 100, "branches": 100 }, + "prettier": { + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "bracketSpacing": false, + "semi": false, + "trailingComma": "none" + }, "remarkConfig": { "plugins": [ "preset-wooorm" @@ -81,19 +90,22 @@ "url": "git+https://github.com/wooorm/is-whitespace-character.git" }, "scripts": { - "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build": "npm run build-bundle && npm run build-mangle", "build-bundle": "browserify index.js --bare -s isWhitespaceCharacter > is-whitespace-character.js", "build-mangle": "esmangle < is-whitespace-character.js > is-whitespace-character.min.js", - "build-md": "remark . -qfo", - "lint": "xo", - "test": "npm run build && npm run lint && npm run test-coverage", + "format": "remark . -qfo && prettier --write '**/*.js' && xo --fix", + "test": "npm run format && npm run build && npm run test-coverage", "test-api": "node test", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.0.1", + "version": "1.0.2", "xo": { - "space": true, + "prettier": true, "esnext": false, + "rules": { + "no-var": "off", + "prefer-arrow-callback": "off" + }, "ignores": [ "is-whitespace-character.js" ] diff --git a/tools/node_modules/eslint/node_modules/is-whitespace-character/readme.md b/tools/node_modules/eslint/node_modules/is-whitespace-character/readme.md index 171c2071fa7b02..f99068a7db0763 100644 --- a/tools/node_modules/eslint/node_modules/is-whitespace-character/readme.md +++ b/tools/node_modules/eslint/node_modules/is-whitespace-character/readme.md @@ -15,14 +15,14 @@ npm install is-whitespace-character ## Usage ```javascript -var whitespace = require('is-whitespace-character'); - -whitespace(' '); // true -whitespace('\n'); // true -whitespace('\ufeff'); // true -whitespace('_'); // false -whitespace('a'); // true -whitespace('💩'); // false +var whitespace = require('is-whitespace-character') + +whitespace(' ') // => true +whitespace('\n') // => true +whitespace('\uFEFF') // => true +whitespace('_') // => false +whitespace('a') // => true +whitespace('💩') // => false ``` ## API diff --git a/tools/node_modules/eslint/node_modules/is-word-character/index.js b/tools/node_modules/eslint/node_modules/is-word-character/index.js index 96411474379fd0..6713f0f6b803cf 100644 --- a/tools/node_modules/eslint/node_modules/is-word-character/index.js +++ b/tools/node_modules/eslint/node_modules/is-word-character/index.js @@ -1,14 +1,14 @@ -'use strict'; +'use strict' -module.exports = wordCharacter; +module.exports = wordCharacter -var fromCode = String.fromCharCode; -var re = /\w/; +var fromCode = String.fromCharCode +var re = /\w/ /* Check if the given character code, or the character * code at the first character, is a word character. */ function wordCharacter(character) { return re.test( typeof character === 'number' ? fromCode(character) : character.charAt(0) - ); + ) } diff --git a/tools/node_modules/eslint/node_modules/is-word-character/package.json b/tools/node_modules/eslint/node_modules/is-word-character/package.json index 944d0712df290c..a3c475945f6c02 100644 --- a/tools/node_modules/eslint/node_modules/is-word-character/package.json +++ b/tools/node_modules/eslint/node_modules/is-word-character/package.json @@ -1,8 +1,8 @@ { "_from": "is-word-character@^1.0.0", - "_id": "is-word-character@1.0.1", + "_id": "is-word-character@1.0.2", "_inBundle": false, - "_integrity": "sha1-WgP6HqkazopusMfNdw64bWXIvvs=", + "_integrity": "sha512-T3FlsX8rCHAH8e7RE7PfOPZVFQlcV3XRF9eOOBQ1uf70OxO7CjjSOjeImMPCADBdYWcStAbVbYvJ1m2D3tb+EA==", "_location": "/is-word-character", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/remark-parse" ], - "_resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.1.tgz", - "_shasum": "5a03fa1ea91ace8a6eb0c7cd770eb86d65c8befb", + "_resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.2.tgz", + "_shasum": "46a5dac3f2a1840898b91e576cd40d493f3ae553", "_spec": "is-word-character@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -42,13 +42,14 @@ "deprecated": false, "description": "Check if a character is a word character", "devDependencies": { - "browserify": "^14.1.0", + "browserify": "^16.0.0", "esmangle": "^1.0.1", "nyc": "^11.0.0", - "remark-cli": "^3.0.0", - "remark-preset-wooorm": "^3.0.0", + "prettier": "^1.12.1", + "remark-cli": "^5.0.0", + "remark-preset-wooorm": "^4.0.0", "tape": "^4.0.0", - "xo": "^0.18.0" + "xo": "^0.20.0" }, "files": [ "index.js" @@ -69,6 +70,14 @@ "functions": 100, "branches": 100 }, + "prettier": { + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "bracketSpacing": false, + "semi": false, + "trailingComma": "none" + }, "remarkConfig": { "plugins": [ "preset-wooorm" @@ -79,19 +88,22 @@ "url": "git+https://github.com/wooorm/is-word-character.git" }, "scripts": { - "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build": "npm run build-bundle && npm run build-mangle", "build-bundle": "browserify index.js --bare -s isWordCharacter > is-word-character.js", "build-mangle": "esmangle < is-word-character.js > is-word-character.min.js", - "build-md": "remark . -qfo", - "lint": "xo", - "test": "npm run build && npm run lint && npm run test-coverage", + "format": "remark . -qfo && prettier --write '**/*.js' && xo --fix", + "test": "npm run format && npm run build && npm run test-coverage", "test-api": "node test", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.0.1", + "version": "1.0.2", "xo": { - "space": true, + "prettier": true, "esnext": false, + "rules": { + "no-var": "off", + "prefer-arrow-callback": "off" + }, "ignores": [ "is-word-character.js" ] diff --git a/tools/node_modules/eslint/node_modules/is-word-character/readme.md b/tools/node_modules/eslint/node_modules/is-word-character/readme.md index acf4f2a011f29c..f046d0f022584e 100644 --- a/tools/node_modules/eslint/node_modules/is-word-character/readme.md +++ b/tools/node_modules/eslint/node_modules/is-word-character/readme.md @@ -14,14 +14,14 @@ npm install is-word-character ## Usage ```javascript -var wordCharacter = require('is-word-character'); - -wordCharacter('a'); //=> true -wordCharacter('Z'); //=> true -wordCharacter('0'); //=> true -wordCharacter('_'); //=> true -wordCharacter(' '); //=> false -wordCharacter('💩'); //=> false +var wordCharacter = require('is-word-character') + +wordCharacter('a') // => true +wordCharacter('Z') // => true +wordCharacter('0') // => true +wordCharacter('_') // => true +wordCharacter(' ') // => false +wordCharacter('💩') // => false ``` ## API diff --git a/tools/node_modules/eslint/node_modules/isarray/Makefile b/tools/node_modules/eslint/node_modules/isarray/Makefile deleted file mode 100644 index 787d56e1e982e4..00000000000000 --- a/tools/node_modules/eslint/node_modules/isarray/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -test: - @node_modules/.bin/tape test.js - -.PHONY: test - diff --git a/tools/node_modules/eslint/node_modules/isarray/README.md b/tools/node_modules/eslint/node_modules/isarray/README.md deleted file mode 100644 index 16d2c59c6195f9..00000000000000 --- a/tools/node_modules/eslint/node_modules/isarray/README.md +++ /dev/null @@ -1,60 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -[![build status](https://secure.travis-ci.org/juliangruber/isarray.svg)](http://travis-ci.org/juliangruber/isarray) -[![downloads](https://img.shields.io/npm/dm/isarray.svg)](https://www.npmjs.org/package/isarray) - -[![browser support](https://ci.testling.com/juliangruber/isarray.png) -](https://ci.testling.com/juliangruber/isarray) - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/isarray/index.js b/tools/node_modules/eslint/node_modules/isarray/index.js deleted file mode 100644 index a57f63495943a0..00000000000000 --- a/tools/node_modules/eslint/node_modules/isarray/index.js +++ /dev/null @@ -1,5 +0,0 @@ -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; diff --git a/tools/node_modules/eslint/node_modules/isarray/package.json b/tools/node_modules/eslint/node_modules/isarray/package.json deleted file mode 100644 index 7ea4f5e7cc8130..00000000000000 --- a/tools/node_modules/eslint/node_modules/isarray/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "_from": "isarray@~1.0.0", - "_id": "isarray@1.0.0", - "_inBundle": false, - "_integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "_location": "/eslint/isarray", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "isarray@~1.0.0", - "name": "isarray", - "escapedName": "isarray", - "rawSpec": "~1.0.0", - "saveSpec": null, - "fetchSpec": "~1.0.0" - }, - "_requiredBy": [ - "/eslint/readable-stream" - ], - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "_shasum": "bb935d48582cba168c06834957a54a3e07124f11", - "_spec": "isarray@~1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/readable-stream", - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/isarray/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "Array#isArray for older browsers", - "devDependencies": { - "tape": "~2.13.4" - }, - "homepage": "https://github.com/juliangruber/isarray", - "keywords": [ - "browser", - "isarray", - "array" - ], - "license": "MIT", - "main": "index.js", - "name": "isarray", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "scripts": { - "test": "tape test.js" - }, - "testling": { - "files": "test.js", - "browsers": [ - "ie/8..latest", - "firefox/17..latest", - "firefox/nightly", - "chrome/22..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "version": "1.0.0" -} diff --git a/tools/node_modules/eslint/node_modules/isexe/package.json b/tools/node_modules/eslint/node_modules/isexe/package.json index 9e235ec1600589..2235ef4f6dac45 100644 --- a/tools/node_modules/eslint/node_modules/isexe/package.json +++ b/tools/node_modules/eslint/node_modules/isexe/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "_shasum": "e8fbf374dc556ff8947a10dcb0572d633f2cfa10", "_spec": "isexe@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/which", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/which", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", diff --git a/tools/node_modules/eslint/node_modules/js-tokens/package.json b/tools/node_modules/eslint/node_modules/js-tokens/package.json index 9a5befc4e5046e..11a804e1bf10a4 100644 --- a/tools/node_modules/eslint/node_modules/js-tokens/package.json +++ b/tools/node_modules/eslint/node_modules/js-tokens/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", "_shasum": "9866df395102130e38f7f996bceb65443209c25b", "_spec": "js-tokens@^3.0.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/babel-code-frame", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/babel-code-frame", "author": { "name": "Simon Lydell" }, diff --git a/tools/node_modules/eslint/node_modules/js-yaml/dist/js-yaml.js b/tools/node_modules/eslint/node_modules/js-yaml/dist/js-yaml.js index df93be39d12ae2..0c9e648bd07ca5 100644 --- a/tools/node_modules/eslint/node_modules/js-yaml/dist/js-yaml.js +++ b/tools/node_modules/eslint/node_modules/js-yaml/dist/js-yaml.js @@ -1,4 +1,4 @@ -/* js-yaml 3.11.0 https://github.com/nodeca/js-yaml */(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.jsyaml = f()}})(function(){var define,module,exports;return (function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 9) { + if (indentPerLevel > 9 && needIndentIndicator(string)) { return STYLE_DOUBLE; } // At this point we know block styles are valid. @@ -468,7 +474,7 @@ function writeScalar(state, string, level, iskey) { // Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. function blockHeader(string, indentPerLevel) { - var indentIndicator = (string[0] === ' ') ? String(indentPerLevel) : ''; + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; // note the special case: the string '\n' counts as a "trailing" empty line. var clip = string[string.length - 1] === '\n'; @@ -3478,8 +3484,14 @@ function constructJavascriptFunction(data) { // Esprima's ranges include the first '{' and the last '}' characters on // function expressions. So cut them out. + if (ast.body[0].expression.body.type === 'BlockStatement') { + /*eslint-disable no-new-func*/ + return new Function(params, source.slice(body[0] + 1, body[1] - 1)); + } + // ES6 arrow functions can omit the BlockStatement. In that case, just return + // the body. /*eslint-disable no-new-func*/ - return new Function(params, source.slice(body[0] + 1, body[1] - 1)); + return new Function(params, 'return ' + source.slice(body[0], body[1])); } function representJavascriptFunction(object /*, style*/) { @@ -3902,4 +3914,4 @@ var yaml = require('./lib/js-yaml.js'); module.exports = yaml; },{"./lib/js-yaml.js":1}]},{},[])("/") -}); \ No newline at end of file +}); diff --git a/tools/node_modules/eslint/node_modules/js-yaml/dist/js-yaml.min.js b/tools/node_modules/eslint/node_modules/js-yaml/dist/js-yaml.min.js index 7ca018420d203f..0dcb7bac581f7f 100644 --- a/tools/node_modules/eslint/node_modules/js-yaml/dist/js-yaml.min.js +++ b/tools/node_modules/eslint/node_modules/js-yaml/dist/js-yaml.min.js @@ -1 +1 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).jsyaml=e()}}(function(){return function o(a,s,c){function u(n,e){if(!s[n]){if(!a[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(l)return l(n,!0);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}var r=s[n]={exports:{}};a[n][0].call(r.exports,function(e){var t=a[n][1][e];return u(t||e)},r,r.exports,o,a,s,c)}return s[n].exports}for(var l="function"==typeof require&&require,e=0;e=i.flowLevel;switch($(r,n,i.indent,t,function(e){return function(e,t){var n,i;for(n=0,i=e.implicitTypes.length;n"+G(r,i.indent)+V(L(function(e,t){var n,i,r=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,r.lastIndex=s,Z(e.slice(0,s),t)),a="\n"===e[0]||" "===e[0];var s;for(;i=r.exec(e);){var c=i[1],u=i[2];n=" "===u[0],o+=c+(a||n||""===u?"":"\n")+Z(u,t),a=n}return o}(r,t),e));case K:return'"'+function(e){for(var t,n,i,r="",o=0;ot&&o tag resolver accepts not "'+c+'" style');i=s.represent[c](t,c)}e.dump=i}return!0}return!1}function J(e,t,n,i,r,o){e.tag=null,e.dump=n,z(e,n,!1)||z(e,n,!0);var a=l.call(e.dump);i&&(i=e.flowLevel<0||e.flowLevel>t);var s,c,u="[object Object]"===a||"[object Array]"===a;if(u&&(c=-1!==(s=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&0 "+e.dump)}return!0}function Q(e,t){var n,i,r=[],o=[];for(function e(t,n,i){var r,o,a;if(null!==t&&"object"==typeof t)if(-1!==(o=n.indexOf(t)))-1===i.indexOf(o)&&i.push(o);else if(n.push(t),Array.isArray(t))for(o=0,a=t.length;ot)&&0!==i)_(e,"bad indentation of a sequence entry");else if(e.lineIndentt?d=1:e.lineIndent===t?d=0:e.lineIndentt?d=1:e.lineIndent===t?d=0:e.lineIndentt)&&(B(e,t,b,!0,r)&&(m?d=e.result:h=e.result),m||(L(e,l,p,f,d,h,o,a),f=d=h=null),U(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)_(e,"bad indentation of a mapping entry");else if(e.lineIndentl&&(l=e.lineIndent),j(o))p++;else{if(e.lineIndent>10),56320+(c-65536&1023)),e.position++}else _(e,"unknown escape sequence");n=i=e.position}else j(s)?(M(e,n,i,!0),Y(e,U(e,!1,t)),n=i=e.position):e.position===e.lineStart&&q(e)?_(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}_(e,"unexpected end of the stream within a double quoted scalar")}(e,p)?m=!0:!function(e){var t,n,i;if(42!==(i=e.input.charCodeAt(e.position)))return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!I(i)&&!E(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&_(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||_(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],U(e,!0,-1),!0}(e)?function(e,t,n){var i,r,o,a,s,c,u,l,p=e.kind,f=e.result;if(I(l=e.input.charCodeAt(e.position))||E(l)||35===l||38===l||42===l||33===l||124===l||62===l||39===l||34===l||37===l||64===l||96===l)return!1;if((63===l||45===l)&&(I(i=e.input.charCodeAt(e.position+1))||n&&E(i)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==l;){if(58===l){if(I(i=e.input.charCodeAt(e.position+1))||n&&E(i))break}else if(35===l){if(I(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&q(e)||n&&E(l))break;if(j(l)){if(s=e.line,c=e.lineStart,u=e.lineIndent,U(e,!1,-1),e.lineIndent>=t){a=!0,l=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=c,e.lineIndent=u;break}}a&&(M(e,r,o,!1),Y(e,e.line-s),r=o=e.position,a=!1),S(l)||(o=e.position+1),l=e.input.charCodeAt(++e.position)}return M(e,r,o,!1),!!e.result||(e.kind=p,e.result=f,!1)}(e,p,x===n)&&(m=!0,null===e.tag&&(e.tag="?")):(m=!0,null===e.tag&&null===e.anchor||_(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===d&&(m=s&&R(e,f))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(c=0,u=e.implicitTypes.length;c tag; it should be "'+l.kind+'", not "'+e.kind+'"'),l.resolve(e.result)?(e.result=l.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):_(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):_(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||m}function K(e){var t,n,i,r,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(r=e.input.charCodeAt(e.position))&&(U(e,!0,-1),r=e.input.charCodeAt(e.position),!(0t/2-1){n=" ... ",i+=5;break}for(r="",o=this.position;ot/2-1){r=" ... ",o-=5;break}return a=this.buffer.slice(i,o),s.repeat(" ",e)+n+a+r+"\n"+s.repeat(" ",e+this.position-i+n.length)+"^"},i.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(n+=":\n"+t),n},t.exports=i},{"./common":2}],7:[function(e,t,n){"use strict";var i=e("./common"),r=e("./exception"),o=e("./type");function a(e,t,i){var r=[];return e.include.forEach(function(e){i=a(e,t,i)}),e[t].forEach(function(n){i.forEach(function(e,t){e.tag===n.tag&&e.kind===n.kind&&r.push(t)}),i.push(n)}),i.filter(function(e,t){return-1===r.indexOf(t)})}function s(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new r("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=a(this,"implicit",[]),this.compiledExplicit=a(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{}};function i(e){n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(i.charAt(t));return 0==(n=r%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===n?(s.push(a>>10&255),s.push(a>>2&255)):12===n&&s.push(a>>4&255),c?c.from?c.from(s):new c(s):s},predicate:function(e){return c&&c.isBuffer(e)},represent:function(e){var t,n,i="",r=0,o=e.length,a=u;for(t=0;t>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]),r=(r<<8)+e[t];return 0==(n=o%3)?(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]):2===n?(i+=a[r>>10&63],i+=a[r>>4&63],i+=a[r<<2&63],i+=a[64]):1===n&&(i+=a[r>>2&63],i+=a[r<<4&63],i+=a[64],i+=a[64]),i}})},{"../type":13}],15:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},{"../type":13}],16:[function(e,t,n){"use strict";var i=e("../common"),r=e("../type"),o=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var a=/^[-+]?[0-9]+e/;t.exports=new r("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!o.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n,i,r;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,r=[],0<="+-".indexOf(t[0])&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:0<=t.indexOf(":")?(t.split(":").forEach(function(e){r.unshift(parseFloat(e,10))}),t=0,i=1,r.forEach(function(e){t+=e*i,i*=60}),n*t):n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||i.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(i.isNegativeZero(e))return"-0.0";return n=e.toString(10),a.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"})},{"../common":2,"../type":13}],17:[function(e,t,n){"use strict";var i=e("../common"),r=e("../type");t.exports=new r("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i,r,o=e.length,a=0,s=!1;if(!o)return!1;if("-"!==(t=e[a])&&"+"!==t||(t=e[++a]),"0"===t){if(a+1===o)return!0;if("b"===(t=e[++a])){for(a++;a=i.flowLevel;switch(H(r,n,i.indent,t,function(e){return function(e,t){var n,i;for(n=0,i=e.implicitTypes.length;n"+V(r,i.indent)+Z(L(function(e,t){var n,i,r=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,r.lastIndex=s,z(e.slice(0,s),t)),a="\n"===e[0]||" "===e[0];var s;for(;i=r.exec(e);){var c=i[1],u=i[2];n=" "===u[0],o+=c+(a||n||""===u?"":"\n")+z(u,t),a=n}return o}(r,t),e));case $:return'"'+function(e){for(var t,n,i,r="",o=0;ot&&o tag resolver accepts not "'+c+'" style');i=s.represent[c](t,c)}e.dump=i}return!0}return!1}function Q(e,t,n,i,r,o){e.tag=null,e.dump=n,J(e,n,!1)||J(e,n,!0);var a=l.call(e.dump);i&&(i=e.flowLevel<0||e.flowLevel>t);var s,c,u="[object Object]"===a||"[object Array]"===a;if(u&&(c=-1!==(s=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&0 "+e.dump)}return!0}function X(e,t){var n,i,r=[],o=[];for(function e(t,n,i){var r,o,a;if(null!==t&&"object"==typeof t)if(-1!==(o=n.indexOf(t)))-1===i.indexOf(o)&&i.push(o);else if(n.push(t),Array.isArray(t))for(o=0,a=t.length;ot)&&0!==i)_(e,"bad indentation of a sequence entry");else if(e.lineIndentt?d=1:e.lineIndent===t?d=0:e.lineIndentt?d=1:e.lineIndent===t?d=0:e.lineIndentt)&&(K(e,t,b,!0,r)&&(m?d=e.result:h=e.result),m||(D(e,l,p,f,d,h,o,a),f=d=h=null),q(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)_(e,"bad indentation of a mapping entry");else if(e.lineIndentl&&(l=e.lineIndent),j(o))p++;else{if(e.lineIndent>10),56320+(c-65536&1023)),e.position++}else _(e,"unknown escape sequence");n=i=e.position}else j(s)?(T(e,n,i,!0),R(e,q(e,!1,t)),n=i=e.position):e.position===e.lineStart&&Y(e)?_(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}_(e,"unexpected end of the stream within a double quoted scalar")}(e,p)?m=!0:!function(e){var t,n,i;if(42!==(i=e.input.charCodeAt(e.position)))return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!I(i)&&!E(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&_(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||_(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],q(e,!0,-1),!0}(e)?function(e,t,n){var i,r,o,a,s,c,u,l,p=e.kind,f=e.result;if(I(l=e.input.charCodeAt(e.position))||E(l)||35===l||38===l||42===l||33===l||124===l||62===l||39===l||34===l||37===l||64===l||96===l)return!1;if((63===l||45===l)&&(I(i=e.input.charCodeAt(e.position+1))||n&&E(i)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==l;){if(58===l){if(I(i=e.input.charCodeAt(e.position+1))||n&&E(i))break}else if(35===l){if(I(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&Y(e)||n&&E(l))break;if(j(l)){if(s=e.line,c=e.lineStart,u=e.lineIndent,q(e,!1,-1),e.lineIndent>=t){a=!0,l=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=c,e.lineIndent=u;break}}a&&(T(e,r,o,!1),R(e,e.line-s),r=o=e.position,a=!1),S(l)||(o=e.position+1),l=e.input.charCodeAt(++e.position)}return T(e,r,o,!1),!!e.result||(e.kind=p,e.result=f,!1)}(e,p,x===n)&&(m=!0,null===e.tag&&(e.tag="?")):(m=!0,null===e.tag&&null===e.anchor||_(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===d&&(m=s&&B(e,f))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(c=0,u=e.implicitTypes.length;c tag; it should be "'+l.kind+'", not "'+e.kind+'"'),l.resolve(e.result)?(e.result=l.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):_(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):_(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||m}function $(e){var t,n,i,r,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(r=e.input.charCodeAt(e.position))&&(q(e,!0,-1),r=e.input.charCodeAt(e.position),!(0t/2-1){n=" ... ",i+=5;break}for(r="",o=this.position;ot/2-1){r=" ... ",o-=5;break}return a=this.buffer.slice(i,o),s.repeat(" ",e)+n+a+r+"\n"+s.repeat(" ",e+this.position-i+n.length)+"^"},i.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(n+=":\n"+t),n},t.exports=i},{"./common":2}],7:[function(e,t,n){"use strict";var i=e("./common"),r=e("./exception"),o=e("./type");function a(e,t,i){var r=[];return e.include.forEach(function(e){i=a(e,t,i)}),e[t].forEach(function(n){i.forEach(function(e,t){e.tag===n.tag&&e.kind===n.kind&&r.push(t)}),i.push(n)}),i.filter(function(e,t){return-1===r.indexOf(t)})}function s(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new r("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=a(this,"implicit",[]),this.compiledExplicit=a(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{}};function i(e){n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(i.charAt(t));return 0==(n=r%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===n?(s.push(a>>10&255),s.push(a>>2&255)):12===n&&s.push(a>>4&255),c?c.from?c.from(s):new c(s):s},predicate:function(e){return c&&c.isBuffer(e)},represent:function(e){var t,n,i="",r=0,o=e.length,a=u;for(t=0;t>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]),r=(r<<8)+e[t];return 0==(n=o%3)?(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]):2===n?(i+=a[r>>10&63],i+=a[r>>4&63],i+=a[r<<2&63],i+=a[64]):1===n&&(i+=a[r>>2&63],i+=a[r<<4&63],i+=a[64],i+=a[64]),i}})},{"../type":13}],15:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},{"../type":13}],16:[function(e,t,n){"use strict";var i=e("../common"),r=e("../type"),o=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var a=/^[-+]?[0-9]+e/;t.exports=new r("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!o.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n,i,r;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,r=[],0<="+-".indexOf(t[0])&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:0<=t.indexOf(":")?(t.split(":").forEach(function(e){r.unshift(parseFloat(e,10))}),t=0,i=1,r.forEach(function(e){t+=e*i,i*=60}),n*t):n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||i.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(i.isNegativeZero(e))return"-0.0";return n=e.toString(10),a.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"})},{"../common":2,"../type":13}],17:[function(e,t,n){"use strict";var i=e("../common"),r=e("../type");t.exports=new r("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i,r,o=e.length,a=0,s=!1;if(!o)return!1;if("-"!==(t=e[a])&&"+"!==t||(t=e[++a]),"0"===t){if(a+1===o)return!0;if("b"===(t=e[++a])){for(a++;a 9) { + if (indentPerLevel > 9 && needIndentIndicator(string)) { return STYLE_DOUBLE; } // At this point we know block styles are valid. @@ -365,7 +371,7 @@ function writeScalar(state, string, level, iskey) { // Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. function blockHeader(string, indentPerLevel) { - var indentIndicator = (string[0] === ' ') ? String(indentPerLevel) : ''; + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; // note the special case: the string '\n' counts as a "trailing" empty line. var clip = string[string.length - 1] === '\n'; diff --git a/tools/node_modules/eslint/node_modules/js-yaml/lib/js-yaml/type/js/function.js b/tools/node_modules/eslint/node_modules/js-yaml/lib/js-yaml/type/js/function.js index ba2dfd45b6f8ab..3604e2333743b8 100644 --- a/tools/node_modules/eslint/node_modules/js-yaml/lib/js-yaml/type/js/function.js +++ b/tools/node_modules/eslint/node_modules/js-yaml/lib/js-yaml/type/js/function.js @@ -65,8 +65,14 @@ function constructJavascriptFunction(data) { // Esprima's ranges include the first '{' and the last '}' characters on // function expressions. So cut them out. + if (ast.body[0].expression.body.type === 'BlockStatement') { + /*eslint-disable no-new-func*/ + return new Function(params, source.slice(body[0] + 1, body[1] - 1)); + } + // ES6 arrow functions can omit the BlockStatement. In that case, just return + // the body. /*eslint-disable no-new-func*/ - return new Function(params, source.slice(body[0] + 1, body[1] - 1)); + return new Function(params, 'return ' + source.slice(body[0], body[1])); } function representJavascriptFunction(object /*, style*/) { diff --git a/tools/node_modules/eslint/node_modules/js-yaml/package.json b/tools/node_modules/eslint/node_modules/js-yaml/package.json index 409db0fb7c9d9e..03610230d02461 100644 --- a/tools/node_modules/eslint/node_modules/js-yaml/package.json +++ b/tools/node_modules/eslint/node_modules/js-yaml/package.json @@ -1,27 +1,27 @@ { - "_from": "js-yaml@^3.9.1", - "_id": "js-yaml@3.11.0", + "_from": "js-yaml@^3.11.0", + "_id": "js-yaml@3.12.0", "_inBundle": false, - "_integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", + "_integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "_location": "/eslint/js-yaml", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "js-yaml@^3.9.1", + "raw": "js-yaml@^3.11.0", "name": "js-yaml", "escapedName": "js-yaml", - "rawSpec": "^3.9.1", + "rawSpec": "^3.11.0", "saveSpec": null, - "fetchSpec": "^3.9.1" + "fetchSpec": "^3.11.0" }, "_requiredBy": [ "/eslint" ], - "_resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", - "_shasum": "597c1a8bd57152f26d622ce4117851a51f5ebaef", - "_spec": "js-yaml@^3.9.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "_shasum": "eaed656ec8344f10f527c6bfa1b6e2244de167d1", + "_spec": "js-yaml@^3.11.0", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Vladimir Zapparov", "email": "dervus.grim@gmail.com" @@ -59,11 +59,12 @@ "devDependencies": { "ansi": "^0.3.1", "benchmark": "^2.1.4", - "browserify": "^14.3.0", + "browserify": "^16.2.2", "codemirror": "^5.13.4", "eslint": "^4.1.1", + "fast-check": "1.1.3", "istanbul": "^0.4.5", - "mocha": "^3.3.0", + "mocha": "^5.2.0", "uglify-js": "^3.0.1" }, "files": [ @@ -88,5 +89,5 @@ "scripts": { "test": "make test" }, - "version": "3.11.0" + "version": "3.12.0" } diff --git a/tools/node_modules/eslint/node_modules/json-schema-traverse/README.md b/tools/node_modules/eslint/node_modules/json-schema-traverse/README.md index d4286a23b389c3..d5ccaf450a2a2b 100644 --- a/tools/node_modules/eslint/node_modules/json-schema-traverse/README.md +++ b/tools/node_modules/eslint/node_modules/json-schema-traverse/README.md @@ -24,14 +24,28 @@ const schema = { } }; -traverse(schema, cb); +traverse(schema, {cb}); // cb is called 3 times with: // 1. root schema // 2. {type: 'string'} // 3. {type: 'integer'} + +// Or: + +traverse(schema, {cb: {pre, post}}); +// pre is called 3 times with: +// 1. root schema +// 2. {type: 'string'} +// 3. {type: 'integer'} +// +// post is called 3 times with: +// 1. {type: 'string'} +// 2. {type: 'integer'} +// 3. root schema + ``` -Callback function is called for each schema object (not including draft-06 boolean schemas), including the root schema. Schema references ($ref) are not resolved, they are passed as is. +Callback function `cb` is called for each schema object (not including draft-06 boolean schemas), including the root schema, in pre-order traversal. Schema references ($ref) are not resolved, they are passed as is. Alternatively, you can pass a `{pre, post}` object as `cb`, and then `pre` will be called before traversing child elements, and `post` will be called after all child elements have been traversed. Callback is passed these parameters: @@ -55,7 +69,7 @@ const schema = { } }; -traverse(schema, {allKeys: true}, cb); +traverse(schema, {allKeys: true, cb}); // cb is called 2 times with: // 1. root schema // 2. mySchema diff --git a/tools/node_modules/eslint/node_modules/json-schema-traverse/index.js b/tools/node_modules/eslint/node_modules/json-schema-traverse/index.js index 79eeb6a05e74d7..d4a18dfc7b1c53 100644 --- a/tools/node_modules/eslint/node_modules/json-schema-traverse/index.js +++ b/tools/node_modules/eslint/node_modules/json-schema-traverse/index.js @@ -1,11 +1,17 @@ 'use strict'; var traverse = module.exports = function (schema, opts, cb) { + // Legacy support for v0.3.1 and earlier. if (typeof opts == 'function') { cb = opts; opts = {}; } - _traverse(opts, cb, schema, '', schema); + + cb = opts.cb || cb; + var pre = (typeof cb == 'function') ? cb : cb.pre || function() {}; + var post = cb.post || function() {}; + + _traverse(opts, pre, post, schema, '', schema); }; @@ -33,6 +39,7 @@ traverse.propsKeywords = { }; traverse.skipKeywords = { + default: true, enum: true, const: true, required: true, @@ -53,25 +60,26 @@ traverse.skipKeywords = { }; -function _traverse(opts, cb, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) { +function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) { if (schema && typeof schema == 'object' && !Array.isArray(schema)) { - cb(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); + pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); for (var key in schema) { var sch = schema[key]; if (Array.isArray(sch)) { if (key in traverse.arrayKeywords) { for (var i=0; i Install [n_](https://www.npmjs.com/package/n_) for Lodash use in the Node.js < 6 REPL. diff --git a/tools/node_modules/eslint/node_modules/lodash/_nodeUtil.js b/tools/node_modules/eslint/node_modules/lodash/_nodeUtil.js index 14e179fe1cb971..983d78f75b45d9 100644 --- a/tools/node_modules/eslint/node_modules/lodash/_nodeUtil.js +++ b/tools/node_modules/eslint/node_modules/lodash/_nodeUtil.js @@ -15,6 +15,14 @@ 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) {} }()); diff --git a/tools/node_modules/eslint/node_modules/lodash/core.js b/tools/node_modules/eslint/node_modules/lodash/core.js index 0e676fa661a55f..96b34773e8d21b 100644 --- a/tools/node_modules/eslint/node_modules/lodash/core.js +++ b/tools/node_modules/eslint/node_modules/lodash/core.js @@ -13,7 +13,7 @@ var undefined; /** Used as the semantic version number. */ - var VERSION = '4.17.5'; + var VERSION = '4.17.10'; /** Error message constants. */ var FUNC_ERROR_TEXT = 'Expected a function'; diff --git a/tools/node_modules/eslint/node_modules/lodash/core.min.js b/tools/node_modules/eslint/node_modules/lodash/core.min.js index 76640dda2db50c..54360a3c4ad2eb 100644 --- a/tools/node_modules/eslint/node_modules/lodash/core.min.js +++ b/tools/node_modules/eslint/node_modules/lodash/core.min.js @@ -25,5 +25,5 @@ return G(2,n)},o.pick=$n,o.slice=function(n,t,r){var e=null==n?0:n.length;return return t(n),n},o.thru=function(n,t){return t(n)},o.toArray=function(n){return M(n)?n.length?A(n):[]:W(n)},o.values=W,o.extend=Bn,Y(o,o),o.clone=function(n){return V(n)?Nn(n)?A(n):k(n,_n(n)):n},o.escape=function(n){return(n=Q(n))&&rn.test(n)?n.replace(tn,fn):n},o.every=function(n,t,r){return t=r?Z:t,f(n,g(t))},o.find=An,o.forEach=z,o.has=function(n,t){return null!=n&&pn.call(n,t)},o.head=q,o.identity=X,o.indexOf=P,o.isArguments=n,o.isArray=Nn,o.isBoolean=function(n){return true===n||false===n||H(n)&&"[object Boolean]"==hn.call(n); },o.isDate=function(n){return H(n)&&"[object Date]"==hn.call(n)},o.isEmpty=function(t){return M(t)&&(Nn(t)||L(t)||U(t.splice)||n(t))?!t.length:!_n(t).length},o.isEqual=function(n,t){return b(n,t)},o.isFinite=function(n){return typeof n=="number"&&gn(n)},o.isFunction=U,o.isNaN=function(n){return K(n)&&n!=+n},o.isNull=function(n){return null===n},o.isNumber=K,o.isObject=V,o.isRegExp=function(n){return H(n)&&"[object RegExp]"==hn.call(n)},o.isString=L,o.isUndefined=function(n){return n===Z},o.last=function(n){ var t=null==n?0:n.length;return t?n[t-1]:Z},o.max=function(n){return n&&n.length?a(n,X,v):Z},o.min=function(n){return n&&n.length?a(n,X,_):Z},o.noConflict=function(){return on._===this&&(on._=vn),this},o.noop=function(){},o.reduce=C,o.result=function(n,t,r){return t=null==n?Z:n[t],t===Z&&(t=r),U(t)?t.call(n):t},o.size=function(n){return null==n?0:(n=M(n)?n:_n(n),n.length)},o.some=function(n,t,r){return t=r?Z:t,E(n,g(t))},o.uniqueId=function(n){var t=++sn;return Q(n)+t},o.each=z,o.first=q,Y(o,function(){ -var n={};return s(o,function(t,r){pn.call(o.prototype,r)||(n[r]=t)}),n}(),{chain:false}),o.VERSION="4.17.5",mn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?String.prototype:an)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);o.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Nn(u)?u:[],n)}return this[r](function(r){return t.apply(Nn(r)?r:[],n); -})}}),o.prototype.toJSON=o.prototype.valueOf=o.prototype.value=function(){return w(this.__wrapped__,this.__actions__)},typeof define=="function"&&typeof define.amd=="object"&&define.amd?(on._=o, define(function(){return o})):cn?((cn.exports=o)._=o,un._=o):on._=o}).call(this); \ No newline at end of file +var n={};return s(o,function(t,r){pn.call(o.prototype,r)||(n[r]=t)}),n}(),{chain:false}),o.VERSION="4.17.10",mn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?String.prototype:an)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);o.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Nn(u)?u:[],n)}return this[r](function(r){return t.apply(Nn(r)?r:[],n); +})}}),o.prototype.toJSON=o.prototype.valueOf=o.prototype.value=function(){return w(this.__wrapped__,this.__actions__)},typeof define=="function"&&typeof define.amd=="object"&&define.amd?(on._=o, define(function(){return o})):cn?((cn.exports=o)._=o,un._=o):on._=o}).call(this); diff --git a/tools/node_modules/eslint/node_modules/lodash/lodash.js b/tools/node_modules/eslint/node_modules/lodash/lodash.js index 153fc43d231c12..cd8df6fe67f220 100644 --- a/tools/node_modules/eslint/node_modules/lodash/lodash.js +++ b/tools/node_modules/eslint/node_modules/lodash/lodash.js @@ -12,7 +12,7 @@ var undefined; /** Used as the semantic version number. */ - var VERSION = '4.17.5'; + var VERSION = '4.17.10'; /** Used as the size to enable large array optimizations. */ var LARGE_ARRAY_SIZE = 200; @@ -436,6 +436,14 @@ /** 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) {} }()); diff --git a/tools/node_modules/eslint/node_modules/lodash/lodash.min.js b/tools/node_modules/eslint/node_modules/lodash/lodash.min.js index ffa43eaf30f622..fced00b390bcd4 100644 --- a/tools/node_modules/eslint/node_modules/lodash/lodash.min.js +++ b/tools/node_modules/eslint/node_modules/lodash/lodash.min.js @@ -6,59 +6,59 @@ return true}function i(n,t){for(var r=-1,e=null==n?0:n.length,u=0,i=[];++r"']/g,G=RegExp(V.source),H=RegExp(K.source),J=/<%-([\s\S]+?)%>/g,Y=/<%([\s\S]+?)%>/g,Q=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nn=/^\w*$/,tn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rn=/[\\^$.*+?()[\]{}|]/g,en=RegExp(rn.source),un=/^\s+|\s+$/g,on=/^\s+/,fn=/\s+$/,cn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,an=/\{\n\/\* \[wrapped with (.+)\] \*/,ln=/,? & /,sn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,hn=/\\(\\)?/g,pn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,_n=/\w*$/,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\[object .+?Constructor\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\d*)$/,xn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,jn=/($^)/,wn=/['\n\r\u2028\u2029\\]/g,mn="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",An="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+mn,kn="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",En=RegExp("['\u2019]","g"),Sn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),On=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+kn+mn,"g"),In=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",An].join("|"),"g"),Rn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),zn=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Bn={}; +}var T,$=1/0,F=NaN,N=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],P=/\b__p\+='';/g,Z=/\b(__p\+=)''\+/g,q=/(__e\(.*?\)|\b__t\))\+'';/g,V=/&(?:amp|lt|gt|quot|#39);/g,K=/[&<>"']/g,G=RegExp(V.source),H=RegExp(K.source),J=/<%-([\s\S]+?)%>/g,Y=/<%([\s\S]+?)%>/g,Q=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nn=/^\w*$/,tn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rn=/[\\^$.*+?()[\]{}|]/g,en=RegExp(rn.source),un=/^\s+|\s+$/g,on=/^\s+/,fn=/\s+$/,cn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,an=/\{\n\/\* \[wrapped with (.+)\] \*/,ln=/,? & /,sn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,hn=/\\(\\)?/g,pn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,_n=/\w*$/,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\[object .+?Constructor\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\d*)$/,xn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,jn=/($^)/,wn=/['\n\r\u2028\u2029\\]/g,mn="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",An="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+mn,En="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",kn=RegExp("['\u2019]","g"),Sn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),On=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+En+mn,"g"),In=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",An].join("|"),"g"),Rn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),zn=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Bn={}; Bn["[object Float32Array]"]=Bn["[object Float64Array]"]=Bn["[object Int8Array]"]=Bn["[object Int16Array]"]=Bn["[object Int32Array]"]=Bn["[object Uint8Array]"]=Bn["[object Uint8ClampedArray]"]=Bn["[object Uint16Array]"]=Bn["[object Uint32Array]"]=true,Bn["[object Arguments]"]=Bn["[object Array]"]=Bn["[object ArrayBuffer]"]=Bn["[object Boolean]"]=Bn["[object DataView]"]=Bn["[object Date]"]=Bn["[object Error]"]=Bn["[object Function]"]=Bn["[object Map]"]=Bn["[object Number]"]=Bn["[object Object]"]=Bn["[object RegExp]"]=Bn["[object Set]"]=Bn["[object String]"]=Bn["[object WeakMap]"]=false; var Ln={};Ln["[object Arguments]"]=Ln["[object Array]"]=Ln["[object ArrayBuffer]"]=Ln["[object DataView]"]=Ln["[object Boolean]"]=Ln["[object Date]"]=Ln["[object Float32Array]"]=Ln["[object Float64Array]"]=Ln["[object Int8Array]"]=Ln["[object Int16Array]"]=Ln["[object Int32Array]"]=Ln["[object Map]"]=Ln["[object Number]"]=Ln["[object Object]"]=Ln["[object RegExp]"]=Ln["[object Set]"]=Ln["[object String]"]=Ln["[object Symbol]"]=Ln["[object Uint8Array]"]=Ln["[object Uint8ClampedArray]"]=Ln["[object Uint16Array]"]=Ln["[object Uint32Array]"]=true, -Ln["[object Error]"]=Ln["[object Function]"]=Ln["[object WeakMap]"]=false;var Un,Cn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Dn=parseFloat,Mn=parseInt,Tn=typeof global=="object"&&global&&global.Object===Object&&global,$n=typeof self=="object"&&self&&self.Object===Object&&self,Fn=Tn||$n||Function("return this")(),Nn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pn=Nn&&typeof module=="object"&&module&&!module.nodeType&&module,Zn=Pn&&Pn.exports===Nn,qn=Zn&&Tn.process; -n:{try{Un=qn&&qn.binding&&qn.binding("util");break n}catch(n){}Un=void 0}var Vn=Un&&Un.isArrayBuffer,Kn=Un&&Un.isDate,Gn=Un&&Un.isMap,Hn=Un&&Un.isRegExp,Jn=Un&&Un.isSet,Yn=Un&&Un.isTypedArray,Qn=b("length"),Xn=x({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I", -"\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C", -"\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i", -"\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S", -"\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe", -"\u0149":"'n","\u017f":"s"}),nt=x({"&":"&","<":"<",">":">",'"':""","'":"'"}),tt=x({"&":"&","<":"<",">":">",""":'"',"'":"'"}),rt=function x(mn){function An(n){if(du(n)&&!of(n)&&!(n instanceof Un)){if(n instanceof On)return n;if(ii.call(n,"__wrapped__"))return $e(n)}return new On(n)}function kn(){}function On(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=T}function Un(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1, -this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Cn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t":">",'"':""","'":"'"}),tt=x({"&":"&","<":"<",">":">",""":'"',"'":"'"}),rt=function x(mn){function An(n){if(du(n)&&!of(n)&&!(n instanceof Un)){if(n instanceof On)return n;if(ii.call(n,"__wrapped__"))return $e(n)}return new On(n)}function En(){}function On(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=T}function Un(n){this.__wrapped__=n, +this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function _t(n,t,e,u,i,o){var f,c=1&t,a=2&t,l=4&t;if(e&&(f=i?e(n,u,i,o):e(n)),f!==T)return f;if(!gu(n))return n;if(u=of(n)){if(f=me(n),!c)return Ur(n,f)}else{var s=_o(n),h="[object Function]"==s||"[object GeneratorFunction]"==s;if(cf(n))return Ir(n,c);if("[object Object]"==s||"[object Arguments]"==s||h&&!i){if(f=a||h?{}:Ae(n),!c)return a?Mr(n,lt(f,n)):Dr(n,at(f,n))}else{if(!Ln[s])return i?n:{};f=ke(n,s,c)}}if(o||(o=new Pn), +}function pt(n,t,r){return n===n&&(r!==T&&(n=n<=r?n:r),t!==T&&(n=n>=t?n:t)),n}function _t(n,t,e,u,i,o){var f,c=1&t,a=2&t,l=4&t;if(e&&(f=i?e(n,u,i,o):e(n)),f!==T)return f;if(!gu(n))return n;if(u=of(n)){if(f=me(n),!c)return Ur(n,f)}else{var s=_o(n),h="[object Function]"==s||"[object GeneratorFunction]"==s;if(cf(n))return Ir(n,c);if("[object Object]"==s||"[object Arguments]"==s||h&&!i){if(f=a||h?{}:Ae(n),!c)return a?Mr(n,lt(f,n)):Dr(n,at(f,n))}else{if(!Ln[s])return i?n:{};f=Ee(n,s,c)}}if(o||(o=new Zn), i=o.get(n))return i;if(o.set(n,f),hf(n))return n.forEach(function(r){f.add(_t(r,t,e,r,n,o))}),f;if(lf(n))return n.forEach(function(r,u){f.set(u,_t(r,t,e,u,n,o))}),f;var a=l?a?ve:_e:a?Wu:zu,p=u?T:a(n);return r(p||n,function(r,u){p&&(u=r,r=n[u]),ot(f,u,_t(r,t,e,u,n,o))}),f}function vt(n){var t=zu(n);return function(r){return gt(r,n,t)}}function gt(n,t,r){var e=r.length;if(null==n)return!e;for(n=Yu(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===T&&!(u in n)||!i(o))return false}return true}function dt(n,t,r){if(typeof n!="function")throw new ni("Expected a function"); -return yo(function(){n.apply(T,r)},t)}function yt(n,t,r,e){var u=-1,i=o,a=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=c(t,E(r))),e?(i=f,a=false):200<=t.length&&(i=O,a=false,t=new Nn(t));n:for(;++ut}function Rt(n,t){return null!=n&&ii.call(n,t)}function zt(n,t){return null!=n&&t in Yu(n)}function Wt(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=Vu(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,E(t))),s=Ui(p.length,s), -l[a]=!r&&(t||120<=u&&120<=p.length)?new Nn(a&&p):T}var p=n[0],_=-1,v=l[0];n:for(;++_r.length?t:Et(t,hr(r,0,-1)),r=null==t?t:t[De(qe(r))],null==r?T:n(r,t,e)}function Ut(n){return du(n)&&"[object Arguments]"==Ot(n)}function Ct(n){ -return du(n)&&"[object ArrayBuffer]"==Ot(n)}function Dt(n){return du(n)&&"[object Date]"==Ot(n)}function Mt(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!du(n)&&!du(t))t=n!==n&&t!==t;else n:{var i=of(n),o=of(t),f=i?"[object Array]":_o(n),c=o?"[object Array]":_o(t),f="[object Arguments]"==f?"[object Object]":f,c="[object Arguments]"==c?"[object Object]":c,a="[object Object]"==f,o="[object Object]"==c;if((c=f==c)&&cf(n)){if(!cf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Pn),t=i||pf(n)?se(n,t,r,e,Mt,u):he(n,t,f,r,e,Mt,u);else{ -if(!(1&r)&&(i=a&&ii.call(n,"__wrapped__"),f=o&&ii.call(t,"__wrapped__"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Pn),t=Mt(n,t,r,e,u);break n}if(c)t:if(u||(u=new Pn),i=1&r,f=_e(n),o=f.length,c=_e(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ii.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at}function Rt(n,t){return null!=n&&ii.call(n,t)}function zt(n,t){return null!=n&&t in Yu(n)}function Wt(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=Vu(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,k(t))),s=Ui(p.length,s), +l[a]=!r&&(t||120<=u&&120<=p.length)?new Nn(a&&p):T}var p=n[0],_=-1,v=l[0];n:for(;++_r.length?t:kt(t,hr(r,0,-1)),r=null==t?t:t[De(qe(r))],null==r?T:n(r,t,e)}function Ut(n){return du(n)&&"[object Arguments]"==Ot(n)}function Ct(n){ +return du(n)&&"[object ArrayBuffer]"==Ot(n)}function Dt(n){return du(n)&&"[object Date]"==Ot(n)}function Mt(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!du(n)&&!du(t))t=n!==n&&t!==t;else n:{var i=of(n),o=of(t),f=i?"[object Array]":_o(n),c=o?"[object Array]":_o(t),f="[object Arguments]"==f?"[object Object]":f,c="[object Arguments]"==c?"[object Object]":c,a="[object Object]"==f,o="[object Object]"==c;if((c=f==c)&&cf(n)){if(!cf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Zn),t=i||pf(n)?se(n,t,r,e,Mt,u):he(n,t,f,r,e,Mt,u);else{ +if(!(1&r)&&(i=a&&ii.call(n,"__wrapped__"),f=o&&ii.call(t,"__wrapped__"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Zn),t=Mt(n,t,r,e,u);break n}if(c)t:if(u||(u=new Zn),i=1&r,f=_e(n),o=f.length,c=_e(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ii.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at?r:0,Se(t,r)?n[t]:T}function Xt(n,t,r){var e=-1;return t=c(t.length?t:[Tu],E(ye())), -n=Gt(n,function(n){return{a:c(t,function(t){return t(n)}),b:++e,c:n}}),w(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*("desc"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function nr(n,t){return tr(n,t,function(t,r){return Ru(n,r)})}function tr(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t?r:0,Se(t,r)?n[t]:T}function Xt(n,t,r){var e=-1;return t=c(t.length?t:[Tu],k(ye())), +n=Gt(n,function(n){return{a:c(t,function(t){return t(n)}),b:++e,c:n}}),w(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*("desc"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function nr(n,t){return tr(n,t,function(t,r){return Ru(n,r)})}function tr(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Vu(u);++e=u){for(;e>>1,o=n[i];null!==o&&!ju(o)&&(r?o<=t:ot.length?n:Et(n,hr(t,0,-1)),null==n||delete n[De(qe(t))]}function jr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?br(n[0]):[];for(var u=-1,i=Vu(e);++u=e?n:hr(n,t,r)}function Ir(n,t){if(t)return n.slice();var r=n.length,r=vi?vi(r):new n.constructor(r);return n.copy(r),r}function Rr(n){var t=new n.constructor(n.byteLength);return new _i(t).set(new _i(n)), +t&&l.push(h),a.push(s)}else u(l,h,r)||(l!==a&&l.push(h),a.push(s))}return a}function xr(n,t){return t=Sr(t,n),n=2>t.length?n:kt(n,hr(t,0,-1)),null==n||delete n[De(qe(t))]}function jr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?br(n[0]):[];for(var u=-1,i=Vu(e);++u=e?n:hr(n,t,r)}function Ir(n,t){if(t)return n.slice();var r=n.length,r=vi?vi(r):new n.constructor(r);return n.copy(r),r}function Rr(n){var t=new n.constructor(n.byteLength);return new _i(t).set(new _i(n)), t}function zr(n,t){return new n.constructor(t?Rr(n.buffer):n.buffer,n.byteOffset,n.length)}function Wr(n,t){if(n!==t){var r=n!==T,e=null===n,u=n===n,i=ju(n),o=t!==T,f=null===t,c=t===t,a=ju(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&nu?T:i,u=1),t=Yu(t);++eo&&f[0]!==a&&f[o-1]!==a?[]:L(f,a), -o-=c.length,or?r?or(t,n):t:(r=or(t,Si(n/D(t))),Rn.test(t)?Or(M(r),0,n).join(""):r.slice(0,n))}function te(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=Vu(l+c),h=this&&this!==Fn&&this instanceof i?f:t;++ar?r?or(t,n):t:(r=or(t,Si(n/D(t))),Rn.test(t)?Or(M(r),0,n).join(""):r.slice(0,n))}function te(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=Vu(l+c),h=this&&this!==$n&&this instanceof i?f:t;++at||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Br(e,r,h[4]):r,i[4]=e?L(i[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Lr(e,r,h[6]):r,i[6]=e?L(i[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Ui(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1], r=i[2],e=i[3],u=i[4],f=i[9]=i[9]===T?c?0:n.length:Li(i[9]-a,0),!f&&24&t&&(t&=-25),Le((h?fo:go)(t&&1!=t?8==t||16==t?Kr(n,t,f):32!=t&&33!=t||u.length?Jr.apply(T,i):te(n,t,r,e):Pr(n,t,r),i),n,t)}function ce(n,t,r,e){return n===T||au(n,ri[r])&&!ii.call(e,r)?t:n}function ae(n,t,r,e,u,i){return gu(n)&&gu(t)&&(i.set(t,n),Yt(n,t,T,ae,i),i.delete(t)),n}function le(n){return bu(n)?T:n}function se(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new Nn:T; for(i.set(n,t),i.set(t,n);++c=n&&(t=T),r}}function uu(n,t,r){return t=r?T:t,n=fe(n,8,T,T,T,T,T,t),n.placeholder=uu.placeholder, n}function iu(n,t,r){return t=r?T:t,n=fe(n,16,T,T,T,T,T,t),n.placeholder=iu.placeholder,n}function ou(n,t,r){function e(t){var r=c,e=a;return c=a=T,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===T||r>=t||0>r||g&&n>=l}function i(){var n=Ko();if(u(n))return o(n);var r,e=yo;r=n-_,n=t-(n-p),r=g?Ui(n,l-r):n,h=e(i,r)}function o(n){return h=T,d&&c?e(n):(c=a=T,s)}function f(){var n=Ko(),r=u(n);if(c=arguments,a=this,p=n,r){if(h===T)return _=n=p,h=yo(i,t),v?e(n):s;if(g)return h=yo(i,t),e(p)}return h===T&&(h=yo(i,t)), -s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!="function")throw new ni("Expected a function");return t=Eu(t)||0,gu(r)&&(v=!!r.leading,l=(g="maxWait"in r)?Li(Eu(r.maxWait)||0,t):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==T&&ao(h),_=0,c=p=a=h=T},f.flush=function(){return h===T?s:o(Ko())},f}function fu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!="function"||null!=t&&typeof t!="function")throw new ni("Expected a function"); -return r.cache=new(fu.Cache||$n),r}function cu(n){if(typeof n!="function")throw new ni("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function au(n,t){return n===t||n!==n&&t!==t}function lu(n){return null!=n&&vu(n.length)&&!pu(n)}function su(n){return du(n)&&lu(n)}function hu(n){if(!du(n))return false;var t=Ot(n);return"[object Error]"==t||"[object DOMException]"==t||typeof n.message=="string"&&typeof n.name=="string"&&!bu(n); +s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!="function")throw new ni("Expected a function");return t=ku(t)||0,gu(r)&&(v=!!r.leading,l=(g="maxWait"in r)?Li(ku(r.maxWait)||0,t):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==T&&ao(h),_=0,c=p=a=h=T},f.flush=function(){return h===T?s:o(Ko())},f}function fu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!="function"||null!=t&&typeof t!="function")throw new ni("Expected a function"); +return r.cache=new(fu.Cache||Fn),r}function cu(n){if(typeof n!="function")throw new ni("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function au(n,t){return n===t||n!==n&&t!==t}function lu(n){return null!=n&&vu(n.length)&&!pu(n)}function su(n){return du(n)&&lu(n)}function hu(n){if(!du(n))return false;var t=Ot(n);return"[object Error]"==t||"[object DOMException]"==t||typeof n.message=="string"&&typeof n.name=="string"&&!bu(n); }function pu(n){return!!gu(n)&&(n=Ot(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function _u(n){return typeof n=="number"&&n==Au(n)}function vu(n){return typeof n=="number"&&-1=n}function gu(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function du(n){return null!=n&&typeof n=="object"}function yu(n){return typeof n=="number"||du(n)&&"[object Number]"==Ot(n)}function bu(n){return!(!du(n)||"[object Object]"!=Ot(n))&&(n=gi(n), -null===n||(n=ii.call(n,"constructor")&&n.constructor,typeof n=="function"&&n instanceof n&&ui.call(n)==ai))}function xu(n){return typeof n=="string"||!of(n)&&du(n)&&"[object String]"==Ot(n)}function ju(n){return typeof n=="symbol"||du(n)&&"[object Symbol]"==Ot(n)}function wu(n){if(!n)return[];if(lu(n))return xu(n)?M(n):Ur(n);if(ji&&n[ji]){n=n[ji]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=_o(n),("[object Map]"==t?W:"[object Set]"==t?U:Lu)(n)}function mu(n){return n?(n=Eu(n), -n===$||n===-$?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Au(n){n=mu(n);var t=n%1;return n===n?t?n-t:n:0}function ku(n){return n?pt(Au(n),0,4294967295):0}function Eu(n){if(typeof n=="number")return n;if(ju(n))return F;if(gu(n)&&(n=typeof n.valueOf=="function"?n.valueOf():n,n=gu(n)?n+"":n),typeof n!="string")return 0===n?n:+n;n=n.replace(un,"");var t=gn.test(n);return t||yn.test(n)?Mn(n.slice(2),t?2:8):vn.test(n)?F:+n}function Su(n){return Cr(n,Wu(n))}function Ou(n){return null==n?"":yr(n); -}function Iu(n,t,r){return n=null==n?T:Et(n,t),n===T?r:n}function Ru(n,t){return null!=n&&we(n,t,zt)}function zu(n){return lu(n)?qn(n):Vt(n)}function Wu(n){if(lu(n))n=qn(n,true);else if(gu(n)){var t,r=ze(n),e=[];for(t in n)("constructor"!=t||!r&&ii.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in Yu(n))t.push(r);n=t}return n}function Bu(n,t){if(null==n)return{};var r=c(ve(n),function(n){return[n]});return t=ye(t),tr(n,r,function(n,r){return t(n,r[0])})}function Lu(n){return null==n?[]:S(n,zu(n)); -}function Uu(n){return Tf(Ou(n).toLowerCase())}function Cu(n){return(n=Ou(n))&&n.replace(xn,Xn).replace(Sn,"")}function Du(n,t,r){return n=Ou(n),t=r?T:t,t===T?zn.test(n)?n.match(In)||[]:n.match(sn)||[]:n.match(t)||[]}function Mu(n){return function(){return n}}function Tu(n){return n}function $u(n){return qt(typeof n=="function"?n:_t(n,1))}function Fu(n,t,e){var u=zu(t),i=kt(t,u);null!=e||gu(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=kt(t,zu(t)));var o=!(gu(e)&&"chain"in e&&!e.chain),f=pu(n);return r(i,function(r){ -var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Nu(){}function Pu(n){return Ie(n)?b(De(n)):rr(n)}function Zu(){return[]}function qu(){return false}mn=null==mn?Fn:rt.defaults(Fn.Object(),mn,rt.pick(Fn,Wn));var Vu=mn.Array,Ku=mn.Date,Gu=mn.Error,Hu=mn.Function,Ju=mn.Math,Yu=mn.Object,Qu=mn.RegExp,Xu=mn.String,ni=mn.TypeError,ti=Vu.prototype,ri=Yu.prototype,ei=mn["__core-js_shared__"],ui=Hu.prototype.toString,ii=ri.hasOwnProperty,oi=0,fi=function(){ -var n=/[^.]+$/.exec(ei&&ei.keys&&ei.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),ci=ri.toString,ai=ui.call(Yu),li=Fn._,si=Qu("^"+ui.call(ii).replace(rn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),hi=Zn?mn.Buffer:T,pi=mn.Symbol,_i=mn.Uint8Array,vi=hi?hi.f:T,gi=B(Yu.getPrototypeOf,Yu),di=Yu.create,yi=ri.propertyIsEnumerable,bi=ti.splice,xi=pi?pi.isConcatSpreadable:T,ji=pi?pi.iterator:T,wi=pi?pi.toStringTag:T,mi=function(){try{var n=je(Yu,"defineProperty"); -return n({},"",{}),n}catch(n){}}(),Ai=mn.clearTimeout!==Fn.clearTimeout&&mn.clearTimeout,ki=Ku&&Ku.now!==Fn.Date.now&&Ku.now,Ei=mn.setTimeout!==Fn.setTimeout&&mn.setTimeout,Si=Ju.ceil,Oi=Ju.floor,Ii=Yu.getOwnPropertySymbols,Ri=hi?hi.isBuffer:T,zi=mn.isFinite,Wi=ti.join,Bi=B(Yu.keys,Yu),Li=Ju.max,Ui=Ju.min,Ci=Ku.now,Di=mn.parseInt,Mi=Ju.random,Ti=ti.reverse,$i=je(mn,"DataView"),Fi=je(mn,"Map"),Ni=je(mn,"Promise"),Pi=je(mn,"Set"),Zi=je(mn,"WeakMap"),qi=je(Yu,"create"),Vi=Zi&&new Zi,Ki={},Gi=Me($i),Hi=Me(Fi),Ji=Me(Ni),Yi=Me(Pi),Qi=Me(Zi),Xi=pi?pi.prototype:T,no=Xi?Xi.valueOf:T,to=Xi?Xi.toString:T,ro=function(){ -function n(){}return function(t){return gu(t)?di?di(t):(n.prototype=t,t=new n,n.prototype=T,t):{}}}();An.templateSettings={escape:J,evaluate:Y,interpolate:Q,variable:"",imports:{_:An}},An.prototype=kn.prototype,An.prototype.constructor=An,On.prototype=ro(kn.prototype),On.prototype.constructor=On,Un.prototype=ro(kn.prototype),Un.prototype.constructor=Un,Cn.prototype.clear=function(){this.__data__=qi?qi(null):{},this.size=0},Cn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n], -this.size-=n?1:0,n},Cn.prototype.get=function(n){var t=this.__data__;return qi?(n=t[n],"__lodash_hash_undefined__"===n?T:n):ii.call(t,n)?t[n]:T},Cn.prototype.has=function(n){var t=this.__data__;return qi?t[n]!==T:ii.call(t,n)},Cn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=qi&&t===T?"__lodash_hash_undefined__":t,this},Tn.prototype.clear=function(){this.__data__=[],this.size=0},Tn.prototype.delete=function(n){var t=this.__data__;return n=ft(t,n),!(0>n)&&(n==t.length-1?t.pop():bi.call(t,n,1), ---this.size,true)},Tn.prototype.get=function(n){var t=this.__data__;return n=ft(t,n),0>n?T:t[n][1]},Tn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},$n.prototype.clear=function(){this.size=0,this.__data__={hash:new Cn,map:new(Fi||Tn),string:new Cn}},$n.prototype.delete=function(n){return n=be(this,n).delete(n),this.size-=n?1:0,n},$n.prototype.get=function(n){return be(this,n).get(n); -},$n.prototype.has=function(n){return be(this,n).has(n)},$n.prototype.set=function(n,t){var r=be(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Nn.prototype.add=Nn.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},Nn.prototype.has=function(n){return this.__data__.has(n)},Pn.prototype.clear=function(){this.__data__=new Tn,this.size=0},Pn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Pn.prototype.get=function(n){ -return this.__data__.get(n)},Pn.prototype.has=function(n){return this.__data__.has(n)},Pn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Tn){var e=r.__data__;if(!Fi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new $n(e)}return r.set(n,t),this.size=r.size,this};var eo=Fr(mt),uo=Fr(At,true),io=Nr(),oo=Nr(true),fo=Vi?function(n,t){return Vi.set(n,t),n}:Tu,co=mi?function(n,t){return mi(n,"toString",{configurable:true,enumerable:false,value:Mu(t),writable:true})}:Tu,ao=Ai||function(n){ -return Fn.clearTimeout(n)},lo=Pi&&1/U(new Pi([,-0]))[1]==$?function(n){return new Pi(n)}:Nu,so=Vi?function(n){return Vi.get(n)}:Nu,ho=Ii?function(n){return null==n?[]:(n=Yu(n),i(Ii(n),function(t){return yi.call(n,t)}))}:Zu,po=Ii?function(n){for(var t=[];n;)a(t,ho(n)),n=gi(n);return t}:Zu,_o=Ot;($i&&"[object DataView]"!=_o(new $i(new ArrayBuffer(1)))||Fi&&"[object Map]"!=_o(new Fi)||Ni&&"[object Promise]"!=_o(Ni.resolve())||Pi&&"[object Set]"!=_o(new Pi)||Zi&&"[object WeakMap]"!=_o(new Zi))&&(_o=function(n){ -var t=Ot(n);if(n=(n="[object Object]"==t?n.constructor:T)?Me(n):"")switch(n){case Gi:return"[object DataView]";case Hi:return"[object Map]";case Ji:return"[object Promise]";case Yi:return"[object Set]";case Qi:return"[object WeakMap]"}return t});var vo=ei?pu:qu,go=Ue(fo),yo=Ei||function(n,t){return Fn.setTimeout(n,t)},bo=Ue(co),xo=function(n){n=fu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(""),n.replace(tn,function(n,r,e,u){ -t.push(e?u.replace(hn,"$1"):r||n)}),t}),jo=fr(function(n,t){return su(n)?yt(n,wt(t,1,su,true)):[]}),wo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),ye(r,2)):[]}),mo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),T,r):[]}),Ao=fr(function(n){var t=c(n,kr);return t.length&&t[0]===n[0]?Wt(t):[]}),ko=fr(function(n){var t=qe(n),r=c(n,kr);return t===qe(r)?t=T:r.pop(),r.length&&r[0]===n[0]?Wt(r,ye(t,2)):[]}),Eo=fr(function(n){var t=qe(n),r=c(n,kr);return(t=typeof t=="function"?t:T)&&r.pop(), +null===n||(n=ii.call(n,"constructor")&&n.constructor,typeof n=="function"&&n instanceof n&&ui.call(n)==ai))}function xu(n){return typeof n=="string"||!of(n)&&du(n)&&"[object String]"==Ot(n)}function ju(n){return typeof n=="symbol"||du(n)&&"[object Symbol]"==Ot(n)}function wu(n){if(!n)return[];if(lu(n))return xu(n)?M(n):Ur(n);if(ji&&n[ji]){n=n[ji]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=_o(n),("[object Map]"==t?W:"[object Set]"==t?U:Lu)(n)}function mu(n){return n?(n=ku(n), +n===$||n===-$?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Au(n){n=mu(n);var t=n%1;return n===n?t?n-t:n:0}function Eu(n){return n?pt(Au(n),0,4294967295):0}function ku(n){if(typeof n=="number")return n;if(ju(n))return F;if(gu(n)&&(n=typeof n.valueOf=="function"?n.valueOf():n,n=gu(n)?n+"":n),typeof n!="string")return 0===n?n:+n;n=n.replace(un,"");var t=gn.test(n);return t||yn.test(n)?Dn(n.slice(2),t?2:8):vn.test(n)?F:+n}function Su(n){return Cr(n,Wu(n))}function Ou(n){return null==n?"":yr(n); +}function Iu(n,t,r){return n=null==n?T:kt(n,t),n===T?r:n}function Ru(n,t){return null!=n&&we(n,t,zt)}function zu(n){return lu(n)?qn(n):Vt(n)}function Wu(n){if(lu(n))n=qn(n,true);else if(gu(n)){var t,r=ze(n),e=[];for(t in n)("constructor"!=t||!r&&ii.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in Yu(n))t.push(r);n=t}return n}function Bu(n,t){if(null==n)return{};var r=c(ve(n),function(n){return[n]});return t=ye(t),tr(n,r,function(n,r){return t(n,r[0])})}function Lu(n){return null==n?[]:S(n,zu(n)); +}function Uu(n){return Tf(Ou(n).toLowerCase())}function Cu(n){return(n=Ou(n))&&n.replace(xn,Xn).replace(Sn,"")}function Du(n,t,r){return n=Ou(n),t=r?T:t,t===T?zn.test(n)?n.match(In)||[]:n.match(sn)||[]:n.match(t)||[]}function Mu(n){return function(){return n}}function Tu(n){return n}function $u(n){return qt(typeof n=="function"?n:_t(n,1))}function Fu(n,t,e){var u=zu(t),i=Et(t,u);null!=e||gu(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=Et(t,zu(t)));var o=!(gu(e)&&"chain"in e&&!e.chain),f=pu(n);return r(i,function(r){ +var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Nu(){}function Pu(n){return Ie(n)?b(De(n)):rr(n)}function Zu(){return[]}function qu(){return false}mn=null==mn?$n:rt.defaults($n.Object(),mn,rt.pick($n,Wn));var Vu=mn.Array,Ku=mn.Date,Gu=mn.Error,Hu=mn.Function,Ju=mn.Math,Yu=mn.Object,Qu=mn.RegExp,Xu=mn.String,ni=mn.TypeError,ti=Vu.prototype,ri=Yu.prototype,ei=mn["__core-js_shared__"],ui=Hu.prototype.toString,ii=ri.hasOwnProperty,oi=0,fi=function(){ +var n=/[^.]+$/.exec(ei&&ei.keys&&ei.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),ci=ri.toString,ai=ui.call(Yu),li=$n._,si=Qu("^"+ui.call(ii).replace(rn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),hi=Pn?mn.Buffer:T,pi=mn.Symbol,_i=mn.Uint8Array,vi=hi?hi.g:T,gi=B(Yu.getPrototypeOf,Yu),di=Yu.create,yi=ri.propertyIsEnumerable,bi=ti.splice,xi=pi?pi.isConcatSpreadable:T,ji=pi?pi.iterator:T,wi=pi?pi.toStringTag:T,mi=function(){try{var n=je(Yu,"defineProperty"); +return n({},"",{}),n}catch(n){}}(),Ai=mn.clearTimeout!==$n.clearTimeout&&mn.clearTimeout,Ei=Ku&&Ku.now!==$n.Date.now&&Ku.now,ki=mn.setTimeout!==$n.setTimeout&&mn.setTimeout,Si=Ju.ceil,Oi=Ju.floor,Ii=Yu.getOwnPropertySymbols,Ri=hi?hi.isBuffer:T,zi=mn.isFinite,Wi=ti.join,Bi=B(Yu.keys,Yu),Li=Ju.max,Ui=Ju.min,Ci=Ku.now,Di=mn.parseInt,Mi=Ju.random,Ti=ti.reverse,$i=je(mn,"DataView"),Fi=je(mn,"Map"),Ni=je(mn,"Promise"),Pi=je(mn,"Set"),Zi=je(mn,"WeakMap"),qi=je(Yu,"create"),Vi=Zi&&new Zi,Ki={},Gi=Me($i),Hi=Me(Fi),Ji=Me(Ni),Yi=Me(Pi),Qi=Me(Zi),Xi=pi?pi.prototype:T,no=Xi?Xi.valueOf:T,to=Xi?Xi.toString:T,ro=function(){ +function n(){}return function(t){return gu(t)?di?di(t):(n.prototype=t,t=new n,n.prototype=T,t):{}}}();An.templateSettings={escape:J,evaluate:Y,interpolate:Q,variable:"",imports:{_:An}},An.prototype=En.prototype,An.prototype.constructor=An,On.prototype=ro(En.prototype),On.prototype.constructor=On,Un.prototype=ro(En.prototype),Un.prototype.constructor=Un,Mn.prototype.clear=function(){this.__data__=qi?qi(null):{},this.size=0},Mn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n], +this.size-=n?1:0,n},Mn.prototype.get=function(n){var t=this.__data__;return qi?(n=t[n],"__lodash_hash_undefined__"===n?T:n):ii.call(t,n)?t[n]:T},Mn.prototype.has=function(n){var t=this.__data__;return qi?t[n]!==T:ii.call(t,n)},Mn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=qi&&t===T?"__lodash_hash_undefined__":t,this},Tn.prototype.clear=function(){this.__data__=[],this.size=0},Tn.prototype.delete=function(n){var t=this.__data__;return n=ft(t,n),!(0>n)&&(n==t.length-1?t.pop():bi.call(t,n,1), +--this.size,true)},Tn.prototype.get=function(n){var t=this.__data__;return n=ft(t,n),0>n?T:t[n][1]},Tn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},Fn.prototype.clear=function(){this.size=0,this.__data__={hash:new Mn,map:new(Fi||Tn),string:new Mn}},Fn.prototype.delete=function(n){return n=be(this,n).delete(n),this.size-=n?1:0,n},Fn.prototype.get=function(n){return be(this,n).get(n); +},Fn.prototype.has=function(n){return be(this,n).has(n)},Fn.prototype.set=function(n,t){var r=be(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Nn.prototype.add=Nn.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},Nn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.clear=function(){this.__data__=new Tn,this.size=0},Zn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Zn.prototype.get=function(n){ +return this.__data__.get(n)},Zn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Tn){var e=r.__data__;if(!Fi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Fn(e)}return r.set(n,t),this.size=r.size,this};var eo=Fr(mt),uo=Fr(At,true),io=Nr(),oo=Nr(true),fo=Vi?function(n,t){return Vi.set(n,t),n}:Tu,co=mi?function(n,t){return mi(n,"toString",{configurable:true,enumerable:false,value:Mu(t),writable:true})}:Tu,ao=Ai||function(n){ +return $n.clearTimeout(n)},lo=Pi&&1/U(new Pi([,-0]))[1]==$?function(n){return new Pi(n)}:Nu,so=Vi?function(n){return Vi.get(n)}:Nu,ho=Ii?function(n){return null==n?[]:(n=Yu(n),i(Ii(n),function(t){return yi.call(n,t)}))}:Zu,po=Ii?function(n){for(var t=[];n;)a(t,ho(n)),n=gi(n);return t}:Zu,_o=Ot;($i&&"[object DataView]"!=_o(new $i(new ArrayBuffer(1)))||Fi&&"[object Map]"!=_o(new Fi)||Ni&&"[object Promise]"!=_o(Ni.resolve())||Pi&&"[object Set]"!=_o(new Pi)||Zi&&"[object WeakMap]"!=_o(new Zi))&&(_o=function(n){ +var t=Ot(n);if(n=(n="[object Object]"==t?n.constructor:T)?Me(n):"")switch(n){case Gi:return"[object DataView]";case Hi:return"[object Map]";case Ji:return"[object Promise]";case Yi:return"[object Set]";case Qi:return"[object WeakMap]"}return t});var vo=ei?pu:qu,go=Ue(fo),yo=ki||function(n,t){return $n.setTimeout(n,t)},bo=Ue(co),xo=function(n){n=fu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(""),n.replace(tn,function(n,r,e,u){ +t.push(e?u.replace(hn,"$1"):r||n)}),t}),jo=fr(function(n,t){return su(n)?yt(n,wt(t,1,su,true)):[]}),wo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),ye(r,2)):[]}),mo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),T,r):[]}),Ao=fr(function(n){var t=c(n,Er);return t.length&&t[0]===n[0]?Wt(t):[]}),Eo=fr(function(n){var t=qe(n),r=c(n,Er);return t===qe(r)?t=T:r.pop(),r.length&&r[0]===n[0]?Wt(r,ye(t,2)):[]}),ko=fr(function(n){var t=qe(n),r=c(n,Er);return(t=typeof t=="function"?t:T)&&r.pop(), r.length&&r[0]===n[0]?Wt(r,T,t):[]}),So=fr(Ve),Oo=pe(function(n,t){var r=null==n?0:n.length,e=ht(n,t);return ur(n,c(t,function(n){return Se(n,r)?+n:n}).sort(Wr)),e}),Io=fr(function(n){return br(wt(n,1,su,true))}),Ro=fr(function(n){var t=qe(n);return su(t)&&(t=T),br(wt(n,1,su,true),ye(t,2))}),zo=fr(function(n){var t=qe(n),t=typeof t=="function"?t:T;return br(wt(n,1,su,true),T,t)}),Wo=fr(function(n,t){return su(n)?yt(n,t):[]}),Bo=fr(function(n){return mr(i(n,su))}),Lo=fr(function(n){var t=qe(n);return su(t)&&(t=T), mr(i(n,su),ye(t,2))}),Uo=fr(function(n){var t=qe(n),t=typeof t=="function"?t:T;return mr(i(n,su),T,t)}),Co=fr(Ge),Do=fr(function(n){var t=n.length,t=1=t}),uf=Ut(function(){return arguments}())?Ut:function(n){return du(n)&&ii.call(n,"callee")&&!yi.call(n,"callee")},of=Vu.isArray,ff=Vn?E(Vn):Ct,cf=Ri||qu,af=Kn?E(Kn):Dt,lf=Gn?E(Gn):Tt,sf=Hn?E(Hn):Nt,hf=Jn?E(Jn):Pt,pf=Yn?E(Yn):Zt,_f=ee(Kt),vf=ee(function(n,t){return n<=t}),gf=$r(function(n,t){ +Xt(n,wt(t,1),[])}),Ko=Ei||function(){return $n.Date.now()},Go=fr(function(n,t,r){var e=1;if(r.length)var u=L(r,de(Go)),e=32|e;return fe(n,e,t,r,u)}),Ho=fr(function(n,t,r){var e=3;if(r.length)var u=L(r,de(Ho)),e=32|e;return fe(t,e,n,r,u)}),Jo=fr(function(n,t){return dt(n,1,t)}),Yo=fr(function(n,t,r){return dt(n,ku(t)||0,r)});fu.Cache=Fn;var Qo=fr(function(t,r){r=1==r.length&&of(r[0])?c(r[0],k(ye())):c(wt(r,1),k(ye()));var e=r.length;return fr(function(u){for(var i=-1,o=Ui(u.length,e);++i=t}),uf=Ut(function(){return arguments}())?Ut:function(n){return du(n)&&ii.call(n,"callee")&&!yi.call(n,"callee")},of=Vu.isArray,ff=Vn?k(Vn):Ct,cf=Ri||qu,af=Kn?k(Kn):Dt,lf=Gn?k(Gn):Tt,sf=Hn?k(Hn):Nt,hf=Jn?k(Jn):Pt,pf=Yn?k(Yn):Zt,_f=ee(Kt),vf=ee(function(n,t){return n<=t}),gf=$r(function(n,t){ if(ze(t)||lu(t))Cr(t,zu(t),n);else for(var r in t)ii.call(t,r)&&ot(n,r,t[r])}),df=$r(function(n,t){Cr(t,Wu(t),n)}),yf=$r(function(n,t,r,e){Cr(t,Wu(t),n,e)}),bf=$r(function(n,t,r,e){Cr(t,zu(t),n,e)}),xf=pe(ht),jf=fr(function(n,t){n=Yu(n);var r=-1,e=t.length,u=2--n)return t.apply(this,arguments)}},An.ary=ru,An.assign=gf,An.assignIn=df,An.assignInWith=yf,An.assignWith=bf,An.at=xf,An.before=eu,An.bind=Go,An.bindAll=Ff,An.bindKey=Ho,An.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return of(n)?n:[n]},An.chain=Je,An.chunk=function(n,t,r){if(t=(r?Oe(n,t,r):t===T)?1:Li(Au(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Vu(Si(r/t));et?0:t,e)):[]},An.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0,0>t?0:t)):[]},An.dropRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true,true):[]; -},An.dropWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true):[]},An.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!="number"&&Oe(n,t,r)&&(r=0,e=u),u=n.length,r=Au(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Au(e),0>e&&(e+=u),e=r>e?0:ku(e);rr&&(r=-r>u?0:u+r),e=e===T||e>u?u:Au(e),0>e&&(e+=u),e=r>e?0:Eu(e);r>>0,r?(n=Ou(n))&&(typeof t=="string"||null!=t&&!sf(t))&&(t=yr(t),!t&&Rn.test(n))?Or(M(n),0,r):n.split(t,r):[]},An.spread=function(t,r){if(typeof t!="function")throw new ni("Expected a function");return r=null==r?0:Li(Au(r),0), fr(function(e){var u=e[r];return e=Or(e,0,r),u&&a(e,u),n(t,this,e)})},An.tail=function(n){var t=null==n?0:n.length;return t?hr(n,1,t):[]},An.take=function(n,t,r){return n&&n.length?(t=r||t===T?1:Au(t),hr(n,0,0>t?0:t)):[]},An.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0>t?0:t,e)):[]},An.takeRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),false,true):[]},An.takeWhile=function(n,t){return n&&n.length?jr(n,ye(t,3)):[]},An.tap=function(n,t){return t(n), n},An.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new ni("Expected a function");return gu(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),ou(n,t,{leading:e,maxWait:t,trailing:u})},An.thru=Ye,An.toArray=wu,An.toPairs=Rf,An.toPairsIn=zf,An.toPath=function(n){return of(n)?c(n,De):ju(n)?[n]:Ur(xo(Ou(n)))},An.toPlainObject=Su,An.transform=function(n,t,e){var u=of(n),i=u||cf(n)||pf(n);if(t=ye(t,4),null==e){var o=n&&n.constructor;e=i?u?new o:[]:gu(n)&&pu(o)?ro(gi(n)):{}; -}return(i?r:mt)(n,function(n,r,u){return t(e,n,r,u)}),e},An.unary=function(n){return ru(n,1)},An.union=Io,An.unionBy=Ro,An.unionWith=zo,An.uniq=function(n){return n&&n.length?br(n):[]},An.uniqBy=function(n,t){return n&&n.length?br(n,ye(t,2)):[]},An.uniqWith=function(n,t){return t=typeof t=="function"?t:T,n&&n.length?br(n,T,t):[]},An.unset=function(n,t){return null==n||xr(n,t)},An.unzip=Ge,An.unzipWith=He,An.update=function(n,t,r){return null==n?n:lr(n,t,Er(r)(Et(n,t)),void 0)},An.updateWith=function(n,t,r,e){ -return e=typeof e=="function"?e:T,null!=n&&(n=lr(n,t,Er(r)(Et(n,t)),e)),n},An.values=Lu,An.valuesIn=function(n){return null==n?[]:S(n,Wu(n))},An.without=Wo,An.words=Du,An.wrap=function(n,t){return Xo(Er(t),n)},An.xor=Bo,An.xorBy=Lo,An.xorWith=Uo,An.zip=Co,An.zipObject=function(n,t){return Ar(n||[],t||[],ot)},An.zipObjectDeep=function(n,t){return Ar(n||[],t||[],lr)},An.zipWith=Do,An.entries=Rf,An.entriesIn=zf,An.extend=df,An.extendWith=yf,Fu(An,An),An.add=Yf,An.attempt=$f,An.camelCase=Wf,An.capitalize=Uu, -An.ceil=Qf,An.clamp=function(n,t,r){return r===T&&(r=t,t=T),r!==T&&(r=Eu(r),r=r===r?r:0),t!==T&&(t=Eu(t),t=t===t?t:0),pt(Eu(n),t,r)},An.clone=function(n){return _t(n,4)},An.cloneDeep=function(n){return _t(n,5)},An.cloneDeepWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,5,t)},An.cloneWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,4,t)},An.conformsTo=function(n,t){return null==t||gt(n,t,zu(t))},An.deburr=Cu,An.defaultTo=function(n,t){return null==n||n!==n?t:n},An.divide=Xf,An.endsWith=function(n,t,r){ +}return(i?r:mt)(n,function(n,r,u){return t(e,n,r,u)}),e},An.unary=function(n){return ru(n,1)},An.union=Io,An.unionBy=Ro,An.unionWith=zo,An.uniq=function(n){return n&&n.length?br(n):[]},An.uniqBy=function(n,t){return n&&n.length?br(n,ye(t,2)):[]},An.uniqWith=function(n,t){return t=typeof t=="function"?t:T,n&&n.length?br(n,T,t):[]},An.unset=function(n,t){return null==n||xr(n,t)},An.unzip=Ge,An.unzipWith=He,An.update=function(n,t,r){return null==n?n:lr(n,t,kr(r)(kt(n,t)),void 0)},An.updateWith=function(n,t,r,e){ +return e=typeof e=="function"?e:T,null!=n&&(n=lr(n,t,kr(r)(kt(n,t)),e)),n},An.values=Lu,An.valuesIn=function(n){return null==n?[]:S(n,Wu(n))},An.without=Wo,An.words=Du,An.wrap=function(n,t){return Xo(kr(t),n)},An.xor=Bo,An.xorBy=Lo,An.xorWith=Uo,An.zip=Co,An.zipObject=function(n,t){return Ar(n||[],t||[],ot)},An.zipObjectDeep=function(n,t){return Ar(n||[],t||[],lr)},An.zipWith=Do,An.entries=Rf,An.entriesIn=zf,An.extend=df,An.extendWith=yf,Fu(An,An),An.add=Yf,An.attempt=$f,An.camelCase=Wf,An.capitalize=Uu, +An.ceil=Qf,An.clamp=function(n,t,r){return r===T&&(r=t,t=T),r!==T&&(r=ku(r),r=r===r?r:0),t!==T&&(t=ku(t),t=t===t?t:0),pt(ku(n),t,r)},An.clone=function(n){return _t(n,4)},An.cloneDeep=function(n){return _t(n,5)},An.cloneDeepWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,5,t)},An.cloneWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,4,t)},An.conformsTo=function(n,t){return null==t||gt(n,t,zu(t))},An.deburr=Cu,An.defaultTo=function(n,t){return null==n||n!==n?t:n},An.divide=Xf,An.endsWith=function(n,t,r){ n=Ou(n),t=yr(t);var e=n.length,e=r=r===T?e:pt(Au(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},An.eq=au,An.escape=function(n){return(n=Ou(n))&&H.test(n)?n.replace(K,nt):n},An.escapeRegExp=function(n){return(n=Ou(n))&&en.test(n)?n.replace(rn,"\\$&"):n},An.every=function(n,t,r){var e=of(n)?u:bt;return r&&Oe(n,t,r)&&(t=T),e(n,ye(t,3))},An.find=$o,An.findIndex=Fe,An.findKey=function(n,t){return p(n,ye(t,3),mt)},An.findLast=Fo,An.findLastIndex=Ne,An.findLastKey=function(n,t){return p(n,ye(t,3),At); },An.floor=nc,An.forEach=Xe,An.forEachRight=nu,An.forIn=function(n,t){return null==n?n:io(n,ye(t,3),Wu)},An.forInRight=function(n,t){return null==n?n:oo(n,ye(t,3),Wu)},An.forOwn=function(n,t){return n&&mt(n,ye(t,3))},An.forOwnRight=function(n,t){return n&&At(n,ye(t,3))},An.get=Iu,An.gt=rf,An.gte=ef,An.has=function(n,t){return null!=n&&we(n,t,Rt)},An.hasIn=Ru,An.head=Ze,An.identity=Tu,An.includes=function(n,t,r,e){return n=lu(n)?n:Lu(n),r=r&&!e?Au(r):0,e=n.length,0>r&&(r=Li(e+r,0)),xu(n)?r<=e&&-1r&&(r=Li(e+r,0)),v(n,t,r)):-1},An.inRange=function(n,t,r){return t=mu(t),r===T?(r=t,t=0):r=mu(r),n=Eu(n),n>=Ui(t,r)&&nr&&(r=Li(e+r,0)),v(n,t,r)):-1},An.inRange=function(n,t,r){return t=mu(t),r===T?(r=t,t=0):r=mu(r),n=ku(n),n>=Ui(t,r)&&n=n},An.isSet=hf,An.isString=xu,An.isSymbol=ju,An.isTypedArray=pf,An.isUndefined=function(n){return n===T},An.isWeakMap=function(n){return du(n)&&"[object WeakMap]"==_o(n)},An.isWeakSet=function(n){return du(n)&&"[object WeakSet]"==Ot(n)},An.join=function(n,t){return null==n?"":Wi.call(n,t)},An.kebabCase=Bf,An.last=qe,An.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==T&&(u=Au(r),u=0>u?Li(e+u,0):Ui(u,e-1)), t===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=_(n,d,u,true);return n},An.lowerCase=Lf,An.lowerFirst=Uf,An.lt=_f,An.lte=vf,An.max=function(n){return n&&n.length?xt(n,Tu,It):T},An.maxBy=function(n,t){return n&&n.length?xt(n,ye(t,2),It):T},An.mean=function(n){return y(n,Tu)},An.meanBy=function(n,t){return y(n,ye(t,2))},An.min=function(n){return n&&n.length?xt(n,Tu,Kt):T},An.minBy=function(n,t){return n&&n.length?xt(n,ye(t,2),Kt):T},An.stubArray=Zu,An.stubFalse=qu,An.stubObject=function(){return{}},An.stubString=function(){ -return""},An.stubTrue=function(){return true},An.multiply=tc,An.nth=function(n,t){return n&&n.length?Qt(n,Au(t)):T},An.noConflict=function(){return Fn._===this&&(Fn._=li),this},An.noop=Nu,An.now=Ko,An.pad=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return!t||e>=t?n:(t=(t-e)/2,ne(Oi(t),r)+n+ne(Si(t),r))},An.padEnd=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Mi(),Ui(n+r*(t-n+Dn("1e-"+((r+"").length-1))),t)):ir(n,t)},An.reduce=function(n,t,r){var e=of(n)?l:j,u=3>arguments.length;return e(n,ye(t,4),r,u,eo)},An.reduceRight=function(n,t,r){var e=of(n)?s:j,u=3>arguments.length; +return""},An.stubTrue=function(){return true},An.multiply=tc,An.nth=function(n,t){return n&&n.length?Qt(n,Au(t)):T},An.noConflict=function(){return $n._===this&&($n._=li),this},An.noop=Nu,An.now=Ko,An.pad=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return!t||e>=t?n:(t=(t-e)/2,ne(Oi(t),r)+n+ne(Si(t),r))},An.padEnd=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Mi(),Ui(n+r*(t-n+Cn("1e-"+((r+"").length-1))),t)):ir(n,t)},An.reduce=function(n,t,r){var e=of(n)?l:j,u=3>arguments.length;return e(n,ye(t,4),r,u,eo)},An.reduceRight=function(n,t,r){var e=of(n)?s:j,u=3>arguments.length; return e(n,ye(t,4),r,u,uo)},An.repeat=function(n,t,r){return t=(r?Oe(n,t,r):t===T)?1:Au(t),or(Ou(n),t)},An.replace=function(){var n=arguments,t=Ou(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},An.result=function(n,t,r){t=Sr(t,n);var e=-1,u=t.length;for(u||(u=1,n=T);++en||9007199254740991n||9007199254740991=i)return n;if(i=r-D(e),1>i)return e;if(r=o?Or(o,0,i).join(""):n.slice(0,i),u===T)return r+e;if(o&&(i+=r.length-i),sf(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=Qu(u.source,Ou(_n.exec(u))+"g")), -u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===T?i:c)}}else n.indexOf(yr(u),i)!=i&&(u=r.lastIndexOf(u),-1e.__dir__?"Right":"")}),e},Un.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),r(["filter","map","takeWhile"],function(n,t){var r=t+1,e=1==r||3==r;Un.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({ iteratee:ye(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r(["head","last"],function(n,t){var r="take"+(t?"Right":"");Un.prototype[n]=function(){return this[r](1).value()[0]}}),r(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Un.prototype[n]=function(){return this.__filtered__?new Un(this):this[r](1)}}),Un.prototype.compact=function(){return this.filter(Tu)},Un.prototype.find=function(n){return this.filter(n).head()},Un.prototype.findLast=function(n){return this.reverse().find(n); },Un.prototype.invokeMap=fr(function(n,t){return typeof n=="function"?new Un(this):this.map(function(r){return Lt(r,n,t)})}),Un.prototype.reject=function(n){return this.filter(cu(ye(n)))},Un.prototype.slice=function(n,t){n=Au(n);var r=this;return r.__filtered__&&(0t)?new Un(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==T&&(t=Au(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Un.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Un.prototype.toArray=function(){return this.take(4294967295); @@ -132,6 +132,6 @@ iteratee:ye(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r(["head","last" func:Ye,args:[t],thisArg:T}),new On(o,h)):l&&c?n.apply(this,f):(o=this.thru(t),l?e?o.value()[0]:o.value():o)})}),r("pop push shift sort splice unshift".split(" "),function(n){var t=ti[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);An.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(of(u)?u:[],n)}return this[r](function(r){return t.apply(of(r)?r:[],n)})}}),mt(Un.prototype,function(n,t){var r=An[t];if(r){var e=r.name+""; (Ki[e]||(Ki[e]=[])).push({name:t,func:r})}}),Ki[Jr(T,2).name]=[{name:"wrapper",func:T}],Un.prototype.clone=function(){var n=new Un(this.__wrapped__);return n.__actions__=Ur(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Ur(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Ur(this.__views__),n},Un.prototype.reverse=function(){if(this.__filtered__){var n=new Un(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n; },Un.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=of(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c=this.__values__.length;return{done:n,value:n?T:this.__values__[this.__index__++]}},An.prototype.plant=function(n){for(var t,r=this;r instanceof kn;){ +u=-1,i=t[o];++u=this.__values__.length;return{done:n,value:n?T:this.__values__[this.__index__++]}},An.prototype.plant=function(n){for(var t,r=this;r instanceof En;){ var e=$e(r);e.__index__=0,e.__values__=T,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},An.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Un?(this.__actions__.length&&(n=new Un(this)),n=n.reverse(),n.__actions__.push({func:Ye,args:[Ke],thisArg:T}),new On(n,this.__chain__)):this.thru(Ke)},An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=function(){return wr(this.__wrapped__,this.__actions__)},An.prototype.first=An.prototype.head,ji&&(An.prototype[ji]=Qe), -An}();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Fn._=rt, define(function(){return rt})):Pn?((Pn.exports=rt)._=rt,Nn._=rt):Fn._=rt}).call(this); \ No newline at end of file +An}();typeof define=="function"&&typeof define.amd=="object"&&define.amd?($n._=rt, define(function(){return rt})):Nn?((Nn.exports=rt)._=rt,Fn._=rt):$n._=rt}).call(this); diff --git a/tools/node_modules/eslint/node_modules/lodash/package.json b/tools/node_modules/eslint/node_modules/lodash/package.json index 6521b731e1d987..22a1fa3dfc4be2 100644 --- a/tools/node_modules/eslint/node_modules/lodash/package.json +++ b/tools/node_modules/eslint/node_modules/lodash/package.json @@ -1,29 +1,29 @@ { - "_from": "lodash@^4.17.4", - "_id": "lodash@4.17.5", + "_from": "lodash@^4.17.5", + "_id": "lodash@4.17.10", "_inBundle": false, - "_integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "_integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "_location": "/eslint/lodash", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "lodash@^4.17.4", + "raw": "lodash@^4.17.5", "name": "lodash", "escapedName": "lodash", - "rawSpec": "^4.17.4", + "rawSpec": "^4.17.5", "saveSpec": null, - "fetchSpec": "^4.17.4" + "fetchSpec": "^4.17.5" }, "_requiredBy": [ "/eslint", "/eslint/inquirer", "/eslint/table" ], - "_resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "_shasum": "99a92d65c0272debe8c96b6057bc8fbfa3bed511", - "_spec": "lodash@^4.17.4", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "_shasum": "1b7793cf7259ea38fb3661d4d38b3260af8ae4e7", + "_spec": "lodash@^4.17.5", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "John-David Dalton", "email": "john.david.dalton@gmail.com", @@ -64,5 +64,5 @@ "scripts": { "test": "echo \"See https://travis-ci.org/lodash-archive/lodash-cli for testing details.\"" }, - "version": "4.17.5" + "version": "4.17.10" } diff --git a/tools/node_modules/eslint/node_modules/lru-cache/LICENSE b/tools/node_modules/eslint/node_modules/lru-cache/LICENSE deleted file mode 100644 index 19129e315fe593..00000000000000 --- a/tools/node_modules/eslint/node_modules/lru-cache/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/lru-cache/README.md b/tools/node_modules/eslint/node_modules/lru-cache/README.md deleted file mode 100644 index d660dd5747abec..00000000000000 --- a/tools/node_modules/eslint/node_modules/lru-cache/README.md +++ /dev/null @@ -1,158 +0,0 @@ -# lru cache - -A cache object that deletes the least-recently-used items. - -[![Build Status](https://travis-ci.org/isaacs/node-lru-cache.svg?branch=master)](https://travis-ci.org/isaacs/node-lru-cache) [![Coverage Status](https://coveralls.io/repos/isaacs/node-lru-cache/badge.svg?service=github)](https://coveralls.io/github/isaacs/node-lru-cache) - -## Installation: - -```javascript -npm install lru-cache --save -``` - -## Usage: - -```javascript -var LRU = require("lru-cache") - , options = { max: 500 - , length: function (n, key) { return n * 2 + key.length } - , dispose: function (key, n) { n.close() } - , maxAge: 1000 * 60 * 60 } - , cache = LRU(options) - , otherCache = LRU(50) // sets just the max size - -cache.set("key", "value") -cache.get("key") // "value" - -// non-string keys ARE fully supported -// but note that it must be THE SAME object, not -// just a JSON-equivalent object. -var someObject = { a: 1 } -cache.set(someObject, 'a value') -// Object keys are not toString()-ed -cache.set('[object Object]', 'a different value') -assert.equal(cache.get(someObject), 'a value') -// A similar object with same keys/values won't work, -// because it's a different object identity -assert.equal(cache.get({ a: 1 }), undefined) - -cache.reset() // empty the cache -``` - -If you put more stuff in it, then items will fall out. - -If you try to put an oversized thing in it, then it'll fall out right -away. - -## Options - -* `max` The maximum size of the cache, checked by applying the length - function to all values in the cache. Not setting this is kind of - silly, since that's the whole purpose of this lib, but it defaults - to `Infinity`. -* `maxAge` Maximum age in ms. Items are not pro-actively pruned out - as they age, but if you try to get an item that is too old, it'll - drop it and return undefined instead of giving it to you. -* `length` Function that is used to calculate the length of stored - items. If you're storing strings or buffers, then you probably want - to do something like `function(n, key){return n.length}`. The default is - `function(){return 1}`, which is fine if you want to store `max` - like-sized things. The item is passed as the first argument, and - the key is passed as the second argumnet. -* `dispose` Function that is called on items when they are dropped - from the cache. This can be handy if you want to close file - descriptors or do other cleanup tasks when items are no longer - accessible. Called with `key, value`. It's called *before* - actually removing the item from the internal cache, so if you want - to immediately put it back in, you'll have to do that in a - `nextTick` or `setTimeout` callback or it won't do anything. -* `stale` By default, if you set a `maxAge`, it'll only actually pull - stale items out of the cache when you `get(key)`. (That is, it's - not pre-emptively doing a `setTimeout` or anything.) If you set - `stale:true`, it'll return the stale value before deleting it. If - you don't set this, then it'll return `undefined` when you try to - get a stale entry, as if it had already been deleted. -* `noDisposeOnSet` By default, if you set a `dispose()` method, then - it'll be called whenever a `set()` operation overwrites an existing - key. If you set this option, `dispose()` will only be called when a - key falls out of the cache, not when it is overwritten. - -## API - -* `set(key, value, maxAge)` -* `get(key) => value` - - Both of these will update the "recently used"-ness of the key. - They do what you think. `maxAge` is optional and overrides the - cache `maxAge` option if provided. - - If the key is not found, `get()` will return `undefined`. - - The key and val can be any value. - -* `peek(key)` - - Returns the key value (or `undefined` if not found) without - updating the "recently used"-ness of the key. - - (If you find yourself using this a lot, you *might* be using the - wrong sort of data structure, but there are some use cases where - it's handy.) - -* `del(key)` - - Deletes a key out of the cache. - -* `reset()` - - Clear the cache entirely, throwing away all values. - -* `has(key)` - - Check if a key is in the cache, without updating the recent-ness - or deleting it for being stale. - -* `forEach(function(value,key,cache), [thisp])` - - Just like `Array.prototype.forEach`. Iterates over all the keys - in the cache, in order of recent-ness. (Ie, more recently used - items are iterated over first.) - -* `rforEach(function(value,key,cache), [thisp])` - - The same as `cache.forEach(...)` but items are iterated over in - reverse order. (ie, less recently used items are iterated over - first.) - -* `keys()` - - Return an array of the keys in the cache. - -* `values()` - - Return an array of the values in the cache. - -* `length` - - Return total length of objects in cache taking into account - `length` options function. - -* `itemCount` - - Return total quantity of objects currently in cache. Note, that - `stale` (see options) items are returned as part of this item - count. - -* `dump()` - - Return an array of the cache entries ready for serialization and usage - with 'destinationCache.load(arr)`. - -* `load(cacheEntriesArray)` - - Loads another cache entries array, obtained with `sourceCache.dump()`, - into the cache. The destination cache is reset before loading new entries - -* `prune()` - - Manually iterates over the entire cache proactively pruning old entries diff --git a/tools/node_modules/eslint/node_modules/lru-cache/index.js b/tools/node_modules/eslint/node_modules/lru-cache/index.js deleted file mode 100644 index 460462aadc9dd9..00000000000000 --- a/tools/node_modules/eslint/node_modules/lru-cache/index.js +++ /dev/null @@ -1,467 +0,0 @@ -'use strict' - -module.exports = LRUCache - -// This will be a proper iterable 'Map' in engines that support it, -// or a fakey-fake PseudoMap in older versions. -var Map = require('pseudomap') -var util = require('util') - -// A linked list to keep track of recently-used-ness -var Yallist = require('yallist') - -// use symbols if possible, otherwise just _props -var hasSymbol = typeof Symbol === 'function' -var makeSymbol -if (hasSymbol) { - makeSymbol = function (key) { - return Symbol.for(key) - } -} else { - makeSymbol = function (key) { - return '_' + key - } -} - -var MAX = makeSymbol('max') -var LENGTH = makeSymbol('length') -var LENGTH_CALCULATOR = makeSymbol('lengthCalculator') -var ALLOW_STALE = makeSymbol('allowStale') -var MAX_AGE = makeSymbol('maxAge') -var DISPOSE = makeSymbol('dispose') -var NO_DISPOSE_ON_SET = makeSymbol('noDisposeOnSet') -var LRU_LIST = makeSymbol('lruList') -var CACHE = makeSymbol('cache') - -function naiveLength () { return 1 } - -// lruList is a yallist where the head is the youngest -// item, and the tail is the oldest. the list contains the Hit -// objects as the entries. -// Each Hit object has a reference to its Yallist.Node. This -// never changes. -// -// cache is a Map (or PseudoMap) that matches the keys to -// the Yallist.Node object. -function LRUCache (options) { - if (!(this instanceof LRUCache)) { - return new LRUCache(options) - } - - if (typeof options === 'number') { - options = { max: options } - } - - if (!options) { - options = {} - } - - var max = this[MAX] = options.max - // Kind of weird to have a default max of Infinity, but oh well. - if (!max || - !(typeof max === 'number') || - max <= 0) { - this[MAX] = Infinity - } - - var lc = options.length || naiveLength - if (typeof lc !== 'function') { - lc = naiveLength - } - this[LENGTH_CALCULATOR] = lc - - this[ALLOW_STALE] = options.stale || false - this[MAX_AGE] = options.maxAge || 0 - this[DISPOSE] = options.dispose - this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false - this.reset() -} - -// resize the cache when the max changes. -Object.defineProperty(LRUCache.prototype, 'max', { - set: function (mL) { - if (!mL || !(typeof mL === 'number') || mL <= 0) { - mL = Infinity - } - this[MAX] = mL - trim(this) - }, - get: function () { - return this[MAX] - }, - enumerable: true -}) - -Object.defineProperty(LRUCache.prototype, 'allowStale', { - set: function (allowStale) { - this[ALLOW_STALE] = !!allowStale - }, - get: function () { - return this[ALLOW_STALE] - }, - enumerable: true -}) - -Object.defineProperty(LRUCache.prototype, 'maxAge', { - set: function (mA) { - if (!mA || !(typeof mA === 'number') || mA < 0) { - mA = 0 - } - this[MAX_AGE] = mA - trim(this) - }, - get: function () { - return this[MAX_AGE] - }, - enumerable: true -}) - -// resize the cache when the lengthCalculator changes. -Object.defineProperty(LRUCache.prototype, 'lengthCalculator', { - set: function (lC) { - if (typeof lC !== 'function') { - lC = naiveLength - } - if (lC !== this[LENGTH_CALCULATOR]) { - this[LENGTH_CALCULATOR] = lC - this[LENGTH] = 0 - this[LRU_LIST].forEach(function (hit) { - hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key) - this[LENGTH] += hit.length - }, this) - } - trim(this) - }, - get: function () { return this[LENGTH_CALCULATOR] }, - enumerable: true -}) - -Object.defineProperty(LRUCache.prototype, 'length', { - get: function () { return this[LENGTH] }, - enumerable: true -}) - -Object.defineProperty(LRUCache.prototype, 'itemCount', { - get: function () { return this[LRU_LIST].length }, - enumerable: true -}) - -LRUCache.prototype.rforEach = function (fn, thisp) { - thisp = thisp || this - for (var walker = this[LRU_LIST].tail; walker !== null;) { - var prev = walker.prev - forEachStep(this, fn, walker, thisp) - walker = prev - } -} - -function forEachStep (self, fn, node, thisp) { - var hit = node.value - if (isStale(self, hit)) { - del(self, node) - if (!self[ALLOW_STALE]) { - hit = undefined - } - } - if (hit) { - fn.call(thisp, hit.value, hit.key, self) - } -} - -LRUCache.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - for (var walker = this[LRU_LIST].head; walker !== null;) { - var next = walker.next - forEachStep(this, fn, walker, thisp) - walker = next - } -} - -LRUCache.prototype.keys = function () { - return this[LRU_LIST].toArray().map(function (k) { - return k.key - }, this) -} - -LRUCache.prototype.values = function () { - return this[LRU_LIST].toArray().map(function (k) { - return k.value - }, this) -} - -LRUCache.prototype.reset = function () { - if (this[DISPOSE] && - this[LRU_LIST] && - this[LRU_LIST].length) { - this[LRU_LIST].forEach(function (hit) { - this[DISPOSE](hit.key, hit.value) - }, this) - } - - this[CACHE] = new Map() // hash of items by key - this[LRU_LIST] = new Yallist() // list of items in order of use recency - this[LENGTH] = 0 // length of items in the list -} - -LRUCache.prototype.dump = function () { - return this[LRU_LIST].map(function (hit) { - if (!isStale(this, hit)) { - return { - k: hit.key, - v: hit.value, - e: hit.now + (hit.maxAge || 0) - } - } - }, this).toArray().filter(function (h) { - return h - }) -} - -LRUCache.prototype.dumpLru = function () { - return this[LRU_LIST] -} - -LRUCache.prototype.inspect = function (n, opts) { - var str = 'LRUCache {' - var extras = false - - var as = this[ALLOW_STALE] - if (as) { - str += '\n allowStale: true' - extras = true - } - - var max = this[MAX] - if (max && max !== Infinity) { - if (extras) { - str += ',' - } - str += '\n max: ' + util.inspect(max, opts) - extras = true - } - - var maxAge = this[MAX_AGE] - if (maxAge) { - if (extras) { - str += ',' - } - str += '\n maxAge: ' + util.inspect(maxAge, opts) - extras = true - } - - var lc = this[LENGTH_CALCULATOR] - if (lc && lc !== naiveLength) { - if (extras) { - str += ',' - } - str += '\n length: ' + util.inspect(this[LENGTH], opts) - extras = true - } - - var didFirst = false - this[LRU_LIST].forEach(function (item) { - if (didFirst) { - str += ',\n ' - } else { - if (extras) { - str += ',\n' - } - didFirst = true - str += '\n ' - } - var key = util.inspect(item.key).split('\n').join('\n ') - var val = { value: item.value } - if (item.maxAge !== maxAge) { - val.maxAge = item.maxAge - } - if (lc !== naiveLength) { - val.length = item.length - } - if (isStale(this, item)) { - val.stale = true - } - - val = util.inspect(val, opts).split('\n').join('\n ') - str += key + ' => ' + val - }) - - if (didFirst || extras) { - str += '\n' - } - str += '}' - - return str -} - -LRUCache.prototype.set = function (key, value, maxAge) { - maxAge = maxAge || this[MAX_AGE] - - var now = maxAge ? Date.now() : 0 - var len = this[LENGTH_CALCULATOR](value, key) - - if (this[CACHE].has(key)) { - if (len > this[MAX]) { - del(this, this[CACHE].get(key)) - return false - } - - var node = this[CACHE].get(key) - var item = node.value - - // dispose of the old one before overwriting - // split out into 2 ifs for better coverage tracking - if (this[DISPOSE]) { - if (!this[NO_DISPOSE_ON_SET]) { - this[DISPOSE](key, item.value) - } - } - - item.now = now - item.maxAge = maxAge - item.value = value - this[LENGTH] += len - item.length - item.length = len - this.get(key) - trim(this) - return true - } - - var hit = new Entry(key, value, len, now, maxAge) - - // oversized objects fall out of cache automatically. - if (hit.length > this[MAX]) { - if (this[DISPOSE]) { - this[DISPOSE](key, value) - } - return false - } - - this[LENGTH] += hit.length - this[LRU_LIST].unshift(hit) - this[CACHE].set(key, this[LRU_LIST].head) - trim(this) - return true -} - -LRUCache.prototype.has = function (key) { - if (!this[CACHE].has(key)) return false - var hit = this[CACHE].get(key).value - if (isStale(this, hit)) { - return false - } - return true -} - -LRUCache.prototype.get = function (key) { - return get(this, key, true) -} - -LRUCache.prototype.peek = function (key) { - return get(this, key, false) -} - -LRUCache.prototype.pop = function () { - var node = this[LRU_LIST].tail - if (!node) return null - del(this, node) - return node.value -} - -LRUCache.prototype.del = function (key) { - del(this, this[CACHE].get(key)) -} - -LRUCache.prototype.load = function (arr) { - // reset the cache - this.reset() - - var now = Date.now() - // A previous serialized cache has the most recent items first - for (var l = arr.length - 1; l >= 0; l--) { - var hit = arr[l] - var expiresAt = hit.e || 0 - if (expiresAt === 0) { - // the item was created without expiration in a non aged cache - this.set(hit.k, hit.v) - } else { - var maxAge = expiresAt - now - // dont add already expired items - if (maxAge > 0) { - this.set(hit.k, hit.v, maxAge) - } - } - } -} - -LRUCache.prototype.prune = function () { - var self = this - this[CACHE].forEach(function (value, key) { - get(self, key, false) - }) -} - -function get (self, key, doUse) { - var node = self[CACHE].get(key) - if (node) { - var hit = node.value - if (isStale(self, hit)) { - del(self, node) - if (!self[ALLOW_STALE]) hit = undefined - } else { - if (doUse) { - self[LRU_LIST].unshiftNode(node) - } - } - if (hit) hit = hit.value - } - return hit -} - -function isStale (self, hit) { - if (!hit || (!hit.maxAge && !self[MAX_AGE])) { - return false - } - var stale = false - var diff = Date.now() - hit.now - if (hit.maxAge) { - stale = diff > hit.maxAge - } else { - stale = self[MAX_AGE] && (diff > self[MAX_AGE]) - } - return stale -} - -function trim (self) { - if (self[LENGTH] > self[MAX]) { - for (var walker = self[LRU_LIST].tail; - self[LENGTH] > self[MAX] && walker !== null;) { - // We know that we're about to delete this one, and also - // what the next least recently used key will be, so just - // go ahead and set it now. - var prev = walker.prev - del(self, walker) - walker = prev - } - } -} - -function del (self, node) { - if (node) { - var hit = node.value - if (self[DISPOSE]) { - self[DISPOSE](hit.key, hit.value) - } - self[LENGTH] -= hit.length - self[CACHE].delete(hit.key) - self[LRU_LIST].removeNode(node) - } -} - -// classy, since V8 prefers predictable objects. -function Entry (key, value, length, now, maxAge) { - this.key = key - this.value = value - this.length = length - this.now = now - this.maxAge = maxAge || 0 -} diff --git a/tools/node_modules/eslint/node_modules/lru-cache/package.json b/tools/node_modules/eslint/node_modules/lru-cache/package.json deleted file mode 100644 index 9ab2a9ded06eb9..00000000000000 --- a/tools/node_modules/eslint/node_modules/lru-cache/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "_from": "lru-cache@^4.0.1", - "_id": "lru-cache@4.1.2", - "_inBundle": false, - "_integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", - "_location": "/eslint/lru-cache", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "lru-cache@^4.0.1", - "name": "lru-cache", - "escapedName": "lru-cache", - "rawSpec": "^4.0.1", - "saveSpec": null, - "fetchSpec": "^4.0.1" - }, - "_requiredBy": [ - "/eslint/cross-spawn" - ], - "_resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", - "_shasum": "45234b2e6e2f2b33da125624c4664929a0224c3f", - "_spec": "lru-cache@^4.0.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/cross-spawn", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me" - }, - "bugs": { - "url": "https://github.com/isaacs/node-lru-cache/issues" - }, - "bundleDependencies": false, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - }, - "deprecated": false, - "description": "A cache object that deletes the least-recently-used items.", - "devDependencies": { - "benchmark": "^2.1.4", - "standard": "^5.4.1", - "tap": "^10.3.3" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/isaacs/node-lru-cache#readme", - "keywords": [ - "mru", - "lru", - "cache" - ], - "license": "ISC", - "main": "index.js", - "name": "lru-cache", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-lru-cache.git" - }, - "scripts": { - "postpublish": "git push origin --all; git push origin --tags", - "posttest": "standard test/*.js index.js", - "postversion": "npm publish", - "preversion": "npm test", - "test": "tap test/*.js --100 -J" - }, - "version": "4.1.2" -} diff --git a/tools/node_modules/eslint/node_modules/markdown-escapes/index.js b/tools/node_modules/eslint/node_modules/markdown-escapes/index.js index 9e5b7739f9656a..6d40c44b9a823d 100644 --- a/tools/node_modules/eslint/node_modules/markdown-escapes/index.js +++ b/tools/node_modules/eslint/node_modules/markdown-escapes/index.js @@ -1,6 +1,6 @@ -'use strict'; +'use strict' -module.exports = escapes; +module.exports = escapes var defaults = [ '\\', @@ -19,9 +19,9 @@ var defaults = [ '!', '_', '>' -]; +] -var gfm = defaults.concat(['~', '|']); +var gfm = defaults.concat(['~', '|']) var commonmark = gfm.concat([ '\n', @@ -29,7 +29,7 @@ var commonmark = gfm.concat([ '$', '%', '&', - '\'', + "'", ',', '/', ':', @@ -39,19 +39,19 @@ var commonmark = gfm.concat([ '?', '@', '^' -]); +]) -escapes.default = defaults; -escapes.gfm = gfm; -escapes.commonmark = commonmark; +escapes.default = defaults +escapes.gfm = gfm +escapes.commonmark = commonmark /* Get markdown escapes. */ function escapes(options) { - var settings = options || {}; + var settings = options || {} if (settings.commonmark) { - return commonmark; + return commonmark } - return settings.gfm ? gfm : defaults; + return settings.gfm ? gfm : defaults } diff --git a/tools/node_modules/eslint/node_modules/markdown-escapes/package.json b/tools/node_modules/eslint/node_modules/markdown-escapes/package.json index 0b21321443f16d..798c162e8675c0 100644 --- a/tools/node_modules/eslint/node_modules/markdown-escapes/package.json +++ b/tools/node_modules/eslint/node_modules/markdown-escapes/package.json @@ -1,8 +1,8 @@ { "_from": "markdown-escapes@^1.0.0", - "_id": "markdown-escapes@1.0.1", + "_id": "markdown-escapes@1.0.2", "_inBundle": false, - "_integrity": "sha1-GZTfLTr0gR3lmmcUk0wrIpJzRRg=", + "_integrity": "sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA==", "_location": "/markdown-escapes", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/remark-parse" ], - "_resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.1.tgz", - "_shasum": "1994df2d3af4811de59a6714934c2b2292734518", + "_resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.2.tgz", + "_shasum": "e639cbde7b99c841c0bacc8a07982873b46d2122", "_spec": "markdown-escapes@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -42,13 +42,14 @@ "deprecated": false, "description": "List of escapable characters in markdown", "devDependencies": { - "browserify": "^14.1.0", + "browserify": "^16.0.0", "esmangle": "^1.0.1", "nyc": "^11.0.0", - "remark-cli": "^3.0.0", - "remark-preset-wooorm": "^3.0.0", + "prettier": "^1.12.0", + "remark-cli": "^5.0.0", + "remark-preset-wooorm": "^4.0.0", "tape": "^4.0.0", - "xo": "^0.18.0" + "xo": "^0.20.0" }, "files": [ "index.js" @@ -69,6 +70,14 @@ "functions": 100, "branches": 100 }, + "prettier": { + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "bracketSpacing": false, + "semi": false, + "trailingComma": "none" + }, "remarkConfig": { "plugins": [ "preset-wooorm" @@ -79,19 +88,22 @@ "url": "git+https://github.com/wooorm/markdown-escapes.git" }, "scripts": { - "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build": "npm run build-bundle && npm run build-mangle", "build-bundle": "browserify index.js --bare -s markdownEscapes > markdown-escapes.js", "build-mangle": "esmangle < markdown-escapes.js > markdown-escapes.min.js", - "build-md": "remark . -qfo", - "lint": "xo", - "test": "npm run build && npm run lint && npm run test-coverage", + "format": "remark . -qfo && prettier --write '**/*.js' && xo --fix", + "test": "npm run format && npm run build && npm run test-coverage", "test-api": "node test", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.0.1", + "version": "1.0.2", "xo": { - "space": true, + "prettier": true, "esnext": false, + "rules": { + "no-var": "off", + "prefer-arrow-callback": "off" + }, "ignores": [ "markdown-escapes.js" ] diff --git a/tools/node_modules/eslint/node_modules/mimic-fn/package.json b/tools/node_modules/eslint/node_modules/mimic-fn/package.json index 0f95bcd6a9c7a3..512b6c605f1358 100644 --- a/tools/node_modules/eslint/node_modules/mimic-fn/package.json +++ b/tools/node_modules/eslint/node_modules/mimic-fn/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "_shasum": "820c86a39334640e99516928bd03fca88057d022", "_spec": "mimic-fn@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/onetime", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/onetime", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/minimatch/package.json b/tools/node_modules/eslint/node_modules/minimatch/package.json index e871999019f0af..ce36ebe735befa 100644 --- a/tools/node_modules/eslint/node_modules/minimatch/package.json +++ b/tools/node_modules/eslint/node_modules/minimatch/package.json @@ -1,5 +1,5 @@ { - "_from": "minimatch@^3.0.2", + "_from": "minimatch@^3.0.4", "_id": "minimatch@3.0.4", "_inBundle": false, "_integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", @@ -8,12 +8,12 @@ "_requested": { "type": "range", "registry": true, - "raw": "minimatch@^3.0.2", + "raw": "minimatch@^3.0.4", "name": "minimatch", "escapedName": "minimatch", - "rawSpec": "^3.0.2", + "rawSpec": "^3.0.4", "saveSpec": null, - "fetchSpec": "^3.0.2" + "fetchSpec": "^3.0.4" }, "_requiredBy": [ "/eslint", @@ -21,8 +21,8 @@ ], "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "_shasum": "5166e286457f03306064be5497e8dbb0c3d32083", - "_spec": "minimatch@^3.0.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_spec": "minimatch@^3.0.4", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", diff --git a/tools/node_modules/eslint/node_modules/minimist/package.json b/tools/node_modules/eslint/node_modules/minimist/package.json index a1bf38ddc42d54..d412f12520d74d 100644 --- a/tools/node_modules/eslint/node_modules/minimist/package.json +++ b/tools/node_modules/eslint/node_modules/minimist/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", "_spec": "minimist@0.0.8", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/mkdirp", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/mkdirp", "author": { "name": "James Halliday", "email": "mail@substack.net", diff --git a/tools/node_modules/eslint/node_modules/mkdirp/package.json b/tools/node_modules/eslint/node_modules/mkdirp/package.json index ca1192db9835e9..77aa7d7a31e61b 100644 --- a/tools/node_modules/eslint/node_modules/mkdirp/package.json +++ b/tools/node_modules/eslint/node_modules/mkdirp/package.json @@ -22,7 +22,7 @@ "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "_shasum": "30057438eac6cf7f8c4767f38648d6697d75c903", "_spec": "mkdirp@^0.5.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "James Halliday", "email": "mail@substack.net", diff --git a/tools/node_modules/eslint/node_modules/ms/package.json b/tools/node_modules/eslint/node_modules/ms/package.json index b08e241033b89d..e9e6effb5e6d63 100644 --- a/tools/node_modules/eslint/node_modules/ms/package.json +++ b/tools/node_modules/eslint/node_modules/ms/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8", "_spec": "ms@2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/debug", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/debug", "bugs": { "url": "https://github.com/zeit/ms/issues" }, diff --git a/tools/node_modules/eslint/node_modules/mute-stream/package.json b/tools/node_modules/eslint/node_modules/mute-stream/package.json index dc348389a23f64..ce2ad65d5b95fc 100644 --- a/tools/node_modules/eslint/node_modules/mute-stream/package.json +++ b/tools/node_modules/eslint/node_modules/mute-stream/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "_shasum": "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab", "_spec": "mute-stream@0.0.7", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", diff --git a/tools/node_modules/eslint/node_modules/natural-compare/package.json b/tools/node_modules/eslint/node_modules/natural-compare/package.json index a7e80ac1b8aee6..c8161cc124bb28 100644 --- a/tools/node_modules/eslint/node_modules/natural-compare/package.json +++ b/tools/node_modules/eslint/node_modules/natural-compare/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "_shasum": "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7", "_spec": "natural-compare@^1.4.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Lauri Rooden", "url": "https://github.com/litejs/natural-compare-lite" diff --git a/tools/node_modules/eslint/node_modules/safe-buffer/LICENSE b/tools/node_modules/eslint/node_modules/nice-try/LICENSE similarity index 96% rename from tools/node_modules/eslint/node_modules/safe-buffer/LICENSE rename to tools/node_modules/eslint/node_modules/nice-try/LICENSE index 0c068ceecbd48f..ba5d1d5cdb9162 100644 --- a/tools/node_modules/eslint/node_modules/safe-buffer/LICENSE +++ b/tools/node_modules/eslint/node_modules/nice-try/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) Feross Aboukhadijeh +Copyright (c) 2017 Tobias Reich Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/tools/node_modules/eslint/node_modules/nice-try/README.md b/tools/node_modules/eslint/node_modules/nice-try/README.md new file mode 100644 index 00000000000000..7b1fb1bb70d519 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/nice-try/README.md @@ -0,0 +1,32 @@ +# nice-try + +[![Travis Build Status](https://travis-ci.org/electerious/nice-try.svg?branch=master)](https://travis-ci.org/electerious/nice-try) [![AppVeyor Status](https://ci.appveyor.com/api/projects/status/8tqb09wrwci3xf8l?svg=true)](https://ci.appveyor.com/project/electerious/nice-try) [![Coverage Status](https://coveralls.io/repos/github/electerious/nice-try/badge.svg?branch=master)](https://coveralls.io/github/electerious/nice-try?branch=master) [![Dependencies](https://david-dm.org/electerious/nice-try.svg)](https://david-dm.org/electerious/nice-try#info=dependencies) + +A function that tries to execute a function and discards any error that occurs. + +## Install + +``` +npm install nice-try +``` + +## Usage + +```js +const niceTry = require('nice-try') + +niceTry(() => JSON.parse('true')) // true +niceTry(() => JSON.parse('truee')) // undefined +niceTry() // undefined +niceTry(true) // undefined +``` + +## API + +### Parameters + +- `fn` `{Function}` Function that might or might not throw an error. + +### Returns + +- `{?*}` Return-value of the function when no error occurred. \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/nice-try/package.json b/tools/node_modules/eslint/node_modules/nice-try/package.json new file mode 100644 index 00000000000000..136fb1c30c895c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/nice-try/package.json @@ -0,0 +1,62 @@ +{ + "_from": "nice-try@^1.0.4", + "_id": "nice-try@1.0.4", + "_inBundle": false, + "_integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "_location": "/eslint/nice-try", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "nice-try@^1.0.4", + "name": "nice-try", + "escapedName": "nice-try", + "rawSpec": "^1.0.4", + "saveSpec": null, + "fetchSpec": "^1.0.4" + }, + "_requiredBy": [ + "/eslint/cross-spawn" + ], + "_resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "_shasum": "d93962f6c52f2c1558c0fbda6d512819f1efe1c4", + "_spec": "nice-try@^1.0.4", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/cross-spawn", + "authors": [ + "Tobias Reich " + ], + "bugs": { + "url": "https://github.com/electerious/nice-try/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Tries to execute a function and discards any error that occurs", + "devDependencies": { + "chai": "^4.1.1", + "coveralls": "^2.13.1", + "mocha": "^3.5.0", + "nyc": "^11.1.0" + }, + "files": [ + "src" + ], + "homepage": "https://github.com/electerious/nice-try", + "keywords": [ + "try", + "catch", + "error" + ], + "license": "MIT", + "main": "src/index.js", + "name": "nice-try", + "repository": { + "type": "git", + "url": "git+https://github.com/electerious/nice-try.git" + }, + "scripts": { + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "prepublish": "npm test", + "test": "nyc node_modules/mocha/bin/_mocha" + }, + "version": "1.0.4" +} diff --git a/tools/node_modules/eslint/node_modules/nice-try/src/index.js b/tools/node_modules/eslint/node_modules/nice-try/src/index.js new file mode 100644 index 00000000000000..8f4da684d9cbec --- /dev/null +++ b/tools/node_modules/eslint/node_modules/nice-try/src/index.js @@ -0,0 +1,13 @@ +'use strict' + +/** + * Tries to execute a function and discards any error that occurs. + * @param {Function} fn - Function that might or might not throw an error. + * @returns {?*} Return-value of the function when no error occurred. + */ +module.exports = function(fn) { + + try { return fn() } + catch (e) {} + +} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/object-assign/package.json b/tools/node_modules/eslint/node_modules/object-assign/package.json index 2abe4246f76bb8..9fba4ad917c6e2 100644 --- a/tools/node_modules/eslint/node_modules/object-assign/package.json +++ b/tools/node_modules/eslint/node_modules/object-assign/package.json @@ -23,7 +23,7 @@ "_resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "_shasum": "2109adc7965887cfc05cbbd442cac8bfbb360863", "_spec": "object-assign@^4.0.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/file-entry-cache", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/file-entry-cache", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/object-keys/LICENSE b/tools/node_modules/eslint/node_modules/object-keys/LICENSE new file mode 100644 index 00000000000000..28553fdd06841b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/object-keys/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (C) 2013 Jordan Harband + +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/tools/node_modules/eslint/node_modules/object-keys/README.md b/tools/node_modules/eslint/node_modules/object-keys/README.md new file mode 100644 index 00000000000000..ed4c277023a8a4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/object-keys/README.md @@ -0,0 +1,76 @@ +#object-keys [![Version Badge][npm-version-svg]][package-url] + +[![Build Status][travis-svg]][travis-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +[![browser support][testling-svg]][testling-url] + +An Object.keys shim. Invoke its "shim" method to shim Object.keys if it is unavailable. + +Most common usage: +```js +var keys = Object.keys || require('object-keys'); +``` + +## Example + +```js +var keys = require('object-keys'); +var assert = require('assert'); +var obj = { + a: true, + b: true, + c: true +}; + +assert.deepEqual(keys(obj), ['a', 'b', 'c']); +``` + +```js +var keys = require('object-keys'); +var assert = require('assert'); +/* when Object.keys is not present */ +delete Object.keys; +var shimmedKeys = keys.shim(); +assert.equal(shimmedKeys, keys); +assert.deepEqual(Object.keys(obj), keys(obj)); +``` + +```js +var keys = require('object-keys'); +var assert = require('assert'); +/* when Object.keys is present */ +var shimmedKeys = keys.shim(); +assert.equal(shimmedKeys, Object.keys); +assert.deepEqual(Object.keys(obj), keys(obj)); +``` + +## Source +Implementation taken directly from [es5-shim][es5-shim-url], with modifications, including from [lodash][lodash-url]. + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/object-keys +[npm-version-svg]: http://versionbadg.es/ljharb/object-keys.svg +[travis-svg]: https://travis-ci.org/ljharb/object-keys.svg +[travis-url]: https://travis-ci.org/ljharb/object-keys +[deps-svg]: https://david-dm.org/ljharb/object-keys.svg +[deps-url]: https://david-dm.org/ljharb/object-keys +[dev-deps-svg]: https://david-dm.org/ljharb/object-keys/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/object-keys#info=devDependencies +[testling-svg]: https://ci.testling.com/ljharb/object-keys.png +[testling-url]: https://ci.testling.com/ljharb/object-keys +[es5-shim-url]: https://github.com/es-shims/es5-shim/blob/master/es5-shim.js#L542-589 +[lodash-url]: https://github.com/lodash/lodash +[npm-badge-png]: https://nodei.co/npm/object-keys.png?downloads=true&stars=true +[license-image]: http://img.shields.io/npm/l/object-keys.svg +[license-url]: LICENSE +[downloads-image]: http://img.shields.io/npm/dm/object-keys.svg +[downloads-url]: http://npm-stat.com/charts.html?package=object-keys + diff --git a/tools/node_modules/eslint/node_modules/object-keys/index.js b/tools/node_modules/eslint/node_modules/object-keys/index.js new file mode 100644 index 00000000000000..3f2463eb8040c1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/object-keys/index.js @@ -0,0 +1,141 @@ +'use strict'; + +// modified from https://github.com/es-shims/es5-shim +var has = Object.prototype.hasOwnProperty; +var toStr = Object.prototype.toString; +var slice = Array.prototype.slice; +var isArgs = require('./isArguments'); +var isEnumerable = Object.prototype.propertyIsEnumerable; +var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString'); +var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype'); +var dontEnums = [ + 'toString', + 'toLocaleString', + 'valueOf', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'constructor' +]; +var equalsConstructorPrototype = function (o) { + var ctor = o.constructor; + return ctor && ctor.prototype === o; +}; +var excludedKeys = { + $applicationCache: true, + $console: true, + $external: true, + $frame: true, + $frameElement: true, + $frames: true, + $innerHeight: true, + $innerWidth: true, + $outerHeight: true, + $outerWidth: true, + $pageXOffset: true, + $pageYOffset: true, + $parent: true, + $scrollLeft: true, + $scrollTop: true, + $scrollX: true, + $scrollY: true, + $self: true, + $webkitIndexedDB: true, + $webkitStorageInfo: true, + $window: true +}; +var hasAutomationEqualityBug = (function () { + /* global window */ + if (typeof window === 'undefined') { return false; } + for (var k in window) { + try { + if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { + try { + equalsConstructorPrototype(window[k]); + } catch (e) { + return true; + } + } + } catch (e) { + return true; + } + } + return false; +}()); +var equalsConstructorPrototypeIfNotBuggy = function (o) { + /* global window */ + if (typeof window === 'undefined' || !hasAutomationEqualityBug) { + return equalsConstructorPrototype(o); + } + try { + return equalsConstructorPrototype(o); + } catch (e) { + return false; + } +}; + +var keysShim = function keys(object) { + var isObject = object !== null && typeof object === 'object'; + var isFunction = toStr.call(object) === '[object Function]'; + var isArguments = isArgs(object); + var isString = isObject && toStr.call(object) === '[object String]'; + var theKeys = []; + + if (!isObject && !isFunction && !isArguments) { + throw new TypeError('Object.keys called on a non-object'); + } + + var skipProto = hasProtoEnumBug && isFunction; + if (isString && object.length > 0 && !has.call(object, 0)) { + for (var i = 0; i < object.length; ++i) { + theKeys.push(String(i)); + } + } + + if (isArguments && object.length > 0) { + for (var j = 0; j < object.length; ++j) { + theKeys.push(String(j)); + } + } else { + for (var name in object) { + if (!(skipProto && name === 'prototype') && has.call(object, name)) { + theKeys.push(String(name)); + } + } + } + + if (hasDontEnumBug) { + var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); + + for (var k = 0; k < dontEnums.length; ++k) { + if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) { + theKeys.push(dontEnums[k]); + } + } + } + return theKeys; +}; + +keysShim.shim = function shimObjectKeys() { + if (Object.keys) { + var keysWorksWithArguments = (function () { + // Safari 5.0 bug + return (Object.keys(arguments) || '').length === 2; + }(1, 2)); + if (!keysWorksWithArguments) { + var originalKeys = Object.keys; + Object.keys = function keys(object) { // eslint-disable-line func-name-matching + if (isArgs(object)) { + return originalKeys(slice.call(object)); + } else { + return originalKeys(object); + } + }; + } + } else { + Object.keys = keysShim; + } + return Object.keys || keysShim; +}; + +module.exports = keysShim; diff --git a/tools/node_modules/eslint/node_modules/object-keys/isArguments.js b/tools/node_modules/eslint/node_modules/object-keys/isArguments.js new file mode 100644 index 00000000000000..f2a2a9014d925e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/object-keys/isArguments.js @@ -0,0 +1,17 @@ +'use strict'; + +var toStr = Object.prototype.toString; + +module.exports = function isArguments(value) { + var str = toStr.call(value); + var isArgs = str === '[object Arguments]'; + if (!isArgs) { + isArgs = str !== '[object Array]' && + value !== null && + typeof value === 'object' && + typeof value.length === 'number' && + value.length >= 0 && + toStr.call(value.callee) === '[object Function]'; + } + return isArgs; +}; diff --git a/tools/node_modules/eslint/node_modules/object-keys/package.json b/tools/node_modules/eslint/node_modules/object-keys/package.json new file mode 100644 index 00000000000000..c73e352b46c79f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/object-keys/package.json @@ -0,0 +1,119 @@ +{ + "_from": "object-keys@^1.0.8", + "_id": "object-keys@1.0.12", + "_inBundle": false, + "_integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "_location": "/eslint/object-keys", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "object-keys@^1.0.8", + "name": "object-keys", + "escapedName": "object-keys", + "rawSpec": "^1.0.8", + "saveSpec": null, + "fetchSpec": "^1.0.8" + }, + "_requiredBy": [ + "/eslint/define-properties" + ], + "_resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "_shasum": "09c53855377575310cca62f55bb334abff7b3ed2", + "_spec": "object-keys@^1.0.8", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/define-properties", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "bugs": { + "url": "https://github.com/ljharb/object-keys/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net" + }, + { + "name": "Ivan Starkov", + "email": "istarkov@gmail.com" + }, + { + "name": "Gary Katsevman", + "email": "git@gkatsev.com" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "An Object.keys replacement, in case Object.keys is not available. From https://github.com/es-shims/es5-shim", + "devDependencies": { + "@ljharb/eslint-config": "^12.2.1", + "covert": "^1.1.0", + "eslint": "^4.19.1", + "foreach": "^2.0.5", + "indexof": "^0.0.1", + "is": "^3.2.1", + "jscs": "^3.0.7", + "nsp": "^3.2.1", + "tape": "^4.9.1" + }, + "engines": { + "node": ">= 0.4" + }, + "homepage": "https://github.com/ljharb/object-keys#readme", + "keywords": [ + "Object.keys", + "keys", + "ES5", + "shim" + ], + "license": "MIT", + "main": "index.js", + "name": "object-keys", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/object-keys.git" + }, + "scripts": { + "coverage": "covert test/*.js", + "coverage-quiet": "covert test/*.js --quiet", + "eslint": "eslint test/*.js *.js", + "jscs": "jscs test/*.js *.js", + "lint": "npm run --silent jscs && npm run --silent eslint", + "posttest": "npm run --silent security", + "pretest": "npm run --silent lint", + "security": "nsp check", + "test": "npm run --silent tests-only", + "tests-only": "node test/index.js" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.0.12" +} diff --git a/tools/node_modules/eslint/node_modules/once/package.json b/tools/node_modules/eslint/node_modules/once/package.json index a6b79e6be72535..428ce10150dd63 100644 --- a/tools/node_modules/eslint/node_modules/once/package.json +++ b/tools/node_modules/eslint/node_modules/once/package.json @@ -22,7 +22,7 @@ "_resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "_shasum": "583b1aa775961d4b113ac17d9c50baef9dd76bd1", "_spec": "once@^1.3.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/glob", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/glob", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", diff --git a/tools/node_modules/eslint/node_modules/onetime/package.json b/tools/node_modules/eslint/node_modules/onetime/package.json index 4a96644cd7626a..457ba86be70122 100644 --- a/tools/node_modules/eslint/node_modules/onetime/package.json +++ b/tools/node_modules/eslint/node_modules/onetime/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "_shasum": "067428230fd67443b2794b22bba528b6867962d4", "_spec": "onetime@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/restore-cursor", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/restore-cursor", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/optionator/package.json b/tools/node_modules/eslint/node_modules/optionator/package.json index cbcd2da7df94cd..159d418643e1ec 100644 --- a/tools/node_modules/eslint/node_modules/optionator/package.json +++ b/tools/node_modules/eslint/node_modules/optionator/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "_shasum": "364c5e409d3f4d6301d6c0b4c05bba50180aeb64", "_spec": "optionator@^0.8.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "George Zahariev", "email": "z@georgezahariev.com" diff --git a/tools/node_modules/eslint/node_modules/os-tmpdir/package.json b/tools/node_modules/eslint/node_modules/os-tmpdir/package.json index a13621cc557edd..fbefd05c41f866 100644 --- a/tools/node_modules/eslint/node_modules/os-tmpdir/package.json +++ b/tools/node_modules/eslint/node_modules/os-tmpdir/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "_shasum": "bbe67406c79aa85c5cfec766fe5734555dfa1274", "_spec": "os-tmpdir@~1.0.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/tmp", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/tmp", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/parse-entities/index.js b/tools/node_modules/eslint/node_modules/parse-entities/index.js index f2c9e02a52d4bf..184a8889d1fab0 100644 --- a/tools/node_modules/eslint/node_modules/parse-entities/index.js +++ b/tools/node_modules/eslint/node_modules/parse-entities/index.js @@ -1,35 +1,17 @@ -'use strict'; - -/* Dependencies. */ -var characterEntities = require('character-entities'); -var legacy = require('character-entities-legacy'); -var invalid = require('character-reference-invalid'); -var decimal = require('is-decimal'); -var hexadecimal = require('is-hexadecimal'); -var alphanumerical = require('is-alphanumerical'); - -/* Expose. */ -module.exports = wrapper; - -/* Methods. */ -var own = {}.hasOwnProperty; -var fromCharCode = String.fromCharCode; -var noop = Function.prototype; - -/* Characters. */ -var REPLACEMENT = '\uFFFD'; -var FORM_FEED = '\f'; -var AMPERSAND = '&'; -var OCTOTHORP = '#'; -var SEMICOLON = ';'; -var NEWLINE = '\n'; -var X_LOWER = 'x'; -var X_UPPER = 'X'; -var SPACE = ' '; -var LESS_THAN = '<'; -var EQUAL = '='; -var EMPTY = ''; -var TAB = '\t'; +'use strict' + +var characterEntities = require('character-entities') +var legacy = require('character-entities-legacy') +var invalid = require('character-reference-invalid') +var decimal = require('is-decimal') +var hexadecimal = require('is-hexadecimal') +var alphanumerical = require('is-alphanumerical') + +module.exports = parseEntities + +var own = {}.hasOwnProperty +var fromCharCode = String.fromCharCode +var noop = Function.prototype /* Default settings. */ var defaults = { @@ -43,211 +25,210 @@ var defaults = { additional: null, attribute: false, nonTerminated: true -}; +} /* Reference types. */ -var NAMED = 'named'; -var HEXADECIMAL = 'hexadecimal'; -var DECIMAL = 'decimal'; +var NAMED = 'named' +var HEXADECIMAL = 'hexadecimal' +var DECIMAL = 'decimal' /* Map of bases. */ -var BASE = {}; +var BASE = {} -BASE[HEXADECIMAL] = 16; -BASE[DECIMAL] = 10; +BASE[HEXADECIMAL] = 16 +BASE[DECIMAL] = 10 /* Map of types to tests. Each type of character reference * accepts different characters. This test is used to * detect whether a reference has ended (as the semicolon * is not strictly needed). */ -var TESTS = {}; +var TESTS = {} -TESTS[NAMED] = alphanumerical; -TESTS[DECIMAL] = decimal; -TESTS[HEXADECIMAL] = hexadecimal; +TESTS[NAMED] = alphanumerical +TESTS[DECIMAL] = decimal +TESTS[HEXADECIMAL] = hexadecimal /* Warning messages. */ -var NAMED_NOT_TERMINATED = 1; -var NUMERIC_NOT_TERMINATED = 2; -var NAMED_EMPTY = 3; -var NUMERIC_EMPTY = 4; -var NAMED_UNKNOWN = 5; -var NUMERIC_DISALLOWED = 6; -var NUMERIC_PROHIBITED = 7; - -var NUMERIC_REFERENCE = 'Numeric character references'; -var NAMED_REFERENCE = 'Named character references'; -var TERMINATED = ' must be terminated by a semicolon'; -var VOID = ' cannot be empty'; - -var MESSAGES = {}; - -MESSAGES[NAMED_NOT_TERMINATED] = NAMED_REFERENCE + TERMINATED; -MESSAGES[NUMERIC_NOT_TERMINATED] = NUMERIC_REFERENCE + TERMINATED; -MESSAGES[NAMED_EMPTY] = NAMED_REFERENCE + VOID; -MESSAGES[NUMERIC_EMPTY] = NUMERIC_REFERENCE + VOID; -MESSAGES[NAMED_UNKNOWN] = NAMED_REFERENCE + ' must be known'; -MESSAGES[NUMERIC_DISALLOWED] = NUMERIC_REFERENCE + ' cannot be disallowed'; -MESSAGES[NUMERIC_PROHIBITED] = NUMERIC_REFERENCE + ' cannot be outside the ' + - 'permissible Unicode range'; +var NAMED_NOT_TERMINATED = 1 +var NUMERIC_NOT_TERMINATED = 2 +var NAMED_EMPTY = 3 +var NUMERIC_EMPTY = 4 +var NAMED_UNKNOWN = 5 +var NUMERIC_DISALLOWED = 6 +var NUMERIC_PROHIBITED = 7 + +var MESSAGES = {} + +MESSAGES[NAMED_NOT_TERMINATED] = + 'Named character references must be terminated by a semicolon' +MESSAGES[NUMERIC_NOT_TERMINATED] = + 'Numeric character references must be terminated by a semicolon' +MESSAGES[NAMED_EMPTY] = 'Named character references cannot be empty' +MESSAGES[NUMERIC_EMPTY] = 'Numeric character references cannot be empty' +MESSAGES[NAMED_UNKNOWN] = 'Named character references must be known' +MESSAGES[NUMERIC_DISALLOWED] = + 'Numeric character references cannot be disallowed' +MESSAGES[NUMERIC_PROHIBITED] = + 'Numeric character references cannot be outside the permissible Unicode range' /* Wrap to ensure clean parameters are given to `parse`. */ -function wrapper(value, options) { - var settings = {}; - var option; - var key; +function parseEntities(value, options) { + var settings = {} + var option + var key if (!options) { - options = {}; + options = {} } for (key in defaults) { - option = options[key]; - settings[key] = option === null || option === undefined ? defaults[key] : option; + option = options[key] + settings[key] = + option === null || option === undefined ? defaults[key] : option } if (settings.position.indent || settings.position.start) { - settings.indent = settings.position.indent || []; - settings.position = settings.position.start; + settings.indent = settings.position.indent || [] + settings.position = settings.position.start } - return parse(value, settings); + return parse(value, settings) } /* Parse entities. */ function parse(value, settings) { - var additional = settings.additional; - var nonTerminated = settings.nonTerminated; - var handleText = settings.text; - var handleReference = settings.reference; - var handleWarning = settings.warning; - var textContext = settings.textContext; - var referenceContext = settings.referenceContext; - var warningContext = settings.warningContext; - var pos = settings.position; - var indent = settings.indent || []; - var length = value.length; - var index = 0; - var lines = -1; - var column = pos.column || 1; - var line = pos.line || 1; - var queue = EMPTY; - var result = []; - var entityCharacters; - var terminated; - var characters; - var character; - var reference; - var following; - var warning; - var reason; - var output; - var entity; - var begin; - var start; - var type; - var test; - var prev; - var next; - var diff; - var end; + var additional = settings.additional + var nonTerminated = settings.nonTerminated + var handleText = settings.text + var handleReference = settings.reference + var handleWarning = settings.warning + var textContext = settings.textContext + var referenceContext = settings.referenceContext + var warningContext = settings.warningContext + var pos = settings.position + var indent = settings.indent || [] + var length = value.length + var index = 0 + var lines = -1 + var column = pos.column || 1 + var line = pos.line || 1 + var queue = '' + var result = [] + var entityCharacters + var terminated + var characters + var character + var reference + var following + var warning + var reason + var output + var entity + var begin + var start + var type + var test + var prev + var next + var diff + var end /* Cache the current point. */ - prev = now(); + prev = now() /* Wrap `handleWarning`. */ - warning = handleWarning ? parseError : noop; + warning = handleWarning ? parseError : noop /* Ensure the algorithm walks over the first character * and the end (inclusive). */ - index--; - length++; + index-- + length++ while (++index < length) { /* If the previous character was a newline. */ - if (character === NEWLINE) { - column = indent[lines] || 1; + if (character === '\n') { + column = indent[lines] || 1 } - character = at(index); + character = at(index) /* Handle anything other than an ampersand, * including newlines and EOF. */ - if (character !== AMPERSAND) { - if (character === NEWLINE) { - line++; - lines++; - column = 0; + if (character !== '&') { + if (character === '\n') { + line++ + lines++ + column = 0 } if (character) { - queue += character; - column++; + queue += character + column++ } else { - flush(); + flush() } } else { - following = at(index + 1); + following = at(index + 1) /* The behaviour depends on the identity of the next * character. */ if ( - following === TAB || - following === NEWLINE || - following === FORM_FEED || - following === SPACE || - following === LESS_THAN || - following === AMPERSAND || - following === EMPTY || + following === '\t' /* Tab */ || + following === '\n' /* Newline */ || + following === '\f' /* Form feed */ || + following === ' ' /* Space */ || + following === '<' /* Less-than */ || + following === '&' /* Ampersand */ || + following === '' || (additional && following === additional) ) { /* Not a character reference. No characters * are consumed, and nothing is returned. * This is not an error, either. */ - queue += character; - column++; + queue += character + column++ - continue; + continue } - start = index + 1; - begin = start; - end = start; + start = index + 1 + begin = start + end = start /* Numerical entity. */ - if (following !== OCTOTHORP) { - type = NAMED; + if (following !== '#') { + type = NAMED } else { - end = ++begin; + end = ++begin /* The behaviour further depends on the * character after the U+0023 NUMBER SIGN. */ - following = at(end); + following = at(end) - if (following === X_LOWER || following === X_UPPER) { + if (following === 'x' || following === 'X') { /* ASCII hex digits. */ - type = HEXADECIMAL; - end = ++begin; + type = HEXADECIMAL + end = ++begin } else { /* ASCII digits. */ - type = DECIMAL; + type = DECIMAL } } - entityCharacters = EMPTY; - entity = EMPTY; - characters = EMPTY; - test = TESTS[type]; - end--; + entityCharacters = '' + entity = '' + characters = '' + test = TESTS[type] + end-- while (++end < length) { - following = at(end); + following = at(end) if (!test(following)) { - break; + break } - characters += following; + characters += following /* Check if we can match a legacy named * reference. If so, we cache that as the @@ -255,23 +236,23 @@ function parse(value, settings) { * ensures we do not need to walk backwards * later. */ if (type === NAMED && own.call(legacy, characters)) { - entityCharacters = characters; - entity = legacy[characters]; + entityCharacters = characters + entity = legacy[characters] } } - terminated = at(end) === SEMICOLON; + terminated = at(end) === ';' if (terminated) { - end++; + end++ if (type === NAMED && own.call(characterEntities, characters)) { - entityCharacters = characters; - entity = characterEntities[characters]; + entityCharacters = characters + entity = characterEntities[characters] } } - diff = 1 + end - start; + diff = 1 + end - start if (!terminated && !nonTerminated) { /* Empty. */ @@ -280,91 +261,87 @@ function parse(value, settings) { * its numeric (thus an ampersand followed by * an octothorp). */ if (type !== NAMED) { - warning(NUMERIC_EMPTY, diff); + warning(NUMERIC_EMPTY, diff) } } else if (type === NAMED) { /* An ampersand followed by anything * unknown, and not terminated, is invalid. */ if (terminated && !entity) { - warning(NAMED_UNKNOWN, 1); + warning(NAMED_UNKNOWN, 1) } else { /* If theres something after an entity * name which is not known, cap the * reference. */ if (entityCharacters !== characters) { - end = begin + entityCharacters.length; - diff = 1 + end - begin; - terminated = false; + end = begin + entityCharacters.length + diff = 1 + end - begin + terminated = false } /* If the reference is not terminated, * warn. */ if (!terminated) { - reason = entityCharacters ? - NAMED_NOT_TERMINATED : - NAMED_EMPTY; + reason = entityCharacters ? NAMED_NOT_TERMINATED : NAMED_EMPTY if (!settings.attribute) { - warning(reason, diff); + warning(reason, diff) } else { - following = at(end); + following = at(end) - if (following === EQUAL) { - warning(reason, diff); - entity = null; + if (following === '=') { + warning(reason, diff) + entity = null } else if (alphanumerical(following)) { - entity = null; + entity = null } else { - warning(reason, diff); + warning(reason, diff) } } } } - reference = entity; + reference = entity } else { if (!terminated) { /* All non-terminated numeric entities are * not rendered, and trigger a warning. */ - warning(NUMERIC_NOT_TERMINATED, diff); + warning(NUMERIC_NOT_TERMINATED, diff) } /* When terminated and number, parse as * either hexadecimal or decimal. */ - reference = parseInt(characters, BASE[type]); + reference = parseInt(characters, BASE[type]) /* Trigger a warning when the parsed number * is prohibited, and replace with * replacement character. */ - if (isProhibited(reference)) { - warning(NUMERIC_PROHIBITED, diff); - - reference = REPLACEMENT; + if (prohibited(reference)) { + warning(NUMERIC_PROHIBITED, diff) + reference = '\uFFFD' } else if (reference in invalid) { /* Trigger a warning when the parsed number * is disallowed, and replace by an * alternative. */ - warning(NUMERIC_DISALLOWED, diff); - - reference = invalid[reference]; + warning(NUMERIC_DISALLOWED, diff) + reference = invalid[reference] } else { /* Parse the number. */ - output = EMPTY; + output = '' /* Trigger a warning when the parsed * number should not be used. */ - if (isWarning(reference)) { - warning(NUMERIC_DISALLOWED, diff); + if (disallowed(reference)) { + warning(NUMERIC_DISALLOWED, diff) } /* Stringify the number. */ - if (reference > 0xFFFF) { - reference -= 0x10000; - output += fromCharCode((reference >>> (10 & 0x3FF)) | 0xD800); - reference = 0xDC00 | (reference & 0x3FF); + if (reference > 0xffff) { + reference -= 0x10000 + output += fromCharCode((reference >>> (10 & 0x3ff)) | 0xd800) + reference = 0xdc00 | (reference & 0x3ff) } - reference = output + fromCharCode(reference); + reference = output + fromCharCode(reference) } } @@ -374,37 +351,39 @@ function parse(value, settings) { * possible because we can be certain neither * newlines nor ampersands are included. */ if (!reference) { - characters = value.slice(start - 1, end); - queue += characters; - column += characters.length; - index = end - 1; + characters = value.slice(start - 1, end) + queue += characters + column += characters.length + index = end - 1 } else { /* Found it! First eat the queued * characters as normal text, then eat * an entity. */ - flush(); + flush() - prev = now(); - index = end - 1; - column += end - start + 1; - result.push(reference); - next = now(); - next.offset++; + prev = now() + index = end - 1 + column += end - start + 1 + result.push(reference) + next = now() + next.offset++ if (handleReference) { - handleReference.call(referenceContext, reference, { - start: prev, - end: next - }, value.slice(start - 1, end)); + handleReference.call( + referenceContext, + reference, + {start: prev, end: next}, + value.slice(start - 1, end) + ) } - prev = next; + prev = next } } } /* Return the reduced nodes, and any possible warnings. */ - return result.join(EMPTY); + return result.join('') /* Get current position. */ function now() { @@ -412,22 +391,22 @@ function parse(value, settings) { line: line, column: column, offset: index + (pos.offset || 0) - }; + } } /* “Throw” a parse-error: a warning. */ function parseError(code, offset) { - var position = now(); + var position = now() - position.column += offset; - position.offset += offset; + position.column += offset + position.offset += offset - handleWarning.call(warningContext, MESSAGES[code], position, code); + handleWarning.call(warningContext, MESSAGES[code], position, code) } /* Get character at position. */ function at(position) { - return value.charAt(position); + return value.charAt(position) } /* Flush `queue` (normal text). Macro invoked before @@ -435,39 +414,31 @@ function parse(value, settings) { * Does nothing when `queue` is empty. */ function flush() { if (queue) { - result.push(queue); + result.push(queue) if (handleText) { - handleText.call(textContext, queue, { - start: prev, - end: now() - }); + handleText.call(textContext, queue, {start: prev, end: now()}) } - queue = EMPTY; + queue = '' } } } -/* Check if `character` is outside the permissible - * unicode range. */ -function isProhibited(code) { - return (code >= 0xD800 && code <= 0xDFFF) || (code > 0x10FFFF); +/* Check if `character` is outside the permissible unicode range. */ +function prohibited(code) { + return (code >= 0xd800 && code <= 0xdfff) || code > 0x10ffff } /* Check if `character` is disallowed. */ -function isWarning(code) { - if ( +function disallowed(code) { + return ( (code >= 0x0001 && code <= 0x0008) || - code === 0x000B || - (code >= 0x000D && code <= 0x001F) || - (code >= 0x007F && code <= 0x009F) || - (code >= 0xFDD0 && code <= 0xFDEF) || - (code & 0xFFFF) === 0xFFFF || - (code & 0xFFFF) === 0xFFFE - ) { - return true; - } - - return false; + code === 0x000b || + (code >= 0x000d && code <= 0x001f) || + (code >= 0x007f && code <= 0x009f) || + (code >= 0xfdd0 && code <= 0xfdef) || + (code & 0xffff) === 0xffff || + (code & 0xffff) === 0xfffe + ) } diff --git a/tools/node_modules/eslint/node_modules/parse-entities/package.json b/tools/node_modules/eslint/node_modules/parse-entities/package.json index 552729206f98ee..8c8aa95ba326a8 100644 --- a/tools/node_modules/eslint/node_modules/parse-entities/package.json +++ b/tools/node_modules/eslint/node_modules/parse-entities/package.json @@ -1,8 +1,8 @@ { "_from": "parse-entities@^1.0.2", - "_id": "parse-entities@1.1.1", + "_id": "parse-entities@1.1.2", "_inBundle": false, - "_integrity": "sha1-gRLYhHExnyerrk1klksSL+ThuJA=", + "_integrity": "sha512-5N9lmQ7tmxfXf+hO3X6KRG6w7uYO/HL9fHalSySTdyn63C3WNvTM/1R8tn1u1larNcEbo3Slcy2bsVDQqvEpUg==", "_location": "/parse-entities", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/remark-parse" ], - "_resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.1.tgz", - "_shasum": "8112d88471319f27abae4d64964b122fe4e1b890", + "_resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.2.tgz", + "_shasum": "9eaf719b29dc3bd62246b4332009072e01527777", "_spec": "parse-entities@^1.0.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -49,13 +49,14 @@ "deprecated": false, "description": "Parse HTML character references: fast, spec-compliant, positional information", "devDependencies": { - "browserify": "^14.0.0", + "browserify": "^16.0.0", "esmangle": "^1.0.0", "nyc": "^11.0.0", - "remark-cli": "^3.0.0", - "remark-preset-wooorm": "^3.0.0", + "prettier": "^1.12.1", + "remark-cli": "^5.0.0", + "remark-preset-wooorm": "^4.0.0", "tape": "^4.2.0", - "xo": "^0.18.0" + "xo": "^0.20.0" }, "files": [ "index.js" @@ -77,6 +78,14 @@ "functions": 100, "branches": 100 }, + "prettier": { + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "bracketSpacing": false, + "semi": false, + "trailingComma": "none" + }, "remarkConfig": { "plugins": [ "preset-wooorm" @@ -87,20 +96,23 @@ "url": "git+https://github.com/wooorm/parse-entities.git" }, "scripts": { - "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build": "npm run build-bundle && npm run build-mangle", "build-bundle": "browserify index.js --bare -s parseEntities > parse-entities.js", "build-mangle": "esmangle parse-entities.js > parse-entities.min.js", - "build-md": "remark . -qfo", - "lint": "xo", - "test": "npm run build && npm run lint && npm run test-coverage", - "test-api": "node test.js", + "format": "remark . -qfo && prettier --write '**/*.js' && xo --fix", + "test": "npm run format && npm run build && npm run test-coverage", + "test-api": "node test", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.1.1", + "version": "1.1.2", "xo": { - "space": true, + "prettier": true, "esnext": false, "rules": { + "unicorn/number-literal-case": "off", + "object-shorthand": "off", + "no-var": "off", + "prefer-arrow-callback": "off", "guard-for-in": "off", "no-negated-condition": "off", "max-depth": "off", diff --git a/tools/node_modules/eslint/node_modules/parse-entities/readme.md b/tools/node_modules/eslint/node_modules/parse-entities/readme.md index 9361031183df9b..a96aa4d0fa2037 100644 --- a/tools/node_modules/eslint/node_modules/parse-entities/readme.md +++ b/tools/node_modules/eslint/node_modules/parse-entities/readme.md @@ -14,61 +14,77 @@ npm install parse-entities ## Usage ```js -var decode = require('parse-entities'); +var decode = require('parse-entities') -decode('alpha & bravo'); -//=> alpha & bravo +decode('alpha & bravo') +// => alpha & bravo -decode('charlie ©cat; delta'); -//=> charlie ©cat; delta +decode('charlie ©cat; delta') +// => charlie ©cat; delta -decode('echo © foxtrot ≠ golf 𝌆 hotel'); -//=> echo © foxtrot ≠ golf 𝌆 hotel +decode('echo © foxtrot ≠ golf 𝌆 hotel') +// => echo © foxtrot ≠ golf 𝌆 hotel ``` ## API ## `parseEntities(value[, options])` -###### `options` - -* `additional` (`string`, optional, default: `''`) - — Additional character to accept when following an ampersand (without - error) -* `attribute` (`boolean`, optional, default: `false`) - — Whether to parse `value` as an attribute value -* `nonTerminated` (`boolean`, default: `true`) - — Whether to allow non-terminated entities, such as `©cat` to - `©cat`. This behaviour is spec-compliant but can lead to unexpected - results -* `warning` ([`Function`][warning], optional) - — Error handler -* `text` ([`Function`][text], optional) - — Text handler -* `reference` ([`Function`][reference], - optional) — Reference handler -* `warningContext` (`'*'`, optional) - — Context used when invoking `warning` -* `textContext` (`'*'`, optional) - — Context used when invoking `text` -* `referenceContext` (`'*'`, optional) - — Context used when invoking `reference` -* `position` (`Location` or `Position`, optional) - — Starting `position` of `value`, useful when dealing with values - nested in some sort of syntax tree. The default is: - - ```json - { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "indent": [] - } - ``` - -###### Returns +##### `options` + +###### `options.additional` + +Additional character to accept (`string?`, default: `''`). +This allows other characters, without error, when following an ampersand. + +###### `options.attribute` + +Whether to parse `value` as an attribute value (`boolean?`, default: +`false`). + +###### `options.nonTerminated` + +Whether to allow non-terminated entities (`boolean`, default: `true`). +For example, `©cat` for `©cat`. This behaviour is spec-compliant but +can lead to unexpected results. + +###### `options.warning` + +Error handler ([`Function?`][warning]). + +###### `options.text` + +Text handler ([`Function?`][text]). + +###### `options.reference` + +Reference handler ([`Function?`][reference]). + +###### `options.warningContext` + +Context used when invoking `warning` (`'*'`, optional). + +###### `options.textContext` + +Context used when invoking `text` (`'*'`, optional). + +###### `options.referenceContext` + +Context used when invoking `reference` (`'*'`, optional) + +###### `options.position` + +Starting `position` of `value` (`Location` or `Position`, optional). Useful +when dealing with values nested in some sort of syntax tree. The default is: + +```js +{ + start: {line: 1, column: 1, offset: 0}, + indent: [] +} +``` + +##### Returns `string` — Decoded `value`. @@ -76,18 +92,23 @@ decode('echo © foxtrot ≠ golf 𝌆 hotel'); Error handler. -###### Context +##### Context `this` refers to `warningContext` when given to `parseEntities`. -###### Parameters +##### Parameters + +###### `reason` -* `reason` (`string`) - — Reason (human-readable) for triggering a parse error -* `position` (`Position`) - — Place at which the parse error occurred -* `code` (`number`) - — Identifier of reason for triggering a parse error +Human-readable reason for triggering a parse error (`string`). + +###### `position` + +Place at which the parse error occurred (`Position`). + +###### `code` + +Identifier of reason for triggering a parse error (`number`). The following codes are used: @@ -101,32 +122,58 @@ The following codes are used: | `6` | `Foo € baz` | [Disallowed reference][invalid] | | `7` | `Foo � baz` | Prohibited: outside permissible unicode range | -###### `function text(value, location)` +### `function text(value, location)` Text handler. -###### Context +##### Context `this` refers to `textContext` when given to `parseEntities`. -###### Parameters +##### Parameters + +###### `value` -* `value` (`string`) — String of content -* `location` (`Location`) — Location at which `value` starts and ends +String of content (`string`). + +###### `location` + +Location at which `value` starts and ends (`Location`). ### `function reference(value, location, source)` Character reference handler. -###### Context +##### Context `this` refers to `referenceContext` when given to `parseEntities`. -###### Parameters +##### Parameters + +###### `value` + +Encoded character reference (`string`). + +###### `location` + +Location at which `value` starts and ends (`Location`). + +###### `source` + +Source of character reference (`Location`). + +## Related -* `value` (`string`) — Encoded character reference -* `location` (`Location`) — Location at which `value` starts and ends -* `source` (`Location`) — Source of character reference +* [`stringify-entities`](https://github.com/wooorm/stringify-entities) + — Encode HTML character references +* [`character-entities`](https://github.com/wooorm/character-entities) + — Info on character entities +* [`character-entities-html4`](https://github.com/wooorm/character-entities-html4) + — Info on HTML4 character entities +* [`character-entities-legacy`](https://github.com/wooorm/character-entities-legacy) + — Info on legacy character entities +* [`character-reference-invalid`](https://github.com/wooorm/character-reference-invalid) + — Info on invalid numeric character references ## License diff --git a/tools/node_modules/eslint/node_modules/path-is-absolute/package.json b/tools/node_modules/eslint/node_modules/path-is-absolute/package.json index b9cd25392477c4..082df96305c9a0 100644 --- a/tools/node_modules/eslint/node_modules/path-is-absolute/package.json +++ b/tools/node_modules/eslint/node_modules/path-is-absolute/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "_shasum": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", "_spec": "path-is-absolute@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/glob", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/glob", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/path-is-inside/package.json b/tools/node_modules/eslint/node_modules/path-is-inside/package.json index ac720df1cf518f..0ab505bc2b5b41 100644 --- a/tools/node_modules/eslint/node_modules/path-is-inside/package.json +++ b/tools/node_modules/eslint/node_modules/path-is-inside/package.json @@ -22,7 +22,7 @@ "_resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "_shasum": "365417dede44430d1c11af61027facf074bdfc53", "_spec": "path-is-inside@^1.0.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Domenic Denicola", "email": "d@domenic.me", diff --git a/tools/node_modules/eslint/node_modules/path-key/index.js b/tools/node_modules/eslint/node_modules/path-key/index.js new file mode 100644 index 00000000000000..62c8250ab4e3ed --- /dev/null +++ b/tools/node_modules/eslint/node_modules/path-key/index.js @@ -0,0 +1,13 @@ +'use strict'; +module.exports = opts => { + opts = opts || {}; + + const env = opts.env || process.env; + const platform = opts.platform || process.platform; + + if (platform !== 'win32') { + return 'PATH'; + } + + return Object.keys(env).find(x => x.toUpperCase() === 'PATH') || 'Path'; +}; diff --git a/tools/node_modules/eslint/node_modules/path-key/license b/tools/node_modules/eslint/node_modules/path-key/license new file mode 100644 index 00000000000000..654d0bfe943437 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/path-key/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/path-key/package.json b/tools/node_modules/eslint/node_modules/path-key/package.json new file mode 100644 index 00000000000000..b7c5d4ec1493a6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/path-key/package.json @@ -0,0 +1,71 @@ +{ + "_from": "path-key@^2.0.1", + "_id": "path-key@2.0.1", + "_inBundle": false, + "_integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "_location": "/eslint/path-key", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "path-key@^2.0.1", + "name": "path-key", + "escapedName": "path-key", + "rawSpec": "^2.0.1", + "saveSpec": null, + "fetchSpec": "^2.0.1" + }, + "_requiredBy": [ + "/eslint/cross-spawn" + ], + "_resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "_shasum": "411cadb574c5a140d3a4b1910d40d80cc9f40b40", + "_spec": "path-key@^2.0.1", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/cross-spawn", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/path-key/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Get the PATH environment variable key cross-platform", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/path-key#readme", + "keywords": [ + "path", + "key", + "environment", + "env", + "variable", + "var", + "get", + "cross-platform", + "windows" + ], + "license": "MIT", + "name": "path-key", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/path-key.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.1", + "xo": { + "esnext": true + } +} diff --git a/tools/node_modules/eslint/node_modules/path-key/readme.md b/tools/node_modules/eslint/node_modules/path-key/readme.md new file mode 100644 index 00000000000000..cb5710aace72d2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/path-key/readme.md @@ -0,0 +1,51 @@ +# path-key [![Build Status](https://travis-ci.org/sindresorhus/path-key.svg?branch=master)](https://travis-ci.org/sindresorhus/path-key) + +> Get the [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) environment variable key cross-platform + +It's usually `PATH`, but on Windows it can be any casing like `Path`... + + +## Install + +``` +$ npm install --save path-key +``` + + +## Usage + +```js +const pathKey = require('path-key'); + +const key = pathKey(); +//=> 'PATH' + +const PATH = process.env[key]; +//=> '/usr/local/bin:/usr/bin:/bin' +``` + + +## API + +### pathKey([options]) + +#### options + +##### env + +Type: `Object`
+Default: [`process.env`](https://nodejs.org/api/process.html#process_process_env) + +Use a custom environment variables object. + +#### platform + +Type: `string`
+Default: [`process.platform`](https://nodejs.org/api/process.html#process_process_platform) + +Get the PATH key for a specific platform. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/tools/node_modules/eslint/node_modules/pify/package.json b/tools/node_modules/eslint/node_modules/pify/package.json index c21ccdb2513c85..4c09f9fb240b22 100644 --- a/tools/node_modules/eslint/node_modules/pify/package.json +++ b/tools/node_modules/eslint/node_modules/pify/package.json @@ -22,7 +22,7 @@ "_resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "_shasum": "ed141a6ac043a849ea588498e7dca8b15330e90c", "_spec": "pify@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/del", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/del", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/pinkie-promise/package.json b/tools/node_modules/eslint/node_modules/pinkie-promise/package.json index 155ac88d3d3b64..808b2fd8fce27e 100644 --- a/tools/node_modules/eslint/node_modules/pinkie-promise/package.json +++ b/tools/node_modules/eslint/node_modules/pinkie-promise/package.json @@ -22,7 +22,7 @@ "_resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "_shasum": "2135d6dfa7a358c069ac9b178776288228450ffa", "_spec": "pinkie-promise@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/del", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/del", "author": { "name": "Vsevolod Strukchinsky", "email": "floatdrop@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/pinkie/package.json b/tools/node_modules/eslint/node_modules/pinkie/package.json index 86012bddd07a2e..292eca6ad2abc2 100644 --- a/tools/node_modules/eslint/node_modules/pinkie/package.json +++ b/tools/node_modules/eslint/node_modules/pinkie/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "_shasum": "72556b80cfa0d48a974e80e77248e80ed4f7f870", "_spec": "pinkie@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/pinkie-promise", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/pinkie-promise", "author": { "name": "Vsevolod Strukchinsky", "email": "floatdrop@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/pluralize/package.json b/tools/node_modules/eslint/node_modules/pluralize/package.json index 10157b7f4fafba..c2d7496839f4cd 100644 --- a/tools/node_modules/eslint/node_modules/pluralize/package.json +++ b/tools/node_modules/eslint/node_modules/pluralize/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", "_shasum": "298b89df8b93b0221dbf421ad2b1b1ea23fc6777", "_spec": "pluralize@^7.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Blake Embrey", "email": "hello@blakeembrey.com", diff --git a/tools/node_modules/eslint/node_modules/prelude-ls/package.json b/tools/node_modules/eslint/node_modules/prelude-ls/package.json index e8c9005cf60875..f17577dc683c33 100644 --- a/tools/node_modules/eslint/node_modules/prelude-ls/package.json +++ b/tools/node_modules/eslint/node_modules/prelude-ls/package.json @@ -23,7 +23,7 @@ "_resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "_shasum": "21932a549f5e52ffd9a827f570e04be62a97da54", "_spec": "prelude-ls@~1.1.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/levn", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/levn", "author": { "name": "George Zahariev", "email": "z@georgezahariev.com" diff --git a/tools/node_modules/eslint/node_modules/process-nextick-args/index.js b/tools/node_modules/eslint/node_modules/process-nextick-args/index.js deleted file mode 100644 index ce045c6560a728..00000000000000 --- a/tools/node_modules/eslint/node_modules/process-nextick-args/index.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = { nextTick: nextTick }; -} else { - module.exports = process -} - -function nextTick(fn, arg1, arg2, arg3) { - if (typeof fn !== 'function') { - throw new TypeError('"callback" argument must be a function'); - } - var len = arguments.length; - var args, i; - switch (len) { - case 0: - case 1: - return process.nextTick(fn); - case 2: - return process.nextTick(function afterTickOne() { - fn.call(null, arg1); - }); - case 3: - return process.nextTick(function afterTickTwo() { - fn.call(null, arg1, arg2); - }); - case 4: - return process.nextTick(function afterTickThree() { - fn.call(null, arg1, arg2, arg3); - }); - default: - args = new Array(len - 1); - i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - return process.nextTick(function afterTick() { - fn.apply(null, args); - }); - } -} diff --git a/tools/node_modules/eslint/node_modules/process-nextick-args/package.json b/tools/node_modules/eslint/node_modules/process-nextick-args/package.json deleted file mode 100644 index be0a9aca9f5ec2..00000000000000 --- a/tools/node_modules/eslint/node_modules/process-nextick-args/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "_from": "process-nextick-args@~2.0.0", - "_id": "process-nextick-args@2.0.0", - "_inBundle": false, - "_integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "_location": "/eslint/process-nextick-args", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "process-nextick-args@~2.0.0", - "name": "process-nextick-args", - "escapedName": "process-nextick-args", - "rawSpec": "~2.0.0", - "saveSpec": null, - "fetchSpec": "~2.0.0" - }, - "_requiredBy": [ - "/eslint/readable-stream" - ], - "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "_shasum": "a37d732f4271b4ab1ad070d35508e8290788ffaa", - "_spec": "process-nextick-args@~2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/readable-stream", - "author": "", - "bugs": { - "url": "https://github.com/calvinmetcalf/process-nextick-args/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "process.nextTick but always with args", - "devDependencies": { - "tap": "~0.2.6" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/calvinmetcalf/process-nextick-args", - "license": "MIT", - "main": "index.js", - "name": "process-nextick-args", - "repository": { - "type": "git", - "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git" - }, - "scripts": { - "test": "node test.js" - }, - "version": "2.0.0" -} diff --git a/tools/node_modules/eslint/node_modules/process-nextick-args/readme.md b/tools/node_modules/eslint/node_modules/process-nextick-args/readme.md deleted file mode 100644 index ecb432c9b21ffd..00000000000000 --- a/tools/node_modules/eslint/node_modules/process-nextick-args/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -process-nextick-args -===== - -[![Build Status](https://travis-ci.org/calvinmetcalf/process-nextick-args.svg?branch=master)](https://travis-ci.org/calvinmetcalf/process-nextick-args) - -```bash -npm install --save process-nextick-args -``` - -Always be able to pass arguments to process.nextTick, no matter the platform - -```js -var pna = require('process-nextick-args'); - -pna.nextTick(function (a, b, c) { - console.log(a, b, c); -}, 'step', 3, 'profit'); -``` diff --git a/tools/node_modules/eslint/node_modules/progress/package.json b/tools/node_modules/eslint/node_modules/progress/package.json index 0a32f98b194878..76520205035d90 100644 --- a/tools/node_modules/eslint/node_modules/progress/package.json +++ b/tools/node_modules/eslint/node_modules/progress/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", "_shasum": "8a1be366bf8fc23db2bd23f10c6fe920b4389d1f", "_spec": "progress@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "TJ Holowaychuk", "email": "tj@vision-media.ca" diff --git a/tools/node_modules/eslint/node_modules/pseudomap/LICENSE b/tools/node_modules/eslint/node_modules/pseudomap/LICENSE deleted file mode 100644 index 19129e315fe593..00000000000000 --- a/tools/node_modules/eslint/node_modules/pseudomap/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/pseudomap/README.md b/tools/node_modules/eslint/node_modules/pseudomap/README.md deleted file mode 100644 index 778bf01dfaaf9f..00000000000000 --- a/tools/node_modules/eslint/node_modules/pseudomap/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# pseudomap - -A thing that is a lot like ES6 `Map`, but without iterators, for use -in environments where `for..of` syntax and `Map` are not available. - -If you need iterators, or just in general a more faithful polyfill to -ES6 Maps, check out [es6-map](http://npm.im/es6-map). - -If you are in an environment where `Map` is supported, then that will -be returned instead, unless `process.env.TEST_PSEUDOMAP` is set. - -You can use any value as keys, and any value as data. Setting again -with the identical key will overwrite the previous value. - -Internally, data is stored on an `Object.create(null)` style object. -The key is coerced to a string to generate the key on the internal -data-bag object. The original key used is stored along with the data. - -In the event of a stringified-key collision, a new key is generated by -appending an increasing number to the stringified-key until finding -either the intended key or an empty spot. - -Note that because object traversal order of plain objects is not -guaranteed to be identical to insertion order, the insertion order -guarantee of `Map.prototype.forEach` is not guaranteed in this -implementation. However, in all versions of Node.js and V8 where this -module works, `forEach` does traverse data in insertion order. - -## API - -Most of the [Map -API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map), -with the following exceptions: - -1. A `Map` object is not an iterator. -2. `values`, `keys`, and `entries` methods are not implemented, - because they return iterators. -3. The argument to the constructor can be an Array of `[key, value]` - pairs, or a `Map` or `PseudoMap` object. But, since iterators - aren't used, passing any plain-old iterator won't initialize the - map properly. - -## USAGE - -Use just like a regular ES6 Map. - -```javascript -var PseudoMap = require('pseudomap') - -// optionally provide a pseudomap, or an array of [key,value] pairs -// as the argument to initialize the map with -var myMap = new PseudoMap() - -myMap.set(1, 'number 1') -myMap.set('1', 'string 1') -var akey = {} -var bkey = {} -myMap.set(akey, { some: 'data' }) -myMap.set(bkey, { some: 'other data' }) -``` diff --git a/tools/node_modules/eslint/node_modules/pseudomap/map.js b/tools/node_modules/eslint/node_modules/pseudomap/map.js deleted file mode 100644 index 7db15994612fd9..00000000000000 --- a/tools/node_modules/eslint/node_modules/pseudomap/map.js +++ /dev/null @@ -1,9 +0,0 @@ -if (process.env.npm_package_name === 'pseudomap' && - process.env.npm_lifecycle_script === 'test') - process.env.TEST_PSEUDOMAP = 'true' - -if (typeof Map === 'function' && !process.env.TEST_PSEUDOMAP) { - module.exports = Map -} else { - module.exports = require('./pseudomap') -} diff --git a/tools/node_modules/eslint/node_modules/pseudomap/package.json b/tools/node_modules/eslint/node_modules/pseudomap/package.json deleted file mode 100644 index 6f9da04a229d21..00000000000000 --- a/tools/node_modules/eslint/node_modules/pseudomap/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "_from": "pseudomap@^1.0.2", - "_id": "pseudomap@1.0.2", - "_inBundle": false, - "_integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "_location": "/eslint/pseudomap", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "pseudomap@^1.0.2", - "name": "pseudomap", - "escapedName": "pseudomap", - "rawSpec": "^1.0.2", - "saveSpec": null, - "fetchSpec": "^1.0.2" - }, - "_requiredBy": [ - "/eslint/lru-cache" - ], - "_resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "_shasum": "f052a28da70e618917ef0a8ac34c1ae5a68286b3", - "_spec": "pseudomap@^1.0.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/lru-cache", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/pseudomap/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "A thing that is a lot like ES6 `Map`, but without iterators, for use in environments where `for..of` syntax and `Map` are not available.", - "devDependencies": { - "tap": "^2.3.1" - }, - "directories": { - "test": "test" - }, - "homepage": "https://github.com/isaacs/pseudomap#readme", - "license": "ISC", - "main": "map.js", - "name": "pseudomap", - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/pseudomap.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.0.2" -} diff --git a/tools/node_modules/eslint/node_modules/pseudomap/pseudomap.js b/tools/node_modules/eslint/node_modules/pseudomap/pseudomap.js deleted file mode 100644 index 25a21d829e8b3f..00000000000000 --- a/tools/node_modules/eslint/node_modules/pseudomap/pseudomap.js +++ /dev/null @@ -1,113 +0,0 @@ -var hasOwnProperty = Object.prototype.hasOwnProperty - -module.exports = PseudoMap - -function PseudoMap (set) { - if (!(this instanceof PseudoMap)) // whyyyyyyy - throw new TypeError("Constructor PseudoMap requires 'new'") - - this.clear() - - if (set) { - if ((set instanceof PseudoMap) || - (typeof Map === 'function' && set instanceof Map)) - set.forEach(function (value, key) { - this.set(key, value) - }, this) - else if (Array.isArray(set)) - set.forEach(function (kv) { - this.set(kv[0], kv[1]) - }, this) - else - throw new TypeError('invalid argument') - } -} - -PseudoMap.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - Object.keys(this._data).forEach(function (k) { - if (k !== 'size') - fn.call(thisp, this._data[k].value, this._data[k].key) - }, this) -} - -PseudoMap.prototype.has = function (k) { - return !!find(this._data, k) -} - -PseudoMap.prototype.get = function (k) { - var res = find(this._data, k) - return res && res.value -} - -PseudoMap.prototype.set = function (k, v) { - set(this._data, k, v) -} - -PseudoMap.prototype.delete = function (k) { - var res = find(this._data, k) - if (res) { - delete this._data[res._index] - this._data.size-- - } -} - -PseudoMap.prototype.clear = function () { - var data = Object.create(null) - data.size = 0 - - Object.defineProperty(this, '_data', { - value: data, - enumerable: false, - configurable: true, - writable: false - }) -} - -Object.defineProperty(PseudoMap.prototype, 'size', { - get: function () { - return this._data.size - }, - set: function (n) {}, - enumerable: true, - configurable: true -}) - -PseudoMap.prototype.values = -PseudoMap.prototype.keys = -PseudoMap.prototype.entries = function () { - throw new Error('iterators are not implemented in this version') -} - -// Either identical, or both NaN -function same (a, b) { - return a === b || a !== a && b !== b -} - -function Entry (k, v, i) { - this.key = k - this.value = v - this._index = i -} - -function find (data, k) { - for (var i = 0, s = '_' + k, key = s; - hasOwnProperty.call(data, key); - key = s + i++) { - if (same(data[key].key, k)) - return data[key] - } -} - -function set (data, k, v) { - for (var i = 0, s = '_' + k, key = s; - hasOwnProperty.call(data, key); - key = s + i++) { - if (same(data[key].key, k)) { - data[key].value = v - return - } - } - data.size++ - data[key] = new Entry(k, v, key) -} diff --git a/tools/node_modules/eslint/node_modules/co/LICENSE b/tools/node_modules/eslint/node_modules/punycode/LICENSE-MIT.txt similarity index 51% rename from tools/node_modules/eslint/node_modules/co/LICENSE rename to tools/node_modules/eslint/node_modules/punycode/LICENSE-MIT.txt index 92faba5db35d05..a41e0a7ef970ec 100644 --- a/tools/node_modules/eslint/node_modules/co/LICENSE +++ b/tools/node_modules/eslint/node_modules/punycode/LICENSE-MIT.txt @@ -1,10 +1,8 @@ -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca> +Copyright Mathias Bynens Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including +"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 @@ -13,10 +11,10 @@ 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, +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. +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/punycode/README.md b/tools/node_modules/eslint/node_modules/punycode/README.md new file mode 100644 index 00000000000000..ee2f9d63320c0d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/punycode/README.md @@ -0,0 +1,122 @@ +# Punycode.js [![Build status](https://travis-ci.org/bestiejs/punycode.js.svg?branch=master)](https://travis-ci.org/bestiejs/punycode.js) [![Code coverage status](http://img.shields.io/codecov/c/github/bestiejs/punycode.js.svg)](https://codecov.io/gh/bestiejs/punycode.js) [![Dependency status](https://gemnasium.com/bestiejs/punycode.js.svg)](https://gemnasium.com/bestiejs/punycode.js) + +Punycode.js is a robust Punycode converter that fully complies to [RFC 3492](https://tools.ietf.org/html/rfc3492) and [RFC 5891](https://tools.ietf.org/html/rfc5891). + +This JavaScript library is the result of comparing, optimizing and documenting different open-source implementations of the Punycode algorithm: + +* [The C example code from RFC 3492](https://tools.ietf.org/html/rfc3492#appendix-C) +* [`punycode.c` by _Markus W. Scherer_ (IBM)](http://opensource.apple.com/source/ICU/ICU-400.42/icuSources/common/punycode.c) +* [`punycode.c` by _Ben Noordhuis_](https://github.com/bnoordhuis/punycode/blob/master/punycode.c) +* [JavaScript implementation by _some_](http://stackoverflow.com/questions/183485/can-anyone-recommend-a-good-free-javascript-for-punycode-to-unicode-conversion/301287#301287) +* [`punycode.js` by _Ben Noordhuis_](https://github.com/joyent/node/blob/426298c8c1c0d5b5224ac3658c41e7c2a3fe9377/lib/punycode.js) (note: [not fully compliant](https://github.com/joyent/node/issues/2072)) + +This project was [bundled](https://github.com/joyent/node/blob/master/lib/punycode.js) with Node.js from [v0.6.2+](https://github.com/joyent/node/compare/975f1930b1...61e796decc) until [v7](https://github.com/nodejs/node/pull/7941) (soft-deprecated). + +The current version supports recent versions of Node.js only. It provides a CommonJS module and an ES6 module. For the old version that offers the same functionality with broader support, including Rhino, Ringo, Narwhal, and web browsers, see [v1.4.1](https://github.com/bestiejs/punycode.js/releases/tag/v1.4.1). + +## Installation + +Via [npm](https://www.npmjs.com/): + +```bash +npm install punycode --save +``` + +In [Node.js](https://nodejs.org/): + +```js +const punycode = require('punycode'); +``` + +## API + +### `punycode.decode(string)` + +Converts a Punycode string of ASCII symbols to a string of Unicode symbols. + +```js +// decode domain name parts +punycode.decode('maana-pta'); // 'mañana' +punycode.decode('--dqo34k'); // '☃-⌘' +``` + +### `punycode.encode(string)` + +Converts a string of Unicode symbols to a Punycode string of ASCII symbols. + +```js +// encode domain name parts +punycode.encode('mañana'); // 'maana-pta' +punycode.encode('☃-⌘'); // '--dqo34k' +``` + +### `punycode.toUnicode(input)` + +Converts a Punycode string representing a domain name or an email address to Unicode. Only the Punycoded parts of the input will be converted, i.e. it doesn’t matter if you call it on a string that has already been converted to Unicode. + +```js +// decode domain names +punycode.toUnicode('xn--maana-pta.com'); +// → 'mañana.com' +punycode.toUnicode('xn----dqo34k.com'); +// → '☃-⌘.com' + +// decode email addresses +punycode.toUnicode('джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq'); +// → 'джумла@джpумлатест.bрфa' +``` + +### `punycode.toASCII(input)` + +Converts a lowercased Unicode string representing a domain name or an email address to Punycode. Only the non-ASCII parts of the input will be converted, i.e. it doesn’t matter if you call it with a domain that’s already in ASCII. + +```js +// encode domain names +punycode.toASCII('mañana.com'); +// → 'xn--maana-pta.com' +punycode.toASCII('☃-⌘.com'); +// → 'xn----dqo34k.com' + +// encode email addresses +punycode.toASCII('джумла@джpумлатест.bрфa'); +// → 'джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq' +``` + +### `punycode.ucs2` + +#### `punycode.ucs2.decode(string)` + +Creates an array containing the numeric code point values of each Unicode symbol in the string. While [JavaScript uses UCS-2 internally](https://mathiasbynens.be/notes/javascript-encoding), this function will convert a pair of surrogate halves (each of which UCS-2 exposes as separate characters) into a single code point, matching UTF-16. + +```js +punycode.ucs2.decode('abc'); +// → [0x61, 0x62, 0x63] +// surrogate pair for U+1D306 TETRAGRAM FOR CENTRE: +punycode.ucs2.decode('\uD834\uDF06'); +// → [0x1D306] +``` + +#### `punycode.ucs2.encode(codePoints)` + +Creates a string based on an array of numeric code point values. + +```js +punycode.ucs2.encode([0x61, 0x62, 0x63]); +// → 'abc' +punycode.ucs2.encode([0x1D306]); +// → '\uD834\uDF06' +``` + +### `punycode.version` + +A string representing the current Punycode.js version number. + +## Author + +| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | +|---| +| [Mathias Bynens](https://mathiasbynens.be/) | + +## License + +Punycode.js is available under the [MIT](https://mths.be/mit) license. diff --git a/tools/node_modules/eslint/node_modules/punycode/package.json b/tools/node_modules/eslint/node_modules/punycode/package.json new file mode 100644 index 00000000000000..ce16653fd03ca9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/punycode/package.json @@ -0,0 +1,85 @@ +{ + "_from": "punycode@^2.1.0", + "_id": "punycode@2.1.1", + "_inBundle": false, + "_integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "_location": "/eslint/punycode", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "punycode@^2.1.0", + "name": "punycode", + "escapedName": "punycode", + "rawSpec": "^2.1.0", + "saveSpec": null, + "fetchSpec": "^2.1.0" + }, + "_requiredBy": [ + "/eslint/uri-js" + ], + "_resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "_shasum": "b58b010ac40c22c5657616c8d2c2c02c7bf479ec", + "_spec": "punycode@^2.1.0", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/uri-js", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "bugs": { + "url": "https://github.com/bestiejs/punycode.js/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + } + ], + "deprecated": false, + "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", + "devDependencies": { + "codecov": "^1.0.1", + "istanbul": "^0.4.1", + "mocha": "^2.5.3" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "LICENSE-MIT.txt", + "punycode.js", + "punycode.es6.js" + ], + "homepage": "https://mths.be/punycode", + "jsnext:main": "punycode.es6.js", + "jspm": { + "map": { + "./punycode.js": { + "node": "@node/punycode" + } + } + }, + "keywords": [ + "punycode", + "unicode", + "idn", + "idna", + "dns", + "url", + "domain" + ], + "license": "MIT", + "main": "punycode.js", + "module": "punycode.es6.js", + "name": "punycode", + "repository": { + "type": "git", + "url": "git+https://github.com/bestiejs/punycode.js.git" + }, + "scripts": { + "prepublish": "node scripts/prepublish.js", + "test": "mocha tests" + }, + "version": "2.1.1" +} diff --git a/tools/node_modules/eslint/node_modules/punycode/punycode.es6.js b/tools/node_modules/eslint/node_modules/punycode/punycode.es6.js new file mode 100644 index 00000000000000..4610bc9ebf2974 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/punycode/punycode.es6.js @@ -0,0 +1,441 @@ +'use strict'; + +/** Highest positive signed 32-bit float value */ +const maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 + +/** Bootstring parameters */ +const base = 36; +const tMin = 1; +const tMax = 26; +const skew = 38; +const damp = 700; +const initialBias = 72; +const initialN = 128; // 0x80 +const delimiter = '-'; // '\x2D' + +/** Regular expressions */ +const regexPunycode = /^xn--/; +const regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars +const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators + +/** Error messages */ +const errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' +}; + +/** Convenience shortcuts */ +const baseMinusTMin = base - tMin; +const floor = Math.floor; +const stringFromCharCode = String.fromCharCode; + +/*--------------------------------------------------------------------------*/ + +/** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ +function error(type) { + throw new RangeError(errors[type]); +} + +/** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ +function map(array, fn) { + const result = []; + let length = array.length; + while (length--) { + result[length] = fn(array[length]); + } + return result; +} + +/** + * A simple `Array#map`-like wrapper to work with domain name strings or email + * addresses. + * @private + * @param {String} domain The domain name or email address. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ +function mapDomain(string, fn) { + const parts = string.split('@'); + let result = ''; + if (parts.length > 1) { + // In email addresses, only the domain name should be punycoded. Leave + // the local part (i.e. everything up to `@`) intact. + result = parts[0] + '@'; + string = parts[1]; + } + // Avoid `split(regex)` for IE8 compatibility. See #17. + string = string.replace(regexSeparators, '\x2E'); + const labels = string.split('.'); + const encoded = map(labels, fn).join('.'); + return result + encoded; +} + +/** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ +function ucs2decode(string) { + const output = []; + let counter = 0; + const length = string.length; + while (counter < length) { + const value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // It's a high surrogate, and there is a next character. + const extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // It's an unmatched surrogate; only append this code unit, in case the + // next code unit is the high surrogate of a surrogate pair. + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; +} + +/** + * Creates a string based on an array of numeric code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of numeric code points. + * @returns {String} The new Unicode string (UCS-2). + */ +const ucs2encode = array => String.fromCodePoint(...array); + +/** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic numeric code point value. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ +const basicToDigit = function(codePoint) { + if (codePoint - 0x30 < 0x0A) { + return codePoint - 0x16; + } + if (codePoint - 0x41 < 0x1A) { + return codePoint - 0x41; + } + if (codePoint - 0x61 < 0x1A) { + return codePoint - 0x61; + } + return base; +}; + +/** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ +const digitToBasic = function(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); +}; + +/** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ +const adapt = function(delta, numPoints, firstTime) { + let k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); +}; + +/** + * Converts a Punycode string of ASCII-only symbols to a string of Unicode + * symbols. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII-only symbols. + * @returns {String} The resulting string of Unicode symbols. + */ +const decode = function(input) { + // Don't use UCS-2. + const output = []; + const inputLength = input.length; + let i = 0; + let n = initialN; + let bias = initialBias; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + let basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (let j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + let oldi = i; + for (let w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + const digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + const baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + const out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output. + output.splice(i++, 0, n); + + } + + return String.fromCodePoint(...output); +}; + +/** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ +const encode = function(input) { + const output = []; + + // Convert the input in UCS-2 to an array of Unicode code points. + input = ucs2decode(input); + + // Cache the length. + let inputLength = input.length; + + // Initialize the state. + let n = initialN; + let delta = 0; + let bias = initialBias; + + // Handle the basic code points. + for (const currentValue of input) { + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + let basicLength = output.length; + let handledCPCount = basicLength; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string with a delimiter unless it's empty. + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + let m = maxInt; + for (const currentValue of input) { + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow. + const handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (const currentValue of input) { + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + if (currentValue == n) { + // Represent delta as a generalized variable-length integer. + let q = delta; + for (let k = base; /* no condition */; k += base) { + const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + const qMinusT = q - t; + const baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); +}; + +/** + * Converts a Punycode string representing a domain name or an email address + * to Unicode. Only the Punycoded parts of the input will be converted, i.e. + * it doesn't matter if you call it on a string that has already been + * converted to Unicode. + * @memberOf punycode + * @param {String} input The Punycoded domain name or email address to + * convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ +const toUnicode = function(input) { + return mapDomain(input, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); +}; + +/** + * Converts a Unicode string representing a domain name or an email address to + * Punycode. Only the non-ASCII parts of the domain name will be converted, + * i.e. it doesn't matter if you call it with a domain that's already in + * ASCII. + * @memberOf punycode + * @param {String} input The domain name or email address to convert, as a + * Unicode string. + * @returns {String} The Punycode representation of the given domain name or + * email address. + */ +const toASCII = function(input) { + return mapDomain(input, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); +}; + +/*--------------------------------------------------------------------------*/ + +/** Define the public API */ +const punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '2.1.0', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode +}; + +export { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode }; +export default punycode; diff --git a/tools/node_modules/eslint/node_modules/punycode/punycode.js b/tools/node_modules/eslint/node_modules/punycode/punycode.js new file mode 100644 index 00000000000000..ea61fd0d39a39d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/punycode/punycode.js @@ -0,0 +1,440 @@ +'use strict'; + +/** Highest positive signed 32-bit float value */ +const maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 + +/** Bootstring parameters */ +const base = 36; +const tMin = 1; +const tMax = 26; +const skew = 38; +const damp = 700; +const initialBias = 72; +const initialN = 128; // 0x80 +const delimiter = '-'; // '\x2D' + +/** Regular expressions */ +const regexPunycode = /^xn--/; +const regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars +const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators + +/** Error messages */ +const errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' +}; + +/** Convenience shortcuts */ +const baseMinusTMin = base - tMin; +const floor = Math.floor; +const stringFromCharCode = String.fromCharCode; + +/*--------------------------------------------------------------------------*/ + +/** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ +function error(type) { + throw new RangeError(errors[type]); +} + +/** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ +function map(array, fn) { + const result = []; + let length = array.length; + while (length--) { + result[length] = fn(array[length]); + } + return result; +} + +/** + * A simple `Array#map`-like wrapper to work with domain name strings or email + * addresses. + * @private + * @param {String} domain The domain name or email address. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ +function mapDomain(string, fn) { + const parts = string.split('@'); + let result = ''; + if (parts.length > 1) { + // In email addresses, only the domain name should be punycoded. Leave + // the local part (i.e. everything up to `@`) intact. + result = parts[0] + '@'; + string = parts[1]; + } + // Avoid `split(regex)` for IE8 compatibility. See #17. + string = string.replace(regexSeparators, '\x2E'); + const labels = string.split('.'); + const encoded = map(labels, fn).join('.'); + return result + encoded; +} + +/** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ +function ucs2decode(string) { + const output = []; + let counter = 0; + const length = string.length; + while (counter < length) { + const value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // It's a high surrogate, and there is a next character. + const extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // It's an unmatched surrogate; only append this code unit, in case the + // next code unit is the high surrogate of a surrogate pair. + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; +} + +/** + * Creates a string based on an array of numeric code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of numeric code points. + * @returns {String} The new Unicode string (UCS-2). + */ +const ucs2encode = array => String.fromCodePoint(...array); + +/** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic numeric code point value. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ +const basicToDigit = function(codePoint) { + if (codePoint - 0x30 < 0x0A) { + return codePoint - 0x16; + } + if (codePoint - 0x41 < 0x1A) { + return codePoint - 0x41; + } + if (codePoint - 0x61 < 0x1A) { + return codePoint - 0x61; + } + return base; +}; + +/** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ +const digitToBasic = function(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); +}; + +/** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ +const adapt = function(delta, numPoints, firstTime) { + let k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); +}; + +/** + * Converts a Punycode string of ASCII-only symbols to a string of Unicode + * symbols. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII-only symbols. + * @returns {String} The resulting string of Unicode symbols. + */ +const decode = function(input) { + // Don't use UCS-2. + const output = []; + const inputLength = input.length; + let i = 0; + let n = initialN; + let bias = initialBias; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + let basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (let j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + let oldi = i; + for (let w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + const digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + const baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + const out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output. + output.splice(i++, 0, n); + + } + + return String.fromCodePoint(...output); +}; + +/** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ +const encode = function(input) { + const output = []; + + // Convert the input in UCS-2 to an array of Unicode code points. + input = ucs2decode(input); + + // Cache the length. + let inputLength = input.length; + + // Initialize the state. + let n = initialN; + let delta = 0; + let bias = initialBias; + + // Handle the basic code points. + for (const currentValue of input) { + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + let basicLength = output.length; + let handledCPCount = basicLength; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string with a delimiter unless it's empty. + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + let m = maxInt; + for (const currentValue of input) { + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow. + const handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (const currentValue of input) { + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + if (currentValue == n) { + // Represent delta as a generalized variable-length integer. + let q = delta; + for (let k = base; /* no condition */; k += base) { + const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + const qMinusT = q - t; + const baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); +}; + +/** + * Converts a Punycode string representing a domain name or an email address + * to Unicode. Only the Punycoded parts of the input will be converted, i.e. + * it doesn't matter if you call it on a string that has already been + * converted to Unicode. + * @memberOf punycode + * @param {String} input The Punycoded domain name or email address to + * convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ +const toUnicode = function(input) { + return mapDomain(input, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); +}; + +/** + * Converts a Unicode string representing a domain name or an email address to + * Punycode. Only the non-ASCII parts of the domain name will be converted, + * i.e. it doesn't matter if you call it with a domain that's already in + * ASCII. + * @memberOf punycode + * @param {String} input The domain name or email address to convert, as a + * Unicode string. + * @returns {String} The Punycode representation of the given domain name or + * email address. + */ +const toASCII = function(input) { + return mapDomain(input, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); +}; + +/*--------------------------------------------------------------------------*/ + +/** Define the public API */ +const punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '2.1.0', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode +}; + +module.exports = punycode; diff --git a/tools/node_modules/eslint/node_modules/readable-stream/GOVERNANCE.md b/tools/node_modules/eslint/node_modules/readable-stream/GOVERNANCE.md deleted file mode 100644 index 16ffb93f24bece..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/GOVERNANCE.md +++ /dev/null @@ -1,136 +0,0 @@ -### Streams Working Group - -The Node.js Streams is jointly governed by a Working Group -(WG) -that is responsible for high-level guidance of the project. - -The WG has final authority over this project including: - -* Technical direction -* Project governance and process (including this policy) -* Contribution policy -* GitHub repository hosting -* Conduct guidelines -* Maintaining the list of additional Collaborators - -For the current list of WG members, see the project -[README.md](./README.md#current-project-team-members). - -### Collaborators - -The readable-stream GitHub repository is -maintained by the WG and additional Collaborators who are added by the -WG on an ongoing basis. - -Individuals making significant and valuable contributions are made -Collaborators and given commit-access to the project. These -individuals are identified by the WG and their addition as -Collaborators is discussed during the WG meeting. - -_Note:_ If you make a significant contribution and are not considered -for commit-access log an issue or contact a WG member directly and it -will be brought up in the next WG meeting. - -Modifications of the contents of the readable-stream repository are -made on -a collaborative basis. Anybody with a GitHub account may propose a -modification via pull request and it will be considered by the project -Collaborators. All pull requests must be reviewed and accepted by a -Collaborator with sufficient expertise who is able to take full -responsibility for the change. In the case of pull requests proposed -by an existing Collaborator, an additional Collaborator is required -for sign-off. Consensus should be sought if additional Collaborators -participate and there is disagreement around a particular -modification. See _Consensus Seeking Process_ below for further detail -on the consensus model used for governance. - -Collaborators may opt to elevate significant or controversial -modifications, or modifications that have not found consensus to the -WG for discussion by assigning the ***WG-agenda*** tag to a pull -request or issue. The WG should serve as the final arbiter where -required. - -For the current list of Collaborators, see the project -[README.md](./README.md#members). - -### WG Membership - -WG seats are not time-limited. There is no fixed size of the WG. -However, the expected target is between 6 and 12, to ensure adequate -coverage of important areas of expertise, balanced with the ability to -make decisions efficiently. - -There is no specific set of requirements or qualifications for WG -membership beyond these rules. - -The WG may add additional members to the WG by unanimous consensus. - -A WG member may be removed from the WG by voluntary resignation, or by -unanimous consensus of all other WG members. - -Changes to WG membership should be posted in the agenda, and may be -suggested as any other agenda item (see "WG Meetings" below). - -If an addition or removal is proposed during a meeting, and the full -WG is not in attendance to participate, then the addition or removal -is added to the agenda for the subsequent meeting. This is to ensure -that all members are given the opportunity to participate in all -membership decisions. If a WG member is unable to attend a meeting -where a planned membership decision is being made, then their consent -is assumed. - -No more than 1/3 of the WG members may be affiliated with the same -employer. If removal or resignation of a WG member, or a change of -employment by a WG member, creates a situation where more than 1/3 of -the WG membership shares an employer, then the situation must be -immediately remedied by the resignation or removal of one or more WG -members affiliated with the over-represented employer(s). - -### WG Meetings - -The WG meets occasionally on a Google Hangout On Air. A designated moderator -approved by the WG runs the meeting. Each meeting should be -published to YouTube. - -Items are added to the WG agenda that are considered contentious or -are modifications of governance, contribution policy, WG membership, -or release process. - -The intention of the agenda is not to approve or review all patches; -that should happen continuously on GitHub and be handled by the larger -group of Collaborators. - -Any community member or contributor can ask that something be added to -the next meeting's agenda by logging a GitHub Issue. Any Collaborator, -WG member or the moderator can add the item to the agenda by adding -the ***WG-agenda*** tag to the issue. - -Prior to each WG meeting the moderator will share the Agenda with -members of the WG. WG members can add any items they like to the -agenda at the beginning of each meeting. The moderator and the WG -cannot veto or remove items. - -The WG may invite persons or representatives from certain projects to -participate in a non-voting capacity. - -The moderator is responsible for summarizing the discussion of each -agenda item and sends it as a pull request after the meeting. - -### Consensus Seeking Process - -The WG follows a -[Consensus -Seeking](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making) -decision-making model. - -When an agenda item has appeared to reach a consensus the moderator -will ask "Does anyone object?" as a final call for dissent from the -consensus. - -If an agenda item cannot reach a consensus a WG member can call for -either a closing vote or a vote to table the issue to the next -meeting. The call for a vote must be seconded by a majority of the WG -or else the discussion will continue. Simple majority wins. - -Note that changes to WG membership require a majority consensus. See -"WG Membership" above. diff --git a/tools/node_modules/eslint/node_modules/readable-stream/LICENSE b/tools/node_modules/eslint/node_modules/readable-stream/LICENSE deleted file mode 100644 index 2873b3b2e59507..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/LICENSE +++ /dev/null @@ -1,47 +0,0 @@ -Node.js is licensed for use as follows: - -""" -Copyright Node.js contributors. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. -""" - -This license applies to parts of Node.js originating from the -https://github.com/joyent/node repository: - -""" -Copyright Joyent, Inc. and other Node contributors. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. -""" diff --git a/tools/node_modules/eslint/node_modules/readable-stream/README.md b/tools/node_modules/eslint/node_modules/readable-stream/README.md deleted file mode 100644 index f0d8b47c1366d2..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# readable-stream - -***Node-core v8.9.4 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream) - - -[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/) -[![NPM](https://nodei.co/npm-dl/readable-stream.png?&months=6&height=3)](https://nodei.co/npm/readable-stream/) - - -[![Sauce Test Status](https://saucelabs.com/browser-matrix/readable-stream.svg)](https://saucelabs.com/u/readable-stream) - -```bash -npm install --save readable-stream -``` - -***Node-core streams for userland*** - -This package is a mirror of the Streams2 and Streams3 implementations in -Node-core. - -Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.9.4/docs/api/stream.html). - -If you want to guarantee a stable streams base, regardless of what version of -Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html). - -As of version 2.0.0 **readable-stream** uses semantic versioning. - -# Streams Working Group - -`readable-stream` is maintained by the Streams Working Group, which -oversees the development and maintenance of the Streams API within -Node.js. The responsibilities of the Streams Working Group include: - -* Addressing stream issues on the Node.js issue tracker. -* Authoring and editing stream documentation within the Node.js project. -* Reviewing changes to stream subclasses within the Node.js project. -* Redirecting changes to streams from the Node.js project to this - project. -* Assisting in the implementation of stream providers within Node.js. -* Recommending versions of `readable-stream` to be included in Node.js. -* Messaging about the future of streams to give the community advance - notice of changes. - -
-## Team Members - -* **Chris Dickinson** ([@chrisdickinson](https://github.com/chrisdickinson)) <christopher.s.dickinson@gmail.com> - - Release GPG key: 9554F04D7259F04124DE6B476D5A82AC7E37093B -* **Calvin Metcalf** ([@calvinmetcalf](https://github.com/calvinmetcalf)) <calvin.metcalf@gmail.com> - - Release GPG key: F3EF5F62A87FC27A22E643F714CE4FF5015AA242 -* **Rod Vagg** ([@rvagg](https://github.com/rvagg)) <rod@vagg.org> - - Release GPG key: DD8F2338BAE7501E3DD5AC78C273792F7D83545D -* **Sam Newman** ([@sonewman](https://github.com/sonewman)) <newmansam@outlook.com> -* **Mathias Buus** ([@mafintosh](https://github.com/mafintosh)) <mathiasbuus@gmail.com> -* **Domenic Denicola** ([@domenic](https://github.com/domenic)) <d@domenic.me> -* **Matteo Collina** ([@mcollina](https://github.com/mcollina)) <matteo.collina@gmail.com> - - Release GPG key: 3ABC01543F22DD2239285CDD818674489FBC127E -* **Irina Shestak** ([@lrlna](https://github.com/lrlna)) <shestak.irina@gmail.com> diff --git a/tools/node_modules/eslint/node_modules/readable-stream/duplex-browser.js b/tools/node_modules/eslint/node_modules/readable-stream/duplex-browser.js deleted file mode 100644 index f8b2db83dbe733..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/duplex-browser.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/_stream_duplex.js'); diff --git a/tools/node_modules/eslint/node_modules/readable-stream/duplex.js b/tools/node_modules/eslint/node_modules/readable-stream/duplex.js deleted file mode 100644 index 46924cbfdf5387..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/duplex.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./readable').Duplex diff --git a/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_duplex.js b/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_duplex.js deleted file mode 100644 index 1045089182a263..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_duplex.js +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - -'use strict'; - -/**/ - -var pna = require('process-nextick-args'); -/**/ - -/**/ -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; -}; -/**/ - -module.exports = Duplex; - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -var Readable = require('./_stream_readable'); -var Writable = require('./_stream_writable'); - -util.inherits(Duplex, Readable); - -var keys = objectKeys(Writable.prototype); -for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; -} - -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); -} - -// the no-half-open enforcer -function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - pna.nextTick(onEndNT, this); -} - -function onEndNT(self) { - self.end(); -} - -Object.defineProperty(Duplex.prototype, 'destroyed', { - get: function () { - if (this._readableState === undefined || this._writableState === undefined) { - return false; - } - return this._readableState.destroyed && this._writableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (this._readableState === undefined || this._writableState === undefined) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - this._writableState.destroyed = value; - } -}); - -Duplex.prototype._destroy = function (err, cb) { - this.push(null); - this.end(); - - pna.nextTick(cb, err); -}; - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_passthrough.js b/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_passthrough.js deleted file mode 100644 index a9c835884828d8..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_passthrough.js +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. - -'use strict'; - -module.exports = PassThrough; - -var Transform = require('./_stream_transform'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(PassThrough, Transform); - -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); -} - -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); -}; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_readable.js b/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_readable.js deleted file mode 100644 index af150f434c93a2..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_readable.js +++ /dev/null @@ -1,1015 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -/**/ - -var pna = require('process-nextick-args'); -/**/ - -module.exports = Readable; - -/**/ -var isArray = require('isarray'); -/**/ - -/**/ -var Duplex; -/**/ - -Readable.ReadableState = ReadableState; - -/**/ -var EE = require('events').EventEmitter; - -var EElistenerCount = function (emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ -var Stream = require('./internal/streams/stream'); -/**/ - -/**/ - -var Buffer = require('safe-buffer').Buffer; -var OurUint8Array = global.Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} - -/**/ - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var debugUtil = require('util'); -var debug = void 0; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function () {}; -} -/**/ - -var BufferList = require('./internal/streams/BufferList'); -var destroyImpl = require('./internal/streams/destroy'); -var StringDecoder; - -util.inherits(Readable, Stream); - -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; - -function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); - - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; -} - -function ReadableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - var isDuplex = stream instanceof Duplex; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var readableHwm = options.readableHighWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - - if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; - - // cast to ints. - this.highWaterMark = Math.floor(this.highWaterMark); - - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the event 'readable'/'data' is emitted - // immediately, or on a later tick. We set this to true at first, because - // any actions that shouldn't happen until "later" should generally also - // not happen before the first read call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - - // has it been destroyed - this.destroyed = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -function Readable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - if (options) { - if (typeof options.read === 'function') this._read = options.read; - - if (typeof options.destroy === 'function') this._destroy = options.destroy; - } - - Stream.call(this); -} - -Object.defineProperty(Readable.prototype, 'destroyed', { - get: function () { - if (this._readableState === undefined) { - return false; - } - return this._readableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._readableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - } -}); - -Readable.prototype.destroy = destroyImpl.destroy; -Readable.prototype._undestroy = destroyImpl.undestroy; -Readable.prototype._destroy = function (err, cb) { - this.push(null); - cb(err); -}; - -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - var skipChunkCheck; - - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } - skipChunkCheck = true; - } - } else { - skipChunkCheck = true; - } - - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); -}; - -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - var state = stream._readableState; - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else { - var er; - if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { - chunk = _uint8ArrayToBuffer(chunk); - } - - if (addToFront) { - if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); - } else if (state.ended) { - stream.emit('error', new Error('stream.push() after EOF')); - } else { - state.reading = false; - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } - } - } else if (!addToFront) { - state.reading = false; - } - } - - return needMoreData(state); -} - -function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); - } - maybeReadMore(stream, state); -} - -function chunkInvalid(state, chunk) { - var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; -} - -// if it's past the high water mark, we can push in some more. -// Also, if we have no data yet, we can stand some -// more bytes. This is to work around cases where hwm=0, -// such as the repl. Also, if the push() triggered a -// readable event, and the user called read(largeNumber) such that -// needReadable was set, then we ought to push more, so that another -// 'readable' event will be triggered. -function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); -} - -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -// backwards compatibility. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; -}; - -// Don't raise the hwm > 8MB -var MAX_HWM = 0x800000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; -} - -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - - if (n !== 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = true; - n = 0; - } else { - state.length -= n; - } - - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - - if (ret !== null) this.emit('data', ret); - - return ret; -}; - -function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream); - } -} - -function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); -} - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - pna.nextTick(maybeReadMore_, stream, state); - } -} - -function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - this.emit('error', new Error('_read() is not implemented')); -}; - -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - // If the user pushes more data while we're writing to dest then we'll end up - // in ondata again. However, we only want to increase awaitDrain once because - // dest will only emit one 'drain' event for the multiple writes. - // => Introduce a guard on increasing awaitDrain. - var increasedAwaitDrain = false; - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - increasedAwaitDrain = false; - var ret = dest.write(chunk); - if (false === ret && !increasedAwaitDrain) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - increasedAwaitDrain = true; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; -}; - -function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} - -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - var unpipeInfo = { hasUnpiped: false }; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, unpipeInfo); - }return this; - } - - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - - dest.emit('unpipe', this, unpipeInfo); - - return this; -}; - -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - - if (ev === 'data') { - // Start flowing on next tick if stream isn't explicitly paused - if (this._readableState.flowing !== false) this.resume(); - } else if (ev === 'readable') { - var state = this._readableState; - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.emittedReadable = false; - if (!state.reading) { - pna.nextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this); - } - } - } - - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; - -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; -}; - -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - pna.nextTick(resume_, stream, state); - } -} - -function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - state.awaitDrain = 0; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} - -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; -}; - -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null) {} -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var _this = this; - - var state = this._readableState; - var paused = false; - - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) _this.push(chunk); - } - - _this.push(null); - }); - - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = _this.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - this._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return this; -}; - -// exposed for testing purposes only. -Readable._fromList = fromList; - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = fromListPartial(n, state.buffer, state.decoder); - } - - return ret; -} - -// Extracts only enough buffered data to satisfy the amount requested. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromListPartial(n, list, hasStrings) { - var ret; - if (n < list.head.data.length) { - // slice is the same for buffers and strings - ret = list.head.data.slice(0, n); - list.head.data = list.head.data.slice(n); - } else if (n === list.head.data.length) { - // first chunk is a perfect match - ret = list.shift(); - } else { - // result spans more than one buffer - ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); - } - return ret; -} - -// Copies a specified amount of characters from the list of buffered data -// chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBufferString(n, list) { - var p = list.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -// Copies a specified amount of bytes from the list of buffered data chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBuffer(n, list) { - var ret = Buffer.allocUnsafe(n); - var p = list.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - pna.nextTick(endReadableNT, state, stream); - } -} - -function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } -} - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} - -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_transform.js b/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_transform.js deleted file mode 100644 index 5d1f8b876d98c7..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_transform.js +++ /dev/null @@ -1,214 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. - -'use strict'; - -module.exports = Transform; - -var Duplex = require('./_stream_duplex'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(Transform, Duplex); - -function afterTransform(er, data) { - var ts = this._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) { - return this.emit('error', new Error('write callback called multiple times')); - } - - ts.writechunk = null; - ts.writecb = null; - - if (data != null) // single equals check for both `null` and `undefined` - this.push(data); - - cb(er); - - var rs = this._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - this._read(rs.highWaterMark); - } -} - -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = { - afterTransform: afterTransform.bind(this), - needTransform: false, - transforming: false, - writecb: null, - writechunk: null, - writeencoding: null - }; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - // When the writable side finishes, then flush out anything remaining. - this.on('prefinish', prefinish); -} - -function prefinish() { - var _this = this; - - if (typeof this._flush === 'function') { - this._flush(function (er, data) { - done(_this, er, data); - }); - } else { - done(this, null, null); - } -} - -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; - -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('_transform() is not implemented'); -}; - -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; - -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function (n) { - var ts = this._transformState; - - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; - -Transform.prototype._destroy = function (err, cb) { - var _this2 = this; - - Duplex.prototype._destroy.call(this, err, function (err2) { - cb(err2); - _this2.emit('close'); - }); -}; - -function done(stream, er, data) { - if (er) return stream.emit('error', er); - - if (data != null) // single equals check for both `null` and `undefined` - stream.push(data); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0'); - - if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming'); - - return stream.push(null); -} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_writable.js b/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_writable.js deleted file mode 100644 index 0e1c28df51af14..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/lib/_stream_writable.js +++ /dev/null @@ -1,677 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - -'use strict'; - -/**/ - -var pna = require('process-nextick-args'); -/**/ - -module.exports = Writable; - -/* */ -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - this.finish = function () { - onCorkedFinish(_this, state); - }; -} -/* */ - -/**/ -var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; -/**/ - -/**/ -var Duplex; -/**/ - -Writable.WritableState = WritableState; - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var internalUtil = { - deprecate: require('util-deprecate') -}; -/**/ - -/**/ -var Stream = require('./internal/streams/stream'); -/**/ - -/**/ - -var Buffer = require('safe-buffer').Buffer; -var OurUint8Array = global.Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} - -/**/ - -var destroyImpl = require('./internal/streams/destroy'); - -util.inherits(Writable, Stream); - -function nop() {} - -function WritableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - var isDuplex = stream instanceof Duplex; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var writableHwm = options.writableHighWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - - if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; - - // cast to ints. - this.highWaterMark = Math.floor(this.highWaterMark); - - // if _final has been called - this.finalCalled = false; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // has it been destroyed - this.destroyed = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); -} - -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; -}; - -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} -})(); - -// Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. -var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function (object) { - if (realHasInstance.call(this, object)) return true; - if (this !== Writable) return false; - - return object && object._writableState instanceof WritableState; - } - }); -} else { - realHasInstance = function (object) { - return object instanceof this; - }; -} - -function Writable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { - return new Writable(options); - } - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - - if (typeof options.writev === 'function') this._writev = options.writev; - - if (typeof options.destroy === 'function') this._destroy = options.destroy; - - if (typeof options.final === 'function') this._final = options.final; - } - - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe, not readable')); -}; - -function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - pna.nextTick(cb, er); -} - -// Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. -function validChunk(stream, state, chunk, cb) { - var valid = true; - var er = false; - - if (chunk === null) { - er = new TypeError('May not write null values to stream'); - } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - if (er) { - stream.emit('error', er); - pna.nextTick(cb, er); - valid = false; - } - return valid; -} - -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); - - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); - } - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - - return ret; -}; - -Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; -}; - -Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; - -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; - -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } - return chunk; -} - -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; - } - } - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; -} - -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} - -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - pna.nextTick(cb, er); - // this can emit finish, and it will always happen - // after error - pna.nextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - stream.emit('error', er); - } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - stream.emit('error', er); - // this can emit finish, but finish must - // always follow error - finishMaybe(stream, state); - } -} - -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} - -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } -} - -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - - var count = 0; - var allBuffers = true; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; - } - buffer.allBuffers = allBuffers; - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - state.bufferedRequestCount = 0; - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - state.bufferedRequestCount--; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequest = entry; - state.bufferProcessing = false; -} - -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('_write() is not implemented')); -}; - -Writable.prototype._writev = null; - -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); -}; - -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} -function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; - if (err) { - stream.emit('error', err); - } - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); - }); -} -function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function') { - state.pendingcb++; - state.finalCalled = true; - pna.nextTick(callFinal, stream, state); - } else { - state.prefinished = true; - stream.emit('prefinish'); - } - } -} - -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - prefinish(stream, state); - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); - } - } - return need; -} - -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) pna.nextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} - -function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = corkReq; - } else { - state.corkedRequestsFree = corkReq; - } -} - -Object.defineProperty(Writable.prototype, 'destroyed', { - get: function () { - if (this._writableState === undefined) { - return false; - } - return this._writableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._writableState.destroyed = value; - } -}); - -Writable.prototype.destroy = destroyImpl.destroy; -Writable.prototype._undestroy = destroyImpl.undestroy; -Writable.prototype._destroy = function (err, cb) { - this.end(); - cb(err); -}; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/BufferList.js b/tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/BufferList.js deleted file mode 100644 index aefc68bd90b9c2..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/BufferList.js +++ /dev/null @@ -1,79 +0,0 @@ -'use strict'; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Buffer = require('safe-buffer').Buffer; -var util = require('util'); - -function copyBuffer(src, target, offset) { - src.copy(target, offset); -} - -module.exports = function () { - function BufferList() { - _classCallCheck(this, BufferList); - - this.head = null; - this.tail = null; - this.length = 0; - } - - BufferList.prototype.push = function push(v) { - var entry = { data: v, next: null }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - }; - - BufferList.prototype.unshift = function unshift(v) { - var entry = { data: v, next: this.head }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - }; - - BufferList.prototype.shift = function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - }; - - BufferList.prototype.clear = function clear() { - this.head = this.tail = null; - this.length = 0; - }; - - BufferList.prototype.join = function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) { - ret += s + p.data; - }return ret; - }; - - BufferList.prototype.concat = function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - if (this.length === 1) return this.head.data; - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; - } - return ret; - }; - - return BufferList; -}(); - -if (util && util.inspect && util.inspect.custom) { - module.exports.prototype[util.inspect.custom] = function () { - var obj = util.inspect({ length: this.length }); - return this.constructor.name + ' ' + obj; - }; -} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/destroy.js b/tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/destroy.js deleted file mode 100644 index 5a0a0d88cec6f3..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/destroy.js +++ /dev/null @@ -1,74 +0,0 @@ -'use strict'; - -/**/ - -var pna = require('process-nextick-args'); -/**/ - -// undocumented cb() API, needed for core, not for public API -function destroy(err, cb) { - var _this = this; - - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; - - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { - pna.nextTick(emitErrorNT, this, err); - } - return this; - } - - // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks - - if (this._readableState) { - this._readableState.destroyed = true; - } - - // if this is a duplex stream mark the writable part as destroyed as well - if (this._writableState) { - this._writableState.destroyed = true; - } - - this._destroy(err || null, function (err) { - if (!cb && err) { - pna.nextTick(emitErrorNT, _this, err); - if (_this._writableState) { - _this._writableState.errorEmitted = true; - } - } else if (cb) { - cb(err); - } - }); - - return this; -} - -function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; - } - - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; - } -} - -function emitErrorNT(self, err) { - self.emit('error', err); -} - -module.exports = { - destroy: destroy, - undestroy: undestroy -}; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/stream-browser.js b/tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/stream-browser.js deleted file mode 100644 index 9332a3fdae7060..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/stream-browser.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('events').EventEmitter; diff --git a/tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/stream.js b/tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/stream.js deleted file mode 100644 index ce2ad5b6ee57f4..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/lib/internal/streams/stream.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('stream'); diff --git a/tools/node_modules/eslint/node_modules/readable-stream/package.json b/tools/node_modules/eslint/node_modules/readable-stream/package.json deleted file mode 100644 index cad75f8c61ef8b..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "_from": "readable-stream@^2.2.2", - "_id": "readable-stream@2.3.5", - "_inBundle": false, - "_integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", - "_location": "/eslint/readable-stream", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "readable-stream@^2.2.2", - "name": "readable-stream", - "escapedName": "readable-stream", - "rawSpec": "^2.2.2", - "saveSpec": null, - "fetchSpec": "^2.2.2" - }, - "_requiredBy": [ - "/eslint/concat-stream" - ], - "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", - "_shasum": "b4f85003a938cbb6ecbce2a124fb1012bd1a838d", - "_spec": "readable-stream@^2.2.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/concat-stream", - "browser": { - "util": false, - "./readable.js": "./readable-browser.js", - "./writable.js": "./writable-browser.js", - "./duplex.js": "./duplex-browser.js", - "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" - }, - "bugs": { - "url": "https://github.com/nodejs/readable-stream/issues" - }, - "bundleDependencies": false, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", - "util-deprecate": "~1.0.1" - }, - "deprecated": false, - "description": "Streams3, a user-land copy of the stream library from Node.js", - "devDependencies": { - "assert": "^1.4.0", - "babel-polyfill": "^6.9.1", - "buffer": "^4.9.0", - "lolex": "^2.3.2", - "nyc": "^6.4.0", - "tap": "^0.7.0", - "tape": "^4.8.0", - "zuul": "^3.11.1" - }, - "homepage": "https://github.com/nodejs/readable-stream#readme", - "keywords": [ - "readable", - "stream", - "pipe" - ], - "license": "MIT", - "main": "readable.js", - "name": "readable-stream", - "nyc": { - "include": [ - "lib/**.js" - ] - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/readable-stream.git" - }, - "scripts": { - "browser": "npm run write-zuul && zuul --browser-retries 2 -- test/browser.js", - "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", - "cover": "nyc npm test", - "local": "zuul --local 3000 --no-coverage -- test/browser.js", - "report": "nyc report --reporter=lcov", - "test": "tap test/parallel/*.js test/ours/*.js && node test/verify-dependencies.js", - "write-zuul": "printf \"ui: tape\nbrowsers:\n - name: $BROWSER_NAME\n version: $BROWSER_VERSION\n\">.zuul.yml" - }, - "version": "2.3.5" -} diff --git a/tools/node_modules/eslint/node_modules/readable-stream/passthrough.js b/tools/node_modules/eslint/node_modules/readable-stream/passthrough.js deleted file mode 100644 index ffd791d7ff275a..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/passthrough.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./readable').PassThrough diff --git a/tools/node_modules/eslint/node_modules/readable-stream/readable-browser.js b/tools/node_modules/eslint/node_modules/readable-stream/readable-browser.js deleted file mode 100644 index e50372592ee6c6..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/readable-browser.js +++ /dev/null @@ -1,7 +0,0 @@ -exports = module.exports = require('./lib/_stream_readable.js'); -exports.Stream = exports; -exports.Readable = exports; -exports.Writable = require('./lib/_stream_writable.js'); -exports.Duplex = require('./lib/_stream_duplex.js'); -exports.Transform = require('./lib/_stream_transform.js'); -exports.PassThrough = require('./lib/_stream_passthrough.js'); diff --git a/tools/node_modules/eslint/node_modules/readable-stream/readable.js b/tools/node_modules/eslint/node_modules/readable-stream/readable.js deleted file mode 100644 index ec89ec53306497..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/readable.js +++ /dev/null @@ -1,19 +0,0 @@ -var Stream = require('stream'); -if (process.env.READABLE_STREAM === 'disable' && Stream) { - module.exports = Stream; - exports = module.exports = Stream.Readable; - exports.Readable = Stream.Readable; - exports.Writable = Stream.Writable; - exports.Duplex = Stream.Duplex; - exports.Transform = Stream.Transform; - exports.PassThrough = Stream.PassThrough; - exports.Stream = Stream; -} else { - exports = module.exports = require('./lib/_stream_readable.js'); - exports.Stream = Stream || exports; - exports.Readable = exports; - exports.Writable = require('./lib/_stream_writable.js'); - exports.Duplex = require('./lib/_stream_duplex.js'); - exports.Transform = require('./lib/_stream_transform.js'); - exports.PassThrough = require('./lib/_stream_passthrough.js'); -} diff --git a/tools/node_modules/eslint/node_modules/readable-stream/transform.js b/tools/node_modules/eslint/node_modules/readable-stream/transform.js deleted file mode 100644 index b1baba26da03dc..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/transform.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./readable').Transform diff --git a/tools/node_modules/eslint/node_modules/readable-stream/writable-browser.js b/tools/node_modules/eslint/node_modules/readable-stream/writable-browser.js deleted file mode 100644 index ebdde6a85dcb19..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/writable-browser.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/_stream_writable.js'); diff --git a/tools/node_modules/eslint/node_modules/readable-stream/writable.js b/tools/node_modules/eslint/node_modules/readable-stream/writable.js deleted file mode 100644 index 3211a6f80d1abc..00000000000000 --- a/tools/node_modules/eslint/node_modules/readable-stream/writable.js +++ /dev/null @@ -1,8 +0,0 @@ -var Stream = require("stream") -var Writable = require("./lib/_stream_writable.js") - -if (process.env.READABLE_STREAM === 'disable') { - module.exports = Stream && Stream.Writable || Writable -} else { - module.exports = Writable -} diff --git a/tools/node_modules/eslint/node_modules/regexp.prototype.flags/LICENSE b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/LICENSE new file mode 100644 index 00000000000000..9a8e1e0e62e4ae --- /dev/null +++ b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (C) 2014 Jordan Harband + +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/tools/node_modules/eslint/node_modules/regexp.prototype.flags/README.md b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/README.md new file mode 100644 index 00000000000000..77e151e2177f22 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/README.md @@ -0,0 +1,54 @@ +RegExp.prototype.flags [![Version Badge][npm-version-svg]][package-url] + +[![Build Status][travis-svg]][travis-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +[![browser support][testling-svg]][testling-url] + +An ES6 spec-compliant `RegExp.prototype.flags` shim. Invoke its "shim" method to shim RegExp.prototype.flags if it is unavailable. +*Note*: `RegExp#flags` requires a true ES5 environment - specifically, one with ES5 getters. + +This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES5-supported environment and complies with the [spec](http://www.ecma-international.org/ecma-262/6.0/#sec-get-regexp.prototype.flags). + +Most common usage: +```js +var flags = require('regexp.prototype.flags'); + +assert(flags(/a/) === ''); +assert(flags(new RegExp('a') === ''); +assert(flags(/a/mig) === 'gim'); +assert(flags(new RegExp('a', 'mig')) === 'gim'); + +if (!RegExp.prototype.flags) { + flags.shim(); +} + +assert(flags(/a/) === /a/.flags); +assert(flags(new RegExp('a') === new RegExp('a').flags); +assert(flags(/a/mig) === /a/mig.flags); +assert(flags(new RegExp('a', 'mig')) === new RegExp('a', 'mig').flags); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.com/package/regexp.prototype.flags +[npm-version-svg]: http://versionbadg.es/es-shims/RegExp.prototype.flags.svg +[travis-svg]: https://travis-ci.org/es-shims/RegExp.prototype.flags.svg +[travis-url]: https://travis-ci.org/es-shims/RegExp.prototype.flags +[deps-svg]: https://david-dm.org/es-shims/RegExp.prototype.flags.svg +[deps-url]: https://david-dm.org/es-shims/RegExp.prototype.flags +[dev-deps-svg]: https://david-dm.org/es-shims/RegExp.prototype.flags/dev-status.svg +[dev-deps-url]: https://david-dm.org/es-shims/RegExp.prototype.flags#info=devDependencies +[testling-svg]: https://ci.testling.com/es-shims/RegExp.prototype.flags.png +[testling-url]: https://ci.testling.com/es-shims/RegExp.prototype.flags +[npm-badge-png]: https://nodei.co/npm/regexp.prototype.flags.png?downloads=true&stars=true +[license-image]: http://img.shields.io/npm/l/regexp.prototype.flags.svg +[license-url]: LICENSE +[downloads-image]: http://img.shields.io/npm/dm/regexp.prototype.flags.svg +[downloads-url]: http://npm-stat.com/charts.html?package=regexp.prototype.flags diff --git a/tools/node_modules/eslint/node_modules/regexp.prototype.flags/implementation.js b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/implementation.js new file mode 100644 index 00000000000000..f2a3397b759a34 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/implementation.js @@ -0,0 +1,30 @@ +'use strict'; + +var toObject = Object; +var TypeErr = TypeError; + +module.exports = function flags() { + if (this != null && this !== toObject(this)) { + throw new TypeErr('RegExp.prototype.flags getter called on non-object'); + } + var result = ''; + if (this.global) { + result += 'g'; + } + if (this.ignoreCase) { + result += 'i'; + } + if (this.multiline) { + result += 'm'; + } + if (this.dotAll) { + result += 's'; + } + if (this.unicode) { + result += 'u'; + } + if (this.sticky) { + result += 'y'; + } + return result; +}; diff --git a/tools/node_modules/eslint/node_modules/regexp.prototype.flags/index.js b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/index.js new file mode 100644 index 00000000000000..94355e365a44ba --- /dev/null +++ b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/index.js @@ -0,0 +1,17 @@ +'use strict'; + +var define = require('define-properties'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var flagsBound = Function.call.bind(implementation); + +define(flagsBound, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = flagsBound; diff --git a/tools/node_modules/eslint/node_modules/regexp.prototype.flags/package.json b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/package.json new file mode 100644 index 00000000000000..a8ab2b5cacd9a4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/package.json @@ -0,0 +1,104 @@ +{ + "_from": "regexp.prototype.flags@^1.2.0", + "_id": "regexp.prototype.flags@1.2.0", + "_inBundle": false, + "_integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", + "_location": "/eslint/regexp.prototype.flags", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "regexp.prototype.flags@^1.2.0", + "name": "regexp.prototype.flags", + "escapedName": "regexp.prototype.flags", + "rawSpec": "^1.2.0", + "saveSpec": null, + "fetchSpec": "^1.2.0" + }, + "_requiredBy": [ + "/eslint/string.prototype.matchall" + ], + "_resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", + "_shasum": "6b30724e306a27833eeb171b66ac8890ba37e41c", + "_spec": "regexp.prototype.flags@^1.2.0", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/string.prototype.matchall", + "author": { + "name": "Jordan Harband" + }, + "bugs": { + "url": "https://github.com/es-shims/RegExp.prototype.flags/issues" + }, + "bundleDependencies": false, + "dependencies": { + "define-properties": "^1.1.2" + }, + "deprecated": false, + "description": "ES6 spec-compliant RegExp.prototype.flags shim.", + "devDependencies": { + "@es-shims/api": "^1.3.0", + "@ljharb/eslint-config": "^12.2.1", + "covert": "^1.1.0", + "editorconfig-tools": "^0.1.1", + "eslint": "^4.9.0", + "has": "^1.0.1", + "jscs": "^3.0.7", + "nsp": "^2.8.1", + "tape": "^4.8.0" + }, + "engines": { + "node": ">= 0.4" + }, + "homepage": "https://github.com/es-shims/RegExp.prototype.flags#readme", + "keywords": [ + "RegExp.prototype.flags", + "regex", + "regular expression", + "ES6", + "shim", + "flag", + "flags", + "regexp", + "RegExp#flags", + "polyfill", + "es-shim API" + ], + "license": "MIT", + "main": "index.js", + "name": "regexp.prototype.flags", + "repository": { + "type": "git", + "url": "git://github.com/es-shims/RegExp.prototype.flags.git" + }, + "scripts": { + "coverage": "covert test/*.js", + "coverage-quiet": "covert test/*.js --quiet", + "eccheck": "editorconfig-tools check *.js **/*.js > /dev/null", + "eslint": "eslint test/*.js *.js", + "jscs": "jscs test/*.js *.js", + "lint": "npm run --silent jscs && npm run --silent eslint", + "posttest": "npm run --silent security", + "pretest": "npm run --silent lint", + "security": "nsp check", + "test": "npm run --silent tests-only", + "tests-only": "es-shim-api --bound && node --harmony --es-staging test/index.js" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/9.0..latest", + "firefox/4.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/11.6..latest", + "opera/next", + "safari/5.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.2.0" +} diff --git a/tools/node_modules/eslint/node_modules/regexp.prototype.flags/polyfill.js b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/polyfill.js new file mode 100644 index 00000000000000..46933f4fa7c183 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/polyfill.js @@ -0,0 +1,20 @@ +'use strict'; + +var implementation = require('./implementation'); + +var supportsDescriptors = require('define-properties').supportsDescriptors; +var gOPD = Object.getOwnPropertyDescriptor; +var TypeErr = TypeError; + +module.exports = function getPolyfill() { + if (!supportsDescriptors) { + throw new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors'); + } + if (/a/mig.flags === 'gim') { + var descriptor = gOPD(RegExp.prototype, 'flags'); + if (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') { + return descriptor.get; + } + } + return implementation; +}; diff --git a/tools/node_modules/eslint/node_modules/regexp.prototype.flags/shim.js b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/shim.js new file mode 100644 index 00000000000000..3ec77c14ff3bf8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/regexp.prototype.flags/shim.js @@ -0,0 +1,26 @@ +'use strict'; + +var supportsDescriptors = require('define-properties').supportsDescriptors; +var getPolyfill = require('./polyfill'); +var gOPD = Object.getOwnPropertyDescriptor; +var defineProperty = Object.defineProperty; +var TypeErr = TypeError; +var getProto = Object.getPrototypeOf; +var regex = /a/; + +module.exports = function shimFlags() { + if (!supportsDescriptors || !getProto) { + throw new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors'); + } + var polyfill = getPolyfill(); + var proto = getProto(regex); + var descriptor = gOPD(proto, 'flags'); + if (!descriptor || descriptor.get !== polyfill) { + defineProperty(proto, 'flags', { + configurable: true, + enumerable: false, + get: polyfill + }); + } + return polyfill; +}; diff --git a/tools/node_modules/eslint/node_modules/regexpp/index.d.ts b/tools/node_modules/eslint/node_modules/regexpp/index.d.ts index b46f3cbd9c5f62..6dc1763fac6032 100644 --- a/tools/node_modules/eslint/node_modules/regexpp/index.d.ts +++ b/tools/node_modules/eslint/node_modules/regexpp/index.d.ts @@ -1,201 +1,202 @@ -// Generated by dts-bundle v0.7.3 - -declare module 'regexpp' { - import * as AST from "regexpp/ast"; - import { RegExpParser } from "regexpp/parser"; - import { RegExpValidator } from "regexpp/validator"; - export { AST, RegExpParser, RegExpValidator }; - export function parseRegExpLiteral(source: string, options?: RegExpParser.Options): AST.RegExpLiteral; - export function validateRegExpLiteral(source: string, options?: RegExpValidator.Options): void; -} - -declare module 'regexpp/ast' { - export type Node = BranchNode | LeafNode; - export type BranchNode = RegExpLiteral | Pattern | Disjunction | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion | CharacterClassRange; - export type LeafNode = BoundaryAssertion | CharacterSet | Character | Backreference | Flags; - export type Element = Disjunction | Group | CapturingGroup | Quantifier | CharacterClass | Assertion | CharacterSet | Character | Backreference; - export type CharacterClassElement = EscapeCharacterSet | UnicodePropertyCharacterSet | Character | CharacterClassRange; - export type AlternativeElement = Group | CapturingGroup | Quantifier | CharacterClass | Assertion | CharacterSet | Character | Backreference; - export type QuantifiableElement = Group | CapturingGroup | CharacterClass | LookaheadAssertion | CharacterSet | Character | Backreference; - export interface NodeBase { - type: Node["type"]; - parent: Node["parent"]; - start: number; - end: number; - raw: string; - } - export interface RegExpLiteral extends NodeBase { - type: "RegExpLiteral"; - parent: null; - pattern: Pattern; - flags: Flags; - } - export interface Pattern extends NodeBase { - type: "Pattern"; - parent: RegExpLiteral | null; - elements: Element[]; - } - export interface Disjunction extends NodeBase { - type: "Disjunction"; - parent: Pattern | Group | CapturingGroup | LookaroundAssertion; - alternatives: AlternativeElement[][]; - } - export interface Group extends NodeBase { - type: "Group"; - parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; - elements: Element[]; - } - export interface CapturingGroup extends NodeBase { - type: "CapturingGroup"; - parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; - name: string | null; - elements: Element[]; - references: Backreference[]; - } - export type LookaroundAssertion = LookaheadAssertion | LookbehindAssertion; - export interface LookaheadAssertion extends NodeBase { - type: "Assertion"; - parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; - kind: "lookahead"; - negate: boolean; - elements: Element[]; - } - export interface LookbehindAssertion extends NodeBase { - type: "Assertion"; - parent: Pattern | Disjunction | Group | CapturingGroup | LookaroundAssertion; - kind: "lookbehind"; - negate: boolean; - elements: Element[]; - } - export interface Quantifier extends NodeBase { - type: "Quantifier"; - parent: Pattern | Disjunction | Group | CapturingGroup | LookaroundAssertion; - min: number; - max: number; - greedy: boolean; - element: QuantifiableElement; - } - export interface CharacterClass extends NodeBase { - type: "CharacterClass"; - parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; - negate: boolean; - elements: CharacterClassElement[]; - } - export interface CharacterClassRange extends NodeBase { - type: "CharacterClassRange"; - parent: CharacterClass; - min: Character; - max: Character; - } - export type Assertion = BoundaryAssertion | LookaroundAssertion; - export type BoundaryAssertion = EdgeAssertion | WordBoundaryAssertion; - export interface EdgeAssertion extends NodeBase { - type: "Assertion"; - parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; - kind: "start" | "end"; - } - export interface WordBoundaryAssertion extends NodeBase { - type: "Assertion"; - parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; - kind: "word"; - negate: boolean; - } - export type CharacterSet = AnyCharacterSet | EscapeCharacterSet | UnicodePropertyCharacterSet; - export interface AnyCharacterSet extends NodeBase { - type: "CharacterSet"; - parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; - kind: "any"; - } - export interface EscapeCharacterSet extends NodeBase { - type: "CharacterSet"; - parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion; - kind: "digit" | "space" | "word"; - negate: boolean; - } - export interface UnicodePropertyCharacterSet extends NodeBase { - type: "CharacterSet"; - parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion; - kind: "property"; - key: string; - value: string | null; - negate: boolean; - } - export interface Character extends NodeBase { - type: "Character"; - parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion | CharacterClassRange; - value: number; - } - export interface Backreference extends NodeBase { - type: "Backreference"; - parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; - ref: number | string; - resolved: CapturingGroup; - } - export interface Flags extends NodeBase { - type: "Flags"; - parent: RegExpLiteral | null; - dotAll: boolean; - global: boolean; - ignoreCase: boolean; - multiline: boolean; - sticky: boolean; - unicode: boolean; - } -} - -declare module 'regexpp/parser' { - import { Flags, RegExpLiteral, Pattern } from "regexpp/ast"; - export namespace RegExpParser { - interface Options { - strict?: boolean; - ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018; - } - } - export class RegExpParser { - constructor(options?: RegExpParser.Options); - parseLiteral(source: string, start?: number, end?: number): RegExpLiteral; - parseFlags(source: string, start?: number, end?: number): Flags; - parsePattern(source: string, start?: number, end?: number, uFlag?: boolean): Pattern; - } -} - -declare module 'regexpp/validator' { - export namespace RegExpValidator { - interface Options { - strict?: boolean; - ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018; - onLiteralEnter?(start: number): void; - onLiteralLeave?(start: number, end: number): void; - onFlags?(start: number, end: number, global: boolean, ignoreCase: boolean, multiline: boolean, unicode: boolean, sticky: boolean, dotAll: boolean): void; - onPatternEnter?(start: number): void; - onPatternLeave?(start: number, end: number): void; - onDisjunctionEnter?(start: number): void; - onDisjunctionLeave?(start: number, end: number): void; - onAlternativeEnter?(start: number, index: number): void; - onAlternativeLeave?(start: number, end: number, index: number): void; - onGroupEnter?(start: number): void; - onGroupLeave?(start: number, end: number): void; - onCapturingGroupEnter?(start: number, name: string | null): void; - onCapturingGroupLeave?(start: number, end: number, name: string | null): void; - onQuantifier?(start: number, end: number, min: number, max: number, greedy: boolean): void; - onLookaroundAssertionEnter?(start: number, kind: "lookahead" | "lookbehind", negate: boolean): void; - onLookaroundAssertionLeave?(start: number, end: number, kind: "lookahead" | "lookbehind", negate: boolean): void; - onEdgeAssertion?(start: number, end: number, kind: "start" | "end"): void; - onWordBoundaryAssertion?(start: number, end: number, kind: "word", negate: boolean): void; - onAnyCharacterSet?(start: number, end: number, kind: "any"): void; - onEscapeCharacterSet?(start: number, end: number, kind: "digit" | "space" | "word", negate: boolean): void; - onUnicodePropertyCharacterSet?(start: number, end: number, kind: "property", key: string, value: string | null, negate: boolean): void; - onCharacter?(start: number, end: number, value: number): void; - onBackreference?(start: number, end: number, ref: number | string): void; - onCharacterClassEnter?(start: number, negate: boolean): void; - onCharacterClassLeave?(start: number, end: number, negate: boolean): void; - onCharacterClassRange?(start: number, end: number, min: number, max: number): void; - } - } - export class RegExpValidator { - constructor(options?: RegExpValidator.Options); - validateLiteral(source: string, start?: number, end?: number): void; - validateFlags(source: string, start?: number, end?: number): void; - validatePattern(source: string, start?: number, end?: number, uFlag?: boolean): void; - } -} +// Generated by dts-bundle v0.7.3 + +declare module 'regexpp' { + import * as AST from "regexpp/ast"; + import { RegExpParser } from "regexpp/parser"; + import { RegExpValidator } from "regexpp/validator"; + export { AST, RegExpParser, RegExpValidator }; + export function parseRegExpLiteral(source: string, options?: RegExpParser.Options): AST.RegExpLiteral; + export function validateRegExpLiteral(source: string, options?: RegExpValidator.Options): void; +} + +declare module 'regexpp/ast' { + export type Node = BranchNode | LeafNode; + export type BranchNode = RegExpLiteral | Pattern | Disjunction | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion | CharacterClassRange; + export type LeafNode = BoundaryAssertion | CharacterSet | Character | Backreference | Flags; + export type Element = Disjunction | Group | CapturingGroup | Quantifier | CharacterClass | Assertion | CharacterSet | Character | Backreference; + export type CharacterClassElement = EscapeCharacterSet | UnicodePropertyCharacterSet | Character | CharacterClassRange; + export type AlternativeElement = Group | CapturingGroup | Quantifier | CharacterClass | Assertion | CharacterSet | Character | Backreference; + export type QuantifiableElement = Group | CapturingGroup | CharacterClass | LookaheadAssertion | CharacterSet | Character | Backreference; + export interface NodeBase { + type: Node["type"]; + parent: Node["parent"]; + start: number; + end: number; + raw: string; + } + export interface RegExpLiteral extends NodeBase { + type: "RegExpLiteral"; + parent: null; + pattern: Pattern; + flags: Flags; + } + export interface Pattern extends NodeBase { + type: "Pattern"; + parent: RegExpLiteral | null; + elements: Element[]; + } + export interface Disjunction extends NodeBase { + type: "Disjunction"; + parent: Pattern | Group | CapturingGroup | LookaroundAssertion; + alternatives: AlternativeElement[][]; + } + export interface Group extends NodeBase { + type: "Group"; + parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; + elements: Element[]; + } + export interface CapturingGroup extends NodeBase { + type: "CapturingGroup"; + parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; + name: string | null; + elements: Element[]; + references: Backreference[]; + } + export type LookaroundAssertion = LookaheadAssertion | LookbehindAssertion; + export interface LookaheadAssertion extends NodeBase { + type: "Assertion"; + parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; + kind: "lookahead"; + negate: boolean; + elements: Element[]; + } + export interface LookbehindAssertion extends NodeBase { + type: "Assertion"; + parent: Pattern | Disjunction | Group | CapturingGroup | LookaroundAssertion; + kind: "lookbehind"; + negate: boolean; + elements: Element[]; + } + export interface Quantifier extends NodeBase { + type: "Quantifier"; + parent: Pattern | Disjunction | Group | CapturingGroup | LookaroundAssertion; + min: number; + max: number; + greedy: boolean; + element: QuantifiableElement; + } + export interface CharacterClass extends NodeBase { + type: "CharacterClass"; + parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; + negate: boolean; + elements: CharacterClassElement[]; + } + export interface CharacterClassRange extends NodeBase { + type: "CharacterClassRange"; + parent: CharacterClass; + min: Character; + max: Character; + } + export type Assertion = BoundaryAssertion | LookaroundAssertion; + export type BoundaryAssertion = EdgeAssertion | WordBoundaryAssertion; + export interface EdgeAssertion extends NodeBase { + type: "Assertion"; + parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; + kind: "start" | "end"; + } + export interface WordBoundaryAssertion extends NodeBase { + type: "Assertion"; + parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; + kind: "word"; + negate: boolean; + } + export type CharacterSet = AnyCharacterSet | EscapeCharacterSet | UnicodePropertyCharacterSet; + export interface AnyCharacterSet extends NodeBase { + type: "CharacterSet"; + parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; + kind: "any"; + } + export interface EscapeCharacterSet extends NodeBase { + type: "CharacterSet"; + parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion; + kind: "digit" | "space" | "word"; + negate: boolean; + } + export interface UnicodePropertyCharacterSet extends NodeBase { + type: "CharacterSet"; + parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion; + kind: "property"; + key: string; + value: string | null; + negate: boolean; + } + export interface Character extends NodeBase { + type: "Character"; + parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion | CharacterClassRange; + value: number; + } + export interface Backreference extends NodeBase { + type: "Backreference"; + parent: Pattern | Disjunction | Group | CapturingGroup | Quantifier | LookaroundAssertion; + ref: number | string; + resolved: CapturingGroup; + } + export interface Flags extends NodeBase { + type: "Flags"; + parent: RegExpLiteral | null; + dotAll: boolean; + global: boolean; + ignoreCase: boolean; + multiline: boolean; + sticky: boolean; + unicode: boolean; + } +} + +declare module 'regexpp/parser' { + import { Flags, RegExpLiteral, Pattern } from "regexpp/ast"; + export namespace RegExpParser { + interface Options { + strict?: boolean; + ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018; + } + } + export class RegExpParser { + constructor(options?: RegExpParser.Options); + parseLiteral(source: string, start?: number, end?: number): RegExpLiteral; + parseFlags(source: string, start?: number, end?: number): Flags; + parsePattern(source: string, start?: number, end?: number, uFlag?: boolean): Pattern; + } +} + +declare module 'regexpp/validator' { + export namespace RegExpValidator { + interface Options { + strict?: boolean; + ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018; + onLiteralEnter?(start: number): void; + onLiteralLeave?(start: number, end: number): void; + onFlags?(start: number, end: number, global: boolean, ignoreCase: boolean, multiline: boolean, unicode: boolean, sticky: boolean, dotAll: boolean): void; + onPatternEnter?(start: number): void; + onPatternLeave?(start: number, end: number): void; + onDisjunctionEnter?(start: number): void; + onDisjunctionLeave?(start: number, end: number): void; + onAlternativeEnter?(start: number, index: number): void; + onAlternativeLeave?(start: number, end: number, index: number): void; + onGroupEnter?(start: number): void; + onGroupLeave?(start: number, end: number): void; + onCapturingGroupEnter?(start: number, name: string | null): void; + onCapturingGroupLeave?(start: number, end: number, name: string | null): void; + onQuantifier?(start: number, end: number, min: number, max: number, greedy: boolean): void; + onLookaroundAssertionEnter?(start: number, kind: "lookahead" | "lookbehind", negate: boolean): void; + onLookaroundAssertionLeave?(start: number, end: number, kind: "lookahead" | "lookbehind", negate: boolean): void; + onEdgeAssertion?(start: number, end: number, kind: "start" | "end"): void; + onWordBoundaryAssertion?(start: number, end: number, kind: "word", negate: boolean): void; + onAnyCharacterSet?(start: number, end: number, kind: "any"): void; + onEscapeCharacterSet?(start: number, end: number, kind: "digit" | "space" | "word", negate: boolean): void; + onUnicodePropertyCharacterSet?(start: number, end: number, kind: "property", key: string, value: string | null, negate: boolean): void; + onCharacter?(start: number, end: number, value: number): void; + onBackreference?(start: number, end: number, ref: number | string): void; + onCharacterClassEnter?(start: number, negate: boolean): void; + onCharacterClassLeave?(start: number, end: number, negate: boolean): void; + onCharacterClassRange?(start: number, end: number, min: number, max: number): void; + } + } + export class RegExpValidator { + constructor(options?: RegExpValidator.Options); + validateLiteral(source: string, start?: number, end?: number): void; + validateFlags(source: string, start?: number, end?: number): void; + validatePattern(source: string, start?: number, end?: number, uFlag?: boolean): void; + } +} + diff --git a/tools/node_modules/eslint/node_modules/regexpp/index.js b/tools/node_modules/eslint/node_modules/regexpp/index.js index 743f98d4673c20..b6f87429aa1216 100644 --- a/tools/node_modules/eslint/node_modules/regexpp/index.js +++ b/tools/node_modules/eslint/node_modules/regexpp/index.js @@ -1,6 +1,4 @@ -/*! - * @author Toru Nagashima - */ +/*! @author Toru Nagashima */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); @@ -20,24 +18,24 @@ function last(xs) { return xs.length === 0 ? undefined : xs[xs.length - 1]; } -var legacyImpl = { - at: function (s, end, i) { +const legacyImpl = { + at(s, end, i) { return i < end ? s.charCodeAt(i) : -1; }, - width: function (c) { + width(c) { return 1; - }, + } }; -var unicodeImpl = { - at: function (s, end, i) { +const unicodeImpl = { + at(s, end, i) { return i < end ? s.codePointAt(i) : -1; }, - width: function (c) { + width(c) { return c > 0xffff ? 2 : 1; - }, + } }; -var Reader = (function () { - function Reader() { +class Reader { + constructor() { this._impl = legacyImpl; this._s = ""; this._i = 0; @@ -50,56 +48,32 @@ var Reader = (function () { this._w3 = 1; this._cp4 = -1; } - Object.defineProperty(Reader.prototype, "source", { - get: function () { - return this._s; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Reader.prototype, "index", { - get: function () { - return this._i; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Reader.prototype, "currentCodePoint", { - get: function () { - return this._cp1; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Reader.prototype, "nextCodePoint", { - get: function () { - return this._cp2; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Reader.prototype, "nextCodePoint2", { - get: function () { - return this._cp3; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Reader.prototype, "nextCodePoint3", { - get: function () { - return this._cp4; - }, - enumerable: true, - configurable: true - }); - Reader.prototype.reset = function (source, start, end, uFlag) { + get source() { + return this._s; + } + get index() { + return this._i; + } + get currentCodePoint() { + return this._cp1; + } + get nextCodePoint() { + return this._cp2; + } + get nextCodePoint2() { + return this._cp3; + } + get nextCodePoint3() { + return this._cp4; + } + reset(source, start, end, uFlag) { this._impl = uFlag ? unicodeImpl : legacyImpl; this._s = source; this._end = end; this.rewind(start); - }; - Reader.prototype.rewind = function (index) { - var impl = this._impl; + } + rewind(index) { + const impl = this._impl; this._i = index; this._cp1 = impl.at(this._s, this._end, index); this._w1 = impl.width(this._cp1); @@ -108,10 +82,10 @@ var Reader = (function () { this._cp3 = impl.at(this._s, this._end, index + this._w1 + this._w2); this._w3 = impl.width(this._cp3); this._cp4 = impl.at(this._s, this._end, index + this._w1 + this._w2 + this._w3); - }; - Reader.prototype.advance = function () { + } + advance() { if (this._cp1 !== -1) { - var impl = this._impl; + const impl = this._impl; this._i += this._w1; this._cp1 = this._cp2; this._w1 = this._w2; @@ -121,23 +95,23 @@ var Reader = (function () { this._w3 = impl.width(this._cp3); this._cp4 = impl.at(this._s, this._end, this._i + this._w1 + this._w2 + this._w3); } - }; - Reader.prototype.eat = function (cp) { + } + eat(cp) { if (this._cp1 === cp) { this.advance(); return true; } return false; - }; - Reader.prototype.eat2 = function (cp1, cp2) { + } + eat2(cp1, cp2) { if (this._cp1 === cp1 && this._cp2 === cp2) { this.advance(); this.advance(); return true; } return false; - }; - Reader.prototype.eat3 = function (cp1, cp2, cp3) { + } + eat3(cp1, cp2, cp3) { if (this._cp1 === cp1 && this._cp2 === cp2 && this._cp3 === cp3) { this.advance(); this.advance(); @@ -145,63 +119,37 @@ var Reader = (function () { return true; } return false; - }; - return Reader; -}()); + } +} -var __extends = (undefined && undefined.__extends) || (function () { - 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]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var RegExpSyntaxError = (function (_super) { - __extends(RegExpSyntaxError, _super); - function RegExpSyntaxError(source, uFlag, index, message) { - var _this = this; +class RegExpSyntaxError extends SyntaxError { + constructor(source, uFlag, index, message) { if (source) { if (source[0] !== "/") { - source = "/" + source + "/" + (uFlag ? "u" : ""); + source = `/${source}/${uFlag ? "u" : ""}`; } - source = ": " + source; + source = `: ${source}`; } - _this = _super.call(this, "Invalid regular expression" + source + ": " + message) || this; - _this.index = index; - return _this; + super(`Invalid regular expression${source}: ${message}`); + this.index = index; } - return RegExpSyntaxError; -}(SyntaxError)); +} function isIdStart(cp) { - if (cp < 0x41) - return false; - if (cp < 0x5b) - return true; - if (cp < 0x61) - return false; - if (cp < 0x7b) - return true; + if (cp < 0x41) return false; + if (cp < 0x5b) return true; + if (cp < 0x61) return false; + if (cp < 0x7b) return true; return isLargeIdStart(cp); } function isIdContinue(cp) { - if (cp < 0x30) - return false; - if (cp < 0x3a) - return true; - if (cp < 0x41) - return false; - if (cp < 0x5b) - return true; - if (cp === 0x5f) - return true; - if (cp < 0x61) - return false; - if (cp < 0x7b) - return true; + if (cp < 0x30) return false; + if (cp < 0x3a) return true; + if (cp < 0x41) return false; + if (cp < 0x5b) return true; + if (cp === 0x5f) return true; + if (cp < 0x61) return false; + if (cp < 0x7b) return true; return isLargeIdStart(cp) || isLargeIdContinue(cp); } function isLargeIdStart(cp) { @@ -212,626 +160,360 @@ function isLargeIdStart(cp) { if (cp < 0x37a) { if (cp < 0x294) { if (cp < 0xf8) { - if (cp === 0xaa) - return true; - if (cp === 0xb5) - return true; - if (cp === 0xba) - return true; - if (cp < 0xc0) - return false; - if (cp < 0xd7) - return true; - if (cp < 0xd8) - return false; - if (cp < 0xf7) - return true; + if (cp === 0xaa) return true; + if (cp === 0xb5) return true; + if (cp === 0xba) return true; + if (cp < 0xc0) return false; + if (cp < 0xd7) return true; + if (cp < 0xd8) return false; + if (cp < 0xf7) return true; return false; } - if (cp < 0x1bb) - return true; - if (cp === 0x1bb) - return true; - if (cp < 0x1bc) - return false; - if (cp < 0x1c0) - return true; - if (cp < 0x1c0) - return false; - if (cp < 0x1c4) - return true; - if (cp < 0x1c4) - return false; - if (cp < 0x294) - return true; + if (cp < 0x1bb) return true; + if (cp === 0x1bb) return true; + if (cp < 0x1bc) return false; + if (cp < 0x1c0) return true; + if (cp < 0x1c0) return false; + if (cp < 0x1c4) return true; + if (cp < 0x1c4) return false; + if (cp < 0x294) return true; return false; } if (cp < 0x2ec) { - if (cp === 0x294) - return true; - if (cp < 0x295) - return false; - if (cp < 0x2b0) - return true; - if (cp < 0x2b0) - return false; - if (cp < 0x2c2) - return true; - if (cp < 0x2c6) - return false; - if (cp < 0x2d2) - return true; - if (cp < 0x2e0) - return false; - if (cp < 0x2e5) - return true; + if (cp === 0x294) return true; + if (cp < 0x295) return false; + if (cp < 0x2b0) return true; + if (cp < 0x2b0) return false; + if (cp < 0x2c2) return true; + if (cp < 0x2c6) return false; + if (cp < 0x2d2) return true; + if (cp < 0x2e0) return false; + if (cp < 0x2e5) return true; return false; } - if (cp === 0x2ec) - return true; - if (cp === 0x2ee) - return true; - if (cp < 0x370) - return false; - if (cp < 0x374) - return true; - if (cp === 0x374) - return true; - if (cp < 0x376) - return false; - if (cp < 0x378) - return true; + if (cp === 0x2ec) return true; + if (cp === 0x2ee) return true; + if (cp < 0x370) return false; + if (cp < 0x374) return true; + if (cp === 0x374) return true; + if (cp < 0x376) return false; + if (cp < 0x378) return true; return false; } if (cp < 0x531) { if (cp < 0x38c) { - if (cp === 0x37a) - return true; - if (cp < 0x37b) - return false; - if (cp < 0x37e) - return true; - if (cp === 0x37f) - return true; - if (cp === 0x386) - return true; - if (cp < 0x388) - return false; - if (cp < 0x38b) - return true; + if (cp === 0x37a) return true; + if (cp < 0x37b) return false; + if (cp < 0x37e) return true; + if (cp === 0x37f) return true; + if (cp === 0x386) return true; + if (cp < 0x388) return false; + if (cp < 0x38b) return true; return false; } - if (cp === 0x38c) - return true; - if (cp < 0x38e) - return false; - if (cp < 0x3a2) - return true; - if (cp < 0x3a3) - return false; - if (cp < 0x3f6) - return true; - if (cp < 0x3f7) - return false; - if (cp < 0x482) - return true; - if (cp < 0x48a) - return false; - if (cp < 0x530) - return true; + if (cp === 0x38c) return true; + if (cp < 0x38e) return false; + if (cp < 0x3a2) return true; + if (cp < 0x3a3) return false; + if (cp < 0x3f6) return true; + if (cp < 0x3f7) return false; + if (cp < 0x482) return true; + if (cp < 0x48a) return false; + if (cp < 0x530) return true; return false; } if (cp < 0x620) { - if (cp < 0x531) - return false; - if (cp < 0x557) - return true; - if (cp === 0x559) - return true; - if (cp < 0x561) - return false; - if (cp < 0x588) - return true; - if (cp < 0x5d0) - return false; - if (cp < 0x5eb) - return true; - if (cp < 0x5f0) - return false; - if (cp < 0x5f3) - return true; + if (cp < 0x531) return false; + if (cp < 0x557) return true; + if (cp === 0x559) return true; + if (cp < 0x561) return false; + if (cp < 0x588) return true; + if (cp < 0x5d0) return false; + if (cp < 0x5eb) return true; + if (cp < 0x5f0) return false; + if (cp < 0x5f3) return true; return false; } - if (cp < 0x640) - return true; - if (cp === 0x640) - return true; - if (cp < 0x641) - return false; - if (cp < 0x64b) - return true; - if (cp < 0x66e) - return false; - if (cp < 0x670) - return true; - if (cp < 0x671) - return false; - if (cp < 0x6d4) - return true; + if (cp < 0x640) return true; + if (cp === 0x640) return true; + if (cp < 0x641) return false; + if (cp < 0x64b) return true; + if (cp < 0x66e) return false; + if (cp < 0x670) return true; + if (cp < 0x671) return false; + if (cp < 0x6d4) return true; return false; } if (cp < 0x904) { if (cp < 0x7f4) { if (cp < 0x710) { - if (cp === 0x6d5) - return true; - if (cp < 0x6e5) - return false; - if (cp < 0x6e7) - return true; - if (cp < 0x6ee) - return false; - if (cp < 0x6f0) - return true; - if (cp < 0x6fa) - return false; - if (cp < 0x6fd) - return true; - if (cp === 0x6ff) - return true; + if (cp === 0x6d5) return true; + if (cp < 0x6e5) return false; + if (cp < 0x6e7) return true; + if (cp < 0x6ee) return false; + if (cp < 0x6f0) return true; + if (cp < 0x6fa) return false; + if (cp < 0x6fd) return true; + if (cp === 0x6ff) return true; return false; } - if (cp === 0x710) - return true; - if (cp < 0x712) - return false; - if (cp < 0x730) - return true; - if (cp < 0x74d) - return false; - if (cp < 0x7a6) - return true; - if (cp === 0x7b1) - return true; - if (cp < 0x7ca) - return false; - if (cp < 0x7eb) - return true; + if (cp === 0x710) return true; + if (cp < 0x712) return false; + if (cp < 0x730) return true; + if (cp < 0x74d) return false; + if (cp < 0x7a6) return true; + if (cp === 0x7b1) return true; + if (cp < 0x7ca) return false; + if (cp < 0x7eb) return true; return false; } if (cp < 0x828) { - if (cp < 0x7f4) - return false; - if (cp < 0x7f6) - return true; - if (cp === 0x7fa) - return true; - if (cp < 0x800) - return false; - if (cp < 0x816) - return true; - if (cp === 0x81a) - return true; - if (cp === 0x824) - return true; + if (cp < 0x7f4) return false; + if (cp < 0x7f6) return true; + if (cp === 0x7fa) return true; + if (cp < 0x800) return false; + if (cp < 0x816) return true; + if (cp === 0x81a) return true; + if (cp === 0x824) return true; return false; } - if (cp === 0x828) - return true; - if (cp < 0x840) - return false; - if (cp < 0x859) - return true; - if (cp < 0x860) - return false; - if (cp < 0x86b) - return true; - if (cp < 0x8a0) - return false; - if (cp < 0x8b5) - return true; - if (cp < 0x8b6) - return false; - if (cp < 0x8be) - return true; + if (cp === 0x828) return true; + if (cp < 0x840) return false; + if (cp < 0x859) return true; + if (cp < 0x860) return false; + if (cp < 0x86b) return true; + if (cp < 0x8a0) return false; + if (cp < 0x8b5) return true; + if (cp < 0x8b6) return false; + if (cp < 0x8be) return true; return false; } if (cp < 0x9b2) { if (cp < 0x972) { - if (cp < 0x904) - return false; - if (cp < 0x93a) - return true; - if (cp === 0x93d) - return true; - if (cp === 0x950) - return true; - if (cp < 0x958) - return false; - if (cp < 0x962) - return true; - if (cp === 0x971) - return true; + if (cp < 0x904) return false; + if (cp < 0x93a) return true; + if (cp === 0x93d) return true; + if (cp === 0x950) return true; + if (cp < 0x958) return false; + if (cp < 0x962) return true; + if (cp === 0x971) return true; return false; } - if (cp < 0x981) - return true; - if (cp < 0x985) - return false; - if (cp < 0x98d) - return true; - if (cp < 0x98f) - return false; - if (cp < 0x991) - return true; - if (cp < 0x993) - return false; - if (cp < 0x9a9) - return true; - if (cp < 0x9aa) - return false; - if (cp < 0x9b1) - return true; + if (cp < 0x981) return true; + if (cp < 0x985) return false; + if (cp < 0x98d) return true; + if (cp < 0x98f) return false; + if (cp < 0x991) return true; + if (cp < 0x993) return false; + if (cp < 0x9a9) return true; + if (cp < 0x9aa) return false; + if (cp < 0x9b1) return true; return false; } if (cp < 0x9df) { - if (cp === 0x9b2) - return true; - if (cp < 0x9b6) - return false; - if (cp < 0x9ba) - return true; - if (cp === 0x9bd) - return true; - if (cp === 0x9ce) - return true; - if (cp < 0x9dc) - return false; - if (cp < 0x9de) - return true; + if (cp === 0x9b2) return true; + if (cp < 0x9b6) return false; + if (cp < 0x9ba) return true; + if (cp === 0x9bd) return true; + if (cp === 0x9ce) return true; + if (cp < 0x9dc) return false; + if (cp < 0x9de) return true; return false; } - if (cp < 0x9e2) - return true; - if (cp < 0x9f0) - return false; - if (cp < 0x9f2) - return true; - if (cp === 0x9fc) - return true; - if (cp < 0xa05) - return false; - if (cp < 0xa0b) - return true; - if (cp < 0xa0f) - return false; - if (cp < 0xa11) - return true; - if (cp < 0xa13) - return false; - if (cp < 0xa29) - return true; + if (cp < 0x9e2) return true; + if (cp < 0x9f0) return false; + if (cp < 0x9f2) return true; + if (cp === 0x9fc) return true; + if (cp < 0xa05) return false; + if (cp < 0xa0b) return true; + if (cp < 0xa0f) return false; + if (cp < 0xa11) return true; + if (cp < 0xa13) return false; + if (cp < 0xa29) return true; return false; } if (cp < 0xc2a) { if (cp < 0xb2a) { if (cp < 0xaaa) { if (cp < 0xa5e) { - if (cp < 0xa2a) - return false; - if (cp < 0xa31) - return true; - if (cp < 0xa32) - return false; - if (cp < 0xa34) - return true; - if (cp < 0xa35) - return false; - if (cp < 0xa37) - return true; - if (cp < 0xa38) - return false; - if (cp < 0xa3a) - return true; - if (cp < 0xa59) - return false; - if (cp < 0xa5d) - return true; + if (cp < 0xa2a) return false; + if (cp < 0xa31) return true; + if (cp < 0xa32) return false; + if (cp < 0xa34) return true; + if (cp < 0xa35) return false; + if (cp < 0xa37) return true; + if (cp < 0xa38) return false; + if (cp < 0xa3a) return true; + if (cp < 0xa59) return false; + if (cp < 0xa5d) return true; return false; } - if (cp === 0xa5e) - return true; - if (cp < 0xa72) - return false; - if (cp < 0xa75) - return true; - if (cp < 0xa85) - return false; - if (cp < 0xa8e) - return true; - if (cp < 0xa8f) - return false; - if (cp < 0xa92) - return true; - if (cp < 0xa93) - return false; - if (cp < 0xaa9) - return true; + if (cp === 0xa5e) return true; + if (cp < 0xa72) return false; + if (cp < 0xa75) return true; + if (cp < 0xa85) return false; + if (cp < 0xa8e) return true; + if (cp < 0xa8f) return false; + if (cp < 0xa92) return true; + if (cp < 0xa93) return false; + if (cp < 0xaa9) return true; return false; } if (cp < 0xae0) { - if (cp < 0xaaa) - return false; - if (cp < 0xab1) - return true; - if (cp < 0xab2) - return false; - if (cp < 0xab4) - return true; - if (cp < 0xab5) - return false; - if (cp < 0xaba) - return true; - if (cp === 0xabd) - return true; - if (cp === 0xad0) - return true; + if (cp < 0xaaa) return false; + if (cp < 0xab1) return true; + if (cp < 0xab2) return false; + if (cp < 0xab4) return true; + if (cp < 0xab5) return false; + if (cp < 0xaba) return true; + if (cp === 0xabd) return true; + if (cp === 0xad0) return true; return false; } - if (cp < 0xae2) - return true; - if (cp === 0xaf9) - return true; - if (cp < 0xb05) - return false; - if (cp < 0xb0d) - return true; - if (cp < 0xb0f) - return false; - if (cp < 0xb11) - return true; - if (cp < 0xb13) - return false; - if (cp < 0xb29) - return true; + if (cp < 0xae2) return true; + if (cp === 0xaf9) return true; + if (cp < 0xb05) return false; + if (cp < 0xb0d) return true; + if (cp < 0xb0f) return false; + if (cp < 0xb11) return true; + if (cp < 0xb13) return false; + if (cp < 0xb29) return true; return false; } if (cp < 0xb92) { if (cp < 0xb5f) { - if (cp < 0xb2a) - return false; - if (cp < 0xb31) - return true; - if (cp < 0xb32) - return false; - if (cp < 0xb34) - return true; - if (cp < 0xb35) - return false; - if (cp < 0xb3a) - return true; - if (cp === 0xb3d) - return true; - if (cp < 0xb5c) - return false; - if (cp < 0xb5e) - return true; + if (cp < 0xb2a) return false; + if (cp < 0xb31) return true; + if (cp < 0xb32) return false; + if (cp < 0xb34) return true; + if (cp < 0xb35) return false; + if (cp < 0xb3a) return true; + if (cp === 0xb3d) return true; + if (cp < 0xb5c) return false; + if (cp < 0xb5e) return true; return false; } - if (cp < 0xb62) - return true; - if (cp === 0xb71) - return true; - if (cp === 0xb83) - return true; - if (cp < 0xb85) - return false; - if (cp < 0xb8b) - return true; - if (cp < 0xb8e) - return false; - if (cp < 0xb91) - return true; + if (cp < 0xb62) return true; + if (cp === 0xb71) return true; + if (cp === 0xb83) return true; + if (cp < 0xb85) return false; + if (cp < 0xb8b) return true; + if (cp < 0xb8e) return false; + if (cp < 0xb91) return true; return false; } if (cp < 0xba8) { - if (cp < 0xb92) - return false; - if (cp < 0xb96) - return true; - if (cp < 0xb99) - return false; - if (cp < 0xb9b) - return true; - if (cp === 0xb9c) - return true; - if (cp < 0xb9e) - return false; - if (cp < 0xba0) - return true; - if (cp < 0xba3) - return false; - if (cp < 0xba5) - return true; + if (cp < 0xb92) return false; + if (cp < 0xb96) return true; + if (cp < 0xb99) return false; + if (cp < 0xb9b) return true; + if (cp === 0xb9c) return true; + if (cp < 0xb9e) return false; + if (cp < 0xba0) return true; + if (cp < 0xba3) return false; + if (cp < 0xba5) return true; return false; } - if (cp < 0xbab) - return true; - if (cp < 0xbae) - return false; - if (cp < 0xbba) - return true; - if (cp === 0xbd0) - return true; - if (cp < 0xc05) - return false; - if (cp < 0xc0d) - return true; - if (cp < 0xc0e) - return false; - if (cp < 0xc11) - return true; - if (cp < 0xc12) - return false; - if (cp < 0xc29) - return true; + if (cp < 0xbab) return true; + if (cp < 0xbae) return false; + if (cp < 0xbba) return true; + if (cp === 0xbd0) return true; + if (cp < 0xc05) return false; + if (cp < 0xc0d) return true; + if (cp < 0xc0e) return false; + if (cp < 0xc11) return true; + if (cp < 0xc12) return false; + if (cp < 0xc29) return true; return false; } if (cp < 0xd5f) { if (cp < 0xcbd) { if (cp < 0xc85) { - if (cp < 0xc2a) - return false; - if (cp < 0xc3a) - return true; - if (cp === 0xc3d) - return true; - if (cp < 0xc58) - return false; - if (cp < 0xc5b) - return true; - if (cp < 0xc60) - return false; - if (cp < 0xc62) - return true; - if (cp === 0xc80) - return true; + if (cp < 0xc2a) return false; + if (cp < 0xc3a) return true; + if (cp === 0xc3d) return true; + if (cp < 0xc58) return false; + if (cp < 0xc5b) return true; + if (cp < 0xc60) return false; + if (cp < 0xc62) return true; + if (cp === 0xc80) return true; return false; } - if (cp < 0xc8d) - return true; - if (cp < 0xc8e) - return false; - if (cp < 0xc91) - return true; - if (cp < 0xc92) - return false; - if (cp < 0xca9) - return true; - if (cp < 0xcaa) - return false; - if (cp < 0xcb4) - return true; - if (cp < 0xcb5) - return false; - if (cp < 0xcba) - return true; + if (cp < 0xc8d) return true; + if (cp < 0xc8e) return false; + if (cp < 0xc91) return true; + if (cp < 0xc92) return false; + if (cp < 0xca9) return true; + if (cp < 0xcaa) return false; + if (cp < 0xcb4) return true; + if (cp < 0xcb5) return false; + if (cp < 0xcba) return true; return false; } if (cp < 0xd0e) { - if (cp === 0xcbd) - return true; - if (cp === 0xcde) - return true; - if (cp < 0xce0) - return false; - if (cp < 0xce2) - return true; - if (cp < 0xcf1) - return false; - if (cp < 0xcf3) - return true; - if (cp < 0xd05) - return false; - if (cp < 0xd0d) - return true; + if (cp === 0xcbd) return true; + if (cp === 0xcde) return true; + if (cp < 0xce0) return false; + if (cp < 0xce2) return true; + if (cp < 0xcf1) return false; + if (cp < 0xcf3) return true; + if (cp < 0xd05) return false; + if (cp < 0xd0d) return true; return false; } - if (cp < 0xd11) - return true; - if (cp < 0xd12) - return false; - if (cp < 0xd3b) - return true; - if (cp === 0xd3d) - return true; - if (cp === 0xd4e) - return true; - if (cp < 0xd54) - return false; - if (cp < 0xd57) - return true; + if (cp < 0xd11) return true; + if (cp < 0xd12) return false; + if (cp < 0xd3b) return true; + if (cp === 0xd3d) return true; + if (cp === 0xd4e) return true; + if (cp < 0xd54) return false; + if (cp < 0xd57) return true; return false; } if (cp < 0xe46) { if (cp < 0xdbd) { - if (cp < 0xd5f) - return false; - if (cp < 0xd62) - return true; - if (cp < 0xd7a) - return false; - if (cp < 0xd80) - return true; - if (cp < 0xd85) - return false; - if (cp < 0xd97) - return true; - if (cp < 0xd9a) - return false; - if (cp < 0xdb2) - return true; - if (cp < 0xdb3) - return false; - if (cp < 0xdbc) - return true; + if (cp < 0xd5f) return false; + if (cp < 0xd62) return true; + if (cp < 0xd7a) return false; + if (cp < 0xd80) return true; + if (cp < 0xd85) return false; + if (cp < 0xd97) return true; + if (cp < 0xd9a) return false; + if (cp < 0xdb2) return true; + if (cp < 0xdb3) return false; + if (cp < 0xdbc) return true; return false; } - if (cp === 0xdbd) - return true; - if (cp < 0xdc0) - return false; - if (cp < 0xdc7) - return true; - if (cp < 0xe01) - return false; - if (cp < 0xe31) - return true; - if (cp < 0xe32) - return false; - if (cp < 0xe34) - return true; - if (cp < 0xe40) - return false; - if (cp < 0xe46) - return true; + if (cp === 0xdbd) return true; + if (cp < 0xdc0) return false; + if (cp < 0xdc7) return true; + if (cp < 0xe01) return false; + if (cp < 0xe31) return true; + if (cp < 0xe32) return false; + if (cp < 0xe34) return true; + if (cp < 0xe40) return false; + if (cp < 0xe46) return true; return false; } if (cp < 0xe8d) { - if (cp === 0xe46) - return true; - if (cp < 0xe81) - return false; - if (cp < 0xe83) - return true; - if (cp === 0xe84) - return true; - if (cp < 0xe87) - return false; - if (cp < 0xe89) - return true; - if (cp === 0xe8a) - return true; + if (cp === 0xe46) return true; + if (cp < 0xe81) return false; + if (cp < 0xe83) return true; + if (cp === 0xe84) return true; + if (cp < 0xe87) return false; + if (cp < 0xe89) return true; + if (cp === 0xe8a) return true; return false; } - if (cp === 0xe8d) - return true; - if (cp < 0xe94) - return false; - if (cp < 0xe98) - return true; - if (cp < 0xe99) - return false; - if (cp < 0xea0) - return true; - if (cp < 0xea1) - return false; - if (cp < 0xea4) - return true; - if (cp === 0xea5) - return true; - if (cp === 0xea7) - return true; + if (cp === 0xe8d) return true; + if (cp < 0xe94) return false; + if (cp < 0xe98) return true; + if (cp < 0xe99) return false; + if (cp < 0xea0) return true; + if (cp < 0xea1) return false; + if (cp < 0xea4) return true; + if (cp === 0xea5) return true; + if (cp === 0xea7) return true; return false; } if (cp < 0x1c5a) { @@ -839,648 +521,371 @@ function isLargeIdStart(cp) { if (cp < 0x10a0) { if (cp < 0xf88) { if (cp < 0xec6) { - if (cp < 0xeaa) - return false; - if (cp < 0xeac) - return true; - if (cp < 0xead) - return false; - if (cp < 0xeb1) - return true; - if (cp < 0xeb2) - return false; - if (cp < 0xeb4) - return true; - if (cp === 0xebd) - return true; - if (cp < 0xec0) - return false; - if (cp < 0xec5) - return true; + if (cp < 0xeaa) return false; + if (cp < 0xeac) return true; + if (cp < 0xead) return false; + if (cp < 0xeb1) return true; + if (cp < 0xeb2) return false; + if (cp < 0xeb4) return true; + if (cp === 0xebd) return true; + if (cp < 0xec0) return false; + if (cp < 0xec5) return true; return false; } - if (cp === 0xec6) - return true; - if (cp < 0xedc) - return false; - if (cp < 0xee0) - return true; - if (cp === 0xf00) - return true; - if (cp < 0xf40) - return false; - if (cp < 0xf48) - return true; - if (cp < 0xf49) - return false; - if (cp < 0xf6d) - return true; + if (cp === 0xec6) return true; + if (cp < 0xedc) return false; + if (cp < 0xee0) return true; + if (cp === 0xf00) return true; + if (cp < 0xf40) return false; + if (cp < 0xf48) return true; + if (cp < 0xf49) return false; + if (cp < 0xf6d) return true; return false; } if (cp < 0x1061) { - if (cp < 0xf88) - return false; - if (cp < 0xf8d) - return true; - if (cp < 0x1000) - return false; - if (cp < 0x102b) - return true; - if (cp === 0x103f) - return true; - if (cp < 0x1050) - return false; - if (cp < 0x1056) - return true; - if (cp < 0x105a) - return false; - if (cp < 0x105e) - return true; + if (cp < 0xf88) return false; + if (cp < 0xf8d) return true; + if (cp < 0x1000) return false; + if (cp < 0x102b) return true; + if (cp === 0x103f) return true; + if (cp < 0x1050) return false; + if (cp < 0x1056) return true; + if (cp < 0x105a) return false; + if (cp < 0x105e) return true; return false; } - if (cp === 0x1061) - return true; - if (cp < 0x1065) - return false; - if (cp < 0x1067) - return true; - if (cp < 0x106e) - return false; - if (cp < 0x1071) - return true; - if (cp < 0x1075) - return false; - if (cp < 0x1082) - return true; - if (cp === 0x108e) - return true; + if (cp === 0x1061) return true; + if (cp < 0x1065) return false; + if (cp < 0x1067) return true; + if (cp < 0x106e) return false; + if (cp < 0x1071) return true; + if (cp < 0x1075) return false; + if (cp < 0x1082) return true; + if (cp === 0x108e) return true; return false; } if (cp < 0x1260) { if (cp < 0x10fd) { - if (cp < 0x10a0) - return false; - if (cp < 0x10c6) - return true; - if (cp === 0x10c7) - return true; - if (cp === 0x10cd) - return true; - if (cp < 0x10d0) - return false; - if (cp < 0x10fb) - return true; - if (cp === 0x10fc) - return true; + if (cp < 0x10a0) return false; + if (cp < 0x10c6) return true; + if (cp === 0x10c7) return true; + if (cp === 0x10cd) return true; + if (cp < 0x10d0) return false; + if (cp < 0x10fb) return true; + if (cp === 0x10fc) return true; return false; } - if (cp < 0x1249) - return true; - if (cp < 0x124a) - return false; - if (cp < 0x124e) - return true; - if (cp < 0x1250) - return false; - if (cp < 0x1257) - return true; - if (cp === 0x1258) - return true; - if (cp < 0x125a) - return false; - if (cp < 0x125e) - return true; + if (cp < 0x1249) return true; + if (cp < 0x124a) return false; + if (cp < 0x124e) return true; + if (cp < 0x1250) return false; + if (cp < 0x1257) return true; + if (cp === 0x1258) return true; + if (cp < 0x125a) return false; + if (cp < 0x125e) return true; return false; } if (cp < 0x12c0) { - if (cp < 0x1260) - return false; - if (cp < 0x1289) - return true; - if (cp < 0x128a) - return false; - if (cp < 0x128e) - return true; - if (cp < 0x1290) - return false; - if (cp < 0x12b1) - return true; - if (cp < 0x12b2) - return false; - if (cp < 0x12b6) - return true; - if (cp < 0x12b8) - return false; - if (cp < 0x12bf) - return true; + if (cp < 0x1260) return false; + if (cp < 0x1289) return true; + if (cp < 0x128a) return false; + if (cp < 0x128e) return true; + if (cp < 0x1290) return false; + if (cp < 0x12b1) return true; + if (cp < 0x12b2) return false; + if (cp < 0x12b6) return true; + if (cp < 0x12b8) return false; + if (cp < 0x12bf) return true; return false; } - if (cp === 0x12c0) - return true; - if (cp < 0x12c2) - return false; - if (cp < 0x12c6) - return true; - if (cp < 0x12c8) - return false; - if (cp < 0x12d7) - return true; - if (cp < 0x12d8) - return false; - if (cp < 0x1311) - return true; - if (cp < 0x1312) - return false; - if (cp < 0x1316) - return true; - if (cp < 0x1318) - return false; - if (cp < 0x135b) - return true; + if (cp === 0x12c0) return true; + if (cp < 0x12c2) return false; + if (cp < 0x12c6) return true; + if (cp < 0x12c8) return false; + if (cp < 0x12d7) return true; + if (cp < 0x12d8) return false; + if (cp < 0x1311) return true; + if (cp < 0x1312) return false; + if (cp < 0x1316) return true; + if (cp < 0x1318) return false; + if (cp < 0x135b) return true; return false; } if (cp < 0x1844) { if (cp < 0x170e) { if (cp < 0x1681) { - if (cp < 0x1380) - return false; - if (cp < 0x1390) - return true; - if (cp < 0x13a0) - return false; - if (cp < 0x13f6) - return true; - if (cp < 0x13f8) - return false; - if (cp < 0x13fe) - return true; - if (cp < 0x1401) - return false; - if (cp < 0x166d) - return true; - if (cp < 0x166f) - return false; - if (cp < 0x1680) - return true; + if (cp < 0x1380) return false; + if (cp < 0x1390) return true; + if (cp < 0x13a0) return false; + if (cp < 0x13f6) return true; + if (cp < 0x13f8) return false; + if (cp < 0x13fe) return true; + if (cp < 0x1401) return false; + if (cp < 0x166d) return true; + if (cp < 0x166f) return false; + if (cp < 0x1680) return true; return false; } - if (cp < 0x169b) - return true; - if (cp < 0x16a0) - return false; - if (cp < 0x16eb) - return true; - if (cp < 0x16ee) - return false; - if (cp < 0x16f1) - return true; - if (cp < 0x16f1) - return false; - if (cp < 0x16f9) - return true; - if (cp < 0x1700) - return false; - if (cp < 0x170d) - return true; + if (cp < 0x169b) return true; + if (cp < 0x16a0) return false; + if (cp < 0x16eb) return true; + if (cp < 0x16ee) return false; + if (cp < 0x16f1) return true; + if (cp < 0x16f1) return false; + if (cp < 0x16f9) return true; + if (cp < 0x1700) return false; + if (cp < 0x170d) return true; return false; } if (cp < 0x1780) { - if (cp < 0x170e) - return false; - if (cp < 0x1712) - return true; - if (cp < 0x1720) - return false; - if (cp < 0x1732) - return true; - if (cp < 0x1740) - return false; - if (cp < 0x1752) - return true; - if (cp < 0x1760) - return false; - if (cp < 0x176d) - return true; - if (cp < 0x176e) - return false; - if (cp < 0x1771) - return true; + if (cp < 0x170e) return false; + if (cp < 0x1712) return true; + if (cp < 0x1720) return false; + if (cp < 0x1732) return true; + if (cp < 0x1740) return false; + if (cp < 0x1752) return true; + if (cp < 0x1760) return false; + if (cp < 0x176d) return true; + if (cp < 0x176e) return false; + if (cp < 0x1771) return true; return false; } - if (cp < 0x17b4) - return true; - if (cp === 0x17d7) - return true; - if (cp === 0x17dc) - return true; - if (cp < 0x1820) - return false; - if (cp < 0x1843) - return true; - if (cp === 0x1843) - return true; + if (cp < 0x17b4) return true; + if (cp === 0x17d7) return true; + if (cp === 0x17dc) return true; + if (cp < 0x1820) return false; + if (cp < 0x1843) return true; + if (cp === 0x1843) return true; return false; } if (cp < 0x19b0) { if (cp < 0x18b0) { - if (cp < 0x1844) - return false; - if (cp < 0x1878) - return true; - if (cp < 0x1880) - return false; - if (cp < 0x1885) - return true; - if (cp < 0x1885) - return false; - if (cp < 0x1887) - return true; - if (cp < 0x1887) - return false; - if (cp < 0x18a9) - return true; - if (cp === 0x18aa) - return true; + if (cp < 0x1844) return false; + if (cp < 0x1878) return true; + if (cp < 0x1880) return false; + if (cp < 0x1885) return true; + if (cp < 0x1885) return false; + if (cp < 0x1887) return true; + if (cp < 0x1887) return false; + if (cp < 0x18a9) return true; + if (cp === 0x18aa) return true; return false; } - if (cp < 0x18f6) - return true; - if (cp < 0x1900) - return false; - if (cp < 0x191f) - return true; - if (cp < 0x1950) - return false; - if (cp < 0x196e) - return true; - if (cp < 0x1970) - return false; - if (cp < 0x1975) - return true; - if (cp < 0x1980) - return false; - if (cp < 0x19ac) - return true; + if (cp < 0x18f6) return true; + if (cp < 0x1900) return false; + if (cp < 0x191f) return true; + if (cp < 0x1950) return false; + if (cp < 0x196e) return true; + if (cp < 0x1970) return false; + if (cp < 0x1975) return true; + if (cp < 0x1980) return false; + if (cp < 0x19ac) return true; return false; } if (cp < 0x1b45) { - if (cp < 0x19b0) - return false; - if (cp < 0x19ca) - return true; - if (cp < 0x1a00) - return false; - if (cp < 0x1a17) - return true; - if (cp < 0x1a20) - return false; - if (cp < 0x1a55) - return true; - if (cp === 0x1aa7) - return true; - if (cp < 0x1b05) - return false; - if (cp < 0x1b34) - return true; + if (cp < 0x19b0) return false; + if (cp < 0x19ca) return true; + if (cp < 0x1a00) return false; + if (cp < 0x1a17) return true; + if (cp < 0x1a20) return false; + if (cp < 0x1a55) return true; + if (cp === 0x1aa7) return true; + if (cp < 0x1b05) return false; + if (cp < 0x1b34) return true; return false; } - if (cp < 0x1b4c) - return true; - if (cp < 0x1b83) - return false; - if (cp < 0x1ba1) - return true; - if (cp < 0x1bae) - return false; - if (cp < 0x1bb0) - return true; - if (cp < 0x1bba) - return false; - if (cp < 0x1be6) - return true; - if (cp < 0x1c00) - return false; - if (cp < 0x1c24) - return true; - if (cp < 0x1c4d) - return false; - if (cp < 0x1c50) - return true; + if (cp < 0x1b4c) return true; + if (cp < 0x1b83) return false; + if (cp < 0x1ba1) return true; + if (cp < 0x1bae) return false; + if (cp < 0x1bb0) return true; + if (cp < 0x1bba) return false; + if (cp < 0x1be6) return true; + if (cp < 0x1c00) return false; + if (cp < 0x1c24) return true; + if (cp < 0x1c4d) return false; + if (cp < 0x1c50) return true; return false; } if (cp < 0x2126) { if (cp < 0x1f5f) { if (cp < 0x1d79) { if (cp < 0x1cf5) { - if (cp < 0x1c5a) - return false; - if (cp < 0x1c78) - return true; - if (cp < 0x1c78) - return false; - if (cp < 0x1c7e) - return true; - if (cp < 0x1c80) - return false; - if (cp < 0x1c89) - return true; - if (cp < 0x1ce9) - return false; - if (cp < 0x1ced) - return true; - if (cp < 0x1cee) - return false; - if (cp < 0x1cf2) - return true; + if (cp < 0x1c5a) return false; + if (cp < 0x1c78) return true; + if (cp < 0x1c78) return false; + if (cp < 0x1c7e) return true; + if (cp < 0x1c80) return false; + if (cp < 0x1c89) return true; + if (cp < 0x1ce9) return false; + if (cp < 0x1ced) return true; + if (cp < 0x1cee) return false; + if (cp < 0x1cf2) return true; return false; } - if (cp < 0x1cf7) - return true; - if (cp < 0x1d00) - return false; - if (cp < 0x1d2c) - return true; - if (cp < 0x1d2c) - return false; - if (cp < 0x1d6b) - return true; - if (cp < 0x1d6b) - return false; - if (cp < 0x1d78) - return true; - if (cp === 0x1d78) - return true; + if (cp < 0x1cf7) return true; + if (cp < 0x1d00) return false; + if (cp < 0x1d2c) return true; + if (cp < 0x1d2c) return false; + if (cp < 0x1d6b) return true; + if (cp < 0x1d6b) return false; + if (cp < 0x1d78) return true; + if (cp === 0x1d78) return true; return false; } if (cp < 0x1f48) { - if (cp < 0x1d79) - return false; - if (cp < 0x1d9b) - return true; - if (cp < 0x1d9b) - return false; - if (cp < 0x1dc0) - return true; - if (cp < 0x1e00) - return false; - if (cp < 0x1f16) - return true; - if (cp < 0x1f18) - return false; - if (cp < 0x1f1e) - return true; - if (cp < 0x1f20) - return false; - if (cp < 0x1f46) - return true; + if (cp < 0x1d79) return false; + if (cp < 0x1d9b) return true; + if (cp < 0x1d9b) return false; + if (cp < 0x1dc0) return true; + if (cp < 0x1e00) return false; + if (cp < 0x1f16) return true; + if (cp < 0x1f18) return false; + if (cp < 0x1f1e) return true; + if (cp < 0x1f20) return false; + if (cp < 0x1f46) return true; return false; } - if (cp < 0x1f4e) - return true; - if (cp < 0x1f50) - return false; - if (cp < 0x1f58) - return true; - if (cp === 0x1f59) - return true; - if (cp === 0x1f5b) - return true; - if (cp === 0x1f5d) - return true; + if (cp < 0x1f4e) return true; + if (cp < 0x1f50) return false; + if (cp < 0x1f58) return true; + if (cp === 0x1f59) return true; + if (cp === 0x1f5b) return true; + if (cp === 0x1f5d) return true; return false; } if (cp < 0x1ff6) { if (cp < 0x1fc6) { - if (cp < 0x1f5f) - return false; - if (cp < 0x1f7e) - return true; - if (cp < 0x1f80) - return false; - if (cp < 0x1fb5) - return true; - if (cp < 0x1fb6) - return false; - if (cp < 0x1fbd) - return true; - if (cp === 0x1fbe) - return true; - if (cp < 0x1fc2) - return false; - if (cp < 0x1fc5) - return true; + if (cp < 0x1f5f) return false; + if (cp < 0x1f7e) return true; + if (cp < 0x1f80) return false; + if (cp < 0x1fb5) return true; + if (cp < 0x1fb6) return false; + if (cp < 0x1fbd) return true; + if (cp === 0x1fbe) return true; + if (cp < 0x1fc2) return false; + if (cp < 0x1fc5) return true; return false; } - if (cp < 0x1fcd) - return true; - if (cp < 0x1fd0) - return false; - if (cp < 0x1fd4) - return true; - if (cp < 0x1fd6) - return false; - if (cp < 0x1fdc) - return true; - if (cp < 0x1fe0) - return false; - if (cp < 0x1fed) - return true; - if (cp < 0x1ff2) - return false; - if (cp < 0x1ff5) - return true; + if (cp < 0x1fcd) return true; + if (cp < 0x1fd0) return false; + if (cp < 0x1fd4) return true; + if (cp < 0x1fd6) return false; + if (cp < 0x1fdc) return true; + if (cp < 0x1fe0) return false; + if (cp < 0x1fed) return true; + if (cp < 0x1ff2) return false; + if (cp < 0x1ff5) return true; return false; } if (cp < 0x2107) { - if (cp < 0x1ff6) - return false; - if (cp < 0x1ffd) - return true; - if (cp === 0x2071) - return true; - if (cp === 0x207f) - return true; - if (cp < 0x2090) - return false; - if (cp < 0x209d) - return true; - if (cp === 0x2102) - return true; + if (cp < 0x1ff6) return false; + if (cp < 0x1ffd) return true; + if (cp === 0x2071) return true; + if (cp === 0x207f) return true; + if (cp < 0x2090) return false; + if (cp < 0x209d) return true; + if (cp === 0x2102) return true; return false; } - if (cp === 0x2107) - return true; - if (cp < 0x210a) - return false; - if (cp < 0x2114) - return true; - if (cp === 0x2115) - return true; - if (cp === 0x2118) - return true; - if (cp < 0x2119) - return false; - if (cp < 0x211e) - return true; - if (cp === 0x2124) - return true; + if (cp === 0x2107) return true; + if (cp < 0x210a) return false; + if (cp < 0x2114) return true; + if (cp === 0x2115) return true; + if (cp === 0x2118) return true; + if (cp < 0x2119) return false; + if (cp < 0x211e) return true; + if (cp === 0x2124) return true; return false; } if (cp < 0x2d00) { if (cp < 0x2160) { if (cp < 0x2135) { - if (cp === 0x2126) - return true; - if (cp === 0x2128) - return true; - if (cp < 0x212a) - return false; - if (cp < 0x212e) - return true; - if (cp === 0x212e) - return true; - if (cp < 0x212f) - return false; - if (cp < 0x2135) - return true; + if (cp === 0x2126) return true; + if (cp === 0x2128) return true; + if (cp < 0x212a) return false; + if (cp < 0x212e) return true; + if (cp === 0x212e) return true; + if (cp < 0x212f) return false; + if (cp < 0x2135) return true; return false; } - if (cp < 0x2139) - return true; - if (cp === 0x2139) - return true; - if (cp < 0x213c) - return false; - if (cp < 0x2140) - return true; - if (cp < 0x2145) - return false; - if (cp < 0x214a) - return true; - if (cp === 0x214e) - return true; + if (cp < 0x2139) return true; + if (cp === 0x2139) return true; + if (cp < 0x213c) return false; + if (cp < 0x2140) return true; + if (cp < 0x2145) return false; + if (cp < 0x214a) return true; + if (cp === 0x214e) return true; return false; } if (cp < 0x2c60) { - if (cp < 0x2160) - return false; - if (cp < 0x2183) - return true; - if (cp < 0x2183) - return false; - if (cp < 0x2185) - return true; - if (cp < 0x2185) - return false; - if (cp < 0x2189) - return true; - if (cp < 0x2c00) - return false; - if (cp < 0x2c2f) - return true; - if (cp < 0x2c30) - return false; - if (cp < 0x2c5f) - return true; + if (cp < 0x2160) return false; + if (cp < 0x2183) return true; + if (cp < 0x2183) return false; + if (cp < 0x2185) return true; + if (cp < 0x2185) return false; + if (cp < 0x2189) return true; + if (cp < 0x2c00) return false; + if (cp < 0x2c2f) return true; + if (cp < 0x2c30) return false; + if (cp < 0x2c5f) return true; return false; } - if (cp < 0x2c7c) - return true; - if (cp < 0x2c7c) - return false; - if (cp < 0x2c7e) - return true; - if (cp < 0x2c7e) - return false; - if (cp < 0x2ce5) - return true; - if (cp < 0x2ceb) - return false; - if (cp < 0x2cef) - return true; - if (cp < 0x2cf2) - return false; - if (cp < 0x2cf4) - return true; + if (cp < 0x2c7c) return true; + if (cp < 0x2c7c) return false; + if (cp < 0x2c7e) return true; + if (cp < 0x2c7e) return false; + if (cp < 0x2ce5) return true; + if (cp < 0x2ceb) return false; + if (cp < 0x2cef) return true; + if (cp < 0x2cf2) return false; + if (cp < 0x2cf4) return true; return false; } if (cp < 0x2dc0) { if (cp < 0x2d80) { - if (cp < 0x2d00) - return false; - if (cp < 0x2d26) - return true; - if (cp === 0x2d27) - return true; - if (cp === 0x2d2d) - return true; - if (cp < 0x2d30) - return false; - if (cp < 0x2d68) - return true; - if (cp === 0x2d6f) - return true; + if (cp < 0x2d00) return false; + if (cp < 0x2d26) return true; + if (cp === 0x2d27) return true; + if (cp === 0x2d2d) return true; + if (cp < 0x2d30) return false; + if (cp < 0x2d68) return true; + if (cp === 0x2d6f) return true; return false; } - if (cp < 0x2d97) - return true; - if (cp < 0x2da0) - return false; - if (cp < 0x2da7) - return true; - if (cp < 0x2da8) - return false; - if (cp < 0x2daf) - return true; - if (cp < 0x2db0) - return false; - if (cp < 0x2db7) - return true; - if (cp < 0x2db8) - return false; - if (cp < 0x2dbf) - return true; + if (cp < 0x2d97) return true; + if (cp < 0x2da0) return false; + if (cp < 0x2da7) return true; + if (cp < 0x2da8) return false; + if (cp < 0x2daf) return true; + if (cp < 0x2db0) return false; + if (cp < 0x2db7) return true; + if (cp < 0x2db8) return false; + if (cp < 0x2dbf) return true; return false; } if (cp < 0x3006) { - if (cp < 0x2dc0) - return false; - if (cp < 0x2dc7) - return true; - if (cp < 0x2dc8) - return false; - if (cp < 0x2dcf) - return true; - if (cp < 0x2dd0) - return false; - if (cp < 0x2dd7) - return true; - if (cp < 0x2dd8) - return false; - if (cp < 0x2ddf) - return true; - if (cp === 0x3005) - return true; + if (cp < 0x2dc0) return false; + if (cp < 0x2dc7) return true; + if (cp < 0x2dc8) return false; + if (cp < 0x2dcf) return true; + if (cp < 0x2dd0) return false; + if (cp < 0x2dd7) return true; + if (cp < 0x2dd8) return false; + if (cp < 0x2ddf) return true; + if (cp === 0x3005) return true; return false; } - if (cp === 0x3006) - return true; - if (cp === 0x3007) - return true; - if (cp < 0x3021) - return false; - if (cp < 0x302a) - return true; - if (cp < 0x3031) - return false; - if (cp < 0x3036) - return true; - if (cp < 0x3038) - return false; - if (cp < 0x303b) - return true; - if (cp === 0x303b) - return true; + if (cp === 0x3006) return true; + if (cp === 0x3007) return true; + if (cp < 0x3021) return false; + if (cp < 0x302a) return true; + if (cp < 0x3031) return false; + if (cp < 0x3036) return true; + if (cp < 0x3038) return false; + if (cp < 0x303b) return true; + if (cp === 0x303b) return true; return false; } if (cp < 0x10a10) { @@ -1489,664 +894,379 @@ function isLargeIdStart(cp) { if (cp < 0xa60c) { if (cp < 0x31a0) { if (cp < 0x30a1) { - if (cp === 0x303c) - return true; - if (cp < 0x3041) - return false; - if (cp < 0x3097) - return true; - if (cp < 0x309b) - return false; - if (cp < 0x309d) - return true; - if (cp < 0x309d) - return false; - if (cp < 0x309f) - return true; - if (cp === 0x309f) - return true; + if (cp === 0x303c) return true; + if (cp < 0x3041) return false; + if (cp < 0x3097) return true; + if (cp < 0x309b) return false; + if (cp < 0x309d) return true; + if (cp < 0x309d) return false; + if (cp < 0x309f) return true; + if (cp === 0x309f) return true; return false; } - if (cp < 0x30fb) - return true; - if (cp < 0x30fc) - return false; - if (cp < 0x30ff) - return true; - if (cp === 0x30ff) - return true; - if (cp < 0x3105) - return false; - if (cp < 0x312f) - return true; - if (cp < 0x3131) - return false; - if (cp < 0x318f) - return true; + if (cp < 0x30fb) return true; + if (cp < 0x30fc) return false; + if (cp < 0x30ff) return true; + if (cp === 0x30ff) return true; + if (cp < 0x3105) return false; + if (cp < 0x312f) return true; + if (cp < 0x3131) return false; + if (cp < 0x318f) return true; return false; } if (cp < 0xa015) { - if (cp < 0x31a0) - return false; - if (cp < 0x31bb) - return true; - if (cp < 0x31f0) - return false; - if (cp < 0x3200) - return true; - if (cp < 0x3400) - return false; - if (cp < 0x4db6) - return true; - if (cp < 0x4e00) - return false; - if (cp < 0x9feb) - return true; - if (cp < 0xa000) - return false; - if (cp < 0xa015) - return true; + if (cp < 0x31a0) return false; + if (cp < 0x31bb) return true; + if (cp < 0x31f0) return false; + if (cp < 0x3200) return true; + if (cp < 0x3400) return false; + if (cp < 0x4db6) return true; + if (cp < 0x4e00) return false; + if (cp < 0x9feb) return true; + if (cp < 0xa000) return false; + if (cp < 0xa015) return true; return false; } - if (cp === 0xa015) - return true; - if (cp < 0xa016) - return false; - if (cp < 0xa48d) - return true; - if (cp < 0xa4d0) - return false; - if (cp < 0xa4f8) - return true; - if (cp < 0xa4f8) - return false; - if (cp < 0xa4fe) - return true; - if (cp < 0xa500) - return false; - if (cp < 0xa60c) - return true; + if (cp === 0xa015) return true; + if (cp < 0xa016) return false; + if (cp < 0xa48d) return true; + if (cp < 0xa4d0) return false; + if (cp < 0xa4f8) return true; + if (cp < 0xa4f8) return false; + if (cp < 0xa4fe) return true; + if (cp < 0xa500) return false; + if (cp < 0xa60c) return true; return false; } if (cp < 0xa717) { if (cp < 0xa67f) { - if (cp === 0xa60c) - return true; - if (cp < 0xa610) - return false; - if (cp < 0xa620) - return true; - if (cp < 0xa62a) - return false; - if (cp < 0xa62c) - return true; - if (cp < 0xa640) - return false; - if (cp < 0xa66e) - return true; - if (cp === 0xa66e) - return true; + if (cp === 0xa60c) return true; + if (cp < 0xa610) return false; + if (cp < 0xa620) return true; + if (cp < 0xa62a) return false; + if (cp < 0xa62c) return true; + if (cp < 0xa640) return false; + if (cp < 0xa66e) return true; + if (cp === 0xa66e) return true; return false; } - if (cp === 0xa67f) - return true; - if (cp < 0xa680) - return false; - if (cp < 0xa69c) - return true; - if (cp < 0xa69c) - return false; - if (cp < 0xa69e) - return true; - if (cp < 0xa6a0) - return false; - if (cp < 0xa6e6) - return true; - if (cp < 0xa6e6) - return false; - if (cp < 0xa6f0) - return true; + if (cp === 0xa67f) return true; + if (cp < 0xa680) return false; + if (cp < 0xa69c) return true; + if (cp < 0xa69c) return false; + if (cp < 0xa69e) return true; + if (cp < 0xa6a0) return false; + if (cp < 0xa6e6) return true; + if (cp < 0xa6e6) return false; + if (cp < 0xa6f0) return true; return false; } if (cp < 0xa78b) { - if (cp < 0xa717) - return false; - if (cp < 0xa720) - return true; - if (cp < 0xa722) - return false; - if (cp < 0xa770) - return true; - if (cp === 0xa770) - return true; - if (cp < 0xa771) - return false; - if (cp < 0xa788) - return true; - if (cp === 0xa788) - return true; + if (cp < 0xa717) return false; + if (cp < 0xa720) return true; + if (cp < 0xa722) return false; + if (cp < 0xa770) return true; + if (cp === 0xa770) return true; + if (cp < 0xa771) return false; + if (cp < 0xa788) return true; + if (cp === 0xa788) return true; return false; } - if (cp < 0xa78f) - return true; - if (cp === 0xa78f) - return true; - if (cp < 0xa790) - return false; - if (cp < 0xa7af) - return true; - if (cp < 0xa7b0) - return false; - if (cp < 0xa7b8) - return true; - if (cp === 0xa7f7) - return true; - if (cp < 0xa7f8) - return false; - if (cp < 0xa7fa) - return true; + if (cp < 0xa78f) return true; + if (cp === 0xa78f) return true; + if (cp < 0xa790) return false; + if (cp < 0xa7af) return true; + if (cp < 0xa7b0) return false; + if (cp < 0xa7b8) return true; + if (cp === 0xa7f7) return true; + if (cp < 0xa7f8) return false; + if (cp < 0xa7fa) return true; return false; } if (cp < 0xaa40) { if (cp < 0xa90a) { if (cp < 0xa840) { - if (cp === 0xa7fa) - return true; - if (cp < 0xa7fb) - return false; - if (cp < 0xa802) - return true; - if (cp < 0xa803) - return false; - if (cp < 0xa806) - return true; - if (cp < 0xa807) - return false; - if (cp < 0xa80b) - return true; - if (cp < 0xa80c) - return false; - if (cp < 0xa823) - return true; + if (cp === 0xa7fa) return true; + if (cp < 0xa7fb) return false; + if (cp < 0xa802) return true; + if (cp < 0xa803) return false; + if (cp < 0xa806) return true; + if (cp < 0xa807) return false; + if (cp < 0xa80b) return true; + if (cp < 0xa80c) return false; + if (cp < 0xa823) return true; return false; } - if (cp < 0xa874) - return true; - if (cp < 0xa882) - return false; - if (cp < 0xa8b4) - return true; - if (cp < 0xa8f2) - return false; - if (cp < 0xa8f8) - return true; - if (cp === 0xa8fb) - return true; - if (cp === 0xa8fd) - return true; + if (cp < 0xa874) return true; + if (cp < 0xa882) return false; + if (cp < 0xa8b4) return true; + if (cp < 0xa8f2) return false; + if (cp < 0xa8f8) return true; + if (cp === 0xa8fb) return true; + if (cp === 0xa8fd) return true; return false; } if (cp < 0xa9e0) { - if (cp < 0xa90a) - return false; - if (cp < 0xa926) - return true; - if (cp < 0xa930) - return false; - if (cp < 0xa947) - return true; - if (cp < 0xa960) - return false; - if (cp < 0xa97d) - return true; - if (cp < 0xa984) - return false; - if (cp < 0xa9b3) - return true; - if (cp === 0xa9cf) - return true; + if (cp < 0xa90a) return false; + if (cp < 0xa926) return true; + if (cp < 0xa930) return false; + if (cp < 0xa947) return true; + if (cp < 0xa960) return false; + if (cp < 0xa97d) return true; + if (cp < 0xa984) return false; + if (cp < 0xa9b3) return true; + if (cp === 0xa9cf) return true; return false; } - if (cp < 0xa9e5) - return true; - if (cp === 0xa9e6) - return true; - if (cp < 0xa9e7) - return false; - if (cp < 0xa9f0) - return true; - if (cp < 0xa9fa) - return false; - if (cp < 0xa9ff) - return true; - if (cp < 0xaa00) - return false; - if (cp < 0xaa29) - return true; + if (cp < 0xa9e5) return true; + if (cp === 0xa9e6) return true; + if (cp < 0xa9e7) return false; + if (cp < 0xa9f0) return true; + if (cp < 0xa9fa) return false; + if (cp < 0xa9ff) return true; + if (cp < 0xaa00) return false; + if (cp < 0xaa29) return true; return false; } if (cp < 0xaac0) { if (cp < 0xaa7a) { - if (cp < 0xaa40) - return false; - if (cp < 0xaa43) - return true; - if (cp < 0xaa44) - return false; - if (cp < 0xaa4c) - return true; - if (cp < 0xaa60) - return false; - if (cp < 0xaa70) - return true; - if (cp === 0xaa70) - return true; - if (cp < 0xaa71) - return false; - if (cp < 0xaa77) - return true; + if (cp < 0xaa40) return false; + if (cp < 0xaa43) return true; + if (cp < 0xaa44) return false; + if (cp < 0xaa4c) return true; + if (cp < 0xaa60) return false; + if (cp < 0xaa70) return true; + if (cp === 0xaa70) return true; + if (cp < 0xaa71) return false; + if (cp < 0xaa77) return true; return false; } - if (cp === 0xaa7a) - return true; - if (cp < 0xaa7e) - return false; - if (cp < 0xaab0) - return true; - if (cp === 0xaab1) - return true; - if (cp < 0xaab5) - return false; - if (cp < 0xaab7) - return true; - if (cp < 0xaab9) - return false; - if (cp < 0xaabe) - return true; + if (cp === 0xaa7a) return true; + if (cp < 0xaa7e) return false; + if (cp < 0xaab0) return true; + if (cp === 0xaab1) return true; + if (cp < 0xaab5) return false; + if (cp < 0xaab7) return true; + if (cp < 0xaab9) return false; + if (cp < 0xaabe) return true; return false; } if (cp < 0xaaf2) { - if (cp === 0xaac0) - return true; - if (cp === 0xaac2) - return true; - if (cp < 0xaadb) - return false; - if (cp < 0xaadd) - return true; - if (cp === 0xaadd) - return true; - if (cp < 0xaae0) - return false; - if (cp < 0xaaeb) - return true; + if (cp === 0xaac0) return true; + if (cp === 0xaac2) return true; + if (cp < 0xaadb) return false; + if (cp < 0xaadd) return true; + if (cp === 0xaadd) return true; + if (cp < 0xaae0) return false; + if (cp < 0xaaeb) return true; return false; } - if (cp === 0xaaf2) - return true; - if (cp < 0xaaf3) - return false; - if (cp < 0xaaf5) - return true; - if (cp < 0xab01) - return false; - if (cp < 0xab07) - return true; - if (cp < 0xab09) - return false; - if (cp < 0xab0f) - return true; - if (cp < 0xab11) - return false; - if (cp < 0xab17) - return true; - if (cp < 0xab20) - return false; - if (cp < 0xab27) - return true; + if (cp === 0xaaf2) return true; + if (cp < 0xaaf3) return false; + if (cp < 0xaaf5) return true; + if (cp < 0xab01) return false; + if (cp < 0xab07) return true; + if (cp < 0xab09) return false; + if (cp < 0xab0f) return true; + if (cp < 0xab11) return false; + if (cp < 0xab17) return true; + if (cp < 0xab20) return false; + if (cp < 0xab27) return true; return false; } if (cp < 0x1003c) { if (cp < 0xfb46) { if (cp < 0xfa70) { if (cp < 0xabc0) { - if (cp < 0xab28) - return false; - if (cp < 0xab2f) - return true; - if (cp < 0xab30) - return false; - if (cp < 0xab5b) - return true; - if (cp < 0xab5c) - return false; - if (cp < 0xab60) - return true; - if (cp < 0xab60) - return false; - if (cp < 0xab66) - return true; - if (cp < 0xab70) - return false; - if (cp < 0xabc0) - return true; + if (cp < 0xab28) return false; + if (cp < 0xab2f) return true; + if (cp < 0xab30) return false; + if (cp < 0xab5b) return true; + if (cp < 0xab5c) return false; + if (cp < 0xab60) return true; + if (cp < 0xab60) return false; + if (cp < 0xab66) return true; + if (cp < 0xab70) return false; + if (cp < 0xabc0) return true; return false; } - if (cp < 0xabe3) - return true; - if (cp < 0xac00) - return false; - if (cp < 0xd7a4) - return true; - if (cp < 0xd7b0) - return false; - if (cp < 0xd7c7) - return true; - if (cp < 0xd7cb) - return false; - if (cp < 0xd7fc) - return true; - if (cp < 0xf900) - return false; - if (cp < 0xfa6e) - return true; + if (cp < 0xabe3) return true; + if (cp < 0xac00) return false; + if (cp < 0xd7a4) return true; + if (cp < 0xd7b0) return false; + if (cp < 0xd7c7) return true; + if (cp < 0xd7cb) return false; + if (cp < 0xd7fc) return true; + if (cp < 0xf900) return false; + if (cp < 0xfa6e) return true; return false; } if (cp < 0xfb2a) { - if (cp < 0xfa70) - return false; - if (cp < 0xfada) - return true; - if (cp < 0xfb00) - return false; - if (cp < 0xfb07) - return true; - if (cp < 0xfb13) - return false; - if (cp < 0xfb18) - return true; - if (cp === 0xfb1d) - return true; - if (cp < 0xfb1f) - return false; - if (cp < 0xfb29) - return true; + if (cp < 0xfa70) return false; + if (cp < 0xfada) return true; + if (cp < 0xfb00) return false; + if (cp < 0xfb07) return true; + if (cp < 0xfb13) return false; + if (cp < 0xfb18) return true; + if (cp === 0xfb1d) return true; + if (cp < 0xfb1f) return false; + if (cp < 0xfb29) return true; return false; } - if (cp < 0xfb37) - return true; - if (cp < 0xfb38) - return false; - if (cp < 0xfb3d) - return true; - if (cp === 0xfb3e) - return true; - if (cp < 0xfb40) - return false; - if (cp < 0xfb42) - return true; - if (cp < 0xfb43) - return false; - if (cp < 0xfb45) - return true; + if (cp < 0xfb37) return true; + if (cp < 0xfb38) return false; + if (cp < 0xfb3d) return true; + if (cp === 0xfb3e) return true; + if (cp < 0xfb40) return false; + if (cp < 0xfb42) return true; + if (cp < 0xfb43) return false; + if (cp < 0xfb45) return true; return false; } if (cp < 0xff70) { if (cp < 0xfe70) { - if (cp < 0xfb46) - return false; - if (cp < 0xfbb2) - return true; - if (cp < 0xfbd3) - return false; - if (cp < 0xfd3e) - return true; - if (cp < 0xfd50) - return false; - if (cp < 0xfd90) - return true; - if (cp < 0xfd92) - return false; - if (cp < 0xfdc8) - return true; - if (cp < 0xfdf0) - return false; - if (cp < 0xfdfc) - return true; + if (cp < 0xfb46) return false; + if (cp < 0xfbb2) return true; + if (cp < 0xfbd3) return false; + if (cp < 0xfd3e) return true; + if (cp < 0xfd50) return false; + if (cp < 0xfd90) return true; + if (cp < 0xfd92) return false; + if (cp < 0xfdc8) return true; + if (cp < 0xfdf0) return false; + if (cp < 0xfdfc) return true; return false; } - if (cp < 0xfe75) - return true; - if (cp < 0xfe76) - return false; - if (cp < 0xfefd) - return true; - if (cp < 0xff21) - return false; - if (cp < 0xff3b) - return true; - if (cp < 0xff41) - return false; - if (cp < 0xff5b) - return true; - if (cp < 0xff66) - return false; - if (cp < 0xff70) - return true; + if (cp < 0xfe75) return true; + if (cp < 0xfe76) return false; + if (cp < 0xfefd) return true; + if (cp < 0xff21) return false; + if (cp < 0xff3b) return true; + if (cp < 0xff41) return false; + if (cp < 0xff5b) return true; + if (cp < 0xff66) return false; + if (cp < 0xff70) return true; return false; } if (cp < 0xffca) { - if (cp === 0xff70) - return true; - if (cp < 0xff71) - return false; - if (cp < 0xff9e) - return true; - if (cp < 0xff9e) - return false; - if (cp < 0xffa0) - return true; - if (cp < 0xffa0) - return false; - if (cp < 0xffbf) - return true; - if (cp < 0xffc2) - return false; - if (cp < 0xffc8) - return true; + if (cp === 0xff70) return true; + if (cp < 0xff71) return false; + if (cp < 0xff9e) return true; + if (cp < 0xff9e) return false; + if (cp < 0xffa0) return true; + if (cp < 0xffa0) return false; + if (cp < 0xffbf) return true; + if (cp < 0xffc2) return false; + if (cp < 0xffc8) return true; return false; } - if (cp < 0xffd0) - return true; - if (cp < 0xffd2) - return false; - if (cp < 0xffd8) - return true; - if (cp < 0xffda) - return false; - if (cp < 0xffdd) - return true; - if (cp < 0x10000) - return false; - if (cp < 0x1000c) - return true; - if (cp < 0x1000d) - return false; - if (cp < 0x10027) - return true; - if (cp < 0x10028) - return false; - if (cp < 0x1003b) - return true; + if (cp < 0xffd0) return true; + if (cp < 0xffd2) return false; + if (cp < 0xffd8) return true; + if (cp < 0xffda) return false; + if (cp < 0xffdd) return true; + if (cp < 0x10000) return false; + if (cp < 0x1000c) return true; + if (cp < 0x1000d) return false; + if (cp < 0x10027) return true; + if (cp < 0x10028) return false; + if (cp < 0x1003b) return true; return false; } if (cp < 0x104d8) { if (cp < 0x10342) { if (cp < 0x10280) { - if (cp < 0x1003c) - return false; - if (cp < 0x1003e) - return true; - if (cp < 0x1003f) - return false; - if (cp < 0x1004e) - return true; - if (cp < 0x10050) - return false; - if (cp < 0x1005e) - return true; - if (cp < 0x10080) - return false; - if (cp < 0x100fb) - return true; - if (cp < 0x10140) - return false; - if (cp < 0x10175) - return true; + if (cp < 0x1003c) return false; + if (cp < 0x1003e) return true; + if (cp < 0x1003f) return false; + if (cp < 0x1004e) return true; + if (cp < 0x10050) return false; + if (cp < 0x1005e) return true; + if (cp < 0x10080) return false; + if (cp < 0x100fb) return true; + if (cp < 0x10140) return false; + if (cp < 0x10175) return true; return false; } - if (cp < 0x1029d) - return true; - if (cp < 0x102a0) - return false; - if (cp < 0x102d1) - return true; - if (cp < 0x10300) - return false; - if (cp < 0x10320) - return true; - if (cp < 0x1032d) - return false; - if (cp < 0x10341) - return true; - if (cp === 0x10341) - return true; + if (cp < 0x1029d) return true; + if (cp < 0x102a0) return false; + if (cp < 0x102d1) return true; + if (cp < 0x10300) return false; + if (cp < 0x10320) return true; + if (cp < 0x1032d) return false; + if (cp < 0x10341) return true; + if (cp === 0x10341) return true; return false; } if (cp < 0x103c8) { - if (cp < 0x10342) - return false; - if (cp < 0x1034a) - return true; - if (cp === 0x1034a) - return true; - if (cp < 0x10350) - return false; - if (cp < 0x10376) - return true; - if (cp < 0x10380) - return false; - if (cp < 0x1039e) - return true; - if (cp < 0x103a0) - return false; - if (cp < 0x103c4) - return true; + if (cp < 0x10342) return false; + if (cp < 0x1034a) return true; + if (cp === 0x1034a) return true; + if (cp < 0x10350) return false; + if (cp < 0x10376) return true; + if (cp < 0x10380) return false; + if (cp < 0x1039e) return true; + if (cp < 0x103a0) return false; + if (cp < 0x103c4) return true; return false; } - if (cp < 0x103d0) - return true; - if (cp < 0x103d1) - return false; - if (cp < 0x103d6) - return true; - if (cp < 0x10400) - return false; - if (cp < 0x10450) - return true; - if (cp < 0x10450) - return false; - if (cp < 0x1049e) - return true; - if (cp < 0x104b0) - return false; - if (cp < 0x104d4) - return true; + if (cp < 0x103d0) return true; + if (cp < 0x103d1) return false; + if (cp < 0x103d6) return true; + if (cp < 0x10400) return false; + if (cp < 0x10450) return true; + if (cp < 0x10450) return false; + if (cp < 0x1049e) return true; + if (cp < 0x104b0) return false; + if (cp < 0x104d4) return true; return false; } if (cp < 0x1083c) { if (cp < 0x10760) { - if (cp < 0x104d8) - return false; - if (cp < 0x104fc) - return true; - if (cp < 0x10500) - return false; - if (cp < 0x10528) - return true; - if (cp < 0x10530) - return false; - if (cp < 0x10564) - return true; - if (cp < 0x10600) - return false; - if (cp < 0x10737) - return true; - if (cp < 0x10740) - return false; - if (cp < 0x10756) - return true; + if (cp < 0x104d8) return false; + if (cp < 0x104fc) return true; + if (cp < 0x10500) return false; + if (cp < 0x10528) return true; + if (cp < 0x10530) return false; + if (cp < 0x10564) return true; + if (cp < 0x10600) return false; + if (cp < 0x10737) return true; + if (cp < 0x10740) return false; + if (cp < 0x10756) return true; return false; } - if (cp < 0x10768) - return true; - if (cp < 0x10800) - return false; - if (cp < 0x10806) - return true; - if (cp === 0x10808) - return true; - if (cp < 0x1080a) - return false; - if (cp < 0x10836) - return true; - if (cp < 0x10837) - return false; - if (cp < 0x10839) - return true; + if (cp < 0x10768) return true; + if (cp < 0x10800) return false; + if (cp < 0x10806) return true; + if (cp === 0x10808) return true; + if (cp < 0x1080a) return false; + if (cp < 0x10836) return true; + if (cp < 0x10837) return false; + if (cp < 0x10839) return true; return false; } if (cp < 0x108f4) { - if (cp === 0x1083c) - return true; - if (cp < 0x1083f) - return false; - if (cp < 0x10856) - return true; - if (cp < 0x10860) - return false; - if (cp < 0x10877) - return true; - if (cp < 0x10880) - return false; - if (cp < 0x1089f) - return true; - if (cp < 0x108e0) - return false; - if (cp < 0x108f3) - return true; + if (cp === 0x1083c) return true; + if (cp < 0x1083f) return false; + if (cp < 0x10856) return true; + if (cp < 0x10860) return false; + if (cp < 0x10877) return true; + if (cp < 0x10880) return false; + if (cp < 0x1089f) return true; + if (cp < 0x108e0) return false; + if (cp < 0x108f3) return true; return false; } - if (cp < 0x108f6) - return true; - if (cp < 0x10900) - return false; - if (cp < 0x10916) - return true; - if (cp < 0x10920) - return false; - if (cp < 0x1093a) - return true; - if (cp < 0x10980) - return false; - if (cp < 0x109b8) - return true; - if (cp < 0x109be) - return false; - if (cp < 0x109c0) - return true; - if (cp === 0x10a00) - return true; + if (cp < 0x108f6) return true; + if (cp < 0x10900) return false; + if (cp < 0x10916) return true; + if (cp < 0x10920) return false; + if (cp < 0x1093a) return true; + if (cp < 0x10980) return false; + if (cp < 0x109b8) return true; + if (cp < 0x109be) return false; + if (cp < 0x109c0) return true; + if (cp === 0x10a00) return true; return false; } if (cp < 0x16f50) { @@ -2154,654 +1274,374 @@ function isLargeIdStart(cp) { if (cp < 0x11183) { if (cp < 0x10b80) { if (cp < 0x10ac0) { - if (cp < 0x10a10) - return false; - if (cp < 0x10a14) - return true; - if (cp < 0x10a15) - return false; - if (cp < 0x10a18) - return true; - if (cp < 0x10a19) - return false; - if (cp < 0x10a34) - return true; - if (cp < 0x10a60) - return false; - if (cp < 0x10a7d) - return true; - if (cp < 0x10a80) - return false; - if (cp < 0x10a9d) - return true; + if (cp < 0x10a10) return false; + if (cp < 0x10a14) return true; + if (cp < 0x10a15) return false; + if (cp < 0x10a18) return true; + if (cp < 0x10a19) return false; + if (cp < 0x10a34) return true; + if (cp < 0x10a60) return false; + if (cp < 0x10a7d) return true; + if (cp < 0x10a80) return false; + if (cp < 0x10a9d) return true; return false; } - if (cp < 0x10ac8) - return true; - if (cp < 0x10ac9) - return false; - if (cp < 0x10ae5) - return true; - if (cp < 0x10b00) - return false; - if (cp < 0x10b36) - return true; - if (cp < 0x10b40) - return false; - if (cp < 0x10b56) - return true; - if (cp < 0x10b60) - return false; - if (cp < 0x10b73) - return true; + if (cp < 0x10ac8) return true; + if (cp < 0x10ac9) return false; + if (cp < 0x10ae5) return true; + if (cp < 0x10b00) return false; + if (cp < 0x10b36) return true; + if (cp < 0x10b40) return false; + if (cp < 0x10b56) return true; + if (cp < 0x10b60) return false; + if (cp < 0x10b73) return true; return false; } if (cp < 0x11083) { - if (cp < 0x10b80) - return false; - if (cp < 0x10b92) - return true; - if (cp < 0x10c00) - return false; - if (cp < 0x10c49) - return true; - if (cp < 0x10c80) - return false; - if (cp < 0x10cb3) - return true; - if (cp < 0x10cc0) - return false; - if (cp < 0x10cf3) - return true; - if (cp < 0x11003) - return false; - if (cp < 0x11038) - return true; + if (cp < 0x10b80) return false; + if (cp < 0x10b92) return true; + if (cp < 0x10c00) return false; + if (cp < 0x10c49) return true; + if (cp < 0x10c80) return false; + if (cp < 0x10cb3) return true; + if (cp < 0x10cc0) return false; + if (cp < 0x10cf3) return true; + if (cp < 0x11003) return false; + if (cp < 0x11038) return true; return false; } - if (cp < 0x110b0) - return true; - if (cp < 0x110d0) - return false; - if (cp < 0x110e9) - return true; - if (cp < 0x11103) - return false; - if (cp < 0x11127) - return true; - if (cp < 0x11150) - return false; - if (cp < 0x11173) - return true; - if (cp === 0x11176) - return true; + if (cp < 0x110b0) return true; + if (cp < 0x110d0) return false; + if (cp < 0x110e9) return true; + if (cp < 0x11103) return false; + if (cp < 0x11127) return true; + if (cp < 0x11150) return false; + if (cp < 0x11173) return true; + if (cp === 0x11176) return true; return false; } if (cp < 0x1129f) { if (cp < 0x11213) { - if (cp < 0x11183) - return false; - if (cp < 0x111b3) - return true; - if (cp < 0x111c1) - return false; - if (cp < 0x111c5) - return true; - if (cp === 0x111da) - return true; - if (cp === 0x111dc) - return true; - if (cp < 0x11200) - return false; - if (cp < 0x11212) - return true; + if (cp < 0x11183) return false; + if (cp < 0x111b3) return true; + if (cp < 0x111c1) return false; + if (cp < 0x111c5) return true; + if (cp === 0x111da) return true; + if (cp === 0x111dc) return true; + if (cp < 0x11200) return false; + if (cp < 0x11212) return true; return false; } - if (cp < 0x1122c) - return true; - if (cp < 0x11280) - return false; - if (cp < 0x11287) - return true; - if (cp === 0x11288) - return true; - if (cp < 0x1128a) - return false; - if (cp < 0x1128e) - return true; - if (cp < 0x1128f) - return false; - if (cp < 0x1129e) - return true; + if (cp < 0x1122c) return true; + if (cp < 0x11280) return false; + if (cp < 0x11287) return true; + if (cp === 0x11288) return true; + if (cp < 0x1128a) return false; + if (cp < 0x1128e) return true; + if (cp < 0x1128f) return false; + if (cp < 0x1129e) return true; return false; } if (cp < 0x1132a) { - if (cp < 0x1129f) - return false; - if (cp < 0x112a9) - return true; - if (cp < 0x112b0) - return false; - if (cp < 0x112df) - return true; - if (cp < 0x11305) - return false; - if (cp < 0x1130d) - return true; - if (cp < 0x1130f) - return false; - if (cp < 0x11311) - return true; - if (cp < 0x11313) - return false; - if (cp < 0x11329) - return true; + if (cp < 0x1129f) return false; + if (cp < 0x112a9) return true; + if (cp < 0x112b0) return false; + if (cp < 0x112df) return true; + if (cp < 0x11305) return false; + if (cp < 0x1130d) return true; + if (cp < 0x1130f) return false; + if (cp < 0x11311) return true; + if (cp < 0x11313) return false; + if (cp < 0x11329) return true; return false; } - if (cp < 0x11331) - return true; - if (cp < 0x11332) - return false; - if (cp < 0x11334) - return true; - if (cp < 0x11335) - return false; - if (cp < 0x1133a) - return true; - if (cp === 0x1133d) - return true; - if (cp === 0x11350) - return true; - if (cp < 0x1135d) - return false; - if (cp < 0x11362) - return true; + if (cp < 0x11331) return true; + if (cp < 0x11332) return false; + if (cp < 0x11334) return true; + if (cp < 0x11335) return false; + if (cp < 0x1133a) return true; + if (cp === 0x1133d) return true; + if (cp === 0x11350) return true; + if (cp < 0x1135d) return false; + if (cp < 0x11362) return true; return false; } if (cp < 0x11c00) { if (cp < 0x11700) { if (cp < 0x11580) { - if (cp < 0x11400) - return false; - if (cp < 0x11435) - return true; - if (cp < 0x11447) - return false; - if (cp < 0x1144b) - return true; - if (cp < 0x11480) - return false; - if (cp < 0x114b0) - return true; - if (cp < 0x114c4) - return false; - if (cp < 0x114c6) - return true; - if (cp === 0x114c7) - return true; + if (cp < 0x11400) return false; + if (cp < 0x11435) return true; + if (cp < 0x11447) return false; + if (cp < 0x1144b) return true; + if (cp < 0x11480) return false; + if (cp < 0x114b0) return true; + if (cp < 0x114c4) return false; + if (cp < 0x114c6) return true; + if (cp === 0x114c7) return true; return false; } - if (cp < 0x115af) - return true; - if (cp < 0x115d8) - return false; - if (cp < 0x115dc) - return true; - if (cp < 0x11600) - return false; - if (cp < 0x11630) - return true; - if (cp === 0x11644) - return true; - if (cp < 0x11680) - return false; - if (cp < 0x116ab) - return true; + if (cp < 0x115af) return true; + if (cp < 0x115d8) return false; + if (cp < 0x115dc) return true; + if (cp < 0x11600) return false; + if (cp < 0x11630) return true; + if (cp === 0x11644) return true; + if (cp < 0x11680) return false; + if (cp < 0x116ab) return true; return false; } if (cp < 0x11a3a) { - if (cp < 0x11700) - return false; - if (cp < 0x1171a) - return true; - if (cp < 0x118a0) - return false; - if (cp < 0x118e0) - return true; - if (cp === 0x118ff) - return true; - if (cp === 0x11a00) - return true; - if (cp < 0x11a0b) - return false; - if (cp < 0x11a33) - return true; + if (cp < 0x11700) return false; + if (cp < 0x1171a) return true; + if (cp < 0x118a0) return false; + if (cp < 0x118e0) return true; + if (cp === 0x118ff) return true; + if (cp === 0x11a00) return true; + if (cp < 0x11a0b) return false; + if (cp < 0x11a33) return true; return false; } - if (cp === 0x11a3a) - return true; - if (cp === 0x11a50) - return true; - if (cp < 0x11a5c) - return false; - if (cp < 0x11a84) - return true; - if (cp < 0x11a86) - return false; - if (cp < 0x11a8a) - return true; - if (cp < 0x11ac0) - return false; - if (cp < 0x11af9) - return true; + if (cp === 0x11a3a) return true; + if (cp === 0x11a50) return true; + if (cp < 0x11a5c) return false; + if (cp < 0x11a84) return true; + if (cp < 0x11a86) return false; + if (cp < 0x11a8a) return true; + if (cp < 0x11ac0) return false; + if (cp < 0x11af9) return true; return false; } if (cp < 0x12480) { if (cp < 0x11d08) { - if (cp < 0x11c00) - return false; - if (cp < 0x11c09) - return true; - if (cp < 0x11c0a) - return false; - if (cp < 0x11c2f) - return true; - if (cp === 0x11c40) - return true; - if (cp < 0x11c72) - return false; - if (cp < 0x11c90) - return true; - if (cp < 0x11d00) - return false; - if (cp < 0x11d07) - return true; + if (cp < 0x11c00) return false; + if (cp < 0x11c09) return true; + if (cp < 0x11c0a) return false; + if (cp < 0x11c2f) return true; + if (cp === 0x11c40) return true; + if (cp < 0x11c72) return false; + if (cp < 0x11c90) return true; + if (cp < 0x11d00) return false; + if (cp < 0x11d07) return true; return false; } - if (cp < 0x11d0a) - return true; - if (cp < 0x11d0b) - return false; - if (cp < 0x11d31) - return true; - if (cp === 0x11d46) - return true; - if (cp < 0x12000) - return false; - if (cp < 0x1239a) - return true; - if (cp < 0x12400) - return false; - if (cp < 0x1246f) - return true; + if (cp < 0x11d0a) return true; + if (cp < 0x11d0b) return false; + if (cp < 0x11d31) return true; + if (cp === 0x11d46) return true; + if (cp < 0x12000) return false; + if (cp < 0x1239a) return true; + if (cp < 0x12400) return false; + if (cp < 0x1246f) return true; return false; } if (cp < 0x16ad0) { - if (cp < 0x12480) - return false; - if (cp < 0x12544) - return true; - if (cp < 0x13000) - return false; - if (cp < 0x1342f) - return true; - if (cp < 0x14400) - return false; - if (cp < 0x14647) - return true; - if (cp < 0x16800) - return false; - if (cp < 0x16a39) - return true; - if (cp < 0x16a40) - return false; - if (cp < 0x16a5f) - return true; + if (cp < 0x12480) return false; + if (cp < 0x12544) return true; + if (cp < 0x13000) return false; + if (cp < 0x1342f) return true; + if (cp < 0x14400) return false; + if (cp < 0x14647) return true; + if (cp < 0x16800) return false; + if (cp < 0x16a39) return true; + if (cp < 0x16a40) return false; + if (cp < 0x16a5f) return true; return false; } - if (cp < 0x16aee) - return true; - if (cp < 0x16b00) - return false; - if (cp < 0x16b30) - return true; - if (cp < 0x16b40) - return false; - if (cp < 0x16b44) - return true; - if (cp < 0x16b63) - return false; - if (cp < 0x16b78) - return true; - if (cp < 0x16b7d) - return false; - if (cp < 0x16b90) - return true; - if (cp < 0x16f00) - return false; - if (cp < 0x16f45) - return true; + if (cp < 0x16aee) return true; + if (cp < 0x16b00) return false; + if (cp < 0x16b30) return true; + if (cp < 0x16b40) return false; + if (cp < 0x16b44) return true; + if (cp < 0x16b63) return false; + if (cp < 0x16b78) return true; + if (cp < 0x16b7d) return false; + if (cp < 0x16b90) return true; + if (cp < 0x16f00) return false; + if (cp < 0x16f45) return true; return false; } if (cp < 0x1e800) { if (cp < 0x1d4c5) { if (cp < 0x1bc90) { if (cp < 0x1b000) { - if (cp === 0x16f50) - return true; - if (cp < 0x16f93) - return false; - if (cp < 0x16fa0) - return true; - if (cp < 0x16fe0) - return false; - if (cp < 0x16fe2) - return true; - if (cp < 0x17000) - return false; - if (cp < 0x187ed) - return true; - if (cp < 0x18800) - return false; - if (cp < 0x18af3) - return true; + if (cp === 0x16f50) return true; + if (cp < 0x16f93) return false; + if (cp < 0x16fa0) return true; + if (cp < 0x16fe0) return false; + if (cp < 0x16fe2) return true; + if (cp < 0x17000) return false; + if (cp < 0x187ed) return true; + if (cp < 0x18800) return false; + if (cp < 0x18af3) return true; return false; } - if (cp < 0x1b11f) - return true; - if (cp < 0x1b170) - return false; - if (cp < 0x1b2fc) - return true; - if (cp < 0x1bc00) - return false; - if (cp < 0x1bc6b) - return true; - if (cp < 0x1bc70) - return false; - if (cp < 0x1bc7d) - return true; - if (cp < 0x1bc80) - return false; - if (cp < 0x1bc89) - return true; + if (cp < 0x1b11f) return true; + if (cp < 0x1b170) return false; + if (cp < 0x1b2fc) return true; + if (cp < 0x1bc00) return false; + if (cp < 0x1bc6b) return true; + if (cp < 0x1bc70) return false; + if (cp < 0x1bc7d) return true; + if (cp < 0x1bc80) return false; + if (cp < 0x1bc89) return true; return false; } if (cp < 0x1d4a5) { - if (cp < 0x1bc90) - return false; - if (cp < 0x1bc9a) - return true; - if (cp < 0x1d400) - return false; - if (cp < 0x1d455) - return true; - if (cp < 0x1d456) - return false; - if (cp < 0x1d49d) - return true; - if (cp < 0x1d49e) - return false; - if (cp < 0x1d4a0) - return true; - if (cp === 0x1d4a2) - return true; + if (cp < 0x1bc90) return false; + if (cp < 0x1bc9a) return true; + if (cp < 0x1d400) return false; + if (cp < 0x1d455) return true; + if (cp < 0x1d456) return false; + if (cp < 0x1d49d) return true; + if (cp < 0x1d49e) return false; + if (cp < 0x1d4a0) return true; + if (cp === 0x1d4a2) return true; return false; } - if (cp < 0x1d4a7) - return true; - if (cp < 0x1d4a9) - return false; - if (cp < 0x1d4ad) - return true; - if (cp < 0x1d4ae) - return false; - if (cp < 0x1d4ba) - return true; - if (cp === 0x1d4bb) - return true; - if (cp < 0x1d4bd) - return false; - if (cp < 0x1d4c4) - return true; + if (cp < 0x1d4a7) return true; + if (cp < 0x1d4a9) return false; + if (cp < 0x1d4ad) return true; + if (cp < 0x1d4ae) return false; + if (cp < 0x1d4ba) return true; + if (cp === 0x1d4bb) return true; + if (cp < 0x1d4bd) return false; + if (cp < 0x1d4c4) return true; return false; } if (cp < 0x1d6a8) { if (cp < 0x1d53b) { - if (cp < 0x1d4c5) - return false; - if (cp < 0x1d506) - return true; - if (cp < 0x1d507) - return false; - if (cp < 0x1d50b) - return true; - if (cp < 0x1d50d) - return false; - if (cp < 0x1d515) - return true; - if (cp < 0x1d516) - return false; - if (cp < 0x1d51d) - return true; - if (cp < 0x1d51e) - return false; - if (cp < 0x1d53a) - return true; + if (cp < 0x1d4c5) return false; + if (cp < 0x1d506) return true; + if (cp < 0x1d507) return false; + if (cp < 0x1d50b) return true; + if (cp < 0x1d50d) return false; + if (cp < 0x1d515) return true; + if (cp < 0x1d516) return false; + if (cp < 0x1d51d) return true; + if (cp < 0x1d51e) return false; + if (cp < 0x1d53a) return true; return false; } - if (cp < 0x1d53f) - return true; - if (cp < 0x1d540) - return false; - if (cp < 0x1d545) - return true; - if (cp === 0x1d546) - return true; - if (cp < 0x1d54a) - return false; - if (cp < 0x1d551) - return true; - if (cp < 0x1d552) - return false; - if (cp < 0x1d6a6) - return true; + if (cp < 0x1d53f) return true; + if (cp < 0x1d540) return false; + if (cp < 0x1d545) return true; + if (cp === 0x1d546) return true; + if (cp < 0x1d54a) return false; + if (cp < 0x1d551) return true; + if (cp < 0x1d552) return false; + if (cp < 0x1d6a6) return true; return false; } if (cp < 0x1d736) { - if (cp < 0x1d6a8) - return false; - if (cp < 0x1d6c1) - return true; - if (cp < 0x1d6c2) - return false; - if (cp < 0x1d6db) - return true; - if (cp < 0x1d6dc) - return false; - if (cp < 0x1d6fb) - return true; - if (cp < 0x1d6fc) - return false; - if (cp < 0x1d715) - return true; - if (cp < 0x1d716) - return false; - if (cp < 0x1d735) - return true; + if (cp < 0x1d6a8) return false; + if (cp < 0x1d6c1) return true; + if (cp < 0x1d6c2) return false; + if (cp < 0x1d6db) return true; + if (cp < 0x1d6dc) return false; + if (cp < 0x1d6fb) return true; + if (cp < 0x1d6fc) return false; + if (cp < 0x1d715) return true; + if (cp < 0x1d716) return false; + if (cp < 0x1d735) return true; return false; } - if (cp < 0x1d74f) - return true; - if (cp < 0x1d750) - return false; - if (cp < 0x1d76f) - return true; - if (cp < 0x1d770) - return false; - if (cp < 0x1d789) - return true; - if (cp < 0x1d78a) - return false; - if (cp < 0x1d7a9) - return true; - if (cp < 0x1d7aa) - return false; - if (cp < 0x1d7c3) - return true; - if (cp < 0x1d7c4) - return false; - if (cp < 0x1d7cc) - return true; + if (cp < 0x1d74f) return true; + if (cp < 0x1d750) return false; + if (cp < 0x1d76f) return true; + if (cp < 0x1d770) return false; + if (cp < 0x1d789) return true; + if (cp < 0x1d78a) return false; + if (cp < 0x1d7a9) return true; + if (cp < 0x1d7aa) return false; + if (cp < 0x1d7c3) return true; + if (cp < 0x1d7c4) return false; + if (cp < 0x1d7cc) return true; return false; } if (cp < 0x1ee5b) { if (cp < 0x1ee3b) { if (cp < 0x1ee24) { - if (cp < 0x1e800) - return false; - if (cp < 0x1e8c5) - return true; - if (cp < 0x1e900) - return false; - if (cp < 0x1e944) - return true; - if (cp < 0x1ee00) - return false; - if (cp < 0x1ee04) - return true; - if (cp < 0x1ee05) - return false; - if (cp < 0x1ee20) - return true; - if (cp < 0x1ee21) - return false; - if (cp < 0x1ee23) - return true; + if (cp < 0x1e800) return false; + if (cp < 0x1e8c5) return true; + if (cp < 0x1e900) return false; + if (cp < 0x1e944) return true; + if (cp < 0x1ee00) return false; + if (cp < 0x1ee04) return true; + if (cp < 0x1ee05) return false; + if (cp < 0x1ee20) return true; + if (cp < 0x1ee21) return false; + if (cp < 0x1ee23) return true; return false; } - if (cp === 0x1ee24) - return true; - if (cp === 0x1ee27) - return true; - if (cp < 0x1ee29) - return false; - if (cp < 0x1ee33) - return true; - if (cp < 0x1ee34) - return false; - if (cp < 0x1ee38) - return true; - if (cp === 0x1ee39) - return true; + if (cp === 0x1ee24) return true; + if (cp === 0x1ee27) return true; + if (cp < 0x1ee29) return false; + if (cp < 0x1ee33) return true; + if (cp < 0x1ee34) return false; + if (cp < 0x1ee38) return true; + if (cp === 0x1ee39) return true; return false; } if (cp < 0x1ee4d) { - if (cp === 0x1ee3b) - return true; - if (cp === 0x1ee42) - return true; - if (cp === 0x1ee47) - return true; - if (cp === 0x1ee49) - return true; - if (cp === 0x1ee4b) - return true; + if (cp === 0x1ee3b) return true; + if (cp === 0x1ee42) return true; + if (cp === 0x1ee47) return true; + if (cp === 0x1ee49) return true; + if (cp === 0x1ee4b) return true; return false; } - if (cp < 0x1ee50) - return true; - if (cp < 0x1ee51) - return false; - if (cp < 0x1ee53) - return true; - if (cp === 0x1ee54) - return true; - if (cp === 0x1ee57) - return true; - if (cp === 0x1ee59) - return true; + if (cp < 0x1ee50) return true; + if (cp < 0x1ee51) return false; + if (cp < 0x1ee53) return true; + if (cp === 0x1ee54) return true; + if (cp === 0x1ee57) return true; + if (cp === 0x1ee59) return true; return false; } if (cp < 0x1ee80) { if (cp < 0x1ee67) { - if (cp === 0x1ee5b) - return true; - if (cp === 0x1ee5d) - return true; - if (cp === 0x1ee5f) - return true; - if (cp < 0x1ee61) - return false; - if (cp < 0x1ee63) - return true; - if (cp === 0x1ee64) - return true; + if (cp === 0x1ee5b) return true; + if (cp === 0x1ee5d) return true; + if (cp === 0x1ee5f) return true; + if (cp < 0x1ee61) return false; + if (cp < 0x1ee63) return true; + if (cp === 0x1ee64) return true; return false; } - if (cp < 0x1ee6b) - return true; - if (cp < 0x1ee6c) - return false; - if (cp < 0x1ee73) - return true; - if (cp < 0x1ee74) - return false; - if (cp < 0x1ee78) - return true; - if (cp < 0x1ee79) - return false; - if (cp < 0x1ee7d) - return true; - if (cp === 0x1ee7e) - return true; + if (cp < 0x1ee6b) return true; + if (cp < 0x1ee6c) return false; + if (cp < 0x1ee73) return true; + if (cp < 0x1ee74) return false; + if (cp < 0x1ee78) return true; + if (cp < 0x1ee79) return false; + if (cp < 0x1ee7d) return true; + if (cp === 0x1ee7e) return true; return false; } if (cp < 0x20000) { - if (cp < 0x1ee80) - return false; - if (cp < 0x1ee8a) - return true; - if (cp < 0x1ee8b) - return false; - if (cp < 0x1ee9c) - return true; - if (cp < 0x1eea1) - return false; - if (cp < 0x1eea4) - return true; - if (cp < 0x1eea5) - return false; - if (cp < 0x1eeaa) - return true; - if (cp < 0x1eeab) - return false; - if (cp < 0x1eebc) - return true; + if (cp < 0x1ee80) return false; + if (cp < 0x1ee8a) return true; + if (cp < 0x1ee8b) return false; + if (cp < 0x1ee9c) return true; + if (cp < 0x1eea1) return false; + if (cp < 0x1eea4) return true; + if (cp < 0x1eea5) return false; + if (cp < 0x1eeaa) return true; + if (cp < 0x1eeab) return false; + if (cp < 0x1eebc) return true; return false; } - if (cp < 0x2a6d7) - return true; - if (cp < 0x2a700) - return false; - if (cp < 0x2b735) - return true; - if (cp < 0x2b740) - return false; - if (cp < 0x2b81e) - return true; - if (cp < 0x2b820) - return false; - if (cp < 0x2cea2) - return true; - if (cp < 0x2ceb0) - return false; - if (cp < 0x2ebe1) - return true; - if (cp < 0x2f800) - return false; - if (cp < 0x2fa1e) - return true; + if (cp < 0x2a6d7) return true; + if (cp < 0x2a700) return false; + if (cp < 0x2b735) return true; + if (cp < 0x2b740) return false; + if (cp < 0x2b81e) return true; + if (cp < 0x2b820) return false; + if (cp < 0x2cea2) return true; + if (cp < 0x2ceb0) return false; + if (cp < 0x2ebe1) return true; + if (cp < 0x2f800) return false; + if (cp < 0x2fa1e) return true; return false; } function isLargeIdContinue(cp) { @@ -2811,944 +1651,519 @@ function isLargeIdContinue(cp) { if (cp < 0x93b) { if (cp < 0x6ea) { if (cp < 0x5c7) { - if (cp === 0xb7) - return true; - if (cp < 0x300) - return false; - if (cp < 0x370) - return true; - if (cp === 0x387) - return true; - if (cp < 0x483) - return false; - if (cp < 0x488) - return true; - if (cp < 0x591) - return false; - if (cp < 0x5be) - return true; - if (cp === 0x5bf) - return true; - if (cp < 0x5c1) - return false; - if (cp < 0x5c3) - return true; - if (cp < 0x5c4) - return false; - if (cp < 0x5c6) - return true; + if (cp === 0xb7) return true; + if (cp < 0x300) return false; + if (cp < 0x370) return true; + if (cp === 0x387) return true; + if (cp < 0x483) return false; + if (cp < 0x488) return true; + if (cp < 0x591) return false; + if (cp < 0x5be) return true; + if (cp === 0x5bf) return true; + if (cp < 0x5c1) return false; + if (cp < 0x5c3) return true; + if (cp < 0x5c4) return false; + if (cp < 0x5c6) return true; return false; } - if (cp === 0x5c7) - return true; - if (cp < 0x610) - return false; - if (cp < 0x61b) - return true; - if (cp < 0x64b) - return false; - if (cp < 0x660) - return true; - if (cp < 0x660) - return false; - if (cp < 0x66a) - return true; - if (cp === 0x670) - return true; - if (cp < 0x6d6) - return false; - if (cp < 0x6dd) - return true; - if (cp < 0x6df) - return false; - if (cp < 0x6e5) - return true; - if (cp < 0x6e7) - return false; - if (cp < 0x6e9) - return true; + if (cp === 0x5c7) return true; + if (cp < 0x610) return false; + if (cp < 0x61b) return true; + if (cp < 0x64b) return false; + if (cp < 0x660) return true; + if (cp < 0x660) return false; + if (cp < 0x66a) return true; + if (cp === 0x670) return true; + if (cp < 0x6d6) return false; + if (cp < 0x6dd) return true; + if (cp < 0x6df) return false; + if (cp < 0x6e5) return true; + if (cp < 0x6e7) return false; + if (cp < 0x6e9) return true; return false; } if (cp < 0x81b) { - if (cp < 0x6ea) - return false; - if (cp < 0x6ee) - return true; - if (cp < 0x6f0) - return false; - if (cp < 0x6fa) - return true; - if (cp === 0x711) - return true; - if (cp < 0x730) - return false; - if (cp < 0x74b) - return true; - if (cp < 0x7a6) - return false; - if (cp < 0x7b1) - return true; - if (cp < 0x7c0) - return false; - if (cp < 0x7ca) - return true; - if (cp < 0x7eb) - return false; - if (cp < 0x7f4) - return true; - if (cp < 0x816) - return false; - if (cp < 0x81a) - return true; + if (cp < 0x6ea) return false; + if (cp < 0x6ee) return true; + if (cp < 0x6f0) return false; + if (cp < 0x6fa) return true; + if (cp === 0x711) return true; + if (cp < 0x730) return false; + if (cp < 0x74b) return true; + if (cp < 0x7a6) return false; + if (cp < 0x7b1) return true; + if (cp < 0x7c0) return false; + if (cp < 0x7ca) return true; + if (cp < 0x7eb) return false; + if (cp < 0x7f4) return true; + if (cp < 0x816) return false; + if (cp < 0x81a) return true; return false; } - if (cp < 0x824) - return true; - if (cp < 0x825) - return false; - if (cp < 0x828) - return true; - if (cp < 0x829) - return false; - if (cp < 0x82e) - return true; - if (cp < 0x859) - return false; - if (cp < 0x85c) - return true; - if (cp < 0x8d4) - return false; - if (cp < 0x8e2) - return true; - if (cp < 0x8e3) - return false; - if (cp < 0x903) - return true; - if (cp === 0x903) - return true; - if (cp === 0x93a) - return true; + if (cp < 0x824) return true; + if (cp < 0x825) return false; + if (cp < 0x828) return true; + if (cp < 0x829) return false; + if (cp < 0x82e) return true; + if (cp < 0x859) return false; + if (cp < 0x85c) return true; + if (cp < 0x8d4) return false; + if (cp < 0x8e2) return true; + if (cp < 0x8e3) return false; + if (cp < 0x903) return true; + if (cp === 0x903) return true; + if (cp === 0x93a) return true; return false; } if (cp < 0x9cb) { if (cp < 0x962) { - if (cp === 0x93b) - return true; - if (cp === 0x93c) - return true; - if (cp < 0x93e) - return false; - if (cp < 0x941) - return true; - if (cp < 0x941) - return false; - if (cp < 0x949) - return true; - if (cp < 0x949) - return false; - if (cp < 0x94d) - return true; - if (cp === 0x94d) - return true; - if (cp < 0x94e) - return false; - if (cp < 0x950) - return true; - if (cp < 0x951) - return false; - if (cp < 0x958) - return true; + if (cp === 0x93b) return true; + if (cp === 0x93c) return true; + if (cp < 0x93e) return false; + if (cp < 0x941) return true; + if (cp < 0x941) return false; + if (cp < 0x949) return true; + if (cp < 0x949) return false; + if (cp < 0x94d) return true; + if (cp === 0x94d) return true; + if (cp < 0x94e) return false; + if (cp < 0x950) return true; + if (cp < 0x951) return false; + if (cp < 0x958) return true; return false; } - if (cp < 0x964) - return true; - if (cp < 0x966) - return false; - if (cp < 0x970) - return true; - if (cp === 0x981) - return true; - if (cp < 0x982) - return false; - if (cp < 0x984) - return true; - if (cp === 0x9bc) - return true; - if (cp < 0x9be) - return false; - if (cp < 0x9c1) - return true; - if (cp < 0x9c1) - return false; - if (cp < 0x9c5) - return true; - if (cp < 0x9c7) - return false; - if (cp < 0x9c9) - return true; + if (cp < 0x964) return true; + if (cp < 0x966) return false; + if (cp < 0x970) return true; + if (cp === 0x981) return true; + if (cp < 0x982) return false; + if (cp < 0x984) return true; + if (cp === 0x9bc) return true; + if (cp < 0x9be) return false; + if (cp < 0x9c1) return true; + if (cp < 0x9c1) return false; + if (cp < 0x9c5) return true; + if (cp < 0x9c7) return false; + if (cp < 0x9c9) return true; return false; } if (cp < 0xa3e) { - if (cp < 0x9cb) - return false; - if (cp < 0x9cd) - return true; - if (cp === 0x9cd) - return true; - if (cp === 0x9d7) - return true; - if (cp < 0x9e2) - return false; - if (cp < 0x9e4) - return true; - if (cp < 0x9e6) - return false; - if (cp < 0x9f0) - return true; - if (cp < 0xa01) - return false; - if (cp < 0xa03) - return true; - if (cp === 0xa03) - return true; - if (cp === 0xa3c) - return true; + if (cp < 0x9cb) return false; + if (cp < 0x9cd) return true; + if (cp === 0x9cd) return true; + if (cp === 0x9d7) return true; + if (cp < 0x9e2) return false; + if (cp < 0x9e4) return true; + if (cp < 0x9e6) return false; + if (cp < 0x9f0) return true; + if (cp < 0xa01) return false; + if (cp < 0xa03) return true; + if (cp === 0xa03) return true; + if (cp === 0xa3c) return true; return false; } - if (cp < 0xa41) - return true; - if (cp < 0xa41) - return false; - if (cp < 0xa43) - return true; - if (cp < 0xa47) - return false; - if (cp < 0xa49) - return true; - if (cp < 0xa4b) - return false; - if (cp < 0xa4e) - return true; - if (cp === 0xa51) - return true; - if (cp < 0xa66) - return false; - if (cp < 0xa70) - return true; - if (cp < 0xa70) - return false; - if (cp < 0xa72) - return true; - if (cp === 0xa75) - return true; - if (cp < 0xa81) - return false; - if (cp < 0xa83) - return true; + if (cp < 0xa41) return true; + if (cp < 0xa41) return false; + if (cp < 0xa43) return true; + if (cp < 0xa47) return false; + if (cp < 0xa49) return true; + if (cp < 0xa4b) return false; + if (cp < 0xa4e) return true; + if (cp === 0xa51) return true; + if (cp < 0xa66) return false; + if (cp < 0xa70) return true; + if (cp < 0xa70) return false; + if (cp < 0xa72) return true; + if (cp === 0xa75) return true; + if (cp < 0xa81) return false; + if (cp < 0xa83) return true; return false; } if (cp < 0xbd7) { if (cp < 0xb40) { if (cp < 0xae2) { - if (cp === 0xa83) - return true; - if (cp === 0xabc) - return true; - if (cp < 0xabe) - return false; - if (cp < 0xac1) - return true; - if (cp < 0xac1) - return false; - if (cp < 0xac6) - return true; - if (cp < 0xac7) - return false; - if (cp < 0xac9) - return true; - if (cp === 0xac9) - return true; - if (cp < 0xacb) - return false; - if (cp < 0xacd) - return true; - if (cp === 0xacd) - return true; + if (cp === 0xa83) return true; + if (cp === 0xabc) return true; + if (cp < 0xabe) return false; + if (cp < 0xac1) return true; + if (cp < 0xac1) return false; + if (cp < 0xac6) return true; + if (cp < 0xac7) return false; + if (cp < 0xac9) return true; + if (cp === 0xac9) return true; + if (cp < 0xacb) return false; + if (cp < 0xacd) return true; + if (cp === 0xacd) return true; return false; } - if (cp < 0xae4) - return true; - if (cp < 0xae6) - return false; - if (cp < 0xaf0) - return true; - if (cp < 0xafa) - return false; - if (cp < 0xb00) - return true; - if (cp === 0xb01) - return true; - if (cp < 0xb02) - return false; - if (cp < 0xb04) - return true; - if (cp === 0xb3c) - return true; - if (cp === 0xb3e) - return true; - if (cp === 0xb3f) - return true; + if (cp < 0xae4) return true; + if (cp < 0xae6) return false; + if (cp < 0xaf0) return true; + if (cp < 0xafa) return false; + if (cp < 0xb00) return true; + if (cp === 0xb01) return true; + if (cp < 0xb02) return false; + if (cp < 0xb04) return true; + if (cp === 0xb3c) return true; + if (cp === 0xb3e) return true; + if (cp === 0xb3f) return true; return false; } if (cp < 0xb66) { - if (cp === 0xb40) - return true; - if (cp < 0xb41) - return false; - if (cp < 0xb45) - return true; - if (cp < 0xb47) - return false; - if (cp < 0xb49) - return true; - if (cp < 0xb4b) - return false; - if (cp < 0xb4d) - return true; - if (cp === 0xb4d) - return true; - if (cp === 0xb56) - return true; - if (cp === 0xb57) - return true; - if (cp < 0xb62) - return false; - if (cp < 0xb64) - return true; + if (cp === 0xb40) return true; + if (cp < 0xb41) return false; + if (cp < 0xb45) return true; + if (cp < 0xb47) return false; + if (cp < 0xb49) return true; + if (cp < 0xb4b) return false; + if (cp < 0xb4d) return true; + if (cp === 0xb4d) return true; + if (cp === 0xb56) return true; + if (cp === 0xb57) return true; + if (cp < 0xb62) return false; + if (cp < 0xb64) return true; return false; } - if (cp < 0xb70) - return true; - if (cp === 0xb82) - return true; - if (cp < 0xbbe) - return false; - if (cp < 0xbc0) - return true; - if (cp === 0xbc0) - return true; - if (cp < 0xbc1) - return false; - if (cp < 0xbc3) - return true; - if (cp < 0xbc6) - return false; - if (cp < 0xbc9) - return true; - if (cp < 0xbca) - return false; - if (cp < 0xbcd) - return true; - if (cp === 0xbcd) - return true; - return false; - } - if (cp < 0xcc0) { - if (cp < 0xc55) { - if (cp === 0xbd7) - return true; - if (cp < 0xbe6) - return false; - if (cp < 0xbf0) - return true; - if (cp === 0xc00) - return true; - if (cp < 0xc01) - return false; - if (cp < 0xc04) - return true; - if (cp < 0xc3e) - return false; - if (cp < 0xc41) - return true; - if (cp < 0xc41) - return false; - if (cp < 0xc45) - return true; - if (cp < 0xc46) - return false; - if (cp < 0xc49) - return true; - if (cp < 0xc4a) - return false; - if (cp < 0xc4e) - return true; + if (cp < 0xb70) return true; + if (cp === 0xb82) return true; + if (cp < 0xbbe) return false; + if (cp < 0xbc0) return true; + if (cp === 0xbc0) return true; + if (cp < 0xbc1) return false; + if (cp < 0xbc3) return true; + if (cp < 0xbc6) return false; + if (cp < 0xbc9) return true; + if (cp < 0xbca) return false; + if (cp < 0xbcd) return true; + if (cp === 0xbcd) return true; + return false; + } + if (cp < 0xcc0) { + if (cp < 0xc55) { + if (cp === 0xbd7) return true; + if (cp < 0xbe6) return false; + if (cp < 0xbf0) return true; + if (cp === 0xc00) return true; + if (cp < 0xc01) return false; + if (cp < 0xc04) return true; + if (cp < 0xc3e) return false; + if (cp < 0xc41) return true; + if (cp < 0xc41) return false; + if (cp < 0xc45) return true; + if (cp < 0xc46) return false; + if (cp < 0xc49) return true; + if (cp < 0xc4a) return false; + if (cp < 0xc4e) return true; return false; } - if (cp < 0xc57) - return true; - if (cp < 0xc62) - return false; - if (cp < 0xc64) - return true; - if (cp < 0xc66) - return false; - if (cp < 0xc70) - return true; - if (cp === 0xc81) - return true; - if (cp < 0xc82) - return false; - if (cp < 0xc84) - return true; - if (cp === 0xcbc) - return true; - if (cp === 0xcbe) - return true; - if (cp === 0xcbf) - return true; + if (cp < 0xc57) return true; + if (cp < 0xc62) return false; + if (cp < 0xc64) return true; + if (cp < 0xc66) return false; + if (cp < 0xc70) return true; + if (cp === 0xc81) return true; + if (cp < 0xc82) return false; + if (cp < 0xc84) return true; + if (cp === 0xcbc) return true; + if (cp === 0xcbe) return true; + if (cp === 0xcbf) return true; return false; } if (cp < 0xd00) { - if (cp < 0xcc0) - return false; - if (cp < 0xcc5) - return true; - if (cp === 0xcc6) - return true; - if (cp < 0xcc7) - return false; - if (cp < 0xcc9) - return true; - if (cp < 0xcca) - return false; - if (cp < 0xccc) - return true; - if (cp < 0xccc) - return false; - if (cp < 0xcce) - return true; - if (cp < 0xcd5) - return false; - if (cp < 0xcd7) - return true; - if (cp < 0xce2) - return false; - if (cp < 0xce4) - return true; - if (cp < 0xce6) - return false; - if (cp < 0xcf0) - return true; + if (cp < 0xcc0) return false; + if (cp < 0xcc5) return true; + if (cp === 0xcc6) return true; + if (cp < 0xcc7) return false; + if (cp < 0xcc9) return true; + if (cp < 0xcca) return false; + if (cp < 0xccc) return true; + if (cp < 0xccc) return false; + if (cp < 0xcce) return true; + if (cp < 0xcd5) return false; + if (cp < 0xcd7) return true; + if (cp < 0xce2) return false; + if (cp < 0xce4) return true; + if (cp < 0xce6) return false; + if (cp < 0xcf0) return true; return false; } - if (cp < 0xd02) - return true; - if (cp < 0xd02) - return false; - if (cp < 0xd04) - return true; - if (cp < 0xd3b) - return false; - if (cp < 0xd3d) - return true; - if (cp < 0xd3e) - return false; - if (cp < 0xd41) - return true; - if (cp < 0xd41) - return false; - if (cp < 0xd45) - return true; - if (cp < 0xd46) - return false; - if (cp < 0xd49) - return true; - if (cp < 0xd4a) - return false; - if (cp < 0xd4d) - return true; - if (cp === 0xd4d) - return true; - if (cp === 0xd57) - return true; + if (cp < 0xd02) return true; + if (cp < 0xd02) return false; + if (cp < 0xd04) return true; + if (cp < 0xd3b) return false; + if (cp < 0xd3d) return true; + if (cp < 0xd3e) return false; + if (cp < 0xd41) return true; + if (cp < 0xd41) return false; + if (cp < 0xd45) return true; + if (cp < 0xd46) return false; + if (cp < 0xd49) return true; + if (cp < 0xd4a) return false; + if (cp < 0xd4d) return true; + if (cp === 0xd4d) return true; + if (cp === 0xd57) return true; return false; } if (cp < 0x17be) { if (cp < 0x102b) { if (cp < 0xebb) { if (cp < 0xde6) { - if (cp < 0xd62) - return false; - if (cp < 0xd64) - return true; - if (cp < 0xd66) - return false; - if (cp < 0xd70) - return true; - if (cp < 0xd82) - return false; - if (cp < 0xd84) - return true; - if (cp === 0xdca) - return true; - if (cp < 0xdcf) - return false; - if (cp < 0xdd2) - return true; - if (cp < 0xdd2) - return false; - if (cp < 0xdd5) - return true; - if (cp === 0xdd6) - return true; - if (cp < 0xdd8) - return false; - if (cp < 0xde0) - return true; + if (cp < 0xd62) return false; + if (cp < 0xd64) return true; + if (cp < 0xd66) return false; + if (cp < 0xd70) return true; + if (cp < 0xd82) return false; + if (cp < 0xd84) return true; + if (cp === 0xdca) return true; + if (cp < 0xdcf) return false; + if (cp < 0xdd2) return true; + if (cp < 0xdd2) return false; + if (cp < 0xdd5) return true; + if (cp === 0xdd6) return true; + if (cp < 0xdd8) return false; + if (cp < 0xde0) return true; return false; } - if (cp < 0xdf0) - return true; - if (cp < 0xdf2) - return false; - if (cp < 0xdf4) - return true; - if (cp === 0xe31) - return true; - if (cp < 0xe34) - return false; - if (cp < 0xe3b) - return true; - if (cp < 0xe47) - return false; - if (cp < 0xe4f) - return true; - if (cp < 0xe50) - return false; - if (cp < 0xe5a) - return true; - if (cp === 0xeb1) - return true; - if (cp < 0xeb4) - return false; - if (cp < 0xeba) - return true; + if (cp < 0xdf0) return true; + if (cp < 0xdf2) return false; + if (cp < 0xdf4) return true; + if (cp === 0xe31) return true; + if (cp < 0xe34) return false; + if (cp < 0xe3b) return true; + if (cp < 0xe47) return false; + if (cp < 0xe4f) return true; + if (cp < 0xe50) return false; + if (cp < 0xe5a) return true; + if (cp === 0xeb1) return true; + if (cp < 0xeb4) return false; + if (cp < 0xeba) return true; return false; } if (cp < 0xf3e) { - if (cp < 0xebb) - return false; - if (cp < 0xebd) - return true; - if (cp < 0xec8) - return false; - if (cp < 0xece) - return true; - if (cp < 0xed0) - return false; - if (cp < 0xeda) - return true; - if (cp < 0xf18) - return false; - if (cp < 0xf1a) - return true; - if (cp < 0xf20) - return false; - if (cp < 0xf2a) - return true; - if (cp === 0xf35) - return true; - if (cp === 0xf37) - return true; - if (cp === 0xf39) - return true; + if (cp < 0xebb) return false; + if (cp < 0xebd) return true; + if (cp < 0xec8) return false; + if (cp < 0xece) return true; + if (cp < 0xed0) return false; + if (cp < 0xeda) return true; + if (cp < 0xf18) return false; + if (cp < 0xf1a) return true; + if (cp < 0xf20) return false; + if (cp < 0xf2a) return true; + if (cp === 0xf35) return true; + if (cp === 0xf37) return true; + if (cp === 0xf39) return true; return false; } - if (cp < 0xf40) - return true; - if (cp < 0xf71) - return false; - if (cp < 0xf7f) - return true; - if (cp === 0xf7f) - return true; - if (cp < 0xf80) - return false; - if (cp < 0xf85) - return true; - if (cp < 0xf86) - return false; - if (cp < 0xf88) - return true; - if (cp < 0xf8d) - return false; - if (cp < 0xf98) - return true; - if (cp < 0xf99) - return false; - if (cp < 0xfbd) - return true; - if (cp === 0xfc6) - return true; + if (cp < 0xf40) return true; + if (cp < 0xf71) return false; + if (cp < 0xf7f) return true; + if (cp === 0xf7f) return true; + if (cp < 0xf80) return false; + if (cp < 0xf85) return true; + if (cp < 0xf86) return false; + if (cp < 0xf88) return true; + if (cp < 0xf8d) return false; + if (cp < 0xf98) return true; + if (cp < 0xf99) return false; + if (cp < 0xfbd) return true; + if (cp === 0xfc6) return true; return false; } if (cp < 0x1083) { if (cp < 0x1040) { - if (cp < 0x102b) - return false; - if (cp < 0x102d) - return true; - if (cp < 0x102d) - return false; - if (cp < 0x1031) - return true; - if (cp === 0x1031) - return true; - if (cp < 0x1032) - return false; - if (cp < 0x1038) - return true; - if (cp === 0x1038) - return true; - if (cp < 0x1039) - return false; - if (cp < 0x103b) - return true; - if (cp < 0x103b) - return false; - if (cp < 0x103d) - return true; - if (cp < 0x103d) - return false; - if (cp < 0x103f) - return true; + if (cp < 0x102b) return false; + if (cp < 0x102d) return true; + if (cp < 0x102d) return false; + if (cp < 0x1031) return true; + if (cp === 0x1031) return true; + if (cp < 0x1032) return false; + if (cp < 0x1038) return true; + if (cp === 0x1038) return true; + if (cp < 0x1039) return false; + if (cp < 0x103b) return true; + if (cp < 0x103b) return false; + if (cp < 0x103d) return true; + if (cp < 0x103d) return false; + if (cp < 0x103f) return true; return false; } - if (cp < 0x104a) - return true; - if (cp < 0x1056) - return false; - if (cp < 0x1058) - return true; - if (cp < 0x1058) - return false; - if (cp < 0x105a) - return true; - if (cp < 0x105e) - return false; - if (cp < 0x1061) - return true; - if (cp < 0x1062) - return false; - if (cp < 0x1065) - return true; - if (cp < 0x1067) - return false; - if (cp < 0x106e) - return true; - if (cp < 0x1071) - return false; - if (cp < 0x1075) - return true; - if (cp === 0x1082) - return true; + if (cp < 0x104a) return true; + if (cp < 0x1056) return false; + if (cp < 0x1058) return true; + if (cp < 0x1058) return false; + if (cp < 0x105a) return true; + if (cp < 0x105e) return false; + if (cp < 0x1061) return true; + if (cp < 0x1062) return false; + if (cp < 0x1065) return true; + if (cp < 0x1067) return false; + if (cp < 0x106e) return true; + if (cp < 0x1071) return false; + if (cp < 0x1075) return true; + if (cp === 0x1082) return true; return false; } if (cp < 0x135d) { - if (cp < 0x1083) - return false; - if (cp < 0x1085) - return true; - if (cp < 0x1085) - return false; - if (cp < 0x1087) - return true; - if (cp < 0x1087) - return false; - if (cp < 0x108d) - return true; - if (cp === 0x108d) - return true; - if (cp === 0x108f) - return true; - if (cp < 0x1090) - return false; - if (cp < 0x109a) - return true; - if (cp < 0x109a) - return false; - if (cp < 0x109d) - return true; - if (cp === 0x109d) - return true; + if (cp < 0x1083) return false; + if (cp < 0x1085) return true; + if (cp < 0x1085) return false; + if (cp < 0x1087) return true; + if (cp < 0x1087) return false; + if (cp < 0x108d) return true; + if (cp === 0x108d) return true; + if (cp === 0x108f) return true; + if (cp < 0x1090) return false; + if (cp < 0x109a) return true; + if (cp < 0x109a) return false; + if (cp < 0x109d) return true; + if (cp === 0x109d) return true; return false; } - if (cp < 0x1360) - return true; - if (cp < 0x1369) - return false; - if (cp < 0x1372) - return true; - if (cp < 0x1712) - return false; - if (cp < 0x1715) - return true; - if (cp < 0x1732) - return false; - if (cp < 0x1735) - return true; - if (cp < 0x1752) - return false; - if (cp < 0x1754) - return true; - if (cp < 0x1772) - return false; - if (cp < 0x1774) - return true; - if (cp < 0x17b4) - return false; - if (cp < 0x17b6) - return true; - if (cp === 0x17b6) - return true; - if (cp < 0x17b7) - return false; - if (cp < 0x17be) - return true; + if (cp < 0x1360) return true; + if (cp < 0x1369) return false; + if (cp < 0x1372) return true; + if (cp < 0x1712) return false; + if (cp < 0x1715) return true; + if (cp < 0x1732) return false; + if (cp < 0x1735) return true; + if (cp < 0x1752) return false; + if (cp < 0x1754) return true; + if (cp < 0x1772) return false; + if (cp < 0x1774) return true; + if (cp < 0x17b4) return false; + if (cp < 0x17b6) return true; + if (cp === 0x17b6) return true; + if (cp < 0x17b7) return false; + if (cp < 0x17be) return true; return false; } if (cp < 0x1a73) { if (cp < 0x1939) { if (cp < 0x18a9) { - if (cp < 0x17be) - return false; - if (cp < 0x17c6) - return true; - if (cp === 0x17c6) - return true; - if (cp < 0x17c7) - return false; - if (cp < 0x17c9) - return true; - if (cp < 0x17c9) - return false; - if (cp < 0x17d4) - return true; - if (cp === 0x17dd) - return true; - if (cp < 0x17e0) - return false; - if (cp < 0x17ea) - return true; - if (cp < 0x180b) - return false; - if (cp < 0x180e) - return true; - if (cp < 0x1810) - return false; - if (cp < 0x181a) - return true; + if (cp < 0x17be) return false; + if (cp < 0x17c6) return true; + if (cp === 0x17c6) return true; + if (cp < 0x17c7) return false; + if (cp < 0x17c9) return true; + if (cp < 0x17c9) return false; + if (cp < 0x17d4) return true; + if (cp === 0x17dd) return true; + if (cp < 0x17e0) return false; + if (cp < 0x17ea) return true; + if (cp < 0x180b) return false; + if (cp < 0x180e) return true; + if (cp < 0x1810) return false; + if (cp < 0x181a) return true; return false; } - if (cp === 0x18a9) - return true; - if (cp < 0x1920) - return false; - if (cp < 0x1923) - return true; - if (cp < 0x1923) - return false; - if (cp < 0x1927) - return true; - if (cp < 0x1927) - return false; - if (cp < 0x1929) - return true; - if (cp < 0x1929) - return false; - if (cp < 0x192c) - return true; - if (cp < 0x1930) - return false; - if (cp < 0x1932) - return true; - if (cp === 0x1932) - return true; - if (cp < 0x1933) - return false; - if (cp < 0x1939) - return true; + if (cp === 0x18a9) return true; + if (cp < 0x1920) return false; + if (cp < 0x1923) return true; + if (cp < 0x1923) return false; + if (cp < 0x1927) return true; + if (cp < 0x1927) return false; + if (cp < 0x1929) return true; + if (cp < 0x1929) return false; + if (cp < 0x192c) return true; + if (cp < 0x1930) return false; + if (cp < 0x1932) return true; + if (cp === 0x1932) return true; + if (cp < 0x1933) return false; + if (cp < 0x1939) return true; return false; } if (cp < 0x1a56) { - if (cp < 0x1939) - return false; - if (cp < 0x193c) - return true; - if (cp < 0x1946) - return false; - if (cp < 0x1950) - return true; - if (cp < 0x19d0) - return false; - if (cp < 0x19da) - return true; - if (cp === 0x19da) - return true; - if (cp < 0x1a17) - return false; - if (cp < 0x1a19) - return true; - if (cp < 0x1a19) - return false; - if (cp < 0x1a1b) - return true; - if (cp === 0x1a1b) - return true; - if (cp === 0x1a55) - return true; + if (cp < 0x1939) return false; + if (cp < 0x193c) return true; + if (cp < 0x1946) return false; + if (cp < 0x1950) return true; + if (cp < 0x19d0) return false; + if (cp < 0x19da) return true; + if (cp === 0x19da) return true; + if (cp < 0x1a17) return false; + if (cp < 0x1a19) return true; + if (cp < 0x1a19) return false; + if (cp < 0x1a1b) return true; + if (cp === 0x1a1b) return true; + if (cp === 0x1a55) return true; return false; } - if (cp === 0x1a56) - return true; - if (cp === 0x1a57) - return true; - if (cp < 0x1a58) - return false; - if (cp < 0x1a5f) - return true; - if (cp === 0x1a60) - return true; - if (cp === 0x1a61) - return true; - if (cp === 0x1a62) - return true; - if (cp < 0x1a63) - return false; - if (cp < 0x1a65) - return true; - if (cp < 0x1a65) - return false; - if (cp < 0x1a6d) - return true; - if (cp < 0x1a6d) - return false; - if (cp < 0x1a73) - return true; + if (cp === 0x1a56) return true; + if (cp === 0x1a57) return true; + if (cp < 0x1a58) return false; + if (cp < 0x1a5f) return true; + if (cp === 0x1a60) return true; + if (cp === 0x1a61) return true; + if (cp === 0x1a62) return true; + if (cp < 0x1a63) return false; + if (cp < 0x1a65) return true; + if (cp < 0x1a65) return false; + if (cp < 0x1a6d) return true; + if (cp < 0x1a6d) return false; + if (cp < 0x1a73) return true; return false; } if (cp < 0x1b6b) { if (cp < 0x1b35) { - if (cp < 0x1a73) - return false; - if (cp < 0x1a7d) - return true; - if (cp === 0x1a7f) - return true; - if (cp < 0x1a80) - return false; - if (cp < 0x1a8a) - return true; - if (cp < 0x1a90) - return false; - if (cp < 0x1a9a) - return true; - if (cp < 0x1ab0) - return false; - if (cp < 0x1abe) - return true; - if (cp < 0x1b00) - return false; - if (cp < 0x1b04) - return true; - if (cp === 0x1b04) - return true; - if (cp === 0x1b34) - return true; + if (cp < 0x1a73) return false; + if (cp < 0x1a7d) return true; + if (cp === 0x1a7f) return true; + if (cp < 0x1a80) return false; + if (cp < 0x1a8a) return true; + if (cp < 0x1a90) return false; + if (cp < 0x1a9a) return true; + if (cp < 0x1ab0) return false; + if (cp < 0x1abe) return true; + if (cp < 0x1b00) return false; + if (cp < 0x1b04) return true; + if (cp === 0x1b04) return true; + if (cp === 0x1b34) return true; return false; } - if (cp === 0x1b35) - return true; - if (cp < 0x1b36) - return false; - if (cp < 0x1b3b) - return true; - if (cp === 0x1b3b) - return true; - if (cp === 0x1b3c) - return true; - if (cp < 0x1b3d) - return false; - if (cp < 0x1b42) - return true; - if (cp === 0x1b42) - return true; - if (cp < 0x1b43) - return false; - if (cp < 0x1b45) - return true; - if (cp < 0x1b50) - return false; - if (cp < 0x1b5a) - return true; + if (cp === 0x1b35) return true; + if (cp < 0x1b36) return false; + if (cp < 0x1b3b) return true; + if (cp === 0x1b3b) return true; + if (cp === 0x1b3c) return true; + if (cp < 0x1b3d) return false; + if (cp < 0x1b42) return true; + if (cp === 0x1b42) return true; + if (cp < 0x1b43) return false; + if (cp < 0x1b45) return true; + if (cp < 0x1b50) return false; + if (cp < 0x1b5a) return true; return false; } if (cp < 0x1bab) { - if (cp < 0x1b6b) - return false; - if (cp < 0x1b74) - return true; - if (cp < 0x1b80) - return false; - if (cp < 0x1b82) - return true; - if (cp === 0x1b82) - return true; - if (cp === 0x1ba1) - return true; - if (cp < 0x1ba2) - return false; - if (cp < 0x1ba6) - return true; - if (cp < 0x1ba6) - return false; - if (cp < 0x1ba8) - return true; - if (cp < 0x1ba8) - return false; - if (cp < 0x1baa) - return true; - if (cp === 0x1baa) - return true; + if (cp < 0x1b6b) return false; + if (cp < 0x1b74) return true; + if (cp < 0x1b80) return false; + if (cp < 0x1b82) return true; + if (cp === 0x1b82) return true; + if (cp === 0x1ba1) return true; + if (cp < 0x1ba2) return false; + if (cp < 0x1ba6) return true; + if (cp < 0x1ba6) return false; + if (cp < 0x1ba8) return true; + if (cp < 0x1ba8) return false; + if (cp < 0x1baa) return true; + if (cp === 0x1baa) return true; return false; } - if (cp < 0x1bae) - return true; - if (cp < 0x1bb0) - return false; - if (cp < 0x1bba) - return true; - if (cp === 0x1be6) - return true; - if (cp === 0x1be7) - return true; - if (cp < 0x1be8) - return false; - if (cp < 0x1bea) - return true; - if (cp < 0x1bea) - return false; - if (cp < 0x1bed) - return true; - if (cp === 0x1bed) - return true; - if (cp === 0x1bee) - return true; - if (cp < 0x1bef) - return false; - if (cp < 0x1bf2) - return true; + if (cp < 0x1bae) return true; + if (cp < 0x1bb0) return false; + if (cp < 0x1bba) return true; + if (cp === 0x1be6) return true; + if (cp === 0x1be7) return true; + if (cp < 0x1be8) return false; + if (cp < 0x1bea) return true; + if (cp < 0x1bea) return false; + if (cp < 0x1bed) return true; + if (cp === 0x1bed) return true; + if (cp === 0x1bee) return true; + if (cp < 0x1bef) return false; + if (cp < 0x1bf2) return true; return false; } if (cp < 0x111d0) { @@ -3756,1501 +2171,610 @@ function isLargeIdContinue(cp) { if (cp < 0xa69e) { if (cp < 0x1dc0) { if (cp < 0x1cd4) { - if (cp < 0x1bf2) - return false; - if (cp < 0x1bf4) - return true; - if (cp < 0x1c24) - return false; - if (cp < 0x1c2c) - return true; - if (cp < 0x1c2c) - return false; - if (cp < 0x1c34) - return true; - if (cp < 0x1c34) - return false; - if (cp < 0x1c36) - return true; - if (cp < 0x1c36) - return false; - if (cp < 0x1c38) - return true; - if (cp < 0x1c40) - return false; - if (cp < 0x1c4a) - return true; - if (cp < 0x1c50) - return false; - if (cp < 0x1c5a) - return true; - if (cp < 0x1cd0) - return false; - if (cp < 0x1cd3) - return true; + if (cp < 0x1bf2) return false; + if (cp < 0x1bf4) return true; + if (cp < 0x1c24) return false; + if (cp < 0x1c2c) return true; + if (cp < 0x1c2c) return false; + if (cp < 0x1c34) return true; + if (cp < 0x1c34) return false; + if (cp < 0x1c36) return true; + if (cp < 0x1c36) return false; + if (cp < 0x1c38) return true; + if (cp < 0x1c40) return false; + if (cp < 0x1c4a) return true; + if (cp < 0x1c50) return false; + if (cp < 0x1c5a) return true; + if (cp < 0x1cd0) return false; + if (cp < 0x1cd3) return true; return false; } - if (cp < 0x1ce1) - return true; - if (cp === 0x1ce1) - return true; - if (cp < 0x1ce2) - return false; - if (cp < 0x1ce9) - return true; - if (cp === 0x1ced) - return true; - if (cp < 0x1cf2) - return false; - if (cp < 0x1cf4) - return true; - if (cp === 0x1cf4) - return true; - if (cp === 0x1cf7) - return true; - if (cp < 0x1cf8) - return false; - if (cp < 0x1cfa) - return true; + if (cp < 0x1ce1) return true; + if (cp === 0x1ce1) return true; + if (cp < 0x1ce2) return false; + if (cp < 0x1ce9) return true; + if (cp === 0x1ced) return true; + if (cp < 0x1cf2) return false; + if (cp < 0x1cf4) return true; + if (cp === 0x1cf4) return true; + if (cp === 0x1cf7) return true; + if (cp < 0x1cf8) return false; + if (cp < 0x1cfa) return true; return false; } if (cp < 0x2d7f) { - if (cp < 0x1dc0) - return false; - if (cp < 0x1dfa) - return true; - if (cp < 0x1dfb) - return false; - if (cp < 0x1e00) - return true; - if (cp < 0x203f) - return false; - if (cp < 0x2041) - return true; - if (cp === 0x2054) - return true; - if (cp < 0x20d0) - return false; - if (cp < 0x20dd) - return true; - if (cp === 0x20e1) - return true; - if (cp < 0x20e5) - return false; - if (cp < 0x20f1) - return true; - if (cp < 0x2cef) - return false; - if (cp < 0x2cf2) - return true; + if (cp < 0x1dc0) return false; + if (cp < 0x1dfa) return true; + if (cp < 0x1dfb) return false; + if (cp < 0x1e00) return true; + if (cp < 0x203f) return false; + if (cp < 0x2041) return true; + if (cp === 0x2054) return true; + if (cp < 0x20d0) return false; + if (cp < 0x20dd) return true; + if (cp === 0x20e1) return true; + if (cp < 0x20e5) return false; + if (cp < 0x20f1) return true; + if (cp < 0x2cef) return false; + if (cp < 0x2cf2) return true; return false; } - if (cp === 0x2d7f) - return true; - if (cp < 0x2de0) - return false; - if (cp < 0x2e00) - return true; - if (cp < 0x302a) - return false; - if (cp < 0x302e) - return true; - if (cp < 0x302e) - return false; - if (cp < 0x3030) - return true; - if (cp < 0x3099) - return false; - if (cp < 0x309b) - return true; - if (cp < 0xa620) - return false; - if (cp < 0xa62a) - return true; - if (cp === 0xa66f) - return true; - if (cp < 0xa674) - return false; - if (cp < 0xa67e) - return true; + if (cp === 0x2d7f) return true; + if (cp < 0x2de0) return false; + if (cp < 0x2e00) return true; + if (cp < 0x302a) return false; + if (cp < 0x302e) return true; + if (cp < 0x302e) return false; + if (cp < 0x3030) return true; + if (cp < 0x3099) return false; + if (cp < 0x309b) return true; + if (cp < 0xa620) return false; + if (cp < 0xa62a) return true; + if (cp === 0xa66f) return true; + if (cp < 0xa674) return false; + if (cp < 0xa67e) return true; return false; } if (cp < 0xa952) { if (cp < 0xa880) { - if (cp < 0xa69e) - return false; - if (cp < 0xa6a0) - return true; - if (cp < 0xa6f0) - return false; - if (cp < 0xa6f2) - return true; - if (cp === 0xa802) - return true; - if (cp === 0xa806) - return true; - if (cp === 0xa80b) - return true; - if (cp < 0xa823) - return false; - if (cp < 0xa825) - return true; - if (cp < 0xa825) - return false; - if (cp < 0xa827) - return true; - if (cp === 0xa827) - return true; + if (cp < 0xa69e) return false; + if (cp < 0xa6a0) return true; + if (cp < 0xa6f0) return false; + if (cp < 0xa6f2) return true; + if (cp === 0xa802) return true; + if (cp === 0xa806) return true; + if (cp === 0xa80b) return true; + if (cp < 0xa823) return false; + if (cp < 0xa825) return true; + if (cp < 0xa825) return false; + if (cp < 0xa827) return true; + if (cp === 0xa827) return true; return false; } - if (cp < 0xa882) - return true; - if (cp < 0xa8b4) - return false; - if (cp < 0xa8c4) - return true; - if (cp < 0xa8c4) - return false; - if (cp < 0xa8c6) - return true; - if (cp < 0xa8d0) - return false; - if (cp < 0xa8da) - return true; - if (cp < 0xa8e0) - return false; - if (cp < 0xa8f2) - return true; - if (cp < 0xa900) - return false; - if (cp < 0xa90a) - return true; - if (cp < 0xa926) - return false; - if (cp < 0xa92e) - return true; - if (cp < 0xa947) - return false; - if (cp < 0xa952) - return true; + if (cp < 0xa882) return true; + if (cp < 0xa8b4) return false; + if (cp < 0xa8c4) return true; + if (cp < 0xa8c4) return false; + if (cp < 0xa8c6) return true; + if (cp < 0xa8d0) return false; + if (cp < 0xa8da) return true; + if (cp < 0xa8e0) return false; + if (cp < 0xa8f2) return true; + if (cp < 0xa900) return false; + if (cp < 0xa90a) return true; + if (cp < 0xa926) return false; + if (cp < 0xa92e) return true; + if (cp < 0xa947) return false; + if (cp < 0xa952) return true; return false; } if (cp < 0xa9bd) { - if (cp < 0xa952) - return false; - if (cp < 0xa954) - return true; - if (cp < 0xa980) - return false; - if (cp < 0xa983) - return true; - if (cp === 0xa983) - return true; - if (cp === 0xa9b3) - return true; - if (cp < 0xa9b4) - return false; - if (cp < 0xa9b6) - return true; - if (cp < 0xa9b6) - return false; - if (cp < 0xa9ba) - return true; - if (cp < 0xa9ba) - return false; - if (cp < 0xa9bc) - return true; - if (cp === 0xa9bc) - return true; + if (cp < 0xa952) return false; + if (cp < 0xa954) return true; + if (cp < 0xa980) return false; + if (cp < 0xa983) return true; + if (cp === 0xa983) return true; + if (cp === 0xa9b3) return true; + if (cp < 0xa9b4) return false; + if (cp < 0xa9b6) return true; + if (cp < 0xa9b6) return false; + if (cp < 0xa9ba) return true; + if (cp < 0xa9ba) return false; + if (cp < 0xa9bc) return true; + if (cp === 0xa9bc) return true; return false; } - if (cp < 0xa9c1) - return true; - if (cp < 0xa9d0) - return false; - if (cp < 0xa9da) - return true; - if (cp === 0xa9e5) - return true; - if (cp < 0xa9f0) - return false; - if (cp < 0xa9fa) - return true; - if (cp < 0xaa29) - return false; - if (cp < 0xaa2f) - return true; - if (cp < 0xaa2f) - return false; - if (cp < 0xaa31) - return true; - if (cp < 0xaa31) - return false; - if (cp < 0xaa33) - return true; - if (cp < 0xaa33) - return false; - if (cp < 0xaa35) - return true; - if (cp < 0xaa35) - return false; - if (cp < 0xaa37) - return true; + if (cp < 0xa9c1) return true; + if (cp < 0xa9d0) return false; + if (cp < 0xa9da) return true; + if (cp === 0xa9e5) return true; + if (cp < 0xa9f0) return false; + if (cp < 0xa9fa) return true; + if (cp < 0xaa29) return false; + if (cp < 0xaa2f) return true; + if (cp < 0xaa2f) return false; + if (cp < 0xaa31) return true; + if (cp < 0xaa31) return false; + if (cp < 0xaa33) return true; + if (cp < 0xaa33) return false; + if (cp < 0xaa35) return true; + if (cp < 0xaa35) return false; + if (cp < 0xaa37) return true; return false; } if (cp < 0x102e0) { if (cp < 0xaaf6) { if (cp < 0xaab2) { - if (cp === 0xaa43) - return true; - if (cp === 0xaa4c) - return true; - if (cp === 0xaa4d) - return true; - if (cp < 0xaa50) - return false; - if (cp < 0xaa5a) - return true; - if (cp === 0xaa7b) - return true; - if (cp === 0xaa7c) - return true; - if (cp === 0xaa7d) - return true; - if (cp === 0xaab0) - return true; + if (cp === 0xaa43) return true; + if (cp === 0xaa4c) return true; + if (cp === 0xaa4d) return true; + if (cp < 0xaa50) return false; + if (cp < 0xaa5a) return true; + if (cp === 0xaa7b) return true; + if (cp === 0xaa7c) return true; + if (cp === 0xaa7d) return true; + if (cp === 0xaab0) return true; return false; } - if (cp < 0xaab5) - return true; - if (cp < 0xaab7) - return false; - if (cp < 0xaab9) - return true; - if (cp < 0xaabe) - return false; - if (cp < 0xaac0) - return true; - if (cp === 0xaac1) - return true; - if (cp === 0xaaeb) - return true; - if (cp < 0xaaec) - return false; - if (cp < 0xaaee) - return true; - if (cp < 0xaaee) - return false; - if (cp < 0xaaf0) - return true; - if (cp === 0xaaf5) - return true; + if (cp < 0xaab5) return true; + if (cp < 0xaab7) return false; + if (cp < 0xaab9) return true; + if (cp < 0xaabe) return false; + if (cp < 0xaac0) return true; + if (cp === 0xaac1) return true; + if (cp === 0xaaeb) return true; + if (cp < 0xaaec) return false; + if (cp < 0xaaee) return true; + if (cp < 0xaaee) return false; + if (cp < 0xaaf0) return true; + if (cp === 0xaaf5) return true; return false; } if (cp < 0xabf0) { - if (cp === 0xaaf6) - return true; - if (cp < 0xabe3) - return false; - if (cp < 0xabe5) - return true; - if (cp === 0xabe5) - return true; - if (cp < 0xabe6) - return false; - if (cp < 0xabe8) - return true; - if (cp === 0xabe8) - return true; - if (cp < 0xabe9) - return false; - if (cp < 0xabeb) - return true; - if (cp === 0xabec) - return true; - if (cp === 0xabed) - return true; - return false; - } - if (cp < 0xabfa) - return true; - if (cp === 0xfb1e) - return true; - if (cp < 0xfe00) - return false; - if (cp < 0xfe10) - return true; - if (cp < 0xfe20) - return false; - if (cp < 0xfe30) - return true; - if (cp < 0xfe33) - return false; - if (cp < 0xfe35) - return true; - if (cp < 0xfe4d) - return false; - if (cp < 0xfe50) - return true; - if (cp < 0xff10) - return false; - if (cp < 0xff1a) - return true; - if (cp === 0xff3f) - return true; - if (cp === 0x101fd) - return true; - return false; - } - if (cp < 0x110b0) { - if (cp < 0x10ae5) { - if (cp === 0x102e0) - return true; - if (cp < 0x10376) - return false; - if (cp < 0x1037b) - return true; - if (cp < 0x104a0) - return false; - if (cp < 0x104aa) - return true; - if (cp < 0x10a01) - return false; - if (cp < 0x10a04) - return true; - if (cp < 0x10a05) - return false; - if (cp < 0x10a07) - return true; - if (cp < 0x10a0c) - return false; - if (cp < 0x10a10) - return true; - if (cp < 0x10a38) - return false; - if (cp < 0x10a3b) - return true; - if (cp === 0x10a3f) - return true; - return false; - } - if (cp < 0x10ae7) - return true; - if (cp === 0x11000) - return true; - if (cp === 0x11001) - return true; - if (cp === 0x11002) - return true; - if (cp < 0x11038) - return false; - if (cp < 0x11047) - return true; - if (cp < 0x11066) - return false; - if (cp < 0x11070) - return true; - if (cp < 0x1107f) - return false; - if (cp < 0x11082) - return true; - if (cp === 0x11082) - return true; - return false; - } - if (cp < 0x1112d) { - if (cp < 0x110b0) - return false; - if (cp < 0x110b3) - return true; - if (cp < 0x110b3) - return false; - if (cp < 0x110b7) - return true; - if (cp < 0x110b7) - return false; - if (cp < 0x110b9) - return true; - if (cp < 0x110b9) - return false; - if (cp < 0x110bb) - return true; - if (cp < 0x110f0) - return false; - if (cp < 0x110fa) - return true; - if (cp < 0x11100) - return false; - if (cp < 0x11103) - return true; - if (cp < 0x11127) - return false; - if (cp < 0x1112c) - return true; - if (cp === 0x1112c) - return true; - return false; - } - if (cp < 0x11135) - return true; - if (cp < 0x11136) - return false; - if (cp < 0x11140) - return true; - if (cp === 0x11173) - return true; - if (cp < 0x11180) - return false; - if (cp < 0x11182) - return true; - if (cp === 0x11182) - return true; - if (cp < 0x111b3) - return false; - if (cp < 0x111b6) - return true; - if (cp < 0x111b6) - return false; - if (cp < 0x111bf) - return true; - if (cp < 0x111bf) - return false; - if (cp < 0x111c1) - return true; - if (cp < 0x111ca) - return false; - if (cp < 0x111cd) - return true; - return false; - } - if (cp < 0x11726) { - if (cp < 0x114b3) { - if (cp < 0x11340) { - if (cp < 0x112df) { - if (cp < 0x111d0) - return false; - if (cp < 0x111da) - return true; - if (cp < 0x1122c) - return false; - if (cp < 0x1122f) - return true; - if (cp < 0x1122f) - return false; - if (cp < 0x11232) - return true; - if (cp < 0x11232) - return false; - if (cp < 0x11234) - return true; - if (cp === 0x11234) - return true; - if (cp === 0x11235) - return true; - if (cp < 0x11236) - return false; - if (cp < 0x11238) - return true; - if (cp === 0x1123e) - return true; - return false; - } - if (cp === 0x112df) - return true; - if (cp < 0x112e0) - return false; - if (cp < 0x112e3) - return true; - if (cp < 0x112e3) - return false; - if (cp < 0x112eb) - return true; - if (cp < 0x112f0) - return false; - if (cp < 0x112fa) - return true; - if (cp < 0x11300) - return false; - if (cp < 0x11302) - return true; - if (cp < 0x11302) - return false; - if (cp < 0x11304) - return true; - if (cp === 0x1133c) - return true; - if (cp < 0x1133e) - return false; - if (cp < 0x11340) - return true; + if (cp === 0xaaf6) return true; + if (cp < 0xabe3) return false; + if (cp < 0xabe5) return true; + if (cp === 0xabe5) return true; + if (cp < 0xabe6) return false; + if (cp < 0xabe8) return true; + if (cp === 0xabe8) return true; + if (cp < 0xabe9) return false; + if (cp < 0xabeb) return true; + if (cp === 0xabec) return true; + if (cp === 0xabed) return true; return false; } - if (cp < 0x11435) { - if (cp === 0x11340) - return true; - if (cp < 0x11341) - return false; - if (cp < 0x11345) - return true; - if (cp < 0x11347) - return false; - if (cp < 0x11349) - return true; - if (cp < 0x1134b) - return false; - if (cp < 0x1134e) - return true; - if (cp === 0x11357) - return true; - if (cp < 0x11362) - return false; - if (cp < 0x11364) - return true; - if (cp < 0x11366) - return false; - if (cp < 0x1136d) - return true; - if (cp < 0x11370) - return false; - if (cp < 0x11375) - return true; - return false; - } - if (cp < 0x11438) - return true; - if (cp < 0x11438) - return false; - if (cp < 0x11440) - return true; - if (cp < 0x11440) - return false; - if (cp < 0x11442) - return true; - if (cp < 0x11442) - return false; - if (cp < 0x11445) - return true; - if (cp === 0x11445) - return true; - if (cp === 0x11446) - return true; - if (cp < 0x11450) - return false; - if (cp < 0x1145a) - return true; - if (cp < 0x114b0) - return false; - if (cp < 0x114b3) - return true; - return false; - } - if (cp < 0x11633) { - if (cp < 0x115af) { - if (cp < 0x114b3) - return false; - if (cp < 0x114b9) - return true; - if (cp === 0x114b9) - return true; - if (cp === 0x114ba) - return true; - if (cp < 0x114bb) - return false; - if (cp < 0x114bf) - return true; - if (cp < 0x114bf) - return false; - if (cp < 0x114c1) - return true; - if (cp === 0x114c1) - return true; - if (cp < 0x114c2) - return false; - if (cp < 0x114c4) - return true; - if (cp < 0x114d0) - return false; - if (cp < 0x114da) - return true; - return false; - } - if (cp < 0x115b2) - return true; - if (cp < 0x115b2) - return false; - if (cp < 0x115b6) - return true; - if (cp < 0x115b8) - return false; - if (cp < 0x115bc) - return true; - if (cp < 0x115bc) - return false; - if (cp < 0x115be) - return true; - if (cp === 0x115be) - return true; - if (cp < 0x115bf) - return false; - if (cp < 0x115c1) - return true; - if (cp < 0x115dc) - return false; - if (cp < 0x115de) - return true; - if (cp < 0x11630) - return false; - if (cp < 0x11633) - return true; - return false; - } - if (cp < 0x116ad) { - if (cp < 0x11633) - return false; - if (cp < 0x1163b) - return true; - if (cp < 0x1163b) - return false; - if (cp < 0x1163d) - return true; - if (cp === 0x1163d) - return true; - if (cp === 0x1163e) - return true; - if (cp < 0x1163f) - return false; - if (cp < 0x11641) - return true; - if (cp < 0x11650) - return false; - if (cp < 0x1165a) - return true; - if (cp === 0x116ab) - return true; - if (cp === 0x116ac) - return true; - return false; - } - if (cp === 0x116ad) - return true; - if (cp < 0x116ae) - return false; - if (cp < 0x116b0) - return true; - if (cp < 0x116b0) - return false; - if (cp < 0x116b6) - return true; - if (cp === 0x116b6) - return true; - if (cp === 0x116b7) - return true; - if (cp < 0x116c0) - return false; - if (cp < 0x116ca) - return true; - if (cp < 0x1171d) - return false; - if (cp < 0x11720) - return true; - if (cp < 0x11720) - return false; - if (cp < 0x11722) - return true; - if (cp < 0x11722) - return false; - if (cp < 0x11726) - return true; - return false; - } - if (cp < 0x11d3f) { - if (cp < 0x11a98) { - if (cp < 0x11a39) { - if (cp === 0x11726) - return true; - if (cp < 0x11727) - return false; - if (cp < 0x1172c) - return true; - if (cp < 0x11730) - return false; - if (cp < 0x1173a) - return true; - if (cp < 0x118e0) - return false; - if (cp < 0x118ea) - return true; - if (cp < 0x11a01) - return false; - if (cp < 0x11a07) - return true; - if (cp < 0x11a07) - return false; - if (cp < 0x11a09) - return true; - if (cp < 0x11a09) - return false; - if (cp < 0x11a0b) - return true; - if (cp < 0x11a33) - return false; - if (cp < 0x11a39) - return true; - return false; - } - if (cp === 0x11a39) - return true; - if (cp < 0x11a3b) - return false; - if (cp < 0x11a3f) - return true; - if (cp === 0x11a47) - return true; - if (cp < 0x11a51) - return false; - if (cp < 0x11a57) - return true; - if (cp < 0x11a57) - return false; - if (cp < 0x11a59) - return true; - if (cp < 0x11a59) - return false; - if (cp < 0x11a5c) - return true; - if (cp < 0x11a8a) - return false; - if (cp < 0x11a97) - return true; - if (cp === 0x11a97) - return true; - return false; - } - if (cp < 0x11ca9) { - if (cp < 0x11a98) - return false; - if (cp < 0x11a9a) - return true; - if (cp === 0x11c2f) - return true; - if (cp < 0x11c30) - return false; - if (cp < 0x11c37) - return true; - if (cp < 0x11c38) - return false; - if (cp < 0x11c3e) - return true; - if (cp === 0x11c3e) - return true; - if (cp === 0x11c3f) - return true; - if (cp < 0x11c50) - return false; - if (cp < 0x11c5a) - return true; - if (cp < 0x11c92) - return false; - if (cp < 0x11ca8) - return true; - return false; - } - if (cp === 0x11ca9) - return true; - if (cp < 0x11caa) - return false; - if (cp < 0x11cb1) - return true; - if (cp === 0x11cb1) - return true; - if (cp < 0x11cb2) - return false; - if (cp < 0x11cb4) - return true; - if (cp === 0x11cb4) - return true; - if (cp < 0x11cb5) - return false; - if (cp < 0x11cb7) - return true; - if (cp < 0x11d31) - return false; - if (cp < 0x11d37) - return true; - if (cp === 0x11d3a) - return true; - if (cp < 0x11d3c) - return false; - if (cp < 0x11d3e) - return true; - return false; - } - if (cp < 0x1d242) { - if (cp < 0x16f8f) { - if (cp < 0x11d3f) - return false; - if (cp < 0x11d46) - return true; - if (cp === 0x11d47) - return true; - if (cp < 0x11d50) - return false; - if (cp < 0x11d5a) - return true; - if (cp < 0x16a60) - return false; - if (cp < 0x16a6a) - return true; - if (cp < 0x16af0) - return false; - if (cp < 0x16af5) - return true; - if (cp < 0x16b30) - return false; - if (cp < 0x16b37) - return true; - if (cp < 0x16b50) - return false; - if (cp < 0x16b5a) - return true; - if (cp < 0x16f51) - return false; - if (cp < 0x16f7f) - return true; + if (cp < 0xabfa) return true; + if (cp === 0xfb1e) return true; + if (cp < 0xfe00) return false; + if (cp < 0xfe10) return true; + if (cp < 0xfe20) return false; + if (cp < 0xfe30) return true; + if (cp < 0xfe33) return false; + if (cp < 0xfe35) return true; + if (cp < 0xfe4d) return false; + if (cp < 0xfe50) return true; + if (cp < 0xff10) return false; + if (cp < 0xff1a) return true; + if (cp === 0xff3f) return true; + if (cp === 0x101fd) return true; return false; } - if (cp < 0x16f93) - return true; - if (cp < 0x1bc9d) - return false; - if (cp < 0x1bc9f) - return true; - if (cp < 0x1d165) - return false; - if (cp < 0x1d167) - return true; - if (cp < 0x1d167) - return false; - if (cp < 0x1d16a) - return true; - if (cp < 0x1d16d) - return false; - if (cp < 0x1d173) - return true; - if (cp < 0x1d17b) - return false; - if (cp < 0x1d183) - return true; - if (cp < 0x1d185) + if (cp < 0x110b0) { + if (cp < 0x10ae5) { + if (cp === 0x102e0) return true; + if (cp < 0x10376) return false; + if (cp < 0x1037b) return true; + if (cp < 0x104a0) return false; + if (cp < 0x104aa) return true; + if (cp < 0x10a01) return false; + if (cp < 0x10a04) return true; + if (cp < 0x10a05) return false; + if (cp < 0x10a07) return true; + if (cp < 0x10a0c) return false; + if (cp < 0x10a10) return true; + if (cp < 0x10a38) return false; + if (cp < 0x10a3b) return true; + if (cp === 0x10a3f) return true; + return false; + } + if (cp < 0x10ae7) return true; + if (cp === 0x11000) return true; + if (cp === 0x11001) return true; + if (cp === 0x11002) return true; + if (cp < 0x11038) return false; + if (cp < 0x11047) return true; + if (cp < 0x11066) return false; + if (cp < 0x11070) return true; + if (cp < 0x1107f) return false; + if (cp < 0x11082) return true; + if (cp === 0x11082) return true; return false; - if (cp < 0x1d18c) - return true; - if (cp < 0x1d1aa) + } + if (cp < 0x1112d) { + if (cp < 0x110b0) return false; + if (cp < 0x110b3) return true; + if (cp < 0x110b3) return false; + if (cp < 0x110b7) return true; + if (cp < 0x110b7) return false; + if (cp < 0x110b9) return true; + if (cp < 0x110b9) return false; + if (cp < 0x110bb) return true; + if (cp < 0x110f0) return false; + if (cp < 0x110fa) return true; + if (cp < 0x11100) return false; + if (cp < 0x11103) return true; + if (cp < 0x11127) return false; + if (cp < 0x1112c) return true; + if (cp === 0x1112c) return true; return false; - if (cp < 0x1d1ae) - return true; + } + if (cp < 0x11135) return true; + if (cp < 0x11136) return false; + if (cp < 0x11140) return true; + if (cp === 0x11173) return true; + if (cp < 0x11180) return false; + if (cp < 0x11182) return true; + if (cp === 0x11182) return true; + if (cp < 0x111b3) return false; + if (cp < 0x111b6) return true; + if (cp < 0x111b6) return false; + if (cp < 0x111bf) return true; + if (cp < 0x111bf) return false; + if (cp < 0x111c1) return true; + if (cp < 0x111ca) return false; + if (cp < 0x111cd) return true; return false; } - if (cp < 0x1e000) { - if (cp < 0x1d242) - return false; - if (cp < 0x1d245) - return true; - if (cp < 0x1d7ce) + if (cp < 0x11726) { + if (cp < 0x114b3) { + if (cp < 0x11340) { + if (cp < 0x112df) { + if (cp < 0x111d0) return false; + if (cp < 0x111da) return true; + if (cp < 0x1122c) return false; + if (cp < 0x1122f) return true; + if (cp < 0x1122f) return false; + if (cp < 0x11232) return true; + if (cp < 0x11232) return false; + if (cp < 0x11234) return true; + if (cp === 0x11234) return true; + if (cp === 0x11235) return true; + if (cp < 0x11236) return false; + if (cp < 0x11238) return true; + if (cp === 0x1123e) return true; + return false; + } + if (cp === 0x112df) return true; + if (cp < 0x112e0) return false; + if (cp < 0x112e3) return true; + if (cp < 0x112e3) return false; + if (cp < 0x112eb) return true; + if (cp < 0x112f0) return false; + if (cp < 0x112fa) return true; + if (cp < 0x11300) return false; + if (cp < 0x11302) return true; + if (cp < 0x11302) return false; + if (cp < 0x11304) return true; + if (cp === 0x1133c) return true; + if (cp < 0x1133e) return false; + if (cp < 0x11340) return true; + return false; + } + if (cp < 0x11435) { + if (cp === 0x11340) return true; + if (cp < 0x11341) return false; + if (cp < 0x11345) return true; + if (cp < 0x11347) return false; + if (cp < 0x11349) return true; + if (cp < 0x1134b) return false; + if (cp < 0x1134e) return true; + if (cp === 0x11357) return true; + if (cp < 0x11362) return false; + if (cp < 0x11364) return true; + if (cp < 0x11366) return false; + if (cp < 0x1136d) return true; + if (cp < 0x11370) return false; + if (cp < 0x11375) return true; + return false; + } + if (cp < 0x11438) return true; + if (cp < 0x11438) return false; + if (cp < 0x11440) return true; + if (cp < 0x11440) return false; + if (cp < 0x11442) return true; + if (cp < 0x11442) return false; + if (cp < 0x11445) return true; + if (cp === 0x11445) return true; + if (cp === 0x11446) return true; + if (cp < 0x11450) return false; + if (cp < 0x1145a) return true; + if (cp < 0x114b0) return false; + if (cp < 0x114b3) return true; return false; - if (cp < 0x1d800) - return true; - if (cp < 0x1da00) + } + if (cp < 0x11633) { + if (cp < 0x115af) { + if (cp < 0x114b3) return false; + if (cp < 0x114b9) return true; + if (cp === 0x114b9) return true; + if (cp === 0x114ba) return true; + if (cp < 0x114bb) return false; + if (cp < 0x114bf) return true; + if (cp < 0x114bf) return false; + if (cp < 0x114c1) return true; + if (cp === 0x114c1) return true; + if (cp < 0x114c2) return false; + if (cp < 0x114c4) return true; + if (cp < 0x114d0) return false; + if (cp < 0x114da) return true; + return false; + } + if (cp < 0x115b2) return true; + if (cp < 0x115b2) return false; + if (cp < 0x115b6) return true; + if (cp < 0x115b8) return false; + if (cp < 0x115bc) return true; + if (cp < 0x115bc) return false; + if (cp < 0x115be) return true; + if (cp === 0x115be) return true; + if (cp < 0x115bf) return false; + if (cp < 0x115c1) return true; + if (cp < 0x115dc) return false; + if (cp < 0x115de) return true; + if (cp < 0x11630) return false; + if (cp < 0x11633) return true; return false; - if (cp < 0x1da37) - return true; - if (cp < 0x1da3b) + } + if (cp < 0x116ad) { + if (cp < 0x11633) return false; + if (cp < 0x1163b) return true; + if (cp < 0x1163b) return false; + if (cp < 0x1163d) return true; + if (cp === 0x1163d) return true; + if (cp === 0x1163e) return true; + if (cp < 0x1163f) return false; + if (cp < 0x11641) return true; + if (cp < 0x11650) return false; + if (cp < 0x1165a) return true; + if (cp === 0x116ab) return true; + if (cp === 0x116ac) return true; return false; - if (cp < 0x1da6d) - return true; - if (cp === 0x1da75) - return true; - if (cp === 0x1da84) - return true; - if (cp < 0x1da9b) + } + if (cp === 0x116ad) return true; + if (cp < 0x116ae) return false; + if (cp < 0x116b0) return true; + if (cp < 0x116b0) return false; + if (cp < 0x116b6) return true; + if (cp === 0x116b6) return true; + if (cp === 0x116b7) return true; + if (cp < 0x116c0) return false; + if (cp < 0x116ca) return true; + if (cp < 0x1171d) return false; + if (cp < 0x11720) return true; + if (cp < 0x11720) return false; + if (cp < 0x11722) return true; + if (cp < 0x11722) return false; + if (cp < 0x11726) return true; + return false; + } + if (cp < 0x11d3f) { + if (cp < 0x11a98) { + if (cp < 0x11a39) { + if (cp === 0x11726) return true; + if (cp < 0x11727) return false; + if (cp < 0x1172c) return true; + if (cp < 0x11730) return false; + if (cp < 0x1173a) return true; + if (cp < 0x118e0) return false; + if (cp < 0x118ea) return true; + if (cp < 0x11a01) return false; + if (cp < 0x11a07) return true; + if (cp < 0x11a07) return false; + if (cp < 0x11a09) return true; + if (cp < 0x11a09) return false; + if (cp < 0x11a0b) return true; + if (cp < 0x11a33) return false; + if (cp < 0x11a39) return true; + return false; + } + if (cp === 0x11a39) return true; + if (cp < 0x11a3b) return false; + if (cp < 0x11a3f) return true; + if (cp === 0x11a47) return true; + if (cp < 0x11a51) return false; + if (cp < 0x11a57) return true; + if (cp < 0x11a57) return false; + if (cp < 0x11a59) return true; + if (cp < 0x11a59) return false; + if (cp < 0x11a5c) return true; + if (cp < 0x11a8a) return false; + if (cp < 0x11a97) return true; + if (cp === 0x11a97) return true; return false; - if (cp < 0x1daa0) - return true; - if (cp < 0x1daa1) + } + if (cp < 0x11ca9) { + if (cp < 0x11a98) return false; + if (cp < 0x11a9a) return true; + if (cp === 0x11c2f) return true; + if (cp < 0x11c30) return false; + if (cp < 0x11c37) return true; + if (cp < 0x11c38) return false; + if (cp < 0x11c3e) return true; + if (cp === 0x11c3e) return true; + if (cp === 0x11c3f) return true; + if (cp < 0x11c50) return false; + if (cp < 0x11c5a) return true; + if (cp < 0x11c92) return false; + if (cp < 0x11ca8) return true; return false; - if (cp < 0x1dab0) - return true; + } + if (cp === 0x11ca9) return true; + if (cp < 0x11caa) return false; + if (cp < 0x11cb1) return true; + if (cp === 0x11cb1) return true; + if (cp < 0x11cb2) return false; + if (cp < 0x11cb4) return true; + if (cp === 0x11cb4) return true; + if (cp < 0x11cb5) return false; + if (cp < 0x11cb7) return true; + if (cp < 0x11d31) return false; + if (cp < 0x11d37) return true; + if (cp === 0x11d3a) return true; + if (cp < 0x11d3c) return false; + if (cp < 0x11d3e) return true; return false; } - if (cp < 0x1e007) - return true; - if (cp < 0x1e008) - return false; - if (cp < 0x1e019) - return true; - if (cp < 0x1e01b) - return false; - if (cp < 0x1e022) - return true; - if (cp < 0x1e023) - return false; - if (cp < 0x1e025) - return true; - if (cp < 0x1e026) - return false; - if (cp < 0x1e02b) - return true; - if (cp < 0x1e8d0) - return false; - if (cp < 0x1e8d7) - return true; - if (cp < 0x1e944) - return false; - if (cp < 0x1e94b) - return true; - if (cp < 0x1e950) + if (cp < 0x1d242) { + if (cp < 0x16f8f) { + if (cp < 0x11d3f) return false; + if (cp < 0x11d46) return true; + if (cp === 0x11d47) return true; + if (cp < 0x11d50) return false; + if (cp < 0x11d5a) return true; + if (cp < 0x16a60) return false; + if (cp < 0x16a6a) return true; + if (cp < 0x16af0) return false; + if (cp < 0x16af5) return true; + if (cp < 0x16b30) return false; + if (cp < 0x16b37) return true; + if (cp < 0x16b50) return false; + if (cp < 0x16b5a) return true; + if (cp < 0x16f51) return false; + if (cp < 0x16f7f) return true; + return false; + } + if (cp < 0x16f93) return true; + if (cp < 0x1bc9d) return false; + if (cp < 0x1bc9f) return true; + if (cp < 0x1d165) return false; + if (cp < 0x1d167) return true; + if (cp < 0x1d167) return false; + if (cp < 0x1d16a) return true; + if (cp < 0x1d16d) return false; + if (cp < 0x1d173) return true; + if (cp < 0x1d17b) return false; + if (cp < 0x1d183) return true; + if (cp < 0x1d185) return false; + if (cp < 0x1d18c) return true; + if (cp < 0x1d1aa) return false; + if (cp < 0x1d1ae) return true; return false; - if (cp < 0x1e95a) - return true; - if (cp < 0xe0100) + } + if (cp < 0x1e000) { + if (cp < 0x1d242) return false; + if (cp < 0x1d245) return true; + if (cp < 0x1d7ce) return false; + if (cp < 0x1d800) return true; + if (cp < 0x1da00) return false; + if (cp < 0x1da37) return true; + if (cp < 0x1da3b) return false; + if (cp < 0x1da6d) return true; + if (cp === 0x1da75) return true; + if (cp === 0x1da84) return true; + if (cp < 0x1da9b) return false; + if (cp < 0x1daa0) return true; + if (cp < 0x1daa1) return false; + if (cp < 0x1dab0) return true; return false; - if (cp < 0xe01f0) - return true; + } + if (cp < 0x1e007) return true; + if (cp < 0x1e008) return false; + if (cp < 0x1e019) return true; + if (cp < 0x1e01b) return false; + if (cp < 0x1e022) return true; + if (cp < 0x1e023) return false; + if (cp < 0x1e025) return true; + if (cp < 0x1e026) return false; + if (cp < 0x1e02b) return true; + if (cp < 0x1e8d0) return false; + if (cp < 0x1e8d7) return true; + if (cp < 0x1e944) return false; + if (cp < 0x1e94b) return true; + if (cp < 0x1e950) return false; + if (cp < 0x1e95a) return true; + if (cp < 0xe0100) return false; + if (cp < 0xe01f0) return true; return false; } -var PropertyData = { - $LONE: new Set([ - "ASCII", - "ASCII_Hex_Digit", - "AHex", - "Alphabetic", - "Alpha", - "Any", - "Assigned", - "Bidi_Control", - "Bidi_C", - "Bidi_Mirrored", - "Bidi_M", - "Case_Ignorable", - "CI", - "Cased", - "Changes_When_Casefolded", - "CWCF", - "Changes_When_Casemapped", - "CWCM", - "Changes_When_Lowercased", - "CWL", - "Changes_When_NFKC_Casefolded", - "CWKCF", - "Changes_When_Titlecased", - "CWT", - "Changes_When_Uppercased", - "CWU", - "Dash", - "Default_Ignorable_Code_Point", - "DI", - "Deprecated", - "Dep", - "Diacritic", - "Dia", - "Emoji", - "Emoji_Component", - "Emoji_Modifier", - "Emoji_Modifier_Base", - "Emoji_Presentation", - "Extender", - "Ext", - "Grapheme_Base", - "Gr_Base", - "Grapheme_Extend", - "Gr_Ext", - "Hex_Digit", - "Hex", - "IDS_Binary_Operator", - "IDSB", - "IDS_Trinary_Operator", - "IDST", - "ID_Continue", - "IDC", - "ID_Start", - "IDS", - "Ideographic", - "Ideo", - "Join_Control", - "Join_C", - "Logical_Order_Exception", - "LOE", - "Lowercase", - "Lower", - "Math", - "Noncharacter_Code_Point", - "NChar", - "Pattern_Syntax", - "Pat_Syn", - "Pattern_White_Space", - "Pat_WS", - "Quotation_Mark", - "QMark", - "Radical", - "Regional_Indicator", - "RI", - "Sentence_Terminal", - "STerm", - "Soft_Dotted", - "SD", - "Terminal_Punctuation", - "Term", - "Unified_Ideograph", - "UIdeo", - "Uppercase", - "Upper", - "Variation_Selector", - "VS", - "White_Space", - "space", - "XID_Continue", - "XIDC", - "XID_Start", - "XIDS", - ]), - General_Category: new Set([ - "Cased_Letter", - "LC", - "Close_Punctuation", - "Pe", - "Connector_Punctuation", - "Pc", - "Control", - "Cc", - "cntrl", - "Currency_Symbol", - "Sc", - "Dash_Punctuation", - "Pd", - "Decimal_Number", - "Nd", - "digit", - "Enclosing_Mark", - "Me", - "Final_Punctuation", - "Pf", - "Format", - "Cf", - "Initial_Punctuation", - "Pi", - "Letter", - "L", - "Letter_Number", - "Nl", - "Line_Separator", - "Zl", - "Lowercase_Letter", - "Ll", - "Mark", - "M", - "Combining_Mark", - "Math_Symbol", - "Sm", - "Modifier_Letter", - "Lm", - "Modifier_Symbol", - "Sk", - "Nonspacing_Mark", - "Mn", - "Number", - "N", - "Open_Punctuation", - "Ps", - "Other", - "C", - "Other_Letter", - "Lo", - "Other_Number", - "No", - "Other_Punctuation", - "Po", - "Other_Symbol", - "So", - "Paragraph_Separator", - "Zp", - "Private_Use", - "Co", - "Punctuation", - "P", - "punct", - "Separator", - "Z", - "Space_Separator", - "Zs", - "Spacing_Mark", - "Mc", - "Surrogate", - "Cs", - "Symbol", - "S", - "Titlecase_Letter", - "Lt", - "Unassigned", - "Cn", - "Uppercase_Letter", - "Lu", - ]), - Script: new Set([ - "Adlam", - "Adlm", - "Ahom", - "Anatolian_Hieroglyphs", - "Hluw", - "Arabic", - "Arab", - "Armenian", - "Armn", - "Avestan", - "Avst", - "Balinese", - "Bali", - "Bamum", - "Bamu", - "Bassa_Vah", - "Bass", - "Batak", - "Batk", - "Bengali", - "Beng", - "Bhaiksuki", - "Bhks", - "Bopomofo", - "Bopo", - "Brahmi", - "Brah", - "Braille", - "Brai", - "Buginese", - "Bugi", - "Buhid", - "Buhd", - "Canadian_Aboriginal", - "Cans", - "Carian", - "Cari", - "Caucasian_Albanian", - "Aghb", - "Chakma", - "Cakm", - "Cham", - "Cherokee", - "Cher", - "Common", - "Zyyy", - "Coptic", - "Copt", - "Qaac", - "Cuneiform", - "Xsux", - "Cypriot", - "Cprt", - "Cyrillic", - "Cyrl", - "Deseret", - "Dsrt", - "Devanagari", - "Deva", - "Duployan", - "Dupl", - "Egyptian_Hieroglyphs", - "Egyp", - "Elbasan", - "Elba", - "Ethiopic", - "Ethi", - "Georgian", - "Geor", - "Glagolitic", - "Glag", - "Gothic", - "Goth", - "Grantha", - "Gran", - "Greek", - "Grek", - "Gujarati", - "Gujr", - "Gurmukhi", - "Guru", - "Han", - "Hani", - "Hangul", - "Hang", - "Hanunoo", - "Hano", - "Hatran", - "Hatr", - "Hebrew", - "Hebr", - "Hiragana", - "Hira", - "Imperial_Aramaic", - "Armi", - "Inherited", - "Zinh", - "Qaai", - "Inscriptional_Pahlavi", - "Phli", - "Inscriptional_Parthian", - "Prti", - "Javanese", - "Java", - "Kaithi", - "Kthi", - "Kannada", - "Knda", - "Katakana", - "Kana", - "Kayah_Li", - "Kali", - "Kharoshthi", - "Khar", - "Khmer", - "Khmr", - "Khojki", - "Khoj", - "Khudawadi", - "Sind", - "Lao", - "Laoo", - "Latin", - "Latn", - "Lepcha", - "Lepc", - "Limbu", - "Limb", - "Linear_A", - "Lina", - "Linear_B", - "Linb", - "Lisu", - "Lycian", - "Lyci", - "Lydian", - "Lydi", - "Mahajani", - "Mahj", - "Malayalam", - "Mlym", - "Mandaic", - "Mand", - "Manichaean", - "Mani", - "Marchen", - "Marc", - "Masaram_Gondi", - "Gonm", - "Meetei_Mayek", - "Mtei", - "Mende_Kikakui", - "Mend", - "Meroitic_Cursive", - "Merc", - "Meroitic_Hieroglyphs", - "Mero", - "Miao", - "Plrd", - "Modi", - "Mongolian", - "Mong", - "Mro", - "Mroo", - "Multani", - "Mult", - "Myanmar", - "Mymr", - "Nabataean", - "Nbat", - "New_Tai_Lue", - "Talu", - "Newa", - "Nko", - "Nkoo", - "Nushu", - "Nshu", - "Ogham", - "Ogam", - "Ol_Chiki", - "Olck", - "Old_Hungarian", - "Hung", - "Old_Italic", - "Ital", - "Old_North_Arabian", - "Narb", - "Old_Permic", - "Perm", - "Old_Persian", - "Xpeo", - "Old_South_Arabian", - "Sarb", - "Old_Turkic", - "Orkh", - "Oriya", - "Orya", - "Osage", - "Osge", - "Osmanya", - "Osma", - "Pahawh_Hmong", - "Hmng", - "Palmyrene", - "Palm", - "Pau_Cin_Hau", - "Pauc", - "Phags_Pa", - "Phag", - "Phoenician", - "Phnx", - "Psalter_Pahlavi", - "Phlp", - "Rejang", - "Rjng", - "Runic", - "Runr", - "Samaritan", - "Samr", - "Saurashtra", - "Saur", - "Sharada", - "Shrd", - "Shavian", - "Shaw", - "Siddham", - "Sidd", - "SignWriting", - "Sgnw", - "Sinhala", - "Sinh", - "Sora_Sompeng", - "Sora", - "Soyombo", - "Soyo", - "Sundanese", - "Sund", - "Syloti_Nagri", - "Sylo", - "Syriac", - "Syrc", - "Tagalog", - "Tglg", - "Tagbanwa", - "Tagb", - "Tai_Le", - "Tale", - "Tai_Tham", - "Lana", - "Tai_Viet", - "Tavt", - "Takri", - "Takr", - "Tamil", - "Taml", - "Tangut", - "Tang", - "Telugu", - "Telu", - "Thaana", - "Thaa", - "Thai", - "Tibetan", - "Tibt", - "Tifinagh", - "Tfng", - "Tirhuta", - "Tirh", - "Ugaritic", - "Ugar", - "Vai", - "Vaii", - "Warang_Citi", - "Wara", - "Yi", - "Yiii", - "Zanabazar_Square", - "Zanb", - ]), +const PropertyData = { + $LONE: new Set(["ASCII", "ASCII_Hex_Digit", "AHex", "Alphabetic", "Alpha", "Any", "Assigned", "Bidi_Control", "Bidi_C", "Bidi_Mirrored", "Bidi_M", "Case_Ignorable", "CI", "Cased", "Changes_When_Casefolded", "CWCF", "Changes_When_Casemapped", "CWCM", "Changes_When_Lowercased", "CWL", "Changes_When_NFKC_Casefolded", "CWKCF", "Changes_When_Titlecased", "CWT", "Changes_When_Uppercased", "CWU", "Dash", "Default_Ignorable_Code_Point", "DI", "Deprecated", "Dep", "Diacritic", "Dia", "Emoji", "Emoji_Component", "Emoji_Modifier", "Emoji_Modifier_Base", "Emoji_Presentation", "Extender", "Ext", "Grapheme_Base", "Gr_Base", "Grapheme_Extend", "Gr_Ext", "Hex_Digit", "Hex", "IDS_Binary_Operator", "IDSB", "IDS_Trinary_Operator", "IDST", "ID_Continue", "IDC", "ID_Start", "IDS", "Ideographic", "Ideo", "Join_Control", "Join_C", "Logical_Order_Exception", "LOE", "Lowercase", "Lower", "Math", "Noncharacter_Code_Point", "NChar", "Pattern_Syntax", "Pat_Syn", "Pattern_White_Space", "Pat_WS", "Quotation_Mark", "QMark", "Radical", "Regional_Indicator", "RI", "Sentence_Terminal", "STerm", "Soft_Dotted", "SD", "Terminal_Punctuation", "Term", "Unified_Ideograph", "UIdeo", "Uppercase", "Upper", "Variation_Selector", "VS", "White_Space", "space", "XID_Continue", "XIDC", "XID_Start", "XIDS"]), + General_Category: new Set(["Cased_Letter", "LC", "Close_Punctuation", "Pe", "Connector_Punctuation", "Pc", "Control", "Cc", "cntrl", "Currency_Symbol", "Sc", "Dash_Punctuation", "Pd", "Decimal_Number", "Nd", "digit", "Enclosing_Mark", "Me", "Final_Punctuation", "Pf", "Format", "Cf", "Initial_Punctuation", "Pi", "Letter", "L", "Letter_Number", "Nl", "Line_Separator", "Zl", "Lowercase_Letter", "Ll", "Mark", "M", "Combining_Mark", "Math_Symbol", "Sm", "Modifier_Letter", "Lm", "Modifier_Symbol", "Sk", "Nonspacing_Mark", "Mn", "Number", "N", "Open_Punctuation", "Ps", "Other", "C", "Other_Letter", "Lo", "Other_Number", "No", "Other_Punctuation", "Po", "Other_Symbol", "So", "Paragraph_Separator", "Zp", "Private_Use", "Co", "Punctuation", "P", "punct", "Separator", "Z", "Space_Separator", "Zs", "Spacing_Mark", "Mc", "Surrogate", "Cs", "Symbol", "S", "Titlecase_Letter", "Lt", "Unassigned", "Cn", "Uppercase_Letter", "Lu"]), + Script: new Set(["Adlam", "Adlm", "Ahom", "Anatolian_Hieroglyphs", "Hluw", "Arabic", "Arab", "Armenian", "Armn", "Avestan", "Avst", "Balinese", "Bali", "Bamum", "Bamu", "Bassa_Vah", "Bass", "Batak", "Batk", "Bengali", "Beng", "Bhaiksuki", "Bhks", "Bopomofo", "Bopo", "Brahmi", "Brah", "Braille", "Brai", "Buginese", "Bugi", "Buhid", "Buhd", "Canadian_Aboriginal", "Cans", "Carian", "Cari", "Caucasian_Albanian", "Aghb", "Chakma", "Cakm", "Cham", "Cherokee", "Cher", "Common", "Zyyy", "Coptic", "Copt", "Qaac", "Cuneiform", "Xsux", "Cypriot", "Cprt", "Cyrillic", "Cyrl", "Deseret", "Dsrt", "Devanagari", "Deva", "Duployan", "Dupl", "Egyptian_Hieroglyphs", "Egyp", "Elbasan", "Elba", "Ethiopic", "Ethi", "Georgian", "Geor", "Glagolitic", "Glag", "Gothic", "Goth", "Grantha", "Gran", "Greek", "Grek", "Gujarati", "Gujr", "Gurmukhi", "Guru", "Han", "Hani", "Hangul", "Hang", "Hanunoo", "Hano", "Hatran", "Hatr", "Hebrew", "Hebr", "Hiragana", "Hira", "Imperial_Aramaic", "Armi", "Inherited", "Zinh", "Qaai", "Inscriptional_Pahlavi", "Phli", "Inscriptional_Parthian", "Prti", "Javanese", "Java", "Kaithi", "Kthi", "Kannada", "Knda", "Katakana", "Kana", "Kayah_Li", "Kali", "Kharoshthi", "Khar", "Khmer", "Khmr", "Khojki", "Khoj", "Khudawadi", "Sind", "Lao", "Laoo", "Latin", "Latn", "Lepcha", "Lepc", "Limbu", "Limb", "Linear_A", "Lina", "Linear_B", "Linb", "Lisu", "Lycian", "Lyci", "Lydian", "Lydi", "Mahajani", "Mahj", "Malayalam", "Mlym", "Mandaic", "Mand", "Manichaean", "Mani", "Marchen", "Marc", "Masaram_Gondi", "Gonm", "Meetei_Mayek", "Mtei", "Mende_Kikakui", "Mend", "Meroitic_Cursive", "Merc", "Meroitic_Hieroglyphs", "Mero", "Miao", "Plrd", "Modi", "Mongolian", "Mong", "Mro", "Mroo", "Multani", "Mult", "Myanmar", "Mymr", "Nabataean", "Nbat", "New_Tai_Lue", "Talu", "Newa", "Nko", "Nkoo", "Nushu", "Nshu", "Ogham", "Ogam", "Ol_Chiki", "Olck", "Old_Hungarian", "Hung", "Old_Italic", "Ital", "Old_North_Arabian", "Narb", "Old_Permic", "Perm", "Old_Persian", "Xpeo", "Old_South_Arabian", "Sarb", "Old_Turkic", "Orkh", "Oriya", "Orya", "Osage", "Osge", "Osmanya", "Osma", "Pahawh_Hmong", "Hmng", "Palmyrene", "Palm", "Pau_Cin_Hau", "Pauc", "Phags_Pa", "Phag", "Phoenician", "Phnx", "Psalter_Pahlavi", "Phlp", "Rejang", "Rjng", "Runic", "Runr", "Samaritan", "Samr", "Saurashtra", "Saur", "Sharada", "Shrd", "Shavian", "Shaw", "Siddham", "Sidd", "SignWriting", "Sgnw", "Sinhala", "Sinh", "Sora_Sompeng", "Sora", "Soyombo", "Soyo", "Sundanese", "Sund", "Syloti_Nagri", "Sylo", "Syriac", "Syrc", "Tagalog", "Tglg", "Tagbanwa", "Tagb", "Tai_Le", "Tale", "Tai_Tham", "Lana", "Tai_Viet", "Tavt", "Takri", "Takr", "Tamil", "Taml", "Tangut", "Tang", "Telugu", "Telu", "Thaana", "Thaa", "Thai", "Tibetan", "Tibt", "Tifinagh", "Tfng", "Tirhuta", "Tirh", "Ugaritic", "Ugar", "Vai", "Vaii", "Warang_Citi", "Wara", "Yi", "Yiii", "Zanabazar_Square", "Zanb"]) }; PropertyData.gc = PropertyData.General_Category; -PropertyData.sc = PropertyData.Script_Extensions = PropertyData.scx = - PropertyData.Script; +PropertyData.sc = PropertyData.Script_Extensions = PropertyData.scx = PropertyData.Script; -var Backspace = 0x08; -var CharacterTabulation = 0x09; -var LineFeed = 0x0a; -var LineTabulation = 0x0b; -var FormFeed = 0x0c; -var CarriageReturn = 0x0d; -var ExclamationMark = 0x21; -var DollarSign = 0x24; -var LeftParenthesis = 0x28; -var RightParenthesis = 0x29; -var Asterisk = 0x2a; -var PlusSign = 0x2b; -var Comma = 0x2c; -var HyphenMinus = 0x2d; -var FullStop = 0x2e; -var Solidus = 0x2f; -var DigitZero = 0x30; -var DigitOne = 0x31; -var DigitSeven = 0x37; -var DigitNine = 0x39; -var Colon = 0x3a; -var LessThanSign = 0x3c; -var EqualsSign = 0x3d; -var GreaterThanSign = 0x3e; -var QuestionMark = 0x3f; -var LatinCapitalLetterA = 0x41; -var LatinCapitalLetterB = 0x42; -var LatinCapitalLetterD = 0x44; -var LatinCapitalLetterF = 0x46; -var LatinCapitalLetterP = 0x50; -var LatinCapitalLetterS = 0x53; -var LatinCapitalLetterW = 0x57; -var LatinCapitalLetterZ = 0x5a; -var LowLine = 0x5f; -var LatinSmallLetterA = 0x61; -var LatinSmallLetterB = 0x62; -var LatinSmallLetterC = 0x63; -var LatinSmallLetterD = 0x64; -var LatinSmallLetterF = 0x66; -var LatinSmallLetterG = 0x67; -var LatinSmallLetterI = 0x69; -var LatinSmallLetterK = 0x6b; -var LatinSmallLetterM = 0x6d; -var LatinSmallLetterN = 0x6e; -var LatinSmallLetterP = 0x70; -var LatinSmallLetterR = 0x72; -var LatinSmallLetterS = 0x73; -var LatinSmallLetterT = 0x74; -var LatinSmallLetterU = 0x75; -var LatinSmallLetterV = 0x76; -var LatinSmallLetterW = 0x77; -var LatinSmallLetterX = 0x78; -var LatinSmallLetterY = 0x79; -var LatinSmallLetterZ = 0x7a; -var LeftSquareBracket = 0x5b; -var ReverseSolidus = 0x5c; -var RightSquareBracket = 0x5d; -var CircumflexAccent = 0x5e; -var LeftCurlyBracket = 0x7b; -var VerticalLine = 0x7c; -var RightCurlyBracket = 0x7d; -var ZeroWidthNonJoiner = 0x200c; -var ZeroWidthJoiner = 0x200d; -var LineSeparator = 0x2028; -var ParagraphSeparator = 0x2029; -var MinCodePoint = 0x00; -var MaxCodePoint = 0x10ffff; +const Backspace = 0x08; +const CharacterTabulation = 0x09; +const LineFeed = 0x0a; +const LineTabulation = 0x0b; +const FormFeed = 0x0c; +const CarriageReturn = 0x0d; +const ExclamationMark = 0x21; +const DollarSign = 0x24; +const LeftParenthesis = 0x28; +const RightParenthesis = 0x29; +const Asterisk = 0x2a; +const PlusSign = 0x2b; +const Comma = 0x2c; +const HyphenMinus = 0x2d; +const FullStop = 0x2e; +const Solidus = 0x2f; +const DigitZero = 0x30; +const DigitOne = 0x31; +const DigitSeven = 0x37; +const DigitNine = 0x39; +const Colon = 0x3a; +const LessThanSign = 0x3c; +const EqualsSign = 0x3d; +const GreaterThanSign = 0x3e; +const QuestionMark = 0x3f; +const LatinCapitalLetterA = 0x41; +const LatinCapitalLetterB = 0x42; +const LatinCapitalLetterD = 0x44; +const LatinCapitalLetterF = 0x46; +const LatinCapitalLetterP = 0x50; +const LatinCapitalLetterS = 0x53; +const LatinCapitalLetterW = 0x57; +const LatinCapitalLetterZ = 0x5a; +const LowLine = 0x5f; +const LatinSmallLetterA = 0x61; +const LatinSmallLetterB = 0x62; +const LatinSmallLetterC = 0x63; +const LatinSmallLetterD = 0x64; +const LatinSmallLetterF = 0x66; +const LatinSmallLetterG = 0x67; +const LatinSmallLetterI = 0x69; +const LatinSmallLetterK = 0x6b; +const LatinSmallLetterM = 0x6d; +const LatinSmallLetterN = 0x6e; +const LatinSmallLetterP = 0x70; +const LatinSmallLetterR = 0x72; +const LatinSmallLetterS = 0x73; +const LatinSmallLetterT = 0x74; +const LatinSmallLetterU = 0x75; +const LatinSmallLetterV = 0x76; +const LatinSmallLetterW = 0x77; +const LatinSmallLetterX = 0x78; +const LatinSmallLetterY = 0x79; +const LatinSmallLetterZ = 0x7a; +const LeftSquareBracket = 0x5b; +const ReverseSolidus = 0x5c; +const RightSquareBracket = 0x5d; +const CircumflexAccent = 0x5e; +const LeftCurlyBracket = 0x7b; +const VerticalLine = 0x7c; +const RightCurlyBracket = 0x7d; +const ZeroWidthNonJoiner = 0x200c; +const ZeroWidthJoiner = 0x200d; +const LineSeparator = 0x2028; +const ParagraphSeparator = 0x2029; +const MinCodePoint = 0x00; +const MaxCodePoint = 0x10ffff; function isLatinLetter(code) { - return ((code >= LatinCapitalLetterA && code <= LatinCapitalLetterZ) || - (code >= LatinSmallLetterA && code <= LatinSmallLetterZ)); + return code >= LatinCapitalLetterA && code <= LatinCapitalLetterZ || code >= LatinSmallLetterA && code <= LatinSmallLetterZ; } function isDecimalDigit(code) { return code >= DigitZero && code <= DigitNine; @@ -5259,15 +2783,10 @@ function isOctalDigit(code) { return code >= DigitZero && code <= DigitSeven; } function isHexDigit(code) { - return ((code >= DigitZero && code <= DigitNine) || - (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) || - (code >= LatinSmallLetterA && code <= LatinSmallLetterF)); + return code >= DigitZero && code <= DigitNine || code >= LatinCapitalLetterA && code <= LatinCapitalLetterF || code >= LatinSmallLetterA && code <= LatinSmallLetterF; } function isLineTerminator(code) { - return (code === LineFeed || - code === CarriageReturn || - code === LineSeparator || - code === ParagraphSeparator); + return code === LineFeed || code === CarriageReturn || code === LineSeparator || code === ParagraphSeparator; } function isValidUnicode(code) { return code >= MinCodePoint && code <= MaxCodePoint; @@ -5283,30 +2802,13 @@ function digitToInt(code) { } function isSyntaxCharacter(cp) { - return (cp === CircumflexAccent || - cp === DollarSign || - cp === ReverseSolidus || - cp === FullStop || - cp === Asterisk || - cp === PlusSign || - cp === QuestionMark || - cp === LeftParenthesis || - cp === RightParenthesis || - cp === LeftSquareBracket || - cp === RightSquareBracket || - cp === LeftCurlyBracket || - cp === RightCurlyBracket || - cp === VerticalLine); + return cp === CircumflexAccent || cp === DollarSign || cp === ReverseSolidus || cp === FullStop || cp === Asterisk || cp === PlusSign || cp === QuestionMark || cp === LeftParenthesis || cp === RightParenthesis || cp === LeftSquareBracket || cp === RightSquareBracket || cp === LeftCurlyBracket || cp === RightCurlyBracket || cp === VerticalLine; } function isRegExpIdentifierStart(cp) { return isIdStart(cp) || cp === DollarSign || cp === LowLine; } function isRegExpIdentifierPart(cp) { - return (isIdContinue(cp) || - cp === DollarSign || - cp === LowLine || - cp === ZeroWidthNonJoiner || - cp === ZeroWidthJoiner); + return isIdContinue(cp) || cp === DollarSign || cp === LowLine || cp === ZeroWidthNonJoiner || cp === ZeroWidthJoiner; } function isUnicodePropertyNameCharacter(cp) { return isLatinLetter(cp) || cp === LowLine; @@ -5320,8 +2822,8 @@ function isValidUnicodeProperty(name, value) { function isValidUnicodePropertyName(name) { return PropertyData.$LONE.has(name); } -var RegExpValidator = (function () { - function RegExpValidator(options) { +class RegExpValidator { + constructor(options) { this._reader = new Reader(); this._uFlag = false; this._nFlag = false; @@ -5337,329 +2839,284 @@ var RegExpValidator = (function () { this._backreferenceNames = new Set(); this._options = options || {}; } - RegExpValidator.prototype.validateLiteral = function (source, start, end) { - if (start === void 0) { start = 0; } - if (end === void 0) { end = source.length; } + validateLiteral(source) { + let start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + let end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : source.length; + this._uFlag = this._nFlag = false; this.reset(source, start, end); this.onLiteralEnter(start); if (this.eat(Solidus) && this.eatRegExpBody() && this.eat(Solidus)) { - var flagStart = this.index; - var uFlag = source.indexOf("u", flagStart) !== -1; + const flagStart = this.index; + const uFlag = source.indexOf("u", flagStart) !== -1; this.validateFlags(source, flagStart, end); this.validatePattern(source, start + 1, flagStart - 1, uFlag); - } - else if (start >= end) { + } else if (start >= end) { this.raise("Empty"); - } - else { - var c = String.fromCodePoint(this.currentCodePoint); - this.raise("Unexpected character '" + c + "'"); + } else { + const c = String.fromCodePoint(this.currentCodePoint); + this.raise(`Unexpected character '${c}'`); } this.onLiteralLeave(start, end); - }; - RegExpValidator.prototype.validateFlags = function (source, start, end) { - if (start === void 0) { start = 0; } - if (end === void 0) { end = source.length; } - var existingFlags = new Set(); - var global = false; - var ignoreCase = false; - var multiline = false; - var sticky = false; - var unicode = false; - var dotAll = false; - for (var i = start; i < end; ++i) { - var flag = source.charCodeAt(i); + } + validateFlags(source) { + let start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + let end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : source.length; + + const existingFlags = new Set(); + let global = false; + let ignoreCase = false; + let multiline = false; + let sticky = false; + let unicode = false; + let dotAll = false; + for (let i = start; i < end; ++i) { + const flag = source.charCodeAt(i); if (existingFlags.has(flag)) { - this.raise("Duplicated flag '" + source[i] + "'"); + this.raise(`Duplicated flag '${source[i]}'`); } existingFlags.add(flag); if (flag === LatinSmallLetterG) { global = true; - } - else if (flag === LatinSmallLetterI) { + } else if (flag === LatinSmallLetterI) { ignoreCase = true; - } - else if (flag === LatinSmallLetterM) { + } else if (flag === LatinSmallLetterM) { multiline = true; - } - else if (flag === LatinSmallLetterU && this.ecmaVersion >= 2015) { + } else if (flag === LatinSmallLetterU && this.ecmaVersion >= 2015) { unicode = true; - } - else if (flag === LatinSmallLetterY && this.ecmaVersion >= 2015) { + } else if (flag === LatinSmallLetterY && this.ecmaVersion >= 2015) { sticky = true; - } - else if (flag === LatinSmallLetterS && this.ecmaVersion >= 2018) { + } else if (flag === LatinSmallLetterS && this.ecmaVersion >= 2018) { dotAll = true; - } - else { - this.raise("Invalid flag '" + source[i] + "'"); + } else { + this.raise(`Invalid flag '${source[i]}'`); } } this.onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll); - }; - RegExpValidator.prototype.validatePattern = function (source, start, end, uFlag) { - if (start === void 0) { start = 0; } - if (end === void 0) { end = source.length; } - if (uFlag === void 0) { uFlag = false; } + } + validatePattern(source) { + let start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + let end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : source.length; + let uFlag = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + this._uFlag = uFlag && this.ecmaVersion >= 2015; this._nFlag = uFlag && this.ecmaVersion >= 2018; this.reset(source, start, end); this.pattern(); - if (!this._nFlag && - this.ecmaVersion >= 2018 && - this._groupNames.size > 0) { + if (!this._nFlag && this.ecmaVersion >= 2018 && this._groupNames.size > 0) { this._nFlag = true; this.rewind(start); this.pattern(); } - }; - Object.defineProperty(RegExpValidator.prototype, "strict", { - get: function () { - return Boolean(this._options.strict || this._uFlag); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RegExpValidator.prototype, "ecmaVersion", { - get: function () { - return this._options.ecmaVersion || 2018; - }, - enumerable: true, - configurable: true - }); - RegExpValidator.prototype.onLiteralEnter = function (start) { + } + get strict() { + return Boolean(this._options.strict || this._uFlag); + } + get ecmaVersion() { + return this._options.ecmaVersion || 2018; + } + onLiteralEnter(start) { if (this._options.onLiteralEnter) { this._options.onLiteralEnter(start); } - }; - RegExpValidator.prototype.onLiteralLeave = function (start, end) { + } + onLiteralLeave(start, end) { if (this._options.onLiteralLeave) { this._options.onLiteralLeave(start, end); } - }; - RegExpValidator.prototype.onFlags = function (start, end, global, ignoreCase, multiline, unicode, sticky, dotAll) { + } + onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll) { if (this._options.onFlags) { this._options.onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll); } - }; - RegExpValidator.prototype.onPatternEnter = function (start) { + } + onPatternEnter(start) { if (this._options.onPatternEnter) { this._options.onPatternEnter(start); } - }; - RegExpValidator.prototype.onPatternLeave = function (start, end) { + } + onPatternLeave(start, end) { if (this._options.onPatternLeave) { this._options.onPatternLeave(start, end); } - }; - RegExpValidator.prototype.onDisjunctionEnter = function (start) { + } + onDisjunctionEnter(start) { if (this._options.onDisjunctionEnter) { this._options.onDisjunctionEnter(start); } - }; - RegExpValidator.prototype.onDisjunctionLeave = function (start, end) { + } + onDisjunctionLeave(start, end) { if (this._options.onDisjunctionLeave) { this._options.onDisjunctionLeave(start, end); } - }; - RegExpValidator.prototype.onAlternativeEnter = function (start, index) { + } + onAlternativeEnter(start, index) { if (this._options.onAlternativeEnter) { this._options.onAlternativeEnter(start, index); } - }; - RegExpValidator.prototype.onAlternativeLeave = function (start, end, index) { + } + onAlternativeLeave(start, end, index) { if (this._options.onAlternativeLeave) { this._options.onAlternativeLeave(start, end, index); } - }; - RegExpValidator.prototype.onGroupEnter = function (start) { + } + onGroupEnter(start) { if (this._options.onGroupEnter) { this._options.onGroupEnter(start); } - }; - RegExpValidator.prototype.onGroupLeave = function (start, end) { + } + onGroupLeave(start, end) { if (this._options.onGroupLeave) { this._options.onGroupLeave(start, end); } - }; - RegExpValidator.prototype.onCapturingGroupEnter = function (start, name) { + } + onCapturingGroupEnter(start, name) { if (this._options.onCapturingGroupEnter) { this._options.onCapturingGroupEnter(start, name); } - }; - RegExpValidator.prototype.onCapturingGroupLeave = function (start, end, name) { + } + onCapturingGroupLeave(start, end, name) { if (this._options.onCapturingGroupLeave) { this._options.onCapturingGroupLeave(start, end, name); } - }; - RegExpValidator.prototype.onQuantifier = function (start, end, min, max, greedy) { + } + onQuantifier(start, end, min, max, greedy) { if (this._options.onQuantifier) { this._options.onQuantifier(start, end, min, max, greedy); } - }; - RegExpValidator.prototype.onLookaroundAssertionEnter = function (start, kind, negate) { + } + onLookaroundAssertionEnter(start, kind, negate) { if (this._options.onLookaroundAssertionEnter) { this._options.onLookaroundAssertionEnter(start, kind, negate); } - }; - RegExpValidator.prototype.onLookaroundAssertionLeave = function (start, end, kind, negate) { + } + onLookaroundAssertionLeave(start, end, kind, negate) { if (this._options.onLookaroundAssertionLeave) { this._options.onLookaroundAssertionLeave(start, end, kind, negate); } - }; - RegExpValidator.prototype.onEdgeAssertion = function (start, end, kind) { + } + onEdgeAssertion(start, end, kind) { if (this._options.onEdgeAssertion) { this._options.onEdgeAssertion(start, end, kind); } - }; - RegExpValidator.prototype.onWordBoundaryAssertion = function (start, end, kind, negate) { + } + onWordBoundaryAssertion(start, end, kind, negate) { if (this._options.onWordBoundaryAssertion) { this._options.onWordBoundaryAssertion(start, end, kind, negate); } - }; - RegExpValidator.prototype.onAnyCharacterSet = function (start, end, kind) { + } + onAnyCharacterSet(start, end, kind) { if (this._options.onAnyCharacterSet) { this._options.onAnyCharacterSet(start, end, kind); } - }; - RegExpValidator.prototype.onEscapeCharacterSet = function (start, end, kind, negate) { + } + onEscapeCharacterSet(start, end, kind, negate) { if (this._options.onEscapeCharacterSet) { this._options.onEscapeCharacterSet(start, end, kind, negate); } - }; - RegExpValidator.prototype.onUnicodePropertyCharacterSet = function (start, end, kind, key, value, negate) { + } + onUnicodePropertyCharacterSet(start, end, kind, key, value, negate) { if (this._options.onUnicodePropertyCharacterSet) { this._options.onUnicodePropertyCharacterSet(start, end, kind, key, value, negate); } - }; - RegExpValidator.prototype.onCharacter = function (start, end, value) { + } + onCharacter(start, end, value) { if (this._options.onCharacter) { this._options.onCharacter(start, end, value); } - }; - RegExpValidator.prototype.onBackreference = function (start, end, ref) { + } + onBackreference(start, end, ref) { if (this._options.onBackreference) { this._options.onBackreference(start, end, ref); } - }; - RegExpValidator.prototype.onCharacterClassEnter = function (start, negate) { + } + onCharacterClassEnter(start, negate) { if (this._options.onCharacterClassEnter) { this._options.onCharacterClassEnter(start, negate); } - }; - RegExpValidator.prototype.onCharacterClassLeave = function (start, end, negate) { + } + onCharacterClassLeave(start, end, negate) { if (this._options.onCharacterClassLeave) { this._options.onCharacterClassLeave(start, end, negate); } - }; - RegExpValidator.prototype.onCharacterClassRange = function (start, end, min, max) { + } + onCharacterClassRange(start, end, min, max) { if (this._options.onCharacterClassRange) { this._options.onCharacterClassRange(start, end, min, max); } - }; - Object.defineProperty(RegExpValidator.prototype, "source", { - get: function () { - return this._reader.source; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RegExpValidator.prototype, "index", { - get: function () { - return this._reader.index; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RegExpValidator.prototype, "currentCodePoint", { - get: function () { - return this._reader.currentCodePoint; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RegExpValidator.prototype, "nextCodePoint", { - get: function () { - return this._reader.nextCodePoint; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RegExpValidator.prototype, "nextCodePoint2", { - get: function () { - return this._reader.nextCodePoint2; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RegExpValidator.prototype, "nextCodePoint3", { - get: function () { - return this._reader.nextCodePoint3; - }, - enumerable: true, - configurable: true - }); - RegExpValidator.prototype.reset = function (source, start, end) { + } + get source() { + return this._reader.source; + } + get index() { + return this._reader.index; + } + get currentCodePoint() { + return this._reader.currentCodePoint; + } + get nextCodePoint() { + return this._reader.nextCodePoint; + } + get nextCodePoint2() { + return this._reader.nextCodePoint2; + } + get nextCodePoint3() { + return this._reader.nextCodePoint3; + } + reset(source, start, end) { this._reader.reset(source, start, end, this._uFlag); - }; - RegExpValidator.prototype.rewind = function (index) { + } + rewind(index) { this._reader.rewind(index); - }; - RegExpValidator.prototype.advance = function () { + } + advance() { this._reader.advance(); - }; - RegExpValidator.prototype.eat = function (cp) { + } + eat(cp) { return this._reader.eat(cp); - }; - RegExpValidator.prototype.eat2 = function (cp1, cp2) { + } + eat2(cp1, cp2) { return this._reader.eat2(cp1, cp2); - }; - RegExpValidator.prototype.eat3 = function (cp1, cp2, cp3) { + } + eat3(cp1, cp2, cp3) { return this._reader.eat3(cp1, cp2, cp3); - }; - RegExpValidator.prototype.raise = function (message) { + } + raise(message) { throw new RegExpSyntaxError(this.source, this._uFlag, this.index, message); - }; - RegExpValidator.prototype.eatRegExpBody = function () { - var start = this.index; - var inClass = false; - var escaped = false; + } + eatRegExpBody() { + const start = this.index; + let inClass = false; + let escaped = false; for (;;) { - var cp = this.currentCodePoint; + const cp = this.currentCodePoint; if (cp === -1 || isLineTerminator(cp)) { - var kind = inClass ? "character class" : "regular expression"; - this.raise("Unterminated " + kind); + const kind = inClass ? "character class" : "regular expression"; + this.raise(`Unterminated ${kind}`); } if (escaped) { escaped = false; - } - else if (cp === ReverseSolidus) { + } else if (cp === ReverseSolidus) { escaped = true; - } - else if (cp === LeftSquareBracket) { + } else if (cp === LeftSquareBracket) { inClass = true; - } - else if (cp === RightSquareBracket) { + } else if (cp === RightSquareBracket) { inClass = false; - } - else if ((cp === Solidus && !inClass) || - (cp === Asterisk && this.index === start)) { + } else if (cp === Solidus && !inClass || cp === Asterisk && this.index === start) { break; } this.advance(); } return this.index !== start; - }; - RegExpValidator.prototype.pattern = function () { - var _this = this; - var start = this.index; + } + pattern() { + const start = this.index; this._numCapturingParens = this.countCapturingParens(); this._groupNames.clear(); this._backreferenceNames.clear(); this.onPatternEnter(start); this.disjunction(); - var cp = this.currentCodePoint; + const cp = this.currentCodePoint; if (this.currentCodePoint !== -1) { if (cp === RightParenthesis) { this.raise("Unmatched ')'"); @@ -5667,51 +3124,42 @@ var RegExpValidator = (function () { if (cp === RightSquareBracket || cp === RightCurlyBracket) { this.raise("Lone quantifier brackets"); } - var c = String.fromCodePoint(cp); - this.raise("Unexpected character '" + c + "'"); + const c = String.fromCodePoint(cp); + this.raise(`Unexpected character '${c}'`); } - this._backreferenceNames.forEach(function (name) { - if (!_this._groupNames.has(name)) { - _this.raise("Invalid named capture referenced"); + this._backreferenceNames.forEach(name => { + if (!this._groupNames.has(name)) { + this.raise("Invalid named capture referenced"); } }); this.onPatternLeave(start, this.index); - }; - RegExpValidator.prototype.countCapturingParens = function () { - var start = this.index; - var inClass = false; - var escaped = false; - var count = 0; - var cp = 0; + } + countCapturingParens() { + const start = this.index; + let inClass = false; + let escaped = false; + let count = 0; + let cp = 0; while ((cp = this.currentCodePoint) !== -1) { if (escaped) { escaped = false; - } - else if (cp === ReverseSolidus) { + } else if (cp === ReverseSolidus) { escaped = true; - } - else if (cp === LeftSquareBracket) { + } else if (cp === LeftSquareBracket) { inClass = true; - } - else if (cp === RightSquareBracket) { + } else if (cp === RightSquareBracket) { inClass = false; - } - else if (cp === LeftParenthesis && - !inClass && - (this.nextCodePoint !== QuestionMark || - (this.nextCodePoint2 === LessThanSign && - this.nextCodePoint3 !== EqualsSign && - this.nextCodePoint3 !== ExclamationMark))) { + } else if (cp === LeftParenthesis && !inClass && (this.nextCodePoint !== QuestionMark || this.nextCodePoint2 === LessThanSign && this.nextCodePoint3 !== EqualsSign && this.nextCodePoint3 !== ExclamationMark)) { count += 1; } this.advance(); } this.rewind(start); return count; - }; - RegExpValidator.prototype.disjunction = function () { - var start = this.index; - var i = 0; + } + disjunction() { + const start = this.index; + let i = 0; this.onDisjunctionEnter(start); this.alternative(i++); while (this.eat(VerticalLine)) { @@ -5724,15 +3172,14 @@ var RegExpValidator = (function () { this.raise("Lone quantifier brackets"); } this.onDisjunctionLeave(start, this.index); - }; - RegExpValidator.prototype.alternative = function (i) { - var start = this.index; + } + alternative(i) { + const start = this.index; this.onAlternativeEnter(start, i); - while (this.currentCodePoint !== -1 && this.eatTerm()) - ; + while (this.currentCodePoint !== -1 && this.eatTerm()); this.onAlternativeLeave(start, this.index, i); - }; - RegExpValidator.prototype.eatTerm = function () { + } + eatTerm() { if (this.eatAssertion()) { if (this._lastAssertionIsQuantifiable) { this.eatQuantifier(); @@ -5744,9 +3191,9 @@ var RegExpValidator = (function () { return true; } return false; - }; - RegExpValidator.prototype.eatAssertion = function () { - var start = this.index; + } + eatAssertion() { + const start = this.index; this._lastAssertionIsQuantifiable = false; if (this.eat(CircumflexAccent)) { this.onEdgeAssertion(start, this.index, "start"); @@ -5765,10 +3212,10 @@ var RegExpValidator = (function () { return true; } if (this.eat2(LeftParenthesis, QuestionMark)) { - var lookbehind = this.ecmaVersion >= 2018 && this.eat(LessThanSign); - var negate = false; + const lookbehind = this.ecmaVersion >= 2018 && this.eat(LessThanSign); + let negate = false; if (this.eat(EqualsSign) || (negate = this.eat(ExclamationMark))) { - var kind = lookbehind ? "lookbehind" : "lookahead"; + const kind = lookbehind ? "lookbehind" : "lookahead"; this.onLookaroundAssertionEnter(start, kind, negate); this.disjunction(); if (!this.eat(RightParenthesis)) { @@ -5781,30 +3228,27 @@ var RegExpValidator = (function () { this.rewind(start); } return false; - }; - RegExpValidator.prototype.eatQuantifier = function (noError) { - if (noError === void 0) { noError = false; } - var start = this.index; - var min = 0; - var max = 0; - var greedy = false; + } + eatQuantifier() { + let noError = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + const start = this.index; + let min = 0; + let max = 0; + let greedy = false; if (this.eat(Asterisk)) { min = 0; max = Number.POSITIVE_INFINITY; - } - else if (this.eat(PlusSign)) { + } else if (this.eat(PlusSign)) { min = 1; max = Number.POSITIVE_INFINITY; - } - else if (this.eat(QuestionMark)) { + } else if (this.eat(QuestionMark)) { min = 0; max = 1; - } - else if (this.eatBracedQuantifier(noError)) { + } else if (this.eatBracedQuantifier(noError)) { min = this._lastMinValue; max = this._lastMaxValue; - } - else { + } else { return false; } greedy = !this.eat(QuestionMark); @@ -5812,18 +3256,16 @@ var RegExpValidator = (function () { this.onQuantifier(start, this.index, min, max, greedy); } return true; - }; - RegExpValidator.prototype.eatBracedQuantifier = function (noError) { - var start = this.index; + } + eatBracedQuantifier(noError) { + const start = this.index; if (this.eat(LeftCurlyBracket)) { this._lastMinValue = 0; this._lastMaxValue = Number.POSITIVE_INFINITY; if (this.eatDecimalDigits()) { this._lastMinValue = this._lastMaxValue = this._lastIntValue; if (this.eat(Comma)) { - this._lastMaxValue = this.eatDecimalDigits() - ? this._lastIntValue - : Number.POSITIVE_INFINITY; + this._lastMaxValue = this.eatDecimalDigits() ? this._lastIntValue : Number.POSITIVE_INFINITY; } if (this.eat(RightCurlyBracket)) { if (!noError && this._lastMaxValue < this._lastMinValue) { @@ -5838,24 +3280,19 @@ var RegExpValidator = (function () { this.rewind(start); } return false; - }; - RegExpValidator.prototype.eatAtom = function () { - return (this.eatPatternCharacter() || - this.eatDot() || - this.eatReverseSolidusAtomEscape() || - this.eatCharacterClass() || - this.eatUncapturingGroup() || - this.eatCapturingGroup()); - }; - RegExpValidator.prototype.eatDot = function () { + } + eatAtom() { + return this.eatPatternCharacter() || this.eatDot() || this.eatReverseSolidusAtomEscape() || this.eatCharacterClass() || this.eatUncapturingGroup() || this.eatCapturingGroup(); + } + eatDot() { if (this.eat(FullStop)) { this.onAnyCharacterSet(this.index - 1, this.index, "any"); return true; } return false; - }; - RegExpValidator.prototype.eatReverseSolidusAtomEscape = function () { - var start = this.index; + } + eatReverseSolidusAtomEscape() { + const start = this.index; if (this.eat(ReverseSolidus)) { if (this.eatAtomEscape()) { return true; @@ -5863,9 +3300,9 @@ var RegExpValidator = (function () { this.rewind(start); } return false; - }; - RegExpValidator.prototype.eatUncapturingGroup = function () { - var start = this.index; + } + eatUncapturingGroup() { + const start = this.index; if (this.eat3(LeftParenthesis, QuestionMark, Colon)) { this.onGroupEnter(start); this.disjunction(); @@ -5876,18 +3313,17 @@ var RegExpValidator = (function () { return true; } return false; - }; - RegExpValidator.prototype.eatCapturingGroup = function () { - var start = this.index; + } + eatCapturingGroup() { + const start = this.index; if (this.eat(LeftParenthesis)) { this._lastStrValue = ""; if (this.ecmaVersion >= 2018) { this.groupSpecifier(); - } - else if (this.currentCodePoint === QuestionMark) { + } else if (this.currentCodePoint === QuestionMark) { this.raise("Invalid group"); } - var name = this._lastStrValue || null; + const name = this._lastStrValue || null; this.onCapturingGroupEnter(start, name); this.disjunction(); if (!this.eat(RightParenthesis)) { @@ -5897,61 +3333,45 @@ var RegExpValidator = (function () { return true; } return false; - }; - RegExpValidator.prototype.eatExtendedAtom = function () { - return (this.eatDot() || - this.eatReverseSolidusAtomEscape() || - this.eatCharacterClass() || - this.eatUncapturingGroup() || - this.eatCapturingGroup() || - this.eatInvalidBracedQuantifier() || - this.eatExtendedPatternCharacter()); - }; - RegExpValidator.prototype.eatInvalidBracedQuantifier = function () { + } + eatExtendedAtom() { + return this.eatDot() || this.eatReverseSolidusAtomEscape() || this.eatCharacterClass() || this.eatUncapturingGroup() || this.eatCapturingGroup() || this.eatInvalidBracedQuantifier() || this.eatExtendedPatternCharacter(); + } + eatInvalidBracedQuantifier() { if (this.eatBracedQuantifier(true)) { this.raise("Nothing to repeat"); } return false; - }; - RegExpValidator.prototype.eatSyntaxCharacter = function () { + } + eatSyntaxCharacter() { if (isSyntaxCharacter(this.currentCodePoint)) { this._lastIntValue = this.currentCodePoint; this.advance(); return true; } return false; - }; - RegExpValidator.prototype.eatPatternCharacter = function () { - var start = this.index; - var cp = this.currentCodePoint; + } + eatPatternCharacter() { + const start = this.index; + const cp = this.currentCodePoint; if (cp !== -1 && !isSyntaxCharacter(cp)) { this.advance(); this.onCharacter(start, this.index, cp); return true; } return false; - }; - RegExpValidator.prototype.eatExtendedPatternCharacter = function () { - var start = this.index; - var cp = this.currentCodePoint; - if (cp !== -1 && - cp !== CircumflexAccent && - cp !== DollarSign && - cp !== FullStop && - cp !== Asterisk && - cp !== PlusSign && - cp !== QuestionMark && - cp !== LeftParenthesis && - cp !== RightParenthesis && - cp !== LeftSquareBracket && - cp !== VerticalLine) { + } + eatExtendedPatternCharacter() { + const start = this.index; + const cp = this.currentCodePoint; + if (cp !== -1 && cp !== CircumflexAccent && cp !== DollarSign && cp !== FullStop && cp !== Asterisk && cp !== PlusSign && cp !== QuestionMark && cp !== LeftParenthesis && cp !== RightParenthesis && cp !== LeftSquareBracket && cp !== VerticalLine) { this.advance(); this.onCharacter(start, this.index, cp); return true; } return false; - }; - RegExpValidator.prototype.groupSpecifier = function () { + } + groupSpecifier() { this._lastStrValue = ""; if (this.eat(QuestionMark)) { if (this.eatGroupName()) { @@ -5963,8 +3383,8 @@ var RegExpValidator = (function () { } this.raise("Invalid group"); } - }; - RegExpValidator.prototype.eatGroupName = function () { + } + eatGroupName() { this._lastStrValue = ""; if (this.eat(LessThanSign)) { if (this.eatRegExpIdentifierName() && this.eat(GreaterThanSign)) { @@ -5973,8 +3393,8 @@ var RegExpValidator = (function () { this.raise("Invalid capture group name"); } return false; - }; - RegExpValidator.prototype.eatRegExpIdentifierName = function () { + } + eatRegExpIdentifierName() { this._lastStrValue = ""; if (this.eatRegExpIdentifierStart()) { this._lastStrValue += String.fromCodePoint(this._lastIntValue); @@ -5984,10 +3404,10 @@ var RegExpValidator = (function () { return true; } return false; - }; - RegExpValidator.prototype.eatRegExpIdentifierStart = function () { - var start = this.index; - var cp = this.currentCodePoint; + } + eatRegExpIdentifierStart() { + const start = this.index; + let cp = this.currentCodePoint; this.advance(); if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) { cp = this._lastIntValue; @@ -6000,10 +3420,10 @@ var RegExpValidator = (function () { this.rewind(start); } return false; - }; - RegExpValidator.prototype.eatRegExpIdentifierPart = function () { - var start = this.index; - var cp = this.currentCodePoint; + } + eatRegExpIdentifierPart() { + const start = this.index; + let cp = this.currentCodePoint; this.advance(); if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) { cp = this._lastIntValue; @@ -6016,23 +3436,20 @@ var RegExpValidator = (function () { this.rewind(start); } return false; - }; - RegExpValidator.prototype.eatAtomEscape = function () { - if (this.eatBackreference() || - this.eatCharacterClassEscape() || - this.eatCharacterEscape() || - (this._nFlag && this.eatKGroupName())) { + } + eatAtomEscape() { + if (this.eatBackreference() || this.eatCharacterClassEscape() || this.eatCharacterEscape() || this._nFlag && this.eatKGroupName()) { return true; } if (this.strict || this._uFlag) { this.raise("Invalid escape"); } return false; - }; - RegExpValidator.prototype.eatBackreference = function () { - var start = this.index; + } + eatBackreference() { + const start = this.index; if (this.eatDecimalEscape()) { - var n = this._lastIntValue; + const n = this._lastIntValue; if (n <= this._numCapturingParens) { this.onBackreference(start - 1, this.index, n); return true; @@ -6043,12 +3460,12 @@ var RegExpValidator = (function () { this.rewind(start); } return false; - }; - RegExpValidator.prototype.eatKGroupName = function () { - var start = this.index; + } + eatKGroupName() { + const start = this.index; if (this.eat(LatinSmallLetterK)) { if (this.eatGroupName()) { - var groupName = this._lastStrValue; + const groupName = this._lastStrValue; this._backreferenceNames.add(groupName); this.onBackreference(start - 1, this.index, groupName); return true; @@ -6056,23 +3473,17 @@ var RegExpValidator = (function () { this.raise("Invalid named reference"); } return false; - }; - RegExpValidator.prototype.eatCharacterEscape = function () { - var start = this.index; - if (this.eatControlEscape() || - this.eatCControlLetter() || - this.eatZero() || - this.eatHexEscapeSequence() || - this.eatRegExpUnicodeEscapeSequence() || - (!this.strict && this.eatLegacyOctalEscapeSequence()) || - this.eatIdentityEscape()) { + } + eatCharacterEscape() { + const start = this.index; + if (this.eatControlEscape() || this.eatCControlLetter() || this.eatZero() || this.eatHexEscapeSequence() || this.eatRegExpUnicodeEscapeSequence() || !this.strict && this.eatLegacyOctalEscapeSequence() || this.eatIdentityEscape()) { this.onCharacter(start - 1, this.index, this._lastIntValue); return true; } return false; - }; - RegExpValidator.prototype.eatCControlLetter = function () { - var start = this.index; + } + eatCControlLetter() { + const start = this.index; if (this.eat(LatinSmallLetterC)) { if (this.eatControlLetter()) { return true; @@ -6080,17 +3491,16 @@ var RegExpValidator = (function () { this.rewind(start); } return false; - }; - RegExpValidator.prototype.eatZero = function () { - if (this.currentCodePoint === DigitZero && - !isDecimalDigit(this.nextCodePoint)) { + } + eatZero() { + if (this.currentCodePoint === DigitZero && !isDecimalDigit(this.nextCodePoint)) { this._lastIntValue = 0; this.advance(); return true; } return false; - }; - RegExpValidator.prototype.eatControlEscape = function () { + } + eatControlEscape() { if (this.eat(LatinSmallLetterT)) { this._lastIntValue = CharacterTabulation; return true; @@ -6112,32 +3522,27 @@ var RegExpValidator = (function () { return true; } return false; - }; - RegExpValidator.prototype.eatControlLetter = function () { - var cp = this.currentCodePoint; + } + eatControlLetter() { + const cp = this.currentCodePoint; if (isLatinLetter(cp)) { this.advance(); this._lastIntValue = cp % 0x20; return true; } return false; - }; - RegExpValidator.prototype.eatRegExpUnicodeEscapeSequence = function () { - var start = this.index; + } + eatRegExpUnicodeEscapeSequence() { + const start = this.index; if (this.eat(LatinSmallLetterU)) { if (this.eatFixedHexDigits(4)) { - var lead = this._lastIntValue; + const lead = this._lastIntValue; if (this._uFlag && lead >= 0xd800 && lead <= 0xdbff) { - var leadSurrogateEnd = this.index; - if (this.eat(ReverseSolidus) && - this.eat(LatinSmallLetterU) && - this.eatFixedHexDigits(4)) { - var trail = this._lastIntValue; + const leadSurrogateEnd = this.index; + if (this.eat(ReverseSolidus) && this.eat(LatinSmallLetterU) && this.eatFixedHexDigits(4)) { + const trail = this._lastIntValue; if (trail >= 0xdc00 && trail <= 0xdfff) { - this._lastIntValue = - (lead - 0xd800) * 0x400 + - (trail - 0xdc00) + - 0x10000; + this._lastIntValue = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000; return true; } } @@ -6146,11 +3551,7 @@ var RegExpValidator = (function () { } return true; } - if (this._uFlag && - this.eat(LeftCurlyBracket) && - this.eatHexDigits() && - this.eat(RightCurlyBracket) && - isValidUnicode(this._lastIntValue)) { + if (this._uFlag && this.eat(LeftCurlyBracket) && this.eatHexDigits() && this.eat(RightCurlyBracket) && isValidUnicode(this._lastIntValue)) { return true; } if (this.strict || this._uFlag) { @@ -6159,8 +3560,8 @@ var RegExpValidator = (function () { this.rewind(start); } return false; - }; - RegExpValidator.prototype.eatIdentityEscape = function () { + } + eatIdentityEscape() { if (this._uFlag) { if (this.eatSyntaxCharacter()) { return true; @@ -6177,32 +3578,30 @@ var RegExpValidator = (function () { return true; } return false; - }; - RegExpValidator.prototype.isValidIdentityEscape = function (cp) { + } + isValidIdentityEscape(cp) { if (cp === -1) { return false; } if (this.strict) { return !isIdContinue(cp); } - return (cp !== LatinSmallLetterC && - (!this._nFlag || cp !== LatinSmallLetterK)); - }; - RegExpValidator.prototype.eatDecimalEscape = function () { + return cp !== LatinSmallLetterC && (!this._nFlag || cp !== LatinSmallLetterK); + } + eatDecimalEscape() { this._lastIntValue = 0; - var cp = this.currentCodePoint; + let cp = this.currentCodePoint; if (cp >= DigitOne && cp <= DigitNine) { do { this._lastIntValue = 10 * this._lastIntValue + (cp - DigitZero); this.advance(); - } while ((cp = this.currentCodePoint) >= DigitZero && - cp <= DigitNine); + } while ((cp = this.currentCodePoint) >= DigitZero && cp <= DigitNine); return true; } return false; - }; - RegExpValidator.prototype.eatCharacterClassEscape = function () { - var start = this.index; + } + eatCharacterClassEscape() { + const start = this.index; if (this.eat(LatinSmallLetterD)) { this._lastIntValue = -1; this.onEscapeCharacterSet(start - 1, this.index, "digit", false); @@ -6233,24 +3632,19 @@ var RegExpValidator = (function () { this.onEscapeCharacterSet(start - 1, this.index, "word", true); return true; } - var negate = false; - if (this._uFlag && - this.ecmaVersion >= 2018 && - (this.eat(LatinSmallLetterP) || - (negate = this.eat(LatinCapitalLetterP)))) { + let negate = false; + if (this._uFlag && this.ecmaVersion >= 2018 && (this.eat(LatinSmallLetterP) || (negate = this.eat(LatinCapitalLetterP)))) { this._lastIntValue = -1; - if (this.eat(LeftCurlyBracket) && - this.eatUnicodePropertyValueExpression() && - this.eat(RightCurlyBracket)) { + if (this.eat(LeftCurlyBracket) && this.eatUnicodePropertyValueExpression() && this.eat(RightCurlyBracket)) { this.onUnicodePropertyCharacterSet(start - 1, this.index, "property", this._lastKeyValue, this._lastValValue || null, negate); return true; } this.raise("Invalid property name"); } return false; - }; - RegExpValidator.prototype.eatUnicodePropertyValueExpression = function () { - var start = this.index; + } + eatUnicodePropertyValueExpression() { + const start = this.index; if (this.eatUnicodePropertyName() && this.eat(EqualsSign)) { this._lastKeyValue = this._lastStrValue; if (this.eatUnicodePropertyValue()) { @@ -6263,7 +3657,7 @@ var RegExpValidator = (function () { } this.rewind(start); if (this.eatLoneUnicodePropertyNameOrValue()) { - var nameOrValue = this._lastStrValue; + const nameOrValue = this._lastStrValue; if (isValidUnicodeProperty("General_Category", nameOrValue)) { this._lastKeyValue = "General_Category"; this._lastValValue = nameOrValue; @@ -6277,30 +3671,30 @@ var RegExpValidator = (function () { this.raise("Invalid property name"); } return false; - }; - RegExpValidator.prototype.eatUnicodePropertyName = function () { + } + eatUnicodePropertyName() { this._lastStrValue = ""; while (isUnicodePropertyNameCharacter(this.currentCodePoint)) { this._lastStrValue += String.fromCodePoint(this.currentCodePoint); this.advance(); } return this._lastStrValue !== ""; - }; - RegExpValidator.prototype.eatUnicodePropertyValue = function () { + } + eatUnicodePropertyValue() { this._lastStrValue = ""; while (isUnicodePropertyValueCharacter(this.currentCodePoint)) { this._lastStrValue += String.fromCodePoint(this.currentCodePoint); this.advance(); } return this._lastStrValue !== ""; - }; - RegExpValidator.prototype.eatLoneUnicodePropertyNameOrValue = function () { + } + eatLoneUnicodePropertyNameOrValue() { return this.eatUnicodePropertyValue(); - }; - RegExpValidator.prototype.eatCharacterClass = function () { - var start = this.index; + } + eatCharacterClass() { + const start = this.index; if (this.eat(LeftSquareBracket)) { - var negate = this.eat(CircumflexAccent); + const negate = this.eat(CircumflexAccent); this.onCharacterClassEnter(start, negate); this.classRanges(); if (!this.eat(RightSquareBracket)) { @@ -6310,34 +3704,32 @@ var RegExpValidator = (function () { return true; } return false; - }; - RegExpValidator.prototype.classRanges = function () { - var start = this.index; + } + classRanges() { + let start = this.index; while (this.eatClassAtom()) { - var left = this._lastIntValue; - var hyphenStart = this.index; + const left = this._lastIntValue; + const hyphenStart = this.index; if (this.eat(HyphenMinus)) { this.onCharacter(hyphenStart, this.index, HyphenMinus); if (this.eatClassAtom()) { - var right = this._lastIntValue; + const right = this._lastIntValue; if (left === -1 || right === -1) { if (this.strict) { this.raise("Invalid character class"); } - } - else if (left > right) { + } else if (left > right) { this.raise("Range out of order in character class"); - } - else { + } else { this.onCharacterClassRange(start, this.index, left, right); } } } start = this.index; } - }; - RegExpValidator.prototype.eatClassAtom = function () { - var start = this.index; + } + eatClassAtom() { + const start = this.index; if (this.eat(ReverseSolidus)) { if (this.eatClassEscape()) { return true; @@ -6347,7 +3739,7 @@ var RegExpValidator = (function () { } this.rewind(start); } - var cp = this.currentCodePoint; + const cp = this.currentCodePoint; if (cp !== -1 && cp !== RightSquareBracket) { this.advance(); this._lastIntValue = cp; @@ -6355,9 +3747,9 @@ var RegExpValidator = (function () { return true; } return false; - }; - RegExpValidator.prototype.eatClassEscape = function () { - var start = this.index; + } + eatClassEscape() { + const start = this.index; if (this.eat(LatinSmallLetterB)) { this._lastIntValue = Backspace; this.onCharacter(start - 1, this.index, Backspace); @@ -6376,18 +3768,18 @@ var RegExpValidator = (function () { this.rewind(start); } return this.eatCharacterClassEscape() || this.eatCharacterEscape(); - }; - RegExpValidator.prototype.eatClassControlLetter = function () { - var cp = this.currentCodePoint; + } + eatClassControlLetter() { + const cp = this.currentCodePoint; if (isDecimalDigit(cp) || cp === LowLine) { this.advance(); this._lastIntValue = cp % 0x20; return true; } return false; - }; - RegExpValidator.prototype.eatHexEscapeSequence = function () { - var start = this.index; + } + eatHexEscapeSequence() { + const start = this.index; if (this.eat(LatinSmallLetterX)) { if (this.eatFixedHexDigits(2)) { return true; @@ -6398,48 +3790,44 @@ var RegExpValidator = (function () { this.rewind(start); } return false; - }; - RegExpValidator.prototype.eatDecimalDigits = function () { - var start = this.index; + } + eatDecimalDigits() { + const start = this.index; this._lastIntValue = 0; while (isDecimalDigit(this.currentCodePoint)) { - this._lastIntValue = - 10 * this._lastIntValue + digitToInt(this.currentCodePoint); + this._lastIntValue = 10 * this._lastIntValue + digitToInt(this.currentCodePoint); this.advance(); } return this.index !== start; - }; - RegExpValidator.prototype.eatHexDigits = function () { - var start = this.index; + } + eatHexDigits() { + const start = this.index; this._lastIntValue = 0; while (isHexDigit(this.currentCodePoint)) { - this._lastIntValue = - 16 * this._lastIntValue + digitToInt(this.currentCodePoint); + this._lastIntValue = 16 * this._lastIntValue + digitToInt(this.currentCodePoint); this.advance(); } return this.index !== start; - }; - RegExpValidator.prototype.eatLegacyOctalEscapeSequence = function () { + } + eatLegacyOctalEscapeSequence() { if (this.eatOctalDigit()) { - var n1 = this._lastIntValue; + const n1 = this._lastIntValue; if (this.eatOctalDigit()) { - var n2 = this._lastIntValue; + const n2 = this._lastIntValue; if (n1 <= 3 && this.eatOctalDigit()) { this._lastIntValue = n1 * 64 + n2 * 8 + this._lastIntValue; - } - else { + } else { this._lastIntValue = n1 * 8 + n2; } - } - else { + } else { this._lastIntValue = n1; } return true; } return false; - }; - RegExpValidator.prototype.eatOctalDigit = function () { - var cp = this.currentCodePoint; + } + eatOctalDigit() { + const cp = this.currentCodePoint; if (isOctalDigit(cp)) { this.advance(); this._lastIntValue = cp - DigitZero; @@ -6447,12 +3835,12 @@ var RegExpValidator = (function () { } this._lastIntValue = 0; return false; - }; - RegExpValidator.prototype.eatFixedHexDigits = function (length) { - var start = this.index; + } + eatFixedHexDigits(length) { + const start = this.index; this._lastIntValue = 0; - for (var i = 0; i < length; ++i) { - var cp = this.currentCodePoint; + for (let i = 0; i < length; ++i) { + const cp = this.currentCodePoint; if (!isHexDigit(cp)) { this.rewind(start); return false; @@ -6461,16 +3849,14 @@ var RegExpValidator = (function () { this.advance(); } return true; - }; - return RegExpValidator; -}()); + } +} -var DummyPattern = {}; -var DummyFlags = {}; -var DummyCapturingGroup = {}; +const DummyPattern = {}; +const DummyFlags = {}; +const DummyCapturingGroup = {}; function elementsToAlternative(elements, parent) { - for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) { - var element = elements_1[_i]; + for (const element of elements) { assert(element.type !== "Disjunction"); element.parent = parent; } @@ -6479,24 +3865,21 @@ function elementsToAlternative(elements, parent) { function addAlternativeElement(parent, node) { if (parent.type === "Disjunction") { last(parent.alternatives).push(node); - } - else { + } else { parent.elements.push(node); } } function addCommonElement(parent, node) { if (parent.type === "Disjunction") { last(parent.alternatives).push(node); - } - else if (parent.type === "CharacterClass") { + } else if (parent.type === "CharacterClass") { parent.elements.push(node); - } - else { + } else { parent.elements.push(node); } } -var RegExpParserState = (function () { - function RegExpParserState(options) { +class RegExpParserState { + constructor(options) { this._node = DummyPattern; this._flags = DummyFlags; this._disjunctionStartStack = []; @@ -6504,385 +3887,367 @@ var RegExpParserState = (function () { this._capturingGroups = []; this.source = ""; this.strict = Boolean(options && options.strict); - this.ecmaVersion = (options && options.ecmaVersion) || 2018; + this.ecmaVersion = options && options.ecmaVersion || 2018; } - Object.defineProperty(RegExpParserState.prototype, "pattern", { - get: function () { - if (this._node.type !== "Pattern") { - throw new Error("UnknownError"); - } - return this._node; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RegExpParserState.prototype, "flags", { - get: function () { - if (this._flags.type !== "Flags") { - throw new Error("UnknownError"); - } - return this._flags; - }, - enumerable: true, - configurable: true - }); - RegExpParserState.prototype.onFlags = function (start, end, global, ignoreCase, multiline, unicode, sticky, dotAll) { + get pattern() { + if (this._node.type !== "Pattern") { + throw new Error("UnknownError"); + } + return this._node; + } + get flags() { + if (this._flags.type !== "Flags") { + throw new Error("UnknownError"); + } + return this._flags; + } + onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll) { this._flags = { type: "Flags", parent: null, - start: start, - end: end, + start, + end, raw: this.source.slice(start, end), - global: global, - ignoreCase: ignoreCase, - multiline: multiline, - unicode: unicode, - sticky: sticky, - dotAll: dotAll, + global, + ignoreCase, + multiline, + unicode, + sticky, + dotAll }; - }; - RegExpParserState.prototype.onPatternEnter = function (start) { + } + onPatternEnter(start) { this._node = { type: "Pattern", parent: null, - start: start, + start, end: start, raw: "", - elements: [], + elements: [] }; this._backreferences.length = 0; this._capturingGroups.length = 0; - }; - RegExpParserState.prototype.onPatternLeave = function (start, end) { + } + onPatternLeave(start, end) { this._node.end = end; this._node.raw = this.source.slice(start, end); - var _loop_1 = function (reference) { - var ref = reference.ref; - var group = typeof ref === "number" - ? this_1._capturingGroups[ref - 1] - : this_1._capturingGroups.find(function (g) { return g.name === ref; }); + for (const reference of this._backreferences) { + const ref = reference.ref; + const group = typeof ref === "number" ? this._capturingGroups[ref - 1] : this._capturingGroups.find(g => g.name === ref); reference.resolved = group; group.references.push(reference); - }; - var this_1 = this; - for (var _i = 0, _a = this._backreferences; _i < _a.length; _i++) { - var reference = _a[_i]; - _loop_1(reference); } - }; - RegExpParserState.prototype.onDisjunctionEnter = function (start) { + } + onDisjunctionEnter(start) { this._disjunctionStartStack.push(start); - }; - RegExpParserState.prototype.onDisjunctionLeave = function (start, end) { + } + onDisjunctionLeave(start, end) { this._disjunctionStartStack.pop(); - }; - RegExpParserState.prototype.onAlternativeEnter = function (start, index) { + } + onAlternativeEnter(start, index) { if (index === 0) { return; } - var parentNode = this._node; - if (parentNode.type === "Disjunction" || - parentNode.type === "CharacterClass") { + const parentNode = this._node; + if (parentNode.type === "Disjunction" || parentNode.type === "CharacterClass") { throw new Error("UnknownError"); } - var prevNode = last(parentNode.elements); + const prevNode = last(parentNode.elements); if (prevNode != null && prevNode.type === "Disjunction") { this._node = prevNode; prevNode.alternatives.push([]); - } - else { + } else { this._node = { type: "Disjunction", parent: parentNode, start: last(this._disjunctionStartStack), end: start, raw: "", - alternatives: [], + alternatives: [] }; - var elements = elementsToAlternative(parentNode.elements, this._node); + const elements = elementsToAlternative(parentNode.elements, this._node); this._node.alternatives.push(elements, []); parentNode.elements = [this._node]; } - }; - RegExpParserState.prototype.onAlternativeLeave = function (start, end, index) { + } + onAlternativeLeave(start, end, index) { if (index === 0) { return; } this._node.end = end; this._node.raw = this.source.slice(this._node.start, end); this._node = this._node.parent; - }; - RegExpParserState.prototype.onGroupEnter = function (start) { - var parentNode = this._node; + } + onGroupEnter(start) { + const parentNode = this._node; if (parentNode.type === "CharacterClass") { throw new Error("UnknownError"); } this._node = { type: "Group", parent: parentNode, - start: start, + start, end: start, raw: "", - elements: [], + elements: [] }; addAlternativeElement(parentNode, this._node); - }; - RegExpParserState.prototype.onGroupLeave = function (start, end) { + } + onGroupLeave(start, end) { this._node.end = end; this._node.raw = this.source.slice(start, end); this._node = this._node.parent; - }; - RegExpParserState.prototype.onCapturingGroupEnter = function (start, name) { - var parentNode = this._node; + } + onCapturingGroupEnter(start, name) { + const parentNode = this._node; if (parentNode.type === "CharacterClass") { throw new Error("UnknownError"); } this._node = { type: "CapturingGroup", parent: parentNode, - start: start, + start, end: start, raw: "", - name: name, + name, elements: [], - references: [], + references: [] }; addAlternativeElement(parentNode, this._node); this._capturingGroups.push(this._node); - }; - RegExpParserState.prototype.onCapturingGroupLeave = function (start, end, name) { + } + onCapturingGroupLeave(start, end, name) { this._node.end = end; this._node.raw = this.source.slice(start, end); this._node = this._node.parent; - }; - RegExpParserState.prototype.onQuantifier = function (start, end, min, max, greedy) { - var parentNode = this._node; + } + onQuantifier(start, end, min, max, greedy) { + const parentNode = this._node; if (parentNode.type === "CharacterClass") { throw new Error("UnknownError"); } - var elements = parentNode.type === "Disjunction" - ? last(parentNode.alternatives) - : parentNode.elements; - var prevNode = elements.pop(); - var node = { + const elements = parentNode.type === "Disjunction" ? last(parentNode.alternatives) : parentNode.elements; + const prevNode = elements.pop(); + const node = { type: "Quantifier", parent: parentNode, - start: start, - end: end, + start, + end, raw: this.source.slice(start, end), - min: min, - max: max, - greedy: greedy, - element: prevNode, + min, + max, + greedy, + element: prevNode }; elements.push(node); prevNode.parent = node; - }; - RegExpParserState.prototype.onLookaroundAssertionEnter = function (start, kind, negate) { - var parentNode = this._node; + } + onLookaroundAssertionEnter(start, kind, negate) { + const parentNode = this._node; if (parentNode.type === "CharacterClass") { throw new Error("UnknownError"); } this._node = { type: "Assertion", parent: parentNode, - start: start, + start, end: start, raw: "", - kind: kind, - negate: negate, - elements: [], + kind, + negate, + elements: [] }; addAlternativeElement(parentNode, this._node); - }; - RegExpParserState.prototype.onLookaroundAssertionLeave = function (start, end, kind, negate) { + } + onLookaroundAssertionLeave(start, end, kind, negate) { this._node.end = end; this._node.raw = this.source.slice(start, end); this._node = this._node.parent; - }; - RegExpParserState.prototype.onEdgeAssertion = function (start, end, kind) { - var parentNode = this._node; + } + onEdgeAssertion(start, end, kind) { + const parentNode = this._node; if (parentNode.type === "CharacterClass") { throw new Error("UnknownError"); } addAlternativeElement(parentNode, { type: "Assertion", parent: parentNode, - start: start, - end: end, + start, + end, raw: this.source.slice(start, end), - kind: kind, + kind }); - }; - RegExpParserState.prototype.onWordBoundaryAssertion = function (start, end, kind, negate) { - var parentNode = this._node; + } + onWordBoundaryAssertion(start, end, kind, negate) { + const parentNode = this._node; if (parentNode.type === "CharacterClass") { throw new Error("UnknownError"); } addAlternativeElement(parentNode, { type: "Assertion", parent: parentNode, - start: start, - end: end, + start, + end, raw: this.source.slice(start, end), - kind: kind, - negate: negate, + kind, + negate }); - }; - RegExpParserState.prototype.onAnyCharacterSet = function (start, end, kind) { - var parentNode = this._node; + } + onAnyCharacterSet(start, end, kind) { + const parentNode = this._node; if (parentNode.type === "CharacterClass") { throw new Error("UnknownError"); } addAlternativeElement(parentNode, { type: "CharacterSet", parent: parentNode, - start: start, - end: end, + start, + end, raw: this.source.slice(start, end), - kind: kind, + kind }); - }; - RegExpParserState.prototype.onEscapeCharacterSet = function (start, end, kind, negate) { + } + onEscapeCharacterSet(start, end, kind, negate) { addCommonElement(this._node, { type: "CharacterSet", parent: this._node, - start: start, - end: end, + start, + end, raw: this.source.slice(start, end), - kind: kind, - negate: negate, + kind, + negate }); - }; - RegExpParserState.prototype.onUnicodePropertyCharacterSet = function (start, end, kind, key, value, negate) { + } + onUnicodePropertyCharacterSet(start, end, kind, key, value, negate) { addCommonElement(this._node, { type: "CharacterSet", parent: this._node, - start: start, - end: end, + start, + end, raw: this.source.slice(start, end), - kind: kind, - key: key, - value: value, - negate: negate, + kind, + key, + value, + negate }); - }; - RegExpParserState.prototype.onCharacter = function (start, end, value) { + } + onCharacter(start, end, value) { addCommonElement(this._node, { type: "Character", parent: this._node, - start: start, - end: end, + start, + end, raw: this.source.slice(start, end), - value: value, + value }); - }; - RegExpParserState.prototype.onBackreference = function (start, end, ref) { - var parentNode = this._node; + } + onBackreference(start, end, ref) { + const parentNode = this._node; if (parentNode.type === "CharacterClass") { throw new Error("UnknownError"); } - var node = { + const node = { type: "Backreference", parent: parentNode, - start: start, - end: end, + start, + end, raw: this.source.slice(start, end), - ref: ref, - resolved: DummyCapturingGroup, + ref, + resolved: DummyCapturingGroup }; addAlternativeElement(parentNode, node); this._backreferences.push(node); - }; - RegExpParserState.prototype.onCharacterClassEnter = function (start, negate) { - var parentNode = this._node; + } + onCharacterClassEnter(start, negate) { + const parentNode = this._node; if (parentNode.type === "CharacterClass") { throw new Error("UnknownError"); } this._node = { type: "CharacterClass", parent: parentNode, - start: start, + start, end: start, raw: "", - negate: negate, - elements: [], + negate, + elements: [] }; addAlternativeElement(parentNode, this._node); - }; - RegExpParserState.prototype.onCharacterClassLeave = function (start, end, negate) { + } + onCharacterClassLeave(start, end, negate) { this._node.end = end; this._node.raw = this.source.slice(start, end); this._node = this._node.parent; - }; - RegExpParserState.prototype.onCharacterClassRange = function (start, end, min, max) { - var parentNode = this._node; + } + onCharacterClassRange(start, end, min, max) { + const parentNode = this._node; if (parentNode.type !== "CharacterClass") { throw new Error("UnknownError"); } - var elements = parentNode.elements; - var rightNode = elements.pop(); + const elements = parentNode.elements; + const rightNode = elements.pop(); elements.pop(); - var leftNode = elements.pop(); - var node = { + const leftNode = elements.pop(); + const node = { type: "CharacterClassRange", parent: parentNode, - start: start, - end: end, + start, + end, raw: this.source.slice(start, end), min: leftNode, - max: rightNode, + max: rightNode }; assert(leftNode != null && leftNode.type === "Character"); assert(rightNode != null && rightNode.type === "Character"); leftNode.parent = node; rightNode.parent = node; elements.push(node); - }; - return RegExpParserState; -}()); -var RegExpParser = (function () { - function RegExpParser(options) { + } +} +class RegExpParser { + constructor(options) { this._state = new RegExpParserState(options); this._validator = new RegExpValidator(this._state); } - RegExpParser.prototype.parseLiteral = function (source, start, end) { - if (start === void 0) { start = 0; } - if (end === void 0) { end = source.length; } + parseLiteral(source) { + let start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + let end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : source.length; + this._state.source = source; this._validator.validateLiteral(source, start, end); - var pattern = this._state.pattern; - var flags = this._state.flags; - var literal = { + const pattern = this._state.pattern; + const flags = this._state.flags; + const literal = { type: "RegExpLiteral", parent: null, - start: start, - end: end, + start, + end, raw: source, - pattern: pattern, - flags: flags, + pattern, + flags }; pattern.parent = literal; flags.parent = literal; return literal; - }; - RegExpParser.prototype.parseFlags = function (source, start, end) { - if (start === void 0) { start = 0; } - if (end === void 0) { end = source.length; } + } + parseFlags(source) { + let start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + let end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : source.length; + this._state.source = source; this._validator.validateFlags(source, start, end); return this._state.flags; - }; - RegExpParser.prototype.parsePattern = function (source, start, end, uFlag) { - if (start === void 0) { start = 0; } - if (end === void 0) { end = source.length; } - if (uFlag === void 0) { uFlag = false; } + } + parsePattern(source) { + let start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + let end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : source.length; + let uFlag = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + this._state.source = source; this._validator.validatePattern(source, start, end, uFlag); return this._state.pattern; - }; - return RegExpParser; -}()); + } +} function parseRegExpLiteral(source, options) { return new RegExpParser(options).parseLiteral(source); diff --git a/tools/node_modules/eslint/node_modules/regexpp/index.js.map b/tools/node_modules/eslint/node_modules/regexpp/index.js.map index 83e324f903a810..6cc2a01a1f209b 100644 --- a/tools/node_modules/eslint/node_modules/regexpp/index.js.map +++ b/tools/node_modules/eslint/node_modules/regexpp/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js.map","sources":["src/util.ts","src/reader.ts","src/regexp-syntax-error.ts","src/unicode/ids.ts","src/unicode/property-data.ts","src/unicode/index.ts","src/validator.ts","src/parser.ts","src/index.ts"],"sourcesContent":["export function assert(condition: boolean, message?: string): void {\n if (!condition) {\n throw new Error(message || \"AssertionError\")\n }\n}\n\nexport function last(xs: T[]): T | undefined {\n return xs.length === 0 ? undefined : xs[xs.length - 1]\n}\n","const legacyImpl = {\n at(s: string, end: number, i: number): number {\n return i < end ? s.charCodeAt(i) : -1\n },\n width(c: number): number {\n return 1\n },\n}\nconst unicodeImpl = {\n at(s: string, end: number, i: number): number {\n return i < end ? s.codePointAt(i)! : -1\n },\n width(c: number): number {\n return c > 0xffff ? 2 : 1\n },\n}\n\nexport class Reader {\n private _impl = legacyImpl\n private _s: string = \"\"\n private _i: number = 0\n private _end: number = 0\n private _cp1: number = -1\n private _w1: number = 1\n private _cp2: number = -1\n private _w2: number = 1\n private _cp3: number = -1\n private _w3: number = 1\n private _cp4: number = -1\n\n get source(): string {\n return this._s\n }\n\n get index(): number {\n return this._i\n }\n\n get currentCodePoint(): number {\n return this._cp1\n }\n\n get nextCodePoint(): number {\n return this._cp2\n }\n\n get nextCodePoint2(): number {\n return this._cp3\n }\n\n get nextCodePoint3(): number {\n return this._cp4\n }\n\n reset(source: string, start: number, end: number, uFlag: boolean): void {\n this._impl = uFlag ? unicodeImpl : legacyImpl\n this._s = source\n this._end = end\n this.rewind(start)\n }\n\n rewind(index: number): void {\n const impl = this._impl\n this._i = index\n this._cp1 = impl.at(this._s, this._end, index)\n this._w1 = impl.width(this._cp1)\n this._cp2 = impl.at(this._s, this._end, index + this._w1)\n this._w2 = impl.width(this._cp2)\n this._cp3 = impl.at(this._s, this._end, index + this._w1 + this._w2)\n this._w3 = impl.width(this._cp3)\n this._cp4 = impl.at(\n this._s,\n this._end,\n index + this._w1 + this._w2 + this._w3,\n )\n }\n\n advance(): void {\n if (this._cp1 !== -1) {\n const impl = this._impl\n this._i += this._w1\n this._cp1 = this._cp2\n this._w1 = this._w2\n this._cp2 = this._cp3\n this._w2 = impl.width(this._cp2)\n this._cp3 = this._cp4\n this._w3 = impl.width(this._cp3)\n this._cp4 = impl.at(\n this._s,\n this._end,\n this._i + this._w1 + this._w2 + this._w3,\n )\n }\n }\n\n eat(cp: number): boolean {\n if (this._cp1 === cp) {\n this.advance()\n return true\n }\n return false\n }\n\n eat2(cp1: number, cp2: number): boolean {\n if (this._cp1 === cp1 && this._cp2 === cp2) {\n this.advance()\n this.advance()\n return true\n }\n return false\n }\n\n eat3(cp1: number, cp2: number, cp3: number): boolean {\n if (this._cp1 === cp1 && this._cp2 === cp2 && this._cp3 === cp3) {\n this.advance()\n this.advance()\n this.advance()\n return true\n }\n return false\n }\n}\n","export class RegExpSyntaxError extends SyntaxError {\n public index: number\n constructor(\n source: string,\n uFlag: boolean,\n index: number,\n message: string,\n ) {\n /*eslint-disable no-param-reassign */\n if (source) {\n if (source[0] !== \"/\") {\n source = `/${source}/${uFlag ? \"u\" : \"\"}`\n }\n source = `: ${source}`\n }\n /*eslint-enable no-param-reassign */\n\n super(`Invalid regular expression${source}: ${message}`)\n this.index = index\n }\n}\n","/* Generated from DerivedCoreProperties-10.0.0.txt */\nexport function isIdStart(cp: number): boolean {\n if (cp < 0x41) return false\n if (cp < 0x5b) return true\n if (cp < 0x61) return false\n if (cp < 0x7b) return true\n return isLargeIdStart(cp)\n}\nexport function isIdContinue(cp: number): boolean {\n if (cp < 0x30) return false\n if (cp < 0x3a) return true\n if (cp < 0x41) return false\n if (cp < 0x5b) return true\n if (cp === 0x5f) return true\n if (cp < 0x61) return false\n if (cp < 0x7b) return true\n return isLargeIdStart(cp) || isLargeIdContinue(cp)\n}\n\nfunction isLargeIdStart(cp: number): boolean {\n if (cp < 0x303c) {\n if (cp < 0xeaa) {\n if (cp < 0xa2a) {\n if (cp < 0x6d5) {\n if (cp < 0x37a) {\n if (cp < 0x294) {\n if (cp < 0xf8) {\n if (cp === 0xaa) return true\n if (cp === 0xb5) return true\n if (cp === 0xba) return true\n if (cp < 0xc0) return false\n if (cp < 0xd7) return true\n if (cp < 0xd8) return false\n if (cp < 0xf7) return true\n return false\n }\n if (cp < 0x1bb) return true\n if (cp === 0x1bb) return true\n if (cp < 0x1bc) return false\n if (cp < 0x1c0) return true\n if (cp < 0x1c0) return false\n if (cp < 0x1c4) return true\n if (cp < 0x1c4) return false\n if (cp < 0x294) return true\n return false\n }\n if (cp < 0x2ec) {\n if (cp === 0x294) return true\n if (cp < 0x295) return false\n if (cp < 0x2b0) return true\n if (cp < 0x2b0) return false\n if (cp < 0x2c2) return true\n if (cp < 0x2c6) return false\n if (cp < 0x2d2) return true\n if (cp < 0x2e0) return false\n if (cp < 0x2e5) return true\n return false\n }\n if (cp === 0x2ec) return true\n if (cp === 0x2ee) return true\n if (cp < 0x370) return false\n if (cp < 0x374) return true\n if (cp === 0x374) return true\n if (cp < 0x376) return false\n if (cp < 0x378) return true\n return false\n }\n if (cp < 0x531) {\n if (cp < 0x38c) {\n if (cp === 0x37a) return true\n if (cp < 0x37b) return false\n if (cp < 0x37e) return true\n if (cp === 0x37f) return true\n if (cp === 0x386) return true\n if (cp < 0x388) return false\n if (cp < 0x38b) return true\n return false\n }\n if (cp === 0x38c) return true\n if (cp < 0x38e) return false\n if (cp < 0x3a2) return true\n if (cp < 0x3a3) return false\n if (cp < 0x3f6) return true\n if (cp < 0x3f7) return false\n if (cp < 0x482) return true\n if (cp < 0x48a) return false\n if (cp < 0x530) return true\n return false\n }\n if (cp < 0x620) {\n if (cp < 0x531) return false\n if (cp < 0x557) return true\n if (cp === 0x559) return true\n if (cp < 0x561) return false\n if (cp < 0x588) return true\n if (cp < 0x5d0) return false\n if (cp < 0x5eb) return true\n if (cp < 0x5f0) return false\n if (cp < 0x5f3) return true\n return false\n }\n if (cp < 0x640) return true\n if (cp === 0x640) return true\n if (cp < 0x641) return false\n if (cp < 0x64b) return true\n if (cp < 0x66e) return false\n if (cp < 0x670) return true\n if (cp < 0x671) return false\n if (cp < 0x6d4) return true\n return false\n }\n if (cp < 0x904) {\n if (cp < 0x7f4) {\n if (cp < 0x710) {\n if (cp === 0x6d5) return true\n if (cp < 0x6e5) return false\n if (cp < 0x6e7) return true\n if (cp < 0x6ee) return false\n if (cp < 0x6f0) return true\n if (cp < 0x6fa) return false\n if (cp < 0x6fd) return true\n if (cp === 0x6ff) return true\n return false\n }\n if (cp === 0x710) return true\n if (cp < 0x712) return false\n if (cp < 0x730) return true\n if (cp < 0x74d) return false\n if (cp < 0x7a6) return true\n if (cp === 0x7b1) return true\n if (cp < 0x7ca) return false\n if (cp < 0x7eb) return true\n return false\n }\n if (cp < 0x828) {\n if (cp < 0x7f4) return false\n if (cp < 0x7f6) return true\n if (cp === 0x7fa) return true\n if (cp < 0x800) return false\n if (cp < 0x816) return true\n if (cp === 0x81a) return true\n if (cp === 0x824) return true\n return false\n }\n if (cp === 0x828) return true\n if (cp < 0x840) return false\n if (cp < 0x859) return true\n if (cp < 0x860) return false\n if (cp < 0x86b) return true\n if (cp < 0x8a0) return false\n if (cp < 0x8b5) return true\n if (cp < 0x8b6) return false\n if (cp < 0x8be) return true\n return false\n }\n if (cp < 0x9b2) {\n if (cp < 0x972) {\n if (cp < 0x904) return false\n if (cp < 0x93a) return true\n if (cp === 0x93d) return true\n if (cp === 0x950) return true\n if (cp < 0x958) return false\n if (cp < 0x962) return true\n if (cp === 0x971) return true\n return false\n }\n if (cp < 0x981) return true\n if (cp < 0x985) return false\n if (cp < 0x98d) return true\n if (cp < 0x98f) return false\n if (cp < 0x991) return true\n if (cp < 0x993) return false\n if (cp < 0x9a9) return true\n if (cp < 0x9aa) return false\n if (cp < 0x9b1) return true\n return false\n }\n if (cp < 0x9df) {\n if (cp === 0x9b2) return true\n if (cp < 0x9b6) return false\n if (cp < 0x9ba) return true\n if (cp === 0x9bd) return true\n if (cp === 0x9ce) return true\n if (cp < 0x9dc) return false\n if (cp < 0x9de) return true\n return false\n }\n if (cp < 0x9e2) return true\n if (cp < 0x9f0) return false\n if (cp < 0x9f2) return true\n if (cp === 0x9fc) return true\n if (cp < 0xa05) return false\n if (cp < 0xa0b) return true\n if (cp < 0xa0f) return false\n if (cp < 0xa11) return true\n if (cp < 0xa13) return false\n if (cp < 0xa29) return true\n return false\n }\n if (cp < 0xc2a) {\n if (cp < 0xb2a) {\n if (cp < 0xaaa) {\n if (cp < 0xa5e) {\n if (cp < 0xa2a) return false\n if (cp < 0xa31) return true\n if (cp < 0xa32) return false\n if (cp < 0xa34) return true\n if (cp < 0xa35) return false\n if (cp < 0xa37) return true\n if (cp < 0xa38) return false\n if (cp < 0xa3a) return true\n if (cp < 0xa59) return false\n if (cp < 0xa5d) return true\n return false\n }\n if (cp === 0xa5e) return true\n if (cp < 0xa72) return false\n if (cp < 0xa75) return true\n if (cp < 0xa85) return false\n if (cp < 0xa8e) return true\n if (cp < 0xa8f) return false\n if (cp < 0xa92) return true\n if (cp < 0xa93) return false\n if (cp < 0xaa9) return true\n return false\n }\n if (cp < 0xae0) {\n if (cp < 0xaaa) return false\n if (cp < 0xab1) return true\n if (cp < 0xab2) return false\n if (cp < 0xab4) return true\n if (cp < 0xab5) return false\n if (cp < 0xaba) return true\n if (cp === 0xabd) return true\n if (cp === 0xad0) return true\n return false\n }\n if (cp < 0xae2) return true\n if (cp === 0xaf9) return true\n if (cp < 0xb05) return false\n if (cp < 0xb0d) return true\n if (cp < 0xb0f) return false\n if (cp < 0xb11) return true\n if (cp < 0xb13) return false\n if (cp < 0xb29) return true\n return false\n }\n if (cp < 0xb92) {\n if (cp < 0xb5f) {\n if (cp < 0xb2a) return false\n if (cp < 0xb31) return true\n if (cp < 0xb32) return false\n if (cp < 0xb34) return true\n if (cp < 0xb35) return false\n if (cp < 0xb3a) return true\n if (cp === 0xb3d) return true\n if (cp < 0xb5c) return false\n if (cp < 0xb5e) return true\n return false\n }\n if (cp < 0xb62) return true\n if (cp === 0xb71) return true\n if (cp === 0xb83) return true\n if (cp < 0xb85) return false\n if (cp < 0xb8b) return true\n if (cp < 0xb8e) return false\n if (cp < 0xb91) return true\n return false\n }\n if (cp < 0xba8) {\n if (cp < 0xb92) return false\n if (cp < 0xb96) return true\n if (cp < 0xb99) return false\n if (cp < 0xb9b) return true\n if (cp === 0xb9c) return true\n if (cp < 0xb9e) return false\n if (cp < 0xba0) return true\n if (cp < 0xba3) return false\n if (cp < 0xba5) return true\n return false\n }\n if (cp < 0xbab) return true\n if (cp < 0xbae) return false\n if (cp < 0xbba) return true\n if (cp === 0xbd0) return true\n if (cp < 0xc05) return false\n if (cp < 0xc0d) return true\n if (cp < 0xc0e) return false\n if (cp < 0xc11) return true\n if (cp < 0xc12) return false\n if (cp < 0xc29) return true\n return false\n }\n if (cp < 0xd5f) {\n if (cp < 0xcbd) {\n if (cp < 0xc85) {\n if (cp < 0xc2a) return false\n if (cp < 0xc3a) return true\n if (cp === 0xc3d) return true\n if (cp < 0xc58) return false\n if (cp < 0xc5b) return true\n if (cp < 0xc60) return false\n if (cp < 0xc62) return true\n if (cp === 0xc80) return true\n return false\n }\n if (cp < 0xc8d) return true\n if (cp < 0xc8e) return false\n if (cp < 0xc91) return true\n if (cp < 0xc92) return false\n if (cp < 0xca9) return true\n if (cp < 0xcaa) return false\n if (cp < 0xcb4) return true\n if (cp < 0xcb5) return false\n if (cp < 0xcba) return true\n return false\n }\n if (cp < 0xd0e) {\n if (cp === 0xcbd) return true\n if (cp === 0xcde) return true\n if (cp < 0xce0) return false\n if (cp < 0xce2) return true\n if (cp < 0xcf1) return false\n if (cp < 0xcf3) return true\n if (cp < 0xd05) return false\n if (cp < 0xd0d) return true\n return false\n }\n if (cp < 0xd11) return true\n if (cp < 0xd12) return false\n if (cp < 0xd3b) return true\n if (cp === 0xd3d) return true\n if (cp === 0xd4e) return true\n if (cp < 0xd54) return false\n if (cp < 0xd57) return true\n return false\n }\n if (cp < 0xe46) {\n if (cp < 0xdbd) {\n if (cp < 0xd5f) return false\n if (cp < 0xd62) return true\n if (cp < 0xd7a) return false\n if (cp < 0xd80) return true\n if (cp < 0xd85) return false\n if (cp < 0xd97) return true\n if (cp < 0xd9a) return false\n if (cp < 0xdb2) return true\n if (cp < 0xdb3) return false\n if (cp < 0xdbc) return true\n return false\n }\n if (cp === 0xdbd) return true\n if (cp < 0xdc0) return false\n if (cp < 0xdc7) return true\n if (cp < 0xe01) return false\n if (cp < 0xe31) return true\n if (cp < 0xe32) return false\n if (cp < 0xe34) return true\n if (cp < 0xe40) return false\n if (cp < 0xe46) return true\n return false\n }\n if (cp < 0xe8d) {\n if (cp === 0xe46) return true\n if (cp < 0xe81) return false\n if (cp < 0xe83) return true\n if (cp === 0xe84) return true\n if (cp < 0xe87) return false\n if (cp < 0xe89) return true\n if (cp === 0xe8a) return true\n return false\n }\n if (cp === 0xe8d) return true\n if (cp < 0xe94) return false\n if (cp < 0xe98) return true\n if (cp < 0xe99) return false\n if (cp < 0xea0) return true\n if (cp < 0xea1) return false\n if (cp < 0xea4) return true\n if (cp === 0xea5) return true\n if (cp === 0xea7) return true\n return false\n }\n if (cp < 0x1c5a) {\n if (cp < 0x1380) {\n if (cp < 0x10a0) {\n if (cp < 0xf88) {\n if (cp < 0xec6) {\n if (cp < 0xeaa) return false\n if (cp < 0xeac) return true\n if (cp < 0xead) return false\n if (cp < 0xeb1) return true\n if (cp < 0xeb2) return false\n if (cp < 0xeb4) return true\n if (cp === 0xebd) return true\n if (cp < 0xec0) return false\n if (cp < 0xec5) return true\n return false\n }\n if (cp === 0xec6) return true\n if (cp < 0xedc) return false\n if (cp < 0xee0) return true\n if (cp === 0xf00) return true\n if (cp < 0xf40) return false\n if (cp < 0xf48) return true\n if (cp < 0xf49) return false\n if (cp < 0xf6d) return true\n return false\n }\n if (cp < 0x1061) {\n if (cp < 0xf88) return false\n if (cp < 0xf8d) return true\n if (cp < 0x1000) return false\n if (cp < 0x102b) return true\n if (cp === 0x103f) return true\n if (cp < 0x1050) return false\n if (cp < 0x1056) return true\n if (cp < 0x105a) return false\n if (cp < 0x105e) return true\n return false\n }\n if (cp === 0x1061) return true\n if (cp < 0x1065) return false\n if (cp < 0x1067) return true\n if (cp < 0x106e) return false\n if (cp < 0x1071) return true\n if (cp < 0x1075) return false\n if (cp < 0x1082) return true\n if (cp === 0x108e) return true\n return false\n }\n if (cp < 0x1260) {\n if (cp < 0x10fd) {\n if (cp < 0x10a0) return false\n if (cp < 0x10c6) return true\n if (cp === 0x10c7) return true\n if (cp === 0x10cd) return true\n if (cp < 0x10d0) return false\n if (cp < 0x10fb) return true\n if (cp === 0x10fc) return true\n return false\n }\n if (cp < 0x1249) return true\n if (cp < 0x124a) return false\n if (cp < 0x124e) return true\n if (cp < 0x1250) return false\n if (cp < 0x1257) return true\n if (cp === 0x1258) return true\n if (cp < 0x125a) return false\n if (cp < 0x125e) return true\n return false\n }\n if (cp < 0x12c0) {\n if (cp < 0x1260) return false\n if (cp < 0x1289) return true\n if (cp < 0x128a) return false\n if (cp < 0x128e) return true\n if (cp < 0x1290) return false\n if (cp < 0x12b1) return true\n if (cp < 0x12b2) return false\n if (cp < 0x12b6) return true\n if (cp < 0x12b8) return false\n if (cp < 0x12bf) return true\n return false\n }\n if (cp === 0x12c0) return true\n if (cp < 0x12c2) return false\n if (cp < 0x12c6) return true\n if (cp < 0x12c8) return false\n if (cp < 0x12d7) return true\n if (cp < 0x12d8) return false\n if (cp < 0x1311) return true\n if (cp < 0x1312) return false\n if (cp < 0x1316) return true\n if (cp < 0x1318) return false\n if (cp < 0x135b) return true\n return false\n }\n if (cp < 0x1844) {\n if (cp < 0x170e) {\n if (cp < 0x1681) {\n if (cp < 0x1380) return false\n if (cp < 0x1390) return true\n if (cp < 0x13a0) return false\n if (cp < 0x13f6) return true\n if (cp < 0x13f8) return false\n if (cp < 0x13fe) return true\n if (cp < 0x1401) return false\n if (cp < 0x166d) return true\n if (cp < 0x166f) return false\n if (cp < 0x1680) return true\n return false\n }\n if (cp < 0x169b) return true\n if (cp < 0x16a0) return false\n if (cp < 0x16eb) return true\n if (cp < 0x16ee) return false\n if (cp < 0x16f1) return true\n if (cp < 0x16f1) return false\n if (cp < 0x16f9) return true\n if (cp < 0x1700) return false\n if (cp < 0x170d) return true\n return false\n }\n if (cp < 0x1780) {\n if (cp < 0x170e) return false\n if (cp < 0x1712) return true\n if (cp < 0x1720) return false\n if (cp < 0x1732) return true\n if (cp < 0x1740) return false\n if (cp < 0x1752) return true\n if (cp < 0x1760) return false\n if (cp < 0x176d) return true\n if (cp < 0x176e) return false\n if (cp < 0x1771) return true\n return false\n }\n if (cp < 0x17b4) return true\n if (cp === 0x17d7) return true\n if (cp === 0x17dc) return true\n if (cp < 0x1820) return false\n if (cp < 0x1843) return true\n if (cp === 0x1843) return true\n return false\n }\n if (cp < 0x19b0) {\n if (cp < 0x18b0) {\n if (cp < 0x1844) return false\n if (cp < 0x1878) return true\n if (cp < 0x1880) return false\n if (cp < 0x1885) return true\n if (cp < 0x1885) return false\n if (cp < 0x1887) return true\n if (cp < 0x1887) return false\n if (cp < 0x18a9) return true\n if (cp === 0x18aa) return true\n return false\n }\n if (cp < 0x18f6) return true\n if (cp < 0x1900) return false\n if (cp < 0x191f) return true\n if (cp < 0x1950) return false\n if (cp < 0x196e) return true\n if (cp < 0x1970) return false\n if (cp < 0x1975) return true\n if (cp < 0x1980) return false\n if (cp < 0x19ac) return true\n return false\n }\n if (cp < 0x1b45) {\n if (cp < 0x19b0) return false\n if (cp < 0x19ca) return true\n if (cp < 0x1a00) return false\n if (cp < 0x1a17) return true\n if (cp < 0x1a20) return false\n if (cp < 0x1a55) return true\n if (cp === 0x1aa7) return true\n if (cp < 0x1b05) return false\n if (cp < 0x1b34) return true\n return false\n }\n if (cp < 0x1b4c) return true\n if (cp < 0x1b83) return false\n if (cp < 0x1ba1) return true\n if (cp < 0x1bae) return false\n if (cp < 0x1bb0) return true\n if (cp < 0x1bba) return false\n if (cp < 0x1be6) return true\n if (cp < 0x1c00) return false\n if (cp < 0x1c24) return true\n if (cp < 0x1c4d) return false\n if (cp < 0x1c50) return true\n return false\n }\n if (cp < 0x2126) {\n if (cp < 0x1f5f) {\n if (cp < 0x1d79) {\n if (cp < 0x1cf5) {\n if (cp < 0x1c5a) return false\n if (cp < 0x1c78) return true\n if (cp < 0x1c78) return false\n if (cp < 0x1c7e) return true\n if (cp < 0x1c80) return false\n if (cp < 0x1c89) return true\n if (cp < 0x1ce9) return false\n if (cp < 0x1ced) return true\n if (cp < 0x1cee) return false\n if (cp < 0x1cf2) return true\n return false\n }\n if (cp < 0x1cf7) return true\n if (cp < 0x1d00) return false\n if (cp < 0x1d2c) return true\n if (cp < 0x1d2c) return false\n if (cp < 0x1d6b) return true\n if (cp < 0x1d6b) return false\n if (cp < 0x1d78) return true\n if (cp === 0x1d78) return true\n return false\n }\n if (cp < 0x1f48) {\n if (cp < 0x1d79) return false\n if (cp < 0x1d9b) return true\n if (cp < 0x1d9b) return false\n if (cp < 0x1dc0) return true\n if (cp < 0x1e00) return false\n if (cp < 0x1f16) return true\n if (cp < 0x1f18) return false\n if (cp < 0x1f1e) return true\n if (cp < 0x1f20) return false\n if (cp < 0x1f46) return true\n return false\n }\n if (cp < 0x1f4e) return true\n if (cp < 0x1f50) return false\n if (cp < 0x1f58) return true\n if (cp === 0x1f59) return true\n if (cp === 0x1f5b) return true\n if (cp === 0x1f5d) return true\n return false\n }\n if (cp < 0x1ff6) {\n if (cp < 0x1fc6) {\n if (cp < 0x1f5f) return false\n if (cp < 0x1f7e) return true\n if (cp < 0x1f80) return false\n if (cp < 0x1fb5) return true\n if (cp < 0x1fb6) return false\n if (cp < 0x1fbd) return true\n if (cp === 0x1fbe) return true\n if (cp < 0x1fc2) return false\n if (cp < 0x1fc5) return true\n return false\n }\n if (cp < 0x1fcd) return true\n if (cp < 0x1fd0) return false\n if (cp < 0x1fd4) return true\n if (cp < 0x1fd6) return false\n if (cp < 0x1fdc) return true\n if (cp < 0x1fe0) return false\n if (cp < 0x1fed) return true\n if (cp < 0x1ff2) return false\n if (cp < 0x1ff5) return true\n return false\n }\n if (cp < 0x2107) {\n if (cp < 0x1ff6) return false\n if (cp < 0x1ffd) return true\n if (cp === 0x2071) return true\n if (cp === 0x207f) return true\n if (cp < 0x2090) return false\n if (cp < 0x209d) return true\n if (cp === 0x2102) return true\n return false\n }\n if (cp === 0x2107) return true\n if (cp < 0x210a) return false\n if (cp < 0x2114) return true\n if (cp === 0x2115) return true\n if (cp === 0x2118) return true\n if (cp < 0x2119) return false\n if (cp < 0x211e) return true\n if (cp === 0x2124) return true\n return false\n }\n if (cp < 0x2d00) {\n if (cp < 0x2160) {\n if (cp < 0x2135) {\n if (cp === 0x2126) return true\n if (cp === 0x2128) return true\n if (cp < 0x212a) return false\n if (cp < 0x212e) return true\n if (cp === 0x212e) return true\n if (cp < 0x212f) return false\n if (cp < 0x2135) return true\n return false\n }\n if (cp < 0x2139) return true\n if (cp === 0x2139) return true\n if (cp < 0x213c) return false\n if (cp < 0x2140) return true\n if (cp < 0x2145) return false\n if (cp < 0x214a) return true\n if (cp === 0x214e) return true\n return false\n }\n if (cp < 0x2c60) {\n if (cp < 0x2160) return false\n if (cp < 0x2183) return true\n if (cp < 0x2183) return false\n if (cp < 0x2185) return true\n if (cp < 0x2185) return false\n if (cp < 0x2189) return true\n if (cp < 0x2c00) return false\n if (cp < 0x2c2f) return true\n if (cp < 0x2c30) return false\n if (cp < 0x2c5f) return true\n return false\n }\n if (cp < 0x2c7c) return true\n if (cp < 0x2c7c) return false\n if (cp < 0x2c7e) return true\n if (cp < 0x2c7e) return false\n if (cp < 0x2ce5) return true\n if (cp < 0x2ceb) return false\n if (cp < 0x2cef) return true\n if (cp < 0x2cf2) return false\n if (cp < 0x2cf4) return true\n return false\n }\n if (cp < 0x2dc0) {\n if (cp < 0x2d80) {\n if (cp < 0x2d00) return false\n if (cp < 0x2d26) return true\n if (cp === 0x2d27) return true\n if (cp === 0x2d2d) return true\n if (cp < 0x2d30) return false\n if (cp < 0x2d68) return true\n if (cp === 0x2d6f) return true\n return false\n }\n if (cp < 0x2d97) return true\n if (cp < 0x2da0) return false\n if (cp < 0x2da7) return true\n if (cp < 0x2da8) return false\n if (cp < 0x2daf) return true\n if (cp < 0x2db0) return false\n if (cp < 0x2db7) return true\n if (cp < 0x2db8) return false\n if (cp < 0x2dbf) return true\n return false\n }\n if (cp < 0x3006) {\n if (cp < 0x2dc0) return false\n if (cp < 0x2dc7) return true\n if (cp < 0x2dc8) return false\n if (cp < 0x2dcf) return true\n if (cp < 0x2dd0) return false\n if (cp < 0x2dd7) return true\n if (cp < 0x2dd8) return false\n if (cp < 0x2ddf) return true\n if (cp === 0x3005) return true\n return false\n }\n if (cp === 0x3006) return true\n if (cp === 0x3007) return true\n if (cp < 0x3021) return false\n if (cp < 0x302a) return true\n if (cp < 0x3031) return false\n if (cp < 0x3036) return true\n if (cp < 0x3038) return false\n if (cp < 0x303b) return true\n if (cp === 0x303b) return true\n return false\n }\n if (cp < 0x10a10) {\n if (cp < 0xab28) {\n if (cp < 0xa7fa) {\n if (cp < 0xa60c) {\n if (cp < 0x31a0) {\n if (cp < 0x30a1) {\n if (cp === 0x303c) return true\n if (cp < 0x3041) return false\n if (cp < 0x3097) return true\n if (cp < 0x309b) return false\n if (cp < 0x309d) return true\n if (cp < 0x309d) return false\n if (cp < 0x309f) return true\n if (cp === 0x309f) return true\n return false\n }\n if (cp < 0x30fb) return true\n if (cp < 0x30fc) return false\n if (cp < 0x30ff) return true\n if (cp === 0x30ff) return true\n if (cp < 0x3105) return false\n if (cp < 0x312f) return true\n if (cp < 0x3131) return false\n if (cp < 0x318f) return true\n return false\n }\n if (cp < 0xa015) {\n if (cp < 0x31a0) return false\n if (cp < 0x31bb) return true\n if (cp < 0x31f0) return false\n if (cp < 0x3200) return true\n if (cp < 0x3400) return false\n if (cp < 0x4db6) return true\n if (cp < 0x4e00) return false\n if (cp < 0x9feb) return true\n if (cp < 0xa000) return false\n if (cp < 0xa015) return true\n return false\n }\n if (cp === 0xa015) return true\n if (cp < 0xa016) return false\n if (cp < 0xa48d) return true\n if (cp < 0xa4d0) return false\n if (cp < 0xa4f8) return true\n if (cp < 0xa4f8) return false\n if (cp < 0xa4fe) return true\n if (cp < 0xa500) return false\n if (cp < 0xa60c) return true\n return false\n }\n if (cp < 0xa717) {\n if (cp < 0xa67f) {\n if (cp === 0xa60c) return true\n if (cp < 0xa610) return false\n if (cp < 0xa620) return true\n if (cp < 0xa62a) return false\n if (cp < 0xa62c) return true\n if (cp < 0xa640) return false\n if (cp < 0xa66e) return true\n if (cp === 0xa66e) return true\n return false\n }\n if (cp === 0xa67f) return true\n if (cp < 0xa680) return false\n if (cp < 0xa69c) return true\n if (cp < 0xa69c) return false\n if (cp < 0xa69e) return true\n if (cp < 0xa6a0) return false\n if (cp < 0xa6e6) return true\n if (cp < 0xa6e6) return false\n if (cp < 0xa6f0) return true\n return false\n }\n if (cp < 0xa78b) {\n if (cp < 0xa717) return false\n if (cp < 0xa720) return true\n if (cp < 0xa722) return false\n if (cp < 0xa770) return true\n if (cp === 0xa770) return true\n if (cp < 0xa771) return false\n if (cp < 0xa788) return true\n if (cp === 0xa788) return true\n return false\n }\n if (cp < 0xa78f) return true\n if (cp === 0xa78f) return true\n if (cp < 0xa790) return false\n if (cp < 0xa7af) return true\n if (cp < 0xa7b0) return false\n if (cp < 0xa7b8) return true\n if (cp === 0xa7f7) return true\n if (cp < 0xa7f8) return false\n if (cp < 0xa7fa) return true\n return false\n }\n if (cp < 0xaa40) {\n if (cp < 0xa90a) {\n if (cp < 0xa840) {\n if (cp === 0xa7fa) return true\n if (cp < 0xa7fb) return false\n if (cp < 0xa802) return true\n if (cp < 0xa803) return false\n if (cp < 0xa806) return true\n if (cp < 0xa807) return false\n if (cp < 0xa80b) return true\n if (cp < 0xa80c) return false\n if (cp < 0xa823) return true\n return false\n }\n if (cp < 0xa874) return true\n if (cp < 0xa882) return false\n if (cp < 0xa8b4) return true\n if (cp < 0xa8f2) return false\n if (cp < 0xa8f8) return true\n if (cp === 0xa8fb) return true\n if (cp === 0xa8fd) return true\n return false\n }\n if (cp < 0xa9e0) {\n if (cp < 0xa90a) return false\n if (cp < 0xa926) return true\n if (cp < 0xa930) return false\n if (cp < 0xa947) return true\n if (cp < 0xa960) return false\n if (cp < 0xa97d) return true\n if (cp < 0xa984) return false\n if (cp < 0xa9b3) return true\n if (cp === 0xa9cf) return true\n return false\n }\n if (cp < 0xa9e5) return true\n if (cp === 0xa9e6) return true\n if (cp < 0xa9e7) return false\n if (cp < 0xa9f0) return true\n if (cp < 0xa9fa) return false\n if (cp < 0xa9ff) return true\n if (cp < 0xaa00) return false\n if (cp < 0xaa29) return true\n return false\n }\n if (cp < 0xaac0) {\n if (cp < 0xaa7a) {\n if (cp < 0xaa40) return false\n if (cp < 0xaa43) return true\n if (cp < 0xaa44) return false\n if (cp < 0xaa4c) return true\n if (cp < 0xaa60) return false\n if (cp < 0xaa70) return true\n if (cp === 0xaa70) return true\n if (cp < 0xaa71) return false\n if (cp < 0xaa77) return true\n return false\n }\n if (cp === 0xaa7a) return true\n if (cp < 0xaa7e) return false\n if (cp < 0xaab0) return true\n if (cp === 0xaab1) return true\n if (cp < 0xaab5) return false\n if (cp < 0xaab7) return true\n if (cp < 0xaab9) return false\n if (cp < 0xaabe) return true\n return false\n }\n if (cp < 0xaaf2) {\n if (cp === 0xaac0) return true\n if (cp === 0xaac2) return true\n if (cp < 0xaadb) return false\n if (cp < 0xaadd) return true\n if (cp === 0xaadd) return true\n if (cp < 0xaae0) return false\n if (cp < 0xaaeb) return true\n return false\n }\n if (cp === 0xaaf2) return true\n if (cp < 0xaaf3) return false\n if (cp < 0xaaf5) return true\n if (cp < 0xab01) return false\n if (cp < 0xab07) return true\n if (cp < 0xab09) return false\n if (cp < 0xab0f) return true\n if (cp < 0xab11) return false\n if (cp < 0xab17) return true\n if (cp < 0xab20) return false\n if (cp < 0xab27) return true\n return false\n }\n if (cp < 0x1003c) {\n if (cp < 0xfb46) {\n if (cp < 0xfa70) {\n if (cp < 0xabc0) {\n if (cp < 0xab28) return false\n if (cp < 0xab2f) return true\n if (cp < 0xab30) return false\n if (cp < 0xab5b) return true\n if (cp < 0xab5c) return false\n if (cp < 0xab60) return true\n if (cp < 0xab60) return false\n if (cp < 0xab66) return true\n if (cp < 0xab70) return false\n if (cp < 0xabc0) return true\n return false\n }\n if (cp < 0xabe3) return true\n if (cp < 0xac00) return false\n if (cp < 0xd7a4) return true\n if (cp < 0xd7b0) return false\n if (cp < 0xd7c7) return true\n if (cp < 0xd7cb) return false\n if (cp < 0xd7fc) return true\n if (cp < 0xf900) return false\n if (cp < 0xfa6e) return true\n return false\n }\n if (cp < 0xfb2a) {\n if (cp < 0xfa70) return false\n if (cp < 0xfada) return true\n if (cp < 0xfb00) return false\n if (cp < 0xfb07) return true\n if (cp < 0xfb13) return false\n if (cp < 0xfb18) return true\n if (cp === 0xfb1d) return true\n if (cp < 0xfb1f) return false\n if (cp < 0xfb29) return true\n return false\n }\n if (cp < 0xfb37) return true\n if (cp < 0xfb38) return false\n if (cp < 0xfb3d) return true\n if (cp === 0xfb3e) return true\n if (cp < 0xfb40) return false\n if (cp < 0xfb42) return true\n if (cp < 0xfb43) return false\n if (cp < 0xfb45) return true\n return false\n }\n if (cp < 0xff70) {\n if (cp < 0xfe70) {\n if (cp < 0xfb46) return false\n if (cp < 0xfbb2) return true\n if (cp < 0xfbd3) return false\n if (cp < 0xfd3e) return true\n if (cp < 0xfd50) return false\n if (cp < 0xfd90) return true\n if (cp < 0xfd92) return false\n if (cp < 0xfdc8) return true\n if (cp < 0xfdf0) return false\n if (cp < 0xfdfc) return true\n return false\n }\n if (cp < 0xfe75) return true\n if (cp < 0xfe76) return false\n if (cp < 0xfefd) return true\n if (cp < 0xff21) return false\n if (cp < 0xff3b) return true\n if (cp < 0xff41) return false\n if (cp < 0xff5b) return true\n if (cp < 0xff66) return false\n if (cp < 0xff70) return true\n return false\n }\n if (cp < 0xffca) {\n if (cp === 0xff70) return true\n if (cp < 0xff71) return false\n if (cp < 0xff9e) return true\n if (cp < 0xff9e) return false\n if (cp < 0xffa0) return true\n if (cp < 0xffa0) return false\n if (cp < 0xffbf) return true\n if (cp < 0xffc2) return false\n if (cp < 0xffc8) return true\n return false\n }\n if (cp < 0xffd0) return true\n if (cp < 0xffd2) return false\n if (cp < 0xffd8) return true\n if (cp < 0xffda) return false\n if (cp < 0xffdd) return true\n if (cp < 0x10000) return false\n if (cp < 0x1000c) return true\n if (cp < 0x1000d) return false\n if (cp < 0x10027) return true\n if (cp < 0x10028) return false\n if (cp < 0x1003b) return true\n return false\n }\n if (cp < 0x104d8) {\n if (cp < 0x10342) {\n if (cp < 0x10280) {\n if (cp < 0x1003c) return false\n if (cp < 0x1003e) return true\n if (cp < 0x1003f) return false\n if (cp < 0x1004e) return true\n if (cp < 0x10050) return false\n if (cp < 0x1005e) return true\n if (cp < 0x10080) return false\n if (cp < 0x100fb) return true\n if (cp < 0x10140) return false\n if (cp < 0x10175) return true\n return false\n }\n if (cp < 0x1029d) return true\n if (cp < 0x102a0) return false\n if (cp < 0x102d1) return true\n if (cp < 0x10300) return false\n if (cp < 0x10320) return true\n if (cp < 0x1032d) return false\n if (cp < 0x10341) return true\n if (cp === 0x10341) return true\n return false\n }\n if (cp < 0x103c8) {\n if (cp < 0x10342) return false\n if (cp < 0x1034a) return true\n if (cp === 0x1034a) return true\n if (cp < 0x10350) return false\n if (cp < 0x10376) return true\n if (cp < 0x10380) return false\n if (cp < 0x1039e) return true\n if (cp < 0x103a0) return false\n if (cp < 0x103c4) return true\n return false\n }\n if (cp < 0x103d0) return true\n if (cp < 0x103d1) return false\n if (cp < 0x103d6) return true\n if (cp < 0x10400) return false\n if (cp < 0x10450) return true\n if (cp < 0x10450) return false\n if (cp < 0x1049e) return true\n if (cp < 0x104b0) return false\n if (cp < 0x104d4) return true\n return false\n }\n if (cp < 0x1083c) {\n if (cp < 0x10760) {\n if (cp < 0x104d8) return false\n if (cp < 0x104fc) return true\n if (cp < 0x10500) return false\n if (cp < 0x10528) return true\n if (cp < 0x10530) return false\n if (cp < 0x10564) return true\n if (cp < 0x10600) return false\n if (cp < 0x10737) return true\n if (cp < 0x10740) return false\n if (cp < 0x10756) return true\n return false\n }\n if (cp < 0x10768) return true\n if (cp < 0x10800) return false\n if (cp < 0x10806) return true\n if (cp === 0x10808) return true\n if (cp < 0x1080a) return false\n if (cp < 0x10836) return true\n if (cp < 0x10837) return false\n if (cp < 0x10839) return true\n return false\n }\n if (cp < 0x108f4) {\n if (cp === 0x1083c) return true\n if (cp < 0x1083f) return false\n if (cp < 0x10856) return true\n if (cp < 0x10860) return false\n if (cp < 0x10877) return true\n if (cp < 0x10880) return false\n if (cp < 0x1089f) return true\n if (cp < 0x108e0) return false\n if (cp < 0x108f3) return true\n return false\n }\n if (cp < 0x108f6) return true\n if (cp < 0x10900) return false\n if (cp < 0x10916) return true\n if (cp < 0x10920) return false\n if (cp < 0x1093a) return true\n if (cp < 0x10980) return false\n if (cp < 0x109b8) return true\n if (cp < 0x109be) return false\n if (cp < 0x109c0) return true\n if (cp === 0x10a00) return true\n return false\n }\n if (cp < 0x16f50) {\n if (cp < 0x11400) {\n if (cp < 0x11183) {\n if (cp < 0x10b80) {\n if (cp < 0x10ac0) {\n if (cp < 0x10a10) return false\n if (cp < 0x10a14) return true\n if (cp < 0x10a15) return false\n if (cp < 0x10a18) return true\n if (cp < 0x10a19) return false\n if (cp < 0x10a34) return true\n if (cp < 0x10a60) return false\n if (cp < 0x10a7d) return true\n if (cp < 0x10a80) return false\n if (cp < 0x10a9d) return true\n return false\n }\n if (cp < 0x10ac8) return true\n if (cp < 0x10ac9) return false\n if (cp < 0x10ae5) return true\n if (cp < 0x10b00) return false\n if (cp < 0x10b36) return true\n if (cp < 0x10b40) return false\n if (cp < 0x10b56) return true\n if (cp < 0x10b60) return false\n if (cp < 0x10b73) return true\n return false\n }\n if (cp < 0x11083) {\n if (cp < 0x10b80) return false\n if (cp < 0x10b92) return true\n if (cp < 0x10c00) return false\n if (cp < 0x10c49) return true\n if (cp < 0x10c80) return false\n if (cp < 0x10cb3) return true\n if (cp < 0x10cc0) return false\n if (cp < 0x10cf3) return true\n if (cp < 0x11003) return false\n if (cp < 0x11038) return true\n return false\n }\n if (cp < 0x110b0) return true\n if (cp < 0x110d0) return false\n if (cp < 0x110e9) return true\n if (cp < 0x11103) return false\n if (cp < 0x11127) return true\n if (cp < 0x11150) return false\n if (cp < 0x11173) return true\n if (cp === 0x11176) return true\n return false\n }\n if (cp < 0x1129f) {\n if (cp < 0x11213) {\n if (cp < 0x11183) return false\n if (cp < 0x111b3) return true\n if (cp < 0x111c1) return false\n if (cp < 0x111c5) return true\n if (cp === 0x111da) return true\n if (cp === 0x111dc) return true\n if (cp < 0x11200) return false\n if (cp < 0x11212) return true\n return false\n }\n if (cp < 0x1122c) return true\n if (cp < 0x11280) return false\n if (cp < 0x11287) return true\n if (cp === 0x11288) return true\n if (cp < 0x1128a) return false\n if (cp < 0x1128e) return true\n if (cp < 0x1128f) return false\n if (cp < 0x1129e) return true\n return false\n }\n if (cp < 0x1132a) {\n if (cp < 0x1129f) return false\n if (cp < 0x112a9) return true\n if (cp < 0x112b0) return false\n if (cp < 0x112df) return true\n if (cp < 0x11305) return false\n if (cp < 0x1130d) return true\n if (cp < 0x1130f) return false\n if (cp < 0x11311) return true\n if (cp < 0x11313) return false\n if (cp < 0x11329) return true\n return false\n }\n if (cp < 0x11331) return true\n if (cp < 0x11332) return false\n if (cp < 0x11334) return true\n if (cp < 0x11335) return false\n if (cp < 0x1133a) return true\n if (cp === 0x1133d) return true\n if (cp === 0x11350) return true\n if (cp < 0x1135d) return false\n if (cp < 0x11362) return true\n return false\n }\n if (cp < 0x11c00) {\n if (cp < 0x11700) {\n if (cp < 0x11580) {\n if (cp < 0x11400) return false\n if (cp < 0x11435) return true\n if (cp < 0x11447) return false\n if (cp < 0x1144b) return true\n if (cp < 0x11480) return false\n if (cp < 0x114b0) return true\n if (cp < 0x114c4) return false\n if (cp < 0x114c6) return true\n if (cp === 0x114c7) return true\n return false\n }\n if (cp < 0x115af) return true\n if (cp < 0x115d8) return false\n if (cp < 0x115dc) return true\n if (cp < 0x11600) return false\n if (cp < 0x11630) return true\n if (cp === 0x11644) return true\n if (cp < 0x11680) return false\n if (cp < 0x116ab) return true\n return false\n }\n if (cp < 0x11a3a) {\n if (cp < 0x11700) return false\n if (cp < 0x1171a) return true\n if (cp < 0x118a0) return false\n if (cp < 0x118e0) return true\n if (cp === 0x118ff) return true\n if (cp === 0x11a00) return true\n if (cp < 0x11a0b) return false\n if (cp < 0x11a33) return true\n return false\n }\n if (cp === 0x11a3a) return true\n if (cp === 0x11a50) return true\n if (cp < 0x11a5c) return false\n if (cp < 0x11a84) return true\n if (cp < 0x11a86) return false\n if (cp < 0x11a8a) return true\n if (cp < 0x11ac0) return false\n if (cp < 0x11af9) return true\n return false\n }\n if (cp < 0x12480) {\n if (cp < 0x11d08) {\n if (cp < 0x11c00) return false\n if (cp < 0x11c09) return true\n if (cp < 0x11c0a) return false\n if (cp < 0x11c2f) return true\n if (cp === 0x11c40) return true\n if (cp < 0x11c72) return false\n if (cp < 0x11c90) return true\n if (cp < 0x11d00) return false\n if (cp < 0x11d07) return true\n return false\n }\n if (cp < 0x11d0a) return true\n if (cp < 0x11d0b) return false\n if (cp < 0x11d31) return true\n if (cp === 0x11d46) return true\n if (cp < 0x12000) return false\n if (cp < 0x1239a) return true\n if (cp < 0x12400) return false\n if (cp < 0x1246f) return true\n return false\n }\n if (cp < 0x16ad0) {\n if (cp < 0x12480) return false\n if (cp < 0x12544) return true\n if (cp < 0x13000) return false\n if (cp < 0x1342f) return true\n if (cp < 0x14400) return false\n if (cp < 0x14647) return true\n if (cp < 0x16800) return false\n if (cp < 0x16a39) return true\n if (cp < 0x16a40) return false\n if (cp < 0x16a5f) return true\n return false\n }\n if (cp < 0x16aee) return true\n if (cp < 0x16b00) return false\n if (cp < 0x16b30) return true\n if (cp < 0x16b40) return false\n if (cp < 0x16b44) return true\n if (cp < 0x16b63) return false\n if (cp < 0x16b78) return true\n if (cp < 0x16b7d) return false\n if (cp < 0x16b90) return true\n if (cp < 0x16f00) return false\n if (cp < 0x16f45) return true\n return false\n }\n if (cp < 0x1e800) {\n if (cp < 0x1d4c5) {\n if (cp < 0x1bc90) {\n if (cp < 0x1b000) {\n if (cp === 0x16f50) return true\n if (cp < 0x16f93) return false\n if (cp < 0x16fa0) return true\n if (cp < 0x16fe0) return false\n if (cp < 0x16fe2) return true\n if (cp < 0x17000) return false\n if (cp < 0x187ed) return true\n if (cp < 0x18800) return false\n if (cp < 0x18af3) return true\n return false\n }\n if (cp < 0x1b11f) return true\n if (cp < 0x1b170) return false\n if (cp < 0x1b2fc) return true\n if (cp < 0x1bc00) return false\n if (cp < 0x1bc6b) return true\n if (cp < 0x1bc70) return false\n if (cp < 0x1bc7d) return true\n if (cp < 0x1bc80) return false\n if (cp < 0x1bc89) return true\n return false\n }\n if (cp < 0x1d4a5) {\n if (cp < 0x1bc90) return false\n if (cp < 0x1bc9a) return true\n if (cp < 0x1d400) return false\n if (cp < 0x1d455) return true\n if (cp < 0x1d456) return false\n if (cp < 0x1d49d) return true\n if (cp < 0x1d49e) return false\n if (cp < 0x1d4a0) return true\n if (cp === 0x1d4a2) return true\n return false\n }\n if (cp < 0x1d4a7) return true\n if (cp < 0x1d4a9) return false\n if (cp < 0x1d4ad) return true\n if (cp < 0x1d4ae) return false\n if (cp < 0x1d4ba) return true\n if (cp === 0x1d4bb) return true\n if (cp < 0x1d4bd) return false\n if (cp < 0x1d4c4) return true\n return false\n }\n if (cp < 0x1d6a8) {\n if (cp < 0x1d53b) {\n if (cp < 0x1d4c5) return false\n if (cp < 0x1d506) return true\n if (cp < 0x1d507) return false\n if (cp < 0x1d50b) return true\n if (cp < 0x1d50d) return false\n if (cp < 0x1d515) return true\n if (cp < 0x1d516) return false\n if (cp < 0x1d51d) return true\n if (cp < 0x1d51e) return false\n if (cp < 0x1d53a) return true\n return false\n }\n if (cp < 0x1d53f) return true\n if (cp < 0x1d540) return false\n if (cp < 0x1d545) return true\n if (cp === 0x1d546) return true\n if (cp < 0x1d54a) return false\n if (cp < 0x1d551) return true\n if (cp < 0x1d552) return false\n if (cp < 0x1d6a6) return true\n return false\n }\n if (cp < 0x1d736) {\n if (cp < 0x1d6a8) return false\n if (cp < 0x1d6c1) return true\n if (cp < 0x1d6c2) return false\n if (cp < 0x1d6db) return true\n if (cp < 0x1d6dc) return false\n if (cp < 0x1d6fb) return true\n if (cp < 0x1d6fc) return false\n if (cp < 0x1d715) return true\n if (cp < 0x1d716) return false\n if (cp < 0x1d735) return true\n return false\n }\n if (cp < 0x1d74f) return true\n if (cp < 0x1d750) return false\n if (cp < 0x1d76f) return true\n if (cp < 0x1d770) return false\n if (cp < 0x1d789) return true\n if (cp < 0x1d78a) return false\n if (cp < 0x1d7a9) return true\n if (cp < 0x1d7aa) return false\n if (cp < 0x1d7c3) return true\n if (cp < 0x1d7c4) return false\n if (cp < 0x1d7cc) return true\n return false\n }\n if (cp < 0x1ee5b) {\n if (cp < 0x1ee3b) {\n if (cp < 0x1ee24) {\n if (cp < 0x1e800) return false\n if (cp < 0x1e8c5) return true\n if (cp < 0x1e900) return false\n if (cp < 0x1e944) return true\n if (cp < 0x1ee00) return false\n if (cp < 0x1ee04) return true\n if (cp < 0x1ee05) return false\n if (cp < 0x1ee20) return true\n if (cp < 0x1ee21) return false\n if (cp < 0x1ee23) return true\n return false\n }\n if (cp === 0x1ee24) return true\n if (cp === 0x1ee27) return true\n if (cp < 0x1ee29) return false\n if (cp < 0x1ee33) return true\n if (cp < 0x1ee34) return false\n if (cp < 0x1ee38) return true\n if (cp === 0x1ee39) return true\n return false\n }\n if (cp < 0x1ee4d) {\n if (cp === 0x1ee3b) return true\n if (cp === 0x1ee42) return true\n if (cp === 0x1ee47) return true\n if (cp === 0x1ee49) return true\n if (cp === 0x1ee4b) return true\n return false\n }\n if (cp < 0x1ee50) return true\n if (cp < 0x1ee51) return false\n if (cp < 0x1ee53) return true\n if (cp === 0x1ee54) return true\n if (cp === 0x1ee57) return true\n if (cp === 0x1ee59) return true\n return false\n }\n if (cp < 0x1ee80) {\n if (cp < 0x1ee67) {\n if (cp === 0x1ee5b) return true\n if (cp === 0x1ee5d) return true\n if (cp === 0x1ee5f) return true\n if (cp < 0x1ee61) return false\n if (cp < 0x1ee63) return true\n if (cp === 0x1ee64) return true\n return false\n }\n if (cp < 0x1ee6b) return true\n if (cp < 0x1ee6c) return false\n if (cp < 0x1ee73) return true\n if (cp < 0x1ee74) return false\n if (cp < 0x1ee78) return true\n if (cp < 0x1ee79) return false\n if (cp < 0x1ee7d) return true\n if (cp === 0x1ee7e) return true\n return false\n }\n if (cp < 0x20000) {\n if (cp < 0x1ee80) return false\n if (cp < 0x1ee8a) return true\n if (cp < 0x1ee8b) return false\n if (cp < 0x1ee9c) return true\n if (cp < 0x1eea1) return false\n if (cp < 0x1eea4) return true\n if (cp < 0x1eea5) return false\n if (cp < 0x1eeaa) return true\n if (cp < 0x1eeab) return false\n if (cp < 0x1eebc) return true\n return false\n }\n if (cp < 0x2a6d7) return true\n if (cp < 0x2a700) return false\n if (cp < 0x2b735) return true\n if (cp < 0x2b740) return false\n if (cp < 0x2b81e) return true\n if (cp < 0x2b820) return false\n if (cp < 0x2cea2) return true\n if (cp < 0x2ceb0) return false\n if (cp < 0x2ebe1) return true\n if (cp < 0x2f800) return false\n if (cp < 0x2fa1e) return true\n return false\n}\n\nfunction isLargeIdContinue(cp: number): boolean {\n if (cp < 0x1bf2) {\n if (cp < 0xd62) {\n if (cp < 0xa83) {\n if (cp < 0x93b) {\n if (cp < 0x6ea) {\n if (cp < 0x5c7) {\n if (cp === 0xb7) return true\n if (cp < 0x300) return false\n if (cp < 0x370) return true\n if (cp === 0x387) return true\n if (cp < 0x483) return false\n if (cp < 0x488) return true\n if (cp < 0x591) return false\n if (cp < 0x5be) return true\n if (cp === 0x5bf) return true\n if (cp < 0x5c1) return false\n if (cp < 0x5c3) return true\n if (cp < 0x5c4) return false\n if (cp < 0x5c6) return true\n return false\n }\n if (cp === 0x5c7) return true\n if (cp < 0x610) return false\n if (cp < 0x61b) return true\n if (cp < 0x64b) return false\n if (cp < 0x660) return true\n if (cp < 0x660) return false\n if (cp < 0x66a) return true\n if (cp === 0x670) return true\n if (cp < 0x6d6) return false\n if (cp < 0x6dd) return true\n if (cp < 0x6df) return false\n if (cp < 0x6e5) return true\n if (cp < 0x6e7) return false\n if (cp < 0x6e9) return true\n return false\n }\n if (cp < 0x81b) {\n if (cp < 0x6ea) return false\n if (cp < 0x6ee) return true\n if (cp < 0x6f0) return false\n if (cp < 0x6fa) return true\n if (cp === 0x711) return true\n if (cp < 0x730) return false\n if (cp < 0x74b) return true\n if (cp < 0x7a6) return false\n if (cp < 0x7b1) return true\n if (cp < 0x7c0) return false\n if (cp < 0x7ca) return true\n if (cp < 0x7eb) return false\n if (cp < 0x7f4) return true\n if (cp < 0x816) return false\n if (cp < 0x81a) return true\n return false\n }\n if (cp < 0x824) return true\n if (cp < 0x825) return false\n if (cp < 0x828) return true\n if (cp < 0x829) return false\n if (cp < 0x82e) return true\n if (cp < 0x859) return false\n if (cp < 0x85c) return true\n if (cp < 0x8d4) return false\n if (cp < 0x8e2) return true\n if (cp < 0x8e3) return false\n if (cp < 0x903) return true\n if (cp === 0x903) return true\n if (cp === 0x93a) return true\n return false\n }\n if (cp < 0x9cb) {\n if (cp < 0x962) {\n if (cp === 0x93b) return true\n if (cp === 0x93c) return true\n if (cp < 0x93e) return false\n if (cp < 0x941) return true\n if (cp < 0x941) return false\n if (cp < 0x949) return true\n if (cp < 0x949) return false\n if (cp < 0x94d) return true\n if (cp === 0x94d) return true\n if (cp < 0x94e) return false\n if (cp < 0x950) return true\n if (cp < 0x951) return false\n if (cp < 0x958) return true\n return false\n }\n if (cp < 0x964) return true\n if (cp < 0x966) return false\n if (cp < 0x970) return true\n if (cp === 0x981) return true\n if (cp < 0x982) return false\n if (cp < 0x984) return true\n if (cp === 0x9bc) return true\n if (cp < 0x9be) return false\n if (cp < 0x9c1) return true\n if (cp < 0x9c1) return false\n if (cp < 0x9c5) return true\n if (cp < 0x9c7) return false\n if (cp < 0x9c9) return true\n return false\n }\n if (cp < 0xa3e) {\n if (cp < 0x9cb) return false\n if (cp < 0x9cd) return true\n if (cp === 0x9cd) return true\n if (cp === 0x9d7) return true\n if (cp < 0x9e2) return false\n if (cp < 0x9e4) return true\n if (cp < 0x9e6) return false\n if (cp < 0x9f0) return true\n if (cp < 0xa01) return false\n if (cp < 0xa03) return true\n if (cp === 0xa03) return true\n if (cp === 0xa3c) return true\n return false\n }\n if (cp < 0xa41) return true\n if (cp < 0xa41) return false\n if (cp < 0xa43) return true\n if (cp < 0xa47) return false\n if (cp < 0xa49) return true\n if (cp < 0xa4b) return false\n if (cp < 0xa4e) return true\n if (cp === 0xa51) return true\n if (cp < 0xa66) return false\n if (cp < 0xa70) return true\n if (cp < 0xa70) return false\n if (cp < 0xa72) return true\n if (cp === 0xa75) return true\n if (cp < 0xa81) return false\n if (cp < 0xa83) return true\n return false\n }\n if (cp < 0xbd7) {\n if (cp < 0xb40) {\n if (cp < 0xae2) {\n if (cp === 0xa83) return true\n if (cp === 0xabc) return true\n if (cp < 0xabe) return false\n if (cp < 0xac1) return true\n if (cp < 0xac1) return false\n if (cp < 0xac6) return true\n if (cp < 0xac7) return false\n if (cp < 0xac9) return true\n if (cp === 0xac9) return true\n if (cp < 0xacb) return false\n if (cp < 0xacd) return true\n if (cp === 0xacd) return true\n return false\n }\n if (cp < 0xae4) return true\n if (cp < 0xae6) return false\n if (cp < 0xaf0) return true\n if (cp < 0xafa) return false\n if (cp < 0xb00) return true\n if (cp === 0xb01) return true\n if (cp < 0xb02) return false\n if (cp < 0xb04) return true\n if (cp === 0xb3c) return true\n if (cp === 0xb3e) return true\n if (cp === 0xb3f) return true\n return false\n }\n if (cp < 0xb66) {\n if (cp === 0xb40) return true\n if (cp < 0xb41) return false\n if (cp < 0xb45) return true\n if (cp < 0xb47) return false\n if (cp < 0xb49) return true\n if (cp < 0xb4b) return false\n if (cp < 0xb4d) return true\n if (cp === 0xb4d) return true\n if (cp === 0xb56) return true\n if (cp === 0xb57) return true\n if (cp < 0xb62) return false\n if (cp < 0xb64) return true\n return false\n }\n if (cp < 0xb70) return true\n if (cp === 0xb82) return true\n if (cp < 0xbbe) return false\n if (cp < 0xbc0) return true\n if (cp === 0xbc0) return true\n if (cp < 0xbc1) return false\n if (cp < 0xbc3) return true\n if (cp < 0xbc6) return false\n if (cp < 0xbc9) return true\n if (cp < 0xbca) return false\n if (cp < 0xbcd) return true\n if (cp === 0xbcd) return true\n return false\n }\n if (cp < 0xcc0) {\n if (cp < 0xc55) {\n if (cp === 0xbd7) return true\n if (cp < 0xbe6) return false\n if (cp < 0xbf0) return true\n if (cp === 0xc00) return true\n if (cp < 0xc01) return false\n if (cp < 0xc04) return true\n if (cp < 0xc3e) return false\n if (cp < 0xc41) return true\n if (cp < 0xc41) return false\n if (cp < 0xc45) return true\n if (cp < 0xc46) return false\n if (cp < 0xc49) return true\n if (cp < 0xc4a) return false\n if (cp < 0xc4e) return true\n return false\n }\n if (cp < 0xc57) return true\n if (cp < 0xc62) return false\n if (cp < 0xc64) return true\n if (cp < 0xc66) return false\n if (cp < 0xc70) return true\n if (cp === 0xc81) return true\n if (cp < 0xc82) return false\n if (cp < 0xc84) return true\n if (cp === 0xcbc) return true\n if (cp === 0xcbe) return true\n if (cp === 0xcbf) return true\n return false\n }\n if (cp < 0xd00) {\n if (cp < 0xcc0) return false\n if (cp < 0xcc5) return true\n if (cp === 0xcc6) return true\n if (cp < 0xcc7) return false\n if (cp < 0xcc9) return true\n if (cp < 0xcca) return false\n if (cp < 0xccc) return true\n if (cp < 0xccc) return false\n if (cp < 0xcce) return true\n if (cp < 0xcd5) return false\n if (cp < 0xcd7) return true\n if (cp < 0xce2) return false\n if (cp < 0xce4) return true\n if (cp < 0xce6) return false\n if (cp < 0xcf0) return true\n return false\n }\n if (cp < 0xd02) return true\n if (cp < 0xd02) return false\n if (cp < 0xd04) return true\n if (cp < 0xd3b) return false\n if (cp < 0xd3d) return true\n if (cp < 0xd3e) return false\n if (cp < 0xd41) return true\n if (cp < 0xd41) return false\n if (cp < 0xd45) return true\n if (cp < 0xd46) return false\n if (cp < 0xd49) return true\n if (cp < 0xd4a) return false\n if (cp < 0xd4d) return true\n if (cp === 0xd4d) return true\n if (cp === 0xd57) return true\n return false\n }\n if (cp < 0x17be) {\n if (cp < 0x102b) {\n if (cp < 0xebb) {\n if (cp < 0xde6) {\n if (cp < 0xd62) return false\n if (cp < 0xd64) return true\n if (cp < 0xd66) return false\n if (cp < 0xd70) return true\n if (cp < 0xd82) return false\n if (cp < 0xd84) return true\n if (cp === 0xdca) return true\n if (cp < 0xdcf) return false\n if (cp < 0xdd2) return true\n if (cp < 0xdd2) return false\n if (cp < 0xdd5) return true\n if (cp === 0xdd6) return true\n if (cp < 0xdd8) return false\n if (cp < 0xde0) return true\n return false\n }\n if (cp < 0xdf0) return true\n if (cp < 0xdf2) return false\n if (cp < 0xdf4) return true\n if (cp === 0xe31) return true\n if (cp < 0xe34) return false\n if (cp < 0xe3b) return true\n if (cp < 0xe47) return false\n if (cp < 0xe4f) return true\n if (cp < 0xe50) return false\n if (cp < 0xe5a) return true\n if (cp === 0xeb1) return true\n if (cp < 0xeb4) return false\n if (cp < 0xeba) return true\n return false\n }\n if (cp < 0xf3e) {\n if (cp < 0xebb) return false\n if (cp < 0xebd) return true\n if (cp < 0xec8) return false\n if (cp < 0xece) return true\n if (cp < 0xed0) return false\n if (cp < 0xeda) return true\n if (cp < 0xf18) return false\n if (cp < 0xf1a) return true\n if (cp < 0xf20) return false\n if (cp < 0xf2a) return true\n if (cp === 0xf35) return true\n if (cp === 0xf37) return true\n if (cp === 0xf39) return true\n return false\n }\n if (cp < 0xf40) return true\n if (cp < 0xf71) return false\n if (cp < 0xf7f) return true\n if (cp === 0xf7f) return true\n if (cp < 0xf80) return false\n if (cp < 0xf85) return true\n if (cp < 0xf86) return false\n if (cp < 0xf88) return true\n if (cp < 0xf8d) return false\n if (cp < 0xf98) return true\n if (cp < 0xf99) return false\n if (cp < 0xfbd) return true\n if (cp === 0xfc6) return true\n return false\n }\n if (cp < 0x1083) {\n if (cp < 0x1040) {\n if (cp < 0x102b) return false\n if (cp < 0x102d) return true\n if (cp < 0x102d) return false\n if (cp < 0x1031) return true\n if (cp === 0x1031) return true\n if (cp < 0x1032) return false\n if (cp < 0x1038) return true\n if (cp === 0x1038) return true\n if (cp < 0x1039) return false\n if (cp < 0x103b) return true\n if (cp < 0x103b) return false\n if (cp < 0x103d) return true\n if (cp < 0x103d) return false\n if (cp < 0x103f) return true\n return false\n }\n if (cp < 0x104a) return true\n if (cp < 0x1056) return false\n if (cp < 0x1058) return true\n if (cp < 0x1058) return false\n if (cp < 0x105a) return true\n if (cp < 0x105e) return false\n if (cp < 0x1061) return true\n if (cp < 0x1062) return false\n if (cp < 0x1065) return true\n if (cp < 0x1067) return false\n if (cp < 0x106e) return true\n if (cp < 0x1071) return false\n if (cp < 0x1075) return true\n if (cp === 0x1082) return true\n return false\n }\n if (cp < 0x135d) {\n if (cp < 0x1083) return false\n if (cp < 0x1085) return true\n if (cp < 0x1085) return false\n if (cp < 0x1087) return true\n if (cp < 0x1087) return false\n if (cp < 0x108d) return true\n if (cp === 0x108d) return true\n if (cp === 0x108f) return true\n if (cp < 0x1090) return false\n if (cp < 0x109a) return true\n if (cp < 0x109a) return false\n if (cp < 0x109d) return true\n if (cp === 0x109d) return true\n return false\n }\n if (cp < 0x1360) return true\n if (cp < 0x1369) return false\n if (cp < 0x1372) return true\n if (cp < 0x1712) return false\n if (cp < 0x1715) return true\n if (cp < 0x1732) return false\n if (cp < 0x1735) return true\n if (cp < 0x1752) return false\n if (cp < 0x1754) return true\n if (cp < 0x1772) return false\n if (cp < 0x1774) return true\n if (cp < 0x17b4) return false\n if (cp < 0x17b6) return true\n if (cp === 0x17b6) return true\n if (cp < 0x17b7) return false\n if (cp < 0x17be) return true\n return false\n }\n if (cp < 0x1a73) {\n if (cp < 0x1939) {\n if (cp < 0x18a9) {\n if (cp < 0x17be) return false\n if (cp < 0x17c6) return true\n if (cp === 0x17c6) return true\n if (cp < 0x17c7) return false\n if (cp < 0x17c9) return true\n if (cp < 0x17c9) return false\n if (cp < 0x17d4) return true\n if (cp === 0x17dd) return true\n if (cp < 0x17e0) return false\n if (cp < 0x17ea) return true\n if (cp < 0x180b) return false\n if (cp < 0x180e) return true\n if (cp < 0x1810) return false\n if (cp < 0x181a) return true\n return false\n }\n if (cp === 0x18a9) return true\n if (cp < 0x1920) return false\n if (cp < 0x1923) return true\n if (cp < 0x1923) return false\n if (cp < 0x1927) return true\n if (cp < 0x1927) return false\n if (cp < 0x1929) return true\n if (cp < 0x1929) return false\n if (cp < 0x192c) return true\n if (cp < 0x1930) return false\n if (cp < 0x1932) return true\n if (cp === 0x1932) return true\n if (cp < 0x1933) return false\n if (cp < 0x1939) return true\n return false\n }\n if (cp < 0x1a56) {\n if (cp < 0x1939) return false\n if (cp < 0x193c) return true\n if (cp < 0x1946) return false\n if (cp < 0x1950) return true\n if (cp < 0x19d0) return false\n if (cp < 0x19da) return true\n if (cp === 0x19da) return true\n if (cp < 0x1a17) return false\n if (cp < 0x1a19) return true\n if (cp < 0x1a19) return false\n if (cp < 0x1a1b) return true\n if (cp === 0x1a1b) return true\n if (cp === 0x1a55) return true\n return false\n }\n if (cp === 0x1a56) return true\n if (cp === 0x1a57) return true\n if (cp < 0x1a58) return false\n if (cp < 0x1a5f) return true\n if (cp === 0x1a60) return true\n if (cp === 0x1a61) return true\n if (cp === 0x1a62) return true\n if (cp < 0x1a63) return false\n if (cp < 0x1a65) return true\n if (cp < 0x1a65) return false\n if (cp < 0x1a6d) return true\n if (cp < 0x1a6d) return false\n if (cp < 0x1a73) return true\n return false\n }\n if (cp < 0x1b6b) {\n if (cp < 0x1b35) {\n if (cp < 0x1a73) return false\n if (cp < 0x1a7d) return true\n if (cp === 0x1a7f) return true\n if (cp < 0x1a80) return false\n if (cp < 0x1a8a) return true\n if (cp < 0x1a90) return false\n if (cp < 0x1a9a) return true\n if (cp < 0x1ab0) return false\n if (cp < 0x1abe) return true\n if (cp < 0x1b00) return false\n if (cp < 0x1b04) return true\n if (cp === 0x1b04) return true\n if (cp === 0x1b34) return true\n return false\n }\n if (cp === 0x1b35) return true\n if (cp < 0x1b36) return false\n if (cp < 0x1b3b) return true\n if (cp === 0x1b3b) return true\n if (cp === 0x1b3c) return true\n if (cp < 0x1b3d) return false\n if (cp < 0x1b42) return true\n if (cp === 0x1b42) return true\n if (cp < 0x1b43) return false\n if (cp < 0x1b45) return true\n if (cp < 0x1b50) return false\n if (cp < 0x1b5a) return true\n return false\n }\n if (cp < 0x1bab) {\n if (cp < 0x1b6b) return false\n if (cp < 0x1b74) return true\n if (cp < 0x1b80) return false\n if (cp < 0x1b82) return true\n if (cp === 0x1b82) return true\n if (cp === 0x1ba1) return true\n if (cp < 0x1ba2) return false\n if (cp < 0x1ba6) return true\n if (cp < 0x1ba6) return false\n if (cp < 0x1ba8) return true\n if (cp < 0x1ba8) return false\n if (cp < 0x1baa) return true\n if (cp === 0x1baa) return true\n return false\n }\n if (cp < 0x1bae) return true\n if (cp < 0x1bb0) return false\n if (cp < 0x1bba) return true\n if (cp === 0x1be6) return true\n if (cp === 0x1be7) return true\n if (cp < 0x1be8) return false\n if (cp < 0x1bea) return true\n if (cp < 0x1bea) return false\n if (cp < 0x1bed) return true\n if (cp === 0x1bed) return true\n if (cp === 0x1bee) return true\n if (cp < 0x1bef) return false\n if (cp < 0x1bf2) return true\n return false\n }\n if (cp < 0x111d0) {\n if (cp < 0xaa43) {\n if (cp < 0xa69e) {\n if (cp < 0x1dc0) {\n if (cp < 0x1cd4) {\n if (cp < 0x1bf2) return false\n if (cp < 0x1bf4) return true\n if (cp < 0x1c24) return false\n if (cp < 0x1c2c) return true\n if (cp < 0x1c2c) return false\n if (cp < 0x1c34) return true\n if (cp < 0x1c34) return false\n if (cp < 0x1c36) return true\n if (cp < 0x1c36) return false\n if (cp < 0x1c38) return true\n if (cp < 0x1c40) return false\n if (cp < 0x1c4a) return true\n if (cp < 0x1c50) return false\n if (cp < 0x1c5a) return true\n if (cp < 0x1cd0) return false\n if (cp < 0x1cd3) return true\n return false\n }\n if (cp < 0x1ce1) return true\n if (cp === 0x1ce1) return true\n if (cp < 0x1ce2) return false\n if (cp < 0x1ce9) return true\n if (cp === 0x1ced) return true\n if (cp < 0x1cf2) return false\n if (cp < 0x1cf4) return true\n if (cp === 0x1cf4) return true\n if (cp === 0x1cf7) return true\n if (cp < 0x1cf8) return false\n if (cp < 0x1cfa) return true\n return false\n }\n if (cp < 0x2d7f) {\n if (cp < 0x1dc0) return false\n if (cp < 0x1dfa) return true\n if (cp < 0x1dfb) return false\n if (cp < 0x1e00) return true\n if (cp < 0x203f) return false\n if (cp < 0x2041) return true\n if (cp === 0x2054) return true\n if (cp < 0x20d0) return false\n if (cp < 0x20dd) return true\n if (cp === 0x20e1) return true\n if (cp < 0x20e5) return false\n if (cp < 0x20f1) return true\n if (cp < 0x2cef) return false\n if (cp < 0x2cf2) return true\n return false\n }\n if (cp === 0x2d7f) return true\n if (cp < 0x2de0) return false\n if (cp < 0x2e00) return true\n if (cp < 0x302a) return false\n if (cp < 0x302e) return true\n if (cp < 0x302e) return false\n if (cp < 0x3030) return true\n if (cp < 0x3099) return false\n if (cp < 0x309b) return true\n if (cp < 0xa620) return false\n if (cp < 0xa62a) return true\n if (cp === 0xa66f) return true\n if (cp < 0xa674) return false\n if (cp < 0xa67e) return true\n return false\n }\n if (cp < 0xa952) {\n if (cp < 0xa880) {\n if (cp < 0xa69e) return false\n if (cp < 0xa6a0) return true\n if (cp < 0xa6f0) return false\n if (cp < 0xa6f2) return true\n if (cp === 0xa802) return true\n if (cp === 0xa806) return true\n if (cp === 0xa80b) return true\n if (cp < 0xa823) return false\n if (cp < 0xa825) return true\n if (cp < 0xa825) return false\n if (cp < 0xa827) return true\n if (cp === 0xa827) return true\n return false\n }\n if (cp < 0xa882) return true\n if (cp < 0xa8b4) return false\n if (cp < 0xa8c4) return true\n if (cp < 0xa8c4) return false\n if (cp < 0xa8c6) return true\n if (cp < 0xa8d0) return false\n if (cp < 0xa8da) return true\n if (cp < 0xa8e0) return false\n if (cp < 0xa8f2) return true\n if (cp < 0xa900) return false\n if (cp < 0xa90a) return true\n if (cp < 0xa926) return false\n if (cp < 0xa92e) return true\n if (cp < 0xa947) return false\n if (cp < 0xa952) return true\n return false\n }\n if (cp < 0xa9bd) {\n if (cp < 0xa952) return false\n if (cp < 0xa954) return true\n if (cp < 0xa980) return false\n if (cp < 0xa983) return true\n if (cp === 0xa983) return true\n if (cp === 0xa9b3) return true\n if (cp < 0xa9b4) return false\n if (cp < 0xa9b6) return true\n if (cp < 0xa9b6) return false\n if (cp < 0xa9ba) return true\n if (cp < 0xa9ba) return false\n if (cp < 0xa9bc) return true\n if (cp === 0xa9bc) return true\n return false\n }\n if (cp < 0xa9c1) return true\n if (cp < 0xa9d0) return false\n if (cp < 0xa9da) return true\n if (cp === 0xa9e5) return true\n if (cp < 0xa9f0) return false\n if (cp < 0xa9fa) return true\n if (cp < 0xaa29) return false\n if (cp < 0xaa2f) return true\n if (cp < 0xaa2f) return false\n if (cp < 0xaa31) return true\n if (cp < 0xaa31) return false\n if (cp < 0xaa33) return true\n if (cp < 0xaa33) return false\n if (cp < 0xaa35) return true\n if (cp < 0xaa35) return false\n if (cp < 0xaa37) return true\n return false\n }\n if (cp < 0x102e0) {\n if (cp < 0xaaf6) {\n if (cp < 0xaab2) {\n if (cp === 0xaa43) return true\n if (cp === 0xaa4c) return true\n if (cp === 0xaa4d) return true\n if (cp < 0xaa50) return false\n if (cp < 0xaa5a) return true\n if (cp === 0xaa7b) return true\n if (cp === 0xaa7c) return true\n if (cp === 0xaa7d) return true\n if (cp === 0xaab0) return true\n return false\n }\n if (cp < 0xaab5) return true\n if (cp < 0xaab7) return false\n if (cp < 0xaab9) return true\n if (cp < 0xaabe) return false\n if (cp < 0xaac0) return true\n if (cp === 0xaac1) return true\n if (cp === 0xaaeb) return true\n if (cp < 0xaaec) return false\n if (cp < 0xaaee) return true\n if (cp < 0xaaee) return false\n if (cp < 0xaaf0) return true\n if (cp === 0xaaf5) return true\n return false\n }\n if (cp < 0xabf0) {\n if (cp === 0xaaf6) return true\n if (cp < 0xabe3) return false\n if (cp < 0xabe5) return true\n if (cp === 0xabe5) return true\n if (cp < 0xabe6) return false\n if (cp < 0xabe8) return true\n if (cp === 0xabe8) return true\n if (cp < 0xabe9) return false\n if (cp < 0xabeb) return true\n if (cp === 0xabec) return true\n if (cp === 0xabed) return true\n return false\n }\n if (cp < 0xabfa) return true\n if (cp === 0xfb1e) return true\n if (cp < 0xfe00) return false\n if (cp < 0xfe10) return true\n if (cp < 0xfe20) return false\n if (cp < 0xfe30) return true\n if (cp < 0xfe33) return false\n if (cp < 0xfe35) return true\n if (cp < 0xfe4d) return false\n if (cp < 0xfe50) return true\n if (cp < 0xff10) return false\n if (cp < 0xff1a) return true\n if (cp === 0xff3f) return true\n if (cp === 0x101fd) return true\n return false\n }\n if (cp < 0x110b0) {\n if (cp < 0x10ae5) {\n if (cp === 0x102e0) return true\n if (cp < 0x10376) return false\n if (cp < 0x1037b) return true\n if (cp < 0x104a0) return false\n if (cp < 0x104aa) return true\n if (cp < 0x10a01) return false\n if (cp < 0x10a04) return true\n if (cp < 0x10a05) return false\n if (cp < 0x10a07) return true\n if (cp < 0x10a0c) return false\n if (cp < 0x10a10) return true\n if (cp < 0x10a38) return false\n if (cp < 0x10a3b) return true\n if (cp === 0x10a3f) return true\n return false\n }\n if (cp < 0x10ae7) return true\n if (cp === 0x11000) return true\n if (cp === 0x11001) return true\n if (cp === 0x11002) return true\n if (cp < 0x11038) return false\n if (cp < 0x11047) return true\n if (cp < 0x11066) return false\n if (cp < 0x11070) return true\n if (cp < 0x1107f) return false\n if (cp < 0x11082) return true\n if (cp === 0x11082) return true\n return false\n }\n if (cp < 0x1112d) {\n if (cp < 0x110b0) return false\n if (cp < 0x110b3) return true\n if (cp < 0x110b3) return false\n if (cp < 0x110b7) return true\n if (cp < 0x110b7) return false\n if (cp < 0x110b9) return true\n if (cp < 0x110b9) return false\n if (cp < 0x110bb) return true\n if (cp < 0x110f0) return false\n if (cp < 0x110fa) return true\n if (cp < 0x11100) return false\n if (cp < 0x11103) return true\n if (cp < 0x11127) return false\n if (cp < 0x1112c) return true\n if (cp === 0x1112c) return true\n return false\n }\n if (cp < 0x11135) return true\n if (cp < 0x11136) return false\n if (cp < 0x11140) return true\n if (cp === 0x11173) return true\n if (cp < 0x11180) return false\n if (cp < 0x11182) return true\n if (cp === 0x11182) return true\n if (cp < 0x111b3) return false\n if (cp < 0x111b6) return true\n if (cp < 0x111b6) return false\n if (cp < 0x111bf) return true\n if (cp < 0x111bf) return false\n if (cp < 0x111c1) return true\n if (cp < 0x111ca) return false\n if (cp < 0x111cd) return true\n return false\n }\n if (cp < 0x11726) {\n if (cp < 0x114b3) {\n if (cp < 0x11340) {\n if (cp < 0x112df) {\n if (cp < 0x111d0) return false\n if (cp < 0x111da) return true\n if (cp < 0x1122c) return false\n if (cp < 0x1122f) return true\n if (cp < 0x1122f) return false\n if (cp < 0x11232) return true\n if (cp < 0x11232) return false\n if (cp < 0x11234) return true\n if (cp === 0x11234) return true\n if (cp === 0x11235) return true\n if (cp < 0x11236) return false\n if (cp < 0x11238) return true\n if (cp === 0x1123e) return true\n return false\n }\n if (cp === 0x112df) return true\n if (cp < 0x112e0) return false\n if (cp < 0x112e3) return true\n if (cp < 0x112e3) return false\n if (cp < 0x112eb) return true\n if (cp < 0x112f0) return false\n if (cp < 0x112fa) return true\n if (cp < 0x11300) return false\n if (cp < 0x11302) return true\n if (cp < 0x11302) return false\n if (cp < 0x11304) return true\n if (cp === 0x1133c) return true\n if (cp < 0x1133e) return false\n if (cp < 0x11340) return true\n return false\n }\n if (cp < 0x11435) {\n if (cp === 0x11340) return true\n if (cp < 0x11341) return false\n if (cp < 0x11345) return true\n if (cp < 0x11347) return false\n if (cp < 0x11349) return true\n if (cp < 0x1134b) return false\n if (cp < 0x1134e) return true\n if (cp === 0x11357) return true\n if (cp < 0x11362) return false\n if (cp < 0x11364) return true\n if (cp < 0x11366) return false\n if (cp < 0x1136d) return true\n if (cp < 0x11370) return false\n if (cp < 0x11375) return true\n return false\n }\n if (cp < 0x11438) return true\n if (cp < 0x11438) return false\n if (cp < 0x11440) return true\n if (cp < 0x11440) return false\n if (cp < 0x11442) return true\n if (cp < 0x11442) return false\n if (cp < 0x11445) return true\n if (cp === 0x11445) return true\n if (cp === 0x11446) return true\n if (cp < 0x11450) return false\n if (cp < 0x1145a) return true\n if (cp < 0x114b0) return false\n if (cp < 0x114b3) return true\n return false\n }\n if (cp < 0x11633) {\n if (cp < 0x115af) {\n if (cp < 0x114b3) return false\n if (cp < 0x114b9) return true\n if (cp === 0x114b9) return true\n if (cp === 0x114ba) return true\n if (cp < 0x114bb) return false\n if (cp < 0x114bf) return true\n if (cp < 0x114bf) return false\n if (cp < 0x114c1) return true\n if (cp === 0x114c1) return true\n if (cp < 0x114c2) return false\n if (cp < 0x114c4) return true\n if (cp < 0x114d0) return false\n if (cp < 0x114da) return true\n return false\n }\n if (cp < 0x115b2) return true\n if (cp < 0x115b2) return false\n if (cp < 0x115b6) return true\n if (cp < 0x115b8) return false\n if (cp < 0x115bc) return true\n if (cp < 0x115bc) return false\n if (cp < 0x115be) return true\n if (cp === 0x115be) return true\n if (cp < 0x115bf) return false\n if (cp < 0x115c1) return true\n if (cp < 0x115dc) return false\n if (cp < 0x115de) return true\n if (cp < 0x11630) return false\n if (cp < 0x11633) return true\n return false\n }\n if (cp < 0x116ad) {\n if (cp < 0x11633) return false\n if (cp < 0x1163b) return true\n if (cp < 0x1163b) return false\n if (cp < 0x1163d) return true\n if (cp === 0x1163d) return true\n if (cp === 0x1163e) return true\n if (cp < 0x1163f) return false\n if (cp < 0x11641) return true\n if (cp < 0x11650) return false\n if (cp < 0x1165a) return true\n if (cp === 0x116ab) return true\n if (cp === 0x116ac) return true\n return false\n }\n if (cp === 0x116ad) return true\n if (cp < 0x116ae) return false\n if (cp < 0x116b0) return true\n if (cp < 0x116b0) return false\n if (cp < 0x116b6) return true\n if (cp === 0x116b6) return true\n if (cp === 0x116b7) return true\n if (cp < 0x116c0) return false\n if (cp < 0x116ca) return true\n if (cp < 0x1171d) return false\n if (cp < 0x11720) return true\n if (cp < 0x11720) return false\n if (cp < 0x11722) return true\n if (cp < 0x11722) return false\n if (cp < 0x11726) return true\n return false\n }\n if (cp < 0x11d3f) {\n if (cp < 0x11a98) {\n if (cp < 0x11a39) {\n if (cp === 0x11726) return true\n if (cp < 0x11727) return false\n if (cp < 0x1172c) return true\n if (cp < 0x11730) return false\n if (cp < 0x1173a) return true\n if (cp < 0x118e0) return false\n if (cp < 0x118ea) return true\n if (cp < 0x11a01) return false\n if (cp < 0x11a07) return true\n if (cp < 0x11a07) return false\n if (cp < 0x11a09) return true\n if (cp < 0x11a09) return false\n if (cp < 0x11a0b) return true\n if (cp < 0x11a33) return false\n if (cp < 0x11a39) return true\n return false\n }\n if (cp === 0x11a39) return true\n if (cp < 0x11a3b) return false\n if (cp < 0x11a3f) return true\n if (cp === 0x11a47) return true\n if (cp < 0x11a51) return false\n if (cp < 0x11a57) return true\n if (cp < 0x11a57) return false\n if (cp < 0x11a59) return true\n if (cp < 0x11a59) return false\n if (cp < 0x11a5c) return true\n if (cp < 0x11a8a) return false\n if (cp < 0x11a97) return true\n if (cp === 0x11a97) return true\n return false\n }\n if (cp < 0x11ca9) {\n if (cp < 0x11a98) return false\n if (cp < 0x11a9a) return true\n if (cp === 0x11c2f) return true\n if (cp < 0x11c30) return false\n if (cp < 0x11c37) return true\n if (cp < 0x11c38) return false\n if (cp < 0x11c3e) return true\n if (cp === 0x11c3e) return true\n if (cp === 0x11c3f) return true\n if (cp < 0x11c50) return false\n if (cp < 0x11c5a) return true\n if (cp < 0x11c92) return false\n if (cp < 0x11ca8) return true\n return false\n }\n if (cp === 0x11ca9) return true\n if (cp < 0x11caa) return false\n if (cp < 0x11cb1) return true\n if (cp === 0x11cb1) return true\n if (cp < 0x11cb2) return false\n if (cp < 0x11cb4) return true\n if (cp === 0x11cb4) return true\n if (cp < 0x11cb5) return false\n if (cp < 0x11cb7) return true\n if (cp < 0x11d31) return false\n if (cp < 0x11d37) return true\n if (cp === 0x11d3a) return true\n if (cp < 0x11d3c) return false\n if (cp < 0x11d3e) return true\n return false\n }\n if (cp < 0x1d242) {\n if (cp < 0x16f8f) {\n if (cp < 0x11d3f) return false\n if (cp < 0x11d46) return true\n if (cp === 0x11d47) return true\n if (cp < 0x11d50) return false\n if (cp < 0x11d5a) return true\n if (cp < 0x16a60) return false\n if (cp < 0x16a6a) return true\n if (cp < 0x16af0) return false\n if (cp < 0x16af5) return true\n if (cp < 0x16b30) return false\n if (cp < 0x16b37) return true\n if (cp < 0x16b50) return false\n if (cp < 0x16b5a) return true\n if (cp < 0x16f51) return false\n if (cp < 0x16f7f) return true\n return false\n }\n if (cp < 0x16f93) return true\n if (cp < 0x1bc9d) return false\n if (cp < 0x1bc9f) return true\n if (cp < 0x1d165) return false\n if (cp < 0x1d167) return true\n if (cp < 0x1d167) return false\n if (cp < 0x1d16a) return true\n if (cp < 0x1d16d) return false\n if (cp < 0x1d173) return true\n if (cp < 0x1d17b) return false\n if (cp < 0x1d183) return true\n if (cp < 0x1d185) return false\n if (cp < 0x1d18c) return true\n if (cp < 0x1d1aa) return false\n if (cp < 0x1d1ae) return true\n return false\n }\n if (cp < 0x1e000) {\n if (cp < 0x1d242) return false\n if (cp < 0x1d245) return true\n if (cp < 0x1d7ce) return false\n if (cp < 0x1d800) return true\n if (cp < 0x1da00) return false\n if (cp < 0x1da37) return true\n if (cp < 0x1da3b) return false\n if (cp < 0x1da6d) return true\n if (cp === 0x1da75) return true\n if (cp === 0x1da84) return true\n if (cp < 0x1da9b) return false\n if (cp < 0x1daa0) return true\n if (cp < 0x1daa1) return false\n if (cp < 0x1dab0) return true\n return false\n }\n if (cp < 0x1e007) return true\n if (cp < 0x1e008) return false\n if (cp < 0x1e019) return true\n if (cp < 0x1e01b) return false\n if (cp < 0x1e022) return true\n if (cp < 0x1e023) return false\n if (cp < 0x1e025) return true\n if (cp < 0x1e026) return false\n if (cp < 0x1e02b) return true\n if (cp < 0x1e8d0) return false\n if (cp < 0x1e8d7) return true\n if (cp < 0x1e944) return false\n if (cp < 0x1e94b) return true\n if (cp < 0x1e950) return false\n if (cp < 0x1e95a) return true\n if (cp < 0xe0100) return false\n if (cp < 0xe01f0) return true\n return false\n}\n","const PropertyData: Object & { [key: string]: Set } = {\n $LONE: new Set([\n \"ASCII\",\n \"ASCII_Hex_Digit\",\n \"AHex\",\n \"Alphabetic\",\n \"Alpha\",\n \"Any\",\n \"Assigned\",\n \"Bidi_Control\",\n \"Bidi_C\",\n \"Bidi_Mirrored\",\n \"Bidi_M\",\n \"Case_Ignorable\",\n \"CI\",\n \"Cased\",\n \"Changes_When_Casefolded\",\n \"CWCF\",\n \"Changes_When_Casemapped\",\n \"CWCM\",\n \"Changes_When_Lowercased\",\n \"CWL\",\n \"Changes_When_NFKC_Casefolded\",\n \"CWKCF\",\n \"Changes_When_Titlecased\",\n \"CWT\",\n \"Changes_When_Uppercased\",\n \"CWU\",\n \"Dash\",\n \"Default_Ignorable_Code_Point\",\n \"DI\",\n \"Deprecated\",\n \"Dep\",\n \"Diacritic\",\n \"Dia\",\n \"Emoji\",\n \"Emoji_Component\",\n \"Emoji_Modifier\",\n \"Emoji_Modifier_Base\",\n \"Emoji_Presentation\",\n \"Extender\",\n \"Ext\",\n \"Grapheme_Base\",\n \"Gr_Base\",\n \"Grapheme_Extend\",\n \"Gr_Ext\",\n \"Hex_Digit\",\n \"Hex\",\n \"IDS_Binary_Operator\",\n \"IDSB\",\n \"IDS_Trinary_Operator\",\n \"IDST\",\n \"ID_Continue\",\n \"IDC\",\n \"ID_Start\",\n \"IDS\",\n \"Ideographic\",\n \"Ideo\",\n \"Join_Control\",\n \"Join_C\",\n \"Logical_Order_Exception\",\n \"LOE\",\n \"Lowercase\",\n \"Lower\",\n \"Math\",\n \"Noncharacter_Code_Point\",\n \"NChar\",\n \"Pattern_Syntax\",\n \"Pat_Syn\",\n \"Pattern_White_Space\",\n \"Pat_WS\",\n \"Quotation_Mark\",\n \"QMark\",\n \"Radical\",\n \"Regional_Indicator\",\n \"RI\",\n \"Sentence_Terminal\",\n \"STerm\",\n \"Soft_Dotted\",\n \"SD\",\n \"Terminal_Punctuation\",\n \"Term\",\n \"Unified_Ideograph\",\n \"UIdeo\",\n \"Uppercase\",\n \"Upper\",\n \"Variation_Selector\",\n \"VS\",\n \"White_Space\",\n \"space\",\n \"XID_Continue\",\n \"XIDC\",\n \"XID_Start\",\n \"XIDS\",\n ]),\n General_Category: new Set([\n \"Cased_Letter\",\n \"LC\",\n \"Close_Punctuation\",\n \"Pe\",\n \"Connector_Punctuation\",\n \"Pc\",\n \"Control\",\n \"Cc\",\n \"cntrl\",\n \"Currency_Symbol\",\n \"Sc\",\n \"Dash_Punctuation\",\n \"Pd\",\n \"Decimal_Number\",\n \"Nd\",\n \"digit\",\n \"Enclosing_Mark\",\n \"Me\",\n \"Final_Punctuation\",\n \"Pf\",\n \"Format\",\n \"Cf\",\n \"Initial_Punctuation\",\n \"Pi\",\n \"Letter\",\n \"L\",\n \"Letter_Number\",\n \"Nl\",\n \"Line_Separator\",\n \"Zl\",\n \"Lowercase_Letter\",\n \"Ll\",\n \"Mark\",\n \"M\",\n \"Combining_Mark\",\n \"Math_Symbol\",\n \"Sm\",\n \"Modifier_Letter\",\n \"Lm\",\n \"Modifier_Symbol\",\n \"Sk\",\n \"Nonspacing_Mark\",\n \"Mn\",\n \"Number\",\n \"N\",\n \"Open_Punctuation\",\n \"Ps\",\n \"Other\",\n \"C\",\n \"Other_Letter\",\n \"Lo\",\n \"Other_Number\",\n \"No\",\n \"Other_Punctuation\",\n \"Po\",\n \"Other_Symbol\",\n \"So\",\n \"Paragraph_Separator\",\n \"Zp\",\n \"Private_Use\",\n \"Co\",\n \"Punctuation\",\n \"P\",\n \"punct\",\n \"Separator\",\n \"Z\",\n \"Space_Separator\",\n \"Zs\",\n \"Spacing_Mark\",\n \"Mc\",\n \"Surrogate\",\n \"Cs\",\n \"Symbol\",\n \"S\",\n \"Titlecase_Letter\",\n \"Lt\",\n \"Unassigned\",\n \"Cn\",\n \"Uppercase_Letter\",\n \"Lu\",\n ]),\n Script: new Set([\n \"Adlam\",\n \"Adlm\",\n \"Ahom\",\n \"Anatolian_Hieroglyphs\",\n \"Hluw\",\n \"Arabic\",\n \"Arab\",\n \"Armenian\",\n \"Armn\",\n \"Avestan\",\n \"Avst\",\n \"Balinese\",\n \"Bali\",\n \"Bamum\",\n \"Bamu\",\n \"Bassa_Vah\",\n \"Bass\",\n \"Batak\",\n \"Batk\",\n \"Bengali\",\n \"Beng\",\n \"Bhaiksuki\",\n \"Bhks\",\n \"Bopomofo\",\n \"Bopo\",\n \"Brahmi\",\n \"Brah\",\n \"Braille\",\n \"Brai\",\n \"Buginese\",\n \"Bugi\",\n \"Buhid\",\n \"Buhd\",\n \"Canadian_Aboriginal\",\n \"Cans\",\n \"Carian\",\n \"Cari\",\n \"Caucasian_Albanian\",\n \"Aghb\",\n \"Chakma\",\n \"Cakm\",\n \"Cham\",\n \"Cherokee\",\n \"Cher\",\n \"Common\",\n \"Zyyy\",\n \"Coptic\",\n \"Copt\",\n \"Qaac\",\n \"Cuneiform\",\n \"Xsux\",\n \"Cypriot\",\n \"Cprt\",\n \"Cyrillic\",\n \"Cyrl\",\n \"Deseret\",\n \"Dsrt\",\n \"Devanagari\",\n \"Deva\",\n \"Duployan\",\n \"Dupl\",\n \"Egyptian_Hieroglyphs\",\n \"Egyp\",\n \"Elbasan\",\n \"Elba\",\n \"Ethiopic\",\n \"Ethi\",\n \"Georgian\",\n \"Geor\",\n \"Glagolitic\",\n \"Glag\",\n \"Gothic\",\n \"Goth\",\n \"Grantha\",\n \"Gran\",\n \"Greek\",\n \"Grek\",\n \"Gujarati\",\n \"Gujr\",\n \"Gurmukhi\",\n \"Guru\",\n \"Han\",\n \"Hani\",\n \"Hangul\",\n \"Hang\",\n \"Hanunoo\",\n \"Hano\",\n \"Hatran\",\n \"Hatr\",\n \"Hebrew\",\n \"Hebr\",\n \"Hiragana\",\n \"Hira\",\n \"Imperial_Aramaic\",\n \"Armi\",\n \"Inherited\",\n \"Zinh\",\n \"Qaai\",\n \"Inscriptional_Pahlavi\",\n \"Phli\",\n \"Inscriptional_Parthian\",\n \"Prti\",\n \"Javanese\",\n \"Java\",\n \"Kaithi\",\n \"Kthi\",\n \"Kannada\",\n \"Knda\",\n \"Katakana\",\n \"Kana\",\n \"Kayah_Li\",\n \"Kali\",\n \"Kharoshthi\",\n \"Khar\",\n \"Khmer\",\n \"Khmr\",\n \"Khojki\",\n \"Khoj\",\n \"Khudawadi\",\n \"Sind\",\n \"Lao\",\n \"Laoo\",\n \"Latin\",\n \"Latn\",\n \"Lepcha\",\n \"Lepc\",\n \"Limbu\",\n \"Limb\",\n \"Linear_A\",\n \"Lina\",\n \"Linear_B\",\n \"Linb\",\n \"Lisu\",\n \"Lycian\",\n \"Lyci\",\n \"Lydian\",\n \"Lydi\",\n \"Mahajani\",\n \"Mahj\",\n \"Malayalam\",\n \"Mlym\",\n \"Mandaic\",\n \"Mand\",\n \"Manichaean\",\n \"Mani\",\n \"Marchen\",\n \"Marc\",\n \"Masaram_Gondi\",\n \"Gonm\",\n \"Meetei_Mayek\",\n \"Mtei\",\n \"Mende_Kikakui\",\n \"Mend\",\n \"Meroitic_Cursive\",\n \"Merc\",\n \"Meroitic_Hieroglyphs\",\n \"Mero\",\n \"Miao\",\n \"Plrd\",\n \"Modi\",\n \"Mongolian\",\n \"Mong\",\n \"Mro\",\n \"Mroo\",\n \"Multani\",\n \"Mult\",\n \"Myanmar\",\n \"Mymr\",\n \"Nabataean\",\n \"Nbat\",\n \"New_Tai_Lue\",\n \"Talu\",\n \"Newa\",\n \"Nko\",\n \"Nkoo\",\n \"Nushu\",\n \"Nshu\",\n \"Ogham\",\n \"Ogam\",\n \"Ol_Chiki\",\n \"Olck\",\n \"Old_Hungarian\",\n \"Hung\",\n \"Old_Italic\",\n \"Ital\",\n \"Old_North_Arabian\",\n \"Narb\",\n \"Old_Permic\",\n \"Perm\",\n \"Old_Persian\",\n \"Xpeo\",\n \"Old_South_Arabian\",\n \"Sarb\",\n \"Old_Turkic\",\n \"Orkh\",\n \"Oriya\",\n \"Orya\",\n \"Osage\",\n \"Osge\",\n \"Osmanya\",\n \"Osma\",\n \"Pahawh_Hmong\",\n \"Hmng\",\n \"Palmyrene\",\n \"Palm\",\n \"Pau_Cin_Hau\",\n \"Pauc\",\n \"Phags_Pa\",\n \"Phag\",\n \"Phoenician\",\n \"Phnx\",\n \"Psalter_Pahlavi\",\n \"Phlp\",\n \"Rejang\",\n \"Rjng\",\n \"Runic\",\n \"Runr\",\n \"Samaritan\",\n \"Samr\",\n \"Saurashtra\",\n \"Saur\",\n \"Sharada\",\n \"Shrd\",\n \"Shavian\",\n \"Shaw\",\n \"Siddham\",\n \"Sidd\",\n \"SignWriting\",\n \"Sgnw\",\n \"Sinhala\",\n \"Sinh\",\n \"Sora_Sompeng\",\n \"Sora\",\n \"Soyombo\",\n \"Soyo\",\n \"Sundanese\",\n \"Sund\",\n \"Syloti_Nagri\",\n \"Sylo\",\n \"Syriac\",\n \"Syrc\",\n \"Tagalog\",\n \"Tglg\",\n \"Tagbanwa\",\n \"Tagb\",\n \"Tai_Le\",\n \"Tale\",\n \"Tai_Tham\",\n \"Lana\",\n \"Tai_Viet\",\n \"Tavt\",\n \"Takri\",\n \"Takr\",\n \"Tamil\",\n \"Taml\",\n \"Tangut\",\n \"Tang\",\n \"Telugu\",\n \"Telu\",\n \"Thaana\",\n \"Thaa\",\n \"Thai\",\n \"Tibetan\",\n \"Tibt\",\n \"Tifinagh\",\n \"Tfng\",\n \"Tirhuta\",\n \"Tirh\",\n \"Ugaritic\",\n \"Ugar\",\n \"Vai\",\n \"Vaii\",\n \"Warang_Citi\",\n \"Wara\",\n \"Yi\",\n \"Yiii\",\n \"Zanabazar_Square\",\n \"Zanb\",\n ]),\n}\n\nPropertyData.gc = PropertyData.General_Category\nPropertyData.sc = PropertyData.Script_Extensions = PropertyData.scx =\n PropertyData.Script\n\nexport { PropertyData }\n","export { isIdContinue, isIdStart } from \"./ids\"\nexport { PropertyData } from \"./property-data\"\n\nexport const Null = 0x00\nexport const Backspace = 0x08\nexport const CharacterTabulation = 0x09\nexport const LineFeed = 0x0a\nexport const LineTabulation = 0x0b\nexport const FormFeed = 0x0c\nexport const CarriageReturn = 0x0d\nexport const ExclamationMark = 0x21\nexport const DollarSign = 0x24\nexport const LeftParenthesis = 0x28\nexport const RightParenthesis = 0x29\nexport const Asterisk = 0x2a\nexport const PlusSign = 0x2b\nexport const Comma = 0x2c\nexport const HyphenMinus = 0x2d\nexport const FullStop = 0x2e\nexport const Solidus = 0x2f\nexport const DigitZero = 0x30\nexport const DigitOne = 0x31\nexport const DigitSeven = 0x37\nexport const DigitNine = 0x39\nexport const Colon = 0x3a\nexport const LessThanSign = 0x3c\nexport const EqualsSign = 0x3d\nexport const GreaterThanSign = 0x3e\nexport const QuestionMark = 0x3f\nexport const LatinCapitalLetterA = 0x41\nexport const LatinCapitalLetterB = 0x42\nexport const LatinCapitalLetterD = 0x44\nexport const LatinCapitalLetterF = 0x46\nexport const LatinCapitalLetterP = 0x50\nexport const LatinCapitalLetterS = 0x53\nexport const LatinCapitalLetterW = 0x57\nexport const LatinCapitalLetterZ = 0x5a\nexport const LowLine = 0x5f\nexport const LatinSmallLetterA = 0x61\nexport const LatinSmallLetterB = 0x62\nexport const LatinSmallLetterC = 0x63\nexport const LatinSmallLetterD = 0x64\nexport const LatinSmallLetterF = 0x66\nexport const LatinSmallLetterG = 0x67\nexport const LatinSmallLetterI = 0x69\nexport const LatinSmallLetterK = 0x6b\nexport const LatinSmallLetterM = 0x6d\nexport const LatinSmallLetterN = 0x6e\nexport const LatinSmallLetterP = 0x70\nexport const LatinSmallLetterR = 0x72\nexport const LatinSmallLetterS = 0x73\nexport const LatinSmallLetterT = 0x74\nexport const LatinSmallLetterU = 0x75\nexport const LatinSmallLetterV = 0x76\nexport const LatinSmallLetterW = 0x77\nexport const LatinSmallLetterX = 0x78\nexport const LatinSmallLetterY = 0x79\nexport const LatinSmallLetterZ = 0x7a\nexport const LeftSquareBracket = 0x5b\nexport const ReverseSolidus = 0x5c\nexport const RightSquareBracket = 0x5d\nexport const CircumflexAccent = 0x5e\nexport const LeftCurlyBracket = 0x7b\nexport const VerticalLine = 0x7c\nexport const RightCurlyBracket = 0x7d\nexport const ZeroWidthNonJoiner = 0x200c\nexport const ZeroWidthJoiner = 0x200d\nexport const LineSeparator = 0x2028\nexport const ParagraphSeparator = 0x2029\n\nexport const MinCodePoint = 0x00\nexport const MaxCodePoint = 0x10ffff\n\nexport function isLatinLetter(code: number): boolean {\n return (\n (code >= LatinCapitalLetterA && code <= LatinCapitalLetterZ) ||\n (code >= LatinSmallLetterA && code <= LatinSmallLetterZ)\n )\n}\n\nexport function isDecimalDigit(code: number): boolean {\n return code >= DigitZero && code <= DigitNine\n}\n\nexport function isOctalDigit(code: number): boolean {\n return code >= DigitZero && code <= DigitSeven\n}\n\nexport function isHexDigit(code: number): boolean {\n return (\n (code >= DigitZero && code <= DigitNine) ||\n (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) ||\n (code >= LatinSmallLetterA && code <= LatinSmallLetterF)\n )\n}\n\nexport function isLineTerminator(code: number): boolean {\n return (\n code === LineFeed ||\n code === CarriageReturn ||\n code === LineSeparator ||\n code === ParagraphSeparator\n )\n}\n\nexport function isValidUnicode(code: number): boolean {\n return code >= MinCodePoint && code <= MaxCodePoint\n}\n\nexport function digitToInt(code: number): number {\n if (code >= LatinSmallLetterA && code <= LatinSmallLetterF) {\n return code - LatinSmallLetterA + 10\n }\n if (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) {\n return code - LatinCapitalLetterA + 10\n }\n return code - DigitZero\n}\n","import { Reader } from \"./reader\"\nimport { RegExpSyntaxError } from \"./regexp-syntax-error\"\nimport {\n Asterisk,\n Backspace,\n CarriageReturn,\n CharacterTabulation,\n CircumflexAccent,\n Colon,\n Comma,\n DigitNine,\n DigitOne,\n digitToInt,\n DigitZero,\n DollarSign,\n EqualsSign,\n ExclamationMark,\n FormFeed,\n FullStop,\n GreaterThanSign,\n HyphenMinus,\n isDecimalDigit,\n isHexDigit,\n isIdContinue,\n isIdStart,\n isLatinLetter,\n isLineTerminator,\n isOctalDigit,\n isValidUnicode,\n LatinCapitalLetterB,\n LatinCapitalLetterD,\n LatinCapitalLetterP,\n LatinCapitalLetterS,\n LatinCapitalLetterW,\n LatinSmallLetterB,\n LatinSmallLetterC,\n LatinSmallLetterD,\n LatinSmallLetterF,\n LatinSmallLetterG,\n LatinSmallLetterI,\n LatinSmallLetterK,\n LatinSmallLetterM,\n LatinSmallLetterN,\n LatinSmallLetterP,\n LatinSmallLetterR,\n LatinSmallLetterS,\n LatinSmallLetterT,\n LatinSmallLetterU,\n LatinSmallLetterV,\n LatinSmallLetterW,\n LatinSmallLetterX,\n LatinSmallLetterY,\n LeftCurlyBracket,\n LeftParenthesis,\n LeftSquareBracket,\n LessThanSign,\n LineFeed,\n LineTabulation,\n LowLine,\n PlusSign,\n PropertyData,\n QuestionMark,\n ReverseSolidus,\n RightCurlyBracket,\n RightParenthesis,\n RightSquareBracket,\n Solidus,\n VerticalLine,\n ZeroWidthJoiner,\n ZeroWidthNonJoiner,\n} from \"./unicode\"\n\nfunction isSyntaxCharacter(cp: number): boolean {\n return (\n cp === CircumflexAccent ||\n cp === DollarSign ||\n cp === ReverseSolidus ||\n cp === FullStop ||\n cp === Asterisk ||\n cp === PlusSign ||\n cp === QuestionMark ||\n cp === LeftParenthesis ||\n cp === RightParenthesis ||\n cp === LeftSquareBracket ||\n cp === RightSquareBracket ||\n cp === LeftCurlyBracket ||\n cp === RightCurlyBracket ||\n cp === VerticalLine\n )\n}\n\nfunction isRegExpIdentifierStart(cp: number): boolean {\n return isIdStart(cp) || cp === DollarSign || cp === LowLine\n}\n\nfunction isRegExpIdentifierPart(cp: number): boolean {\n return (\n isIdContinue(cp) ||\n cp === DollarSign ||\n cp === LowLine ||\n cp === ZeroWidthNonJoiner ||\n cp === ZeroWidthJoiner\n )\n}\n\nfunction isUnicodePropertyNameCharacter(cp: number): boolean {\n return isLatinLetter(cp) || cp === LowLine\n}\n\nfunction isUnicodePropertyValueCharacter(cp: number): boolean {\n return isUnicodePropertyNameCharacter(cp) || isDecimalDigit(cp)\n}\n\nfunction isValidUnicodeProperty(name: string, value: string): boolean {\n //eslint-disable-next-line no-prototype-builtins\n return PropertyData.hasOwnProperty(name) && PropertyData[name].has(value)\n}\n\nfunction isValidUnicodePropertyName(name: string): boolean {\n return PropertyData.$LONE.has(name)\n}\n\nexport namespace RegExpValidator {\n /**\n * The options for RegExpValidator construction.\n */\n export interface Options {\n /**\n * The flag to disable Annex B syntax. Default is `false`.\n */\n strict?: boolean\n\n /**\n * ECMAScript version. Default is `2018`.\n * - `2015` added `u` and `y` flags.\n * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,\n * and Unicode Property Escape.\n */\n ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018\n\n /**\n * A function that is called when the validator entered a RegExp literal.\n * @param start The 0-based index of the first character.\n */\n onLiteralEnter?(start: number): void\n\n /**\n * A function that is called when the validator left a RegExp literal.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n */\n onLiteralLeave?(start: number, end: number): void\n\n /**\n * A function that is called when the validator found flags.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param global `g` flag.\n * @param ignoreCase `i` flag.\n * @param multiline `m` flag.\n * @param unicode `u` flag.\n * @param sticky `y` flag.\n * @param dotAll `s` flag.\n */\n onFlags?(\n start: number,\n end: number,\n global: boolean,\n ignoreCase: boolean,\n multiline: boolean,\n unicode: boolean,\n sticky: boolean,\n dotAll: boolean,\n ): void\n\n /**\n * A function that is called when the validator entered a pattern.\n * @param start The 0-based index of the first character.\n */\n onPatternEnter?(start: number): void\n\n /**\n * A function that is called when the validator left a pattern.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n */\n onPatternLeave?(start: number, end: number): void\n\n /**\n * A function that is called when the validator entered a disjunction.\n * @param start The 0-based index of the first character.\n */\n onDisjunctionEnter?(start: number): void\n\n /**\n * A function that is called when the validator left a disjunction.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n */\n onDisjunctionLeave?(start: number, end: number): void\n\n /**\n * A function that is called when the validator entered an alternative.\n * @param start The 0-based index of the first character.\n * @param index The 0-based index of alternatives in a disjunction.\n */\n onAlternativeEnter?(start: number, index: number): void\n\n /**\n * A function that is called when the validator left an alternative.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param index The 0-based index of alternatives in a disjunction.\n */\n onAlternativeLeave?(start: number, end: number, index: number): void\n\n /**\n * A function that is called when the validator entered an uncapturing group.\n * @param start The 0-based index of the first character.\n */\n onGroupEnter?(start: number): void\n\n /**\n * A function that is called when the validator left an uncapturing group.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n */\n onGroupLeave?(start: number, end: number): void\n\n /**\n * A function that is called when the validator entered a capturing group.\n * @param start The 0-based index of the first character.\n * @param name The group name.\n */\n onCapturingGroupEnter?(start: number, name: string | null): void\n\n /**\n * A function that is called when the validator left a capturing group.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param name The group name.\n */\n onCapturingGroupLeave?(\n start: number,\n end: number,\n name: string | null,\n ): void\n\n /**\n * A function that is called when the validator found a quantifier.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param min The minimum number of repeating.\n * @param max The maximum number of repeating.\n * @param greedy The flag to choose the longest matching.\n */\n onQuantifier?(\n start: number,\n end: number,\n min: number,\n max: number,\n greedy: boolean,\n ): void\n\n /**\n * A function that is called when the validator entered a lookahead/lookbehind assertion.\n * @param start The 0-based index of the first character.\n * @param kind The kind of the assertion.\n * @param negate The flag which represents that the assertion is negative.\n */\n onLookaroundAssertionEnter?(\n start: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator left a lookahead/lookbehind assertion.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the assertion.\n * @param negate The flag which represents that the assertion is negative.\n */\n onLookaroundAssertionLeave?(\n start: number,\n end: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found an edge boundary assertion.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the assertion.\n */\n onEdgeAssertion?(\n start: number,\n end: number,\n kind: \"start\" | \"end\",\n ): void\n\n /**\n * A function that is called when the validator found a word boundary assertion.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the assertion.\n * @param negate The flag which represents that the assertion is negative.\n */\n onWordBoundaryAssertion?(\n start: number,\n end: number,\n kind: \"word\",\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found a dot.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the character set.\n */\n onAnyCharacterSet?(start: number, end: number, kind: \"any\"): void\n\n /**\n * A function that is called when the validator found a character set escape.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the character set.\n * @param negate The flag which represents that the character set is negative.\n */\n onEscapeCharacterSet?(\n start: number,\n end: number,\n kind: \"digit\" | \"space\" | \"word\",\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found a Unicode proerty escape.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the character set.\n * @param key The property name.\n * @param value The property value.\n * @param negate The flag which represents that the character set is negative.\n */\n onUnicodePropertyCharacterSet?(\n start: number,\n end: number,\n kind: \"property\",\n key: string,\n value: string | null,\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found a character.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param value The code point of the character.\n */\n onCharacter?(start: number, end: number, value: number): void\n\n /**\n * A function that is called when the validator found a backreference.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param ref The key of the referred capturing group.\n */\n onBackreference?(start: number, end: number, ref: number | string): void\n\n /**\n * A function that is called when the validator entered a character class.\n * @param start The 0-based index of the first character.\n * @param negate The flag which represents that the character class is negative.\n */\n onCharacterClassEnter?(start: number, negate: boolean): void\n\n /**\n * A function that is called when the validator left a character class.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param negate The flag which represents that the character class is negative.\n */\n onCharacterClassLeave?(\n start: number,\n end: number,\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found a character class range.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param min The minimum code point of the range.\n * @param max The maximum code point of the range.\n */\n onCharacterClassRange?(\n start: number,\n end: number,\n min: number,\n max: number,\n ): void\n }\n}\n\n/**\n * The regular expression validator.\n */\nexport class RegExpValidator {\n private readonly _options: RegExpValidator.Options\n private readonly _reader = new Reader()\n private _uFlag = false\n private _nFlag = false\n private _lastIntValue = 0\n private _lastMinValue = 0\n private _lastMaxValue = 0\n private _lastStrValue = \"\"\n private _lastKeyValue = \"\"\n private _lastValValue = \"\"\n private _lastAssertionIsQuantifiable = false\n private _numCapturingParens = 0\n private _groupNames = new Set()\n private _backreferenceNames = new Set()\n\n /**\n * Initialize this validator.\n * @param options The options of validator.\n */\n constructor(options?: RegExpValidator.Options) {\n this._options = options || {}\n }\n\n /**\n * Validate a regular expression literal. E.g. \"/abc/g\"\n * @param source The source code to validate.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n */\n validateLiteral(\n source: string,\n start: number = 0,\n end: number = source.length,\n ): void {\n this._uFlag = this._nFlag = false\n this.reset(source, start, end)\n\n this.onLiteralEnter(start)\n if (this.eat(Solidus) && this.eatRegExpBody() && this.eat(Solidus)) {\n const flagStart = this.index\n const uFlag = source.indexOf(\"u\", flagStart) !== -1\n this.validateFlags(source, flagStart, end)\n this.validatePattern(source, start + 1, flagStart - 1, uFlag)\n } else if (start >= end) {\n this.raise(\"Empty\")\n } else {\n const c = String.fromCodePoint(this.currentCodePoint)\n this.raise(`Unexpected character '${c}'`)\n }\n this.onLiteralLeave(start, end)\n }\n\n /**\n * Validate a regular expression flags. E.g. \"gim\"\n * @param source The source code to validate.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n */\n validateFlags(\n source: string,\n start: number = 0,\n end: number = source.length,\n ): void {\n const existingFlags = new Set()\n let global = false\n let ignoreCase = false\n let multiline = false\n let sticky = false\n let unicode = false\n let dotAll = false\n for (let i = start; i < end; ++i) {\n const flag = source.charCodeAt(i)\n\n if (existingFlags.has(flag)) {\n this.raise(`Duplicated flag '${source[i]}'`)\n }\n existingFlags.add(flag)\n\n if (flag === LatinSmallLetterG) {\n global = true\n } else if (flag === LatinSmallLetterI) {\n ignoreCase = true\n } else if (flag === LatinSmallLetterM) {\n multiline = true\n } else if (flag === LatinSmallLetterU && this.ecmaVersion >= 2015) {\n unicode = true\n } else if (flag === LatinSmallLetterY && this.ecmaVersion >= 2015) {\n sticky = true\n } else if (flag === LatinSmallLetterS && this.ecmaVersion >= 2018) {\n dotAll = true\n } else {\n this.raise(`Invalid flag '${source[i]}'`)\n }\n }\n this.onFlags(\n start,\n end,\n global,\n ignoreCase,\n multiline,\n unicode,\n sticky,\n dotAll,\n )\n }\n\n /**\n * Validate a regular expression pattern. E.g. \"abc\"\n * @param source The source code to validate.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n * @param uFlag The flag to set unicode mode.\n */\n validatePattern(\n source: string,\n start: number = 0,\n end: number = source.length,\n uFlag: boolean = false,\n ): void {\n this._uFlag = uFlag && this.ecmaVersion >= 2015\n this._nFlag = uFlag && this.ecmaVersion >= 2018\n this.reset(source, start, end)\n this.pattern()\n\n if (\n !this._nFlag &&\n this.ecmaVersion >= 2018 &&\n this._groupNames.size > 0\n ) {\n this._nFlag = true\n this.rewind(start)\n this.pattern()\n }\n }\n\n // #region Delegate for Options\n\n private get strict() {\n return Boolean(this._options.strict || this._uFlag)\n }\n\n private get ecmaVersion() {\n return this._options.ecmaVersion || 2018\n }\n\n private onLiteralEnter(start: number): void {\n if (this._options.onLiteralEnter) {\n this._options.onLiteralEnter(start)\n }\n }\n\n private onLiteralLeave(start: number, end: number): void {\n if (this._options.onLiteralLeave) {\n this._options.onLiteralLeave(start, end)\n }\n }\n\n private onFlags(\n start: number,\n end: number,\n global: boolean,\n ignoreCase: boolean,\n multiline: boolean,\n unicode: boolean,\n sticky: boolean,\n dotAll: boolean,\n ): void {\n if (this._options.onFlags) {\n this._options.onFlags(\n start,\n end,\n global,\n ignoreCase,\n multiline,\n unicode,\n sticky,\n dotAll,\n )\n }\n }\n\n private onPatternEnter(start: number): void {\n if (this._options.onPatternEnter) {\n this._options.onPatternEnter(start)\n }\n }\n\n private onPatternLeave(start: number, end: number): void {\n if (this._options.onPatternLeave) {\n this._options.onPatternLeave(start, end)\n }\n }\n\n private onDisjunctionEnter(start: number): void {\n if (this._options.onDisjunctionEnter) {\n this._options.onDisjunctionEnter(start)\n }\n }\n\n private onDisjunctionLeave(start: number, end: number): void {\n if (this._options.onDisjunctionLeave) {\n this._options.onDisjunctionLeave(start, end)\n }\n }\n\n private onAlternativeEnter(start: number, index: number): void {\n if (this._options.onAlternativeEnter) {\n this._options.onAlternativeEnter(start, index)\n }\n }\n\n private onAlternativeLeave(\n start: number,\n end: number,\n index: number,\n ): void {\n if (this._options.onAlternativeLeave) {\n this._options.onAlternativeLeave(start, end, index)\n }\n }\n\n private onGroupEnter(start: number): void {\n if (this._options.onGroupEnter) {\n this._options.onGroupEnter(start)\n }\n }\n\n private onGroupLeave(start: number, end: number): void {\n if (this._options.onGroupLeave) {\n this._options.onGroupLeave(start, end)\n }\n }\n\n private onCapturingGroupEnter(start: number, name: string | null): void {\n if (this._options.onCapturingGroupEnter) {\n this._options.onCapturingGroupEnter(start, name)\n }\n }\n\n private onCapturingGroupLeave(\n start: number,\n end: number,\n name: string | null,\n ): void {\n if (this._options.onCapturingGroupLeave) {\n this._options.onCapturingGroupLeave(start, end, name)\n }\n }\n\n private onQuantifier(\n start: number,\n end: number,\n min: number,\n max: number,\n greedy: boolean,\n ): void {\n if (this._options.onQuantifier) {\n this._options.onQuantifier(start, end, min, max, greedy)\n }\n }\n\n private onLookaroundAssertionEnter(\n start: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void {\n if (this._options.onLookaroundAssertionEnter) {\n this._options.onLookaroundAssertionEnter(start, kind, negate)\n }\n }\n\n private onLookaroundAssertionLeave(\n start: number,\n end: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void {\n if (this._options.onLookaroundAssertionLeave) {\n this._options.onLookaroundAssertionLeave(start, end, kind, negate)\n }\n }\n\n private onEdgeAssertion(\n start: number,\n end: number,\n kind: \"start\" | \"end\",\n ): void {\n if (this._options.onEdgeAssertion) {\n this._options.onEdgeAssertion(start, end, kind)\n }\n }\n\n private onWordBoundaryAssertion(\n start: number,\n end: number,\n kind: \"word\",\n negate: boolean,\n ): void {\n if (this._options.onWordBoundaryAssertion) {\n this._options.onWordBoundaryAssertion(start, end, kind, negate)\n }\n }\n\n private onAnyCharacterSet(start: number, end: number, kind: \"any\"): void {\n if (this._options.onAnyCharacterSet) {\n this._options.onAnyCharacterSet(start, end, kind)\n }\n }\n\n private onEscapeCharacterSet(\n start: number,\n end: number,\n kind: \"digit\" | \"space\" | \"word\",\n negate: boolean,\n ): void {\n if (this._options.onEscapeCharacterSet) {\n this._options.onEscapeCharacterSet(start, end, kind, negate)\n }\n }\n\n private onUnicodePropertyCharacterSet(\n start: number,\n end: number,\n kind: \"property\",\n key: string,\n value: string | null,\n negate: boolean,\n ): void {\n if (this._options.onUnicodePropertyCharacterSet) {\n this._options.onUnicodePropertyCharacterSet(\n start,\n end,\n kind,\n key,\n value,\n negate,\n )\n }\n }\n\n private onCharacter(start: number, end: number, value: number): void {\n if (this._options.onCharacter) {\n this._options.onCharacter(start, end, value)\n }\n }\n\n private onBackreference(\n start: number,\n end: number,\n ref: number | string,\n ): void {\n if (this._options.onBackreference) {\n this._options.onBackreference(start, end, ref)\n }\n }\n\n private onCharacterClassEnter(start: number, negate: boolean): void {\n if (this._options.onCharacterClassEnter) {\n this._options.onCharacterClassEnter(start, negate)\n }\n }\n\n private onCharacterClassLeave(\n start: number,\n end: number,\n negate: boolean,\n ): void {\n if (this._options.onCharacterClassLeave) {\n this._options.onCharacterClassLeave(start, end, negate)\n }\n }\n\n private onCharacterClassRange(\n start: number,\n end: number,\n min: number,\n max: number,\n ): void {\n if (this._options.onCharacterClassRange) {\n this._options.onCharacterClassRange(start, end, min, max)\n }\n }\n\n // #endregion\n\n // #region Delegate for Reader\n\n private get source(): string {\n return this._reader.source\n }\n\n private get index(): number {\n return this._reader.index\n }\n\n private get currentCodePoint(): number {\n return this._reader.currentCodePoint\n }\n\n private get nextCodePoint(): number {\n return this._reader.nextCodePoint\n }\n\n private get nextCodePoint2(): number {\n return this._reader.nextCodePoint2\n }\n\n private get nextCodePoint3(): number {\n return this._reader.nextCodePoint3\n }\n\n private reset(source: string, start: number, end: number): void {\n this._reader.reset(source, start, end, this._uFlag)\n }\n\n private rewind(index: number): void {\n this._reader.rewind(index)\n }\n\n private advance(): void {\n this._reader.advance()\n }\n\n private eat(cp: number): boolean {\n return this._reader.eat(cp)\n }\n\n private eat2(cp1: number, cp2: number): boolean {\n return this._reader.eat2(cp1, cp2)\n }\n\n private eat3(cp1: number, cp2: number, cp3: number): boolean {\n return this._reader.eat3(cp1, cp2, cp3)\n }\n\n // #endregion\n\n private raise(message: string): never {\n throw new RegExpSyntaxError(\n this.source,\n this._uFlag,\n this.index,\n message,\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-RegularExpressionBody\n private eatRegExpBody(): boolean {\n const start = this.index\n let inClass = false\n let escaped = false\n\n for (;;) {\n const cp = this.currentCodePoint\n if (cp === -1 || isLineTerminator(cp)) {\n const kind = inClass ? \"character class\" : \"regular expression\"\n this.raise(`Unterminated ${kind}`)\n }\n if (escaped) {\n escaped = false\n } else if (cp === ReverseSolidus) {\n escaped = true\n } else if (cp === LeftSquareBracket) {\n inClass = true\n } else if (cp === RightSquareBracket) {\n inClass = false\n } else if (\n (cp === Solidus && !inClass) ||\n (cp === Asterisk && this.index === start)\n ) {\n break\n }\n this.advance()\n }\n\n return this.index !== start\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\n private pattern(): void {\n const start = this.index\n this._numCapturingParens = this.countCapturingParens()\n this._groupNames.clear()\n this._backreferenceNames.clear()\n\n this.onPatternEnter(start)\n this.disjunction()\n\n const cp = this.currentCodePoint\n if (this.currentCodePoint !== -1) {\n if (cp === RightParenthesis) {\n this.raise(\"Unmatched ')'\")\n }\n if (cp === RightSquareBracket || cp === RightCurlyBracket) {\n this.raise(\"Lone quantifier brackets\")\n }\n const c = String.fromCodePoint(cp)\n this.raise(`Unexpected character '${c}'`)\n }\n this._backreferenceNames.forEach(name => {\n if (!this._groupNames.has(name)) {\n this.raise(\"Invalid named capture referenced\")\n }\n })\n this.onPatternLeave(start, this.index)\n }\n\n private countCapturingParens(): number {\n const start = this.index\n let inClass = false\n let escaped = false\n let count = 0\n let cp = 0\n\n while ((cp = this.currentCodePoint) !== -1) {\n if (escaped) {\n escaped = false\n } else if (cp === ReverseSolidus) {\n escaped = true\n } else if (cp === LeftSquareBracket) {\n inClass = true\n } else if (cp === RightSquareBracket) {\n inClass = false\n } else if (\n cp === LeftParenthesis &&\n !inClass &&\n (this.nextCodePoint !== QuestionMark ||\n (this.nextCodePoint2 === LessThanSign &&\n this.nextCodePoint3 !== EqualsSign &&\n this.nextCodePoint3 !== ExclamationMark))\n ) {\n count += 1\n }\n this.advance()\n }\n\n this.rewind(start)\n return count\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\n private disjunction(): void {\n const start = this.index\n let i = 0\n\n this.onDisjunctionEnter(start)\n this.alternative(i++)\n while (this.eat(VerticalLine)) {\n this.alternative(i++)\n }\n\n if (this.eatQuantifier(true)) {\n this.raise(\"Nothing to repeat\")\n }\n if (this.eat(LeftCurlyBracket)) {\n this.raise(\"Lone quantifier brackets\")\n }\n this.onDisjunctionLeave(start, this.index)\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\n private alternative(i: number): void {\n const start = this.index\n\n this.onAlternativeEnter(start, i)\n while (this.currentCodePoint !== -1 && this.eatTerm());\n this.onAlternativeLeave(start, this.index, i)\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-Term\n private eatTerm(): boolean {\n if (this.eatAssertion()) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `this.lastAssertionIsQuantifiable` is true if the last eaten\n // Assertion is a QuantifiableAssertion.\n if (this._lastAssertionIsQuantifiable) {\n this.eatQuantifier()\n }\n return true\n }\n\n if (this.strict ? this.eatAtom() : this.eatExtendedAtom()) {\n this.eatQuantifier()\n return true\n }\n\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-Assertion\n private eatAssertion(): boolean {\n const start = this.index\n this._lastAssertionIsQuantifiable = false\n\n // ^, $, \\B \\b\n if (this.eat(CircumflexAccent)) {\n this.onEdgeAssertion(start, this.index, \"start\")\n return true\n }\n if (this.eat(DollarSign)) {\n this.onEdgeAssertion(start, this.index, \"end\")\n return true\n }\n if (this.eat2(ReverseSolidus, LatinCapitalLetterB)) {\n this.onWordBoundaryAssertion(start, this.index, \"word\", true)\n return true\n }\n if (this.eat2(ReverseSolidus, LatinSmallLetterB)) {\n this.onWordBoundaryAssertion(start, this.index, \"word\", false)\n return true\n }\n\n // Lookahead / Lookbehind\n if (this.eat2(LeftParenthesis, QuestionMark)) {\n const lookbehind =\n this.ecmaVersion >= 2018 && this.eat(LessThanSign)\n let negate = false\n if (this.eat(EqualsSign) || (negate = this.eat(ExclamationMark))) {\n const kind = lookbehind ? \"lookbehind\" : \"lookahead\"\n this.onLookaroundAssertionEnter(start, kind, negate)\n this.disjunction()\n if (!this.eat(RightParenthesis)) {\n this.raise(\"Unterminated group\")\n }\n this._lastAssertionIsQuantifiable = !lookbehind && !this.strict\n this.onLookaroundAssertionLeave(start, this.index, kind, negate)\n return true\n }\n this.rewind(start)\n }\n\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\n // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\n private eatQuantifier(noError = false): boolean {\n const start = this.index\n let min = 0\n let max = 0\n let greedy = false\n\n if (this.eat(Asterisk)) {\n min = 0\n max = Number.POSITIVE_INFINITY\n } else if (this.eat(PlusSign)) {\n min = 1\n max = Number.POSITIVE_INFINITY\n } else if (this.eat(QuestionMark)) {\n min = 0\n max = 1\n } else if (this.eatBracedQuantifier(noError)) {\n min = this._lastMinValue\n max = this._lastMaxValue\n } else {\n return false\n }\n greedy = !this.eat(QuestionMark)\n\n if (!noError) {\n this.onQuantifier(start, this.index, min, max, greedy)\n }\n return true\n }\n\n private eatBracedQuantifier(noError: boolean): boolean {\n const start = this.index\n if (this.eat(LeftCurlyBracket)) {\n this._lastMinValue = 0\n this._lastMaxValue = Number.POSITIVE_INFINITY\n if (this.eatDecimalDigits()) {\n this._lastMinValue = this._lastMaxValue = this._lastIntValue\n if (this.eat(Comma)) {\n this._lastMaxValue = this.eatDecimalDigits()\n ? this._lastIntValue\n : Number.POSITIVE_INFINITY\n }\n if (this.eat(RightCurlyBracket)) {\n if (!noError && this._lastMaxValue < this._lastMinValue) {\n this.raise(\"numbers out of order in {} quantifier\")\n }\n return true\n }\n }\n if (!noError && this.strict) {\n this.raise(\"Incomplete quantifier\")\n }\n this.rewind(start)\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\n private eatAtom(): boolean {\n return (\n this.eatPatternCharacter() ||\n this.eatDot() ||\n this.eatReverseSolidusAtomEscape() ||\n this.eatCharacterClass() ||\n this.eatUncapturingGroup() ||\n this.eatCapturingGroup()\n )\n }\n\n private eatDot(): boolean {\n if (this.eat(FullStop)) {\n this.onAnyCharacterSet(this.index - 1, this.index, \"any\")\n return true\n }\n return false\n }\n\n private eatReverseSolidusAtomEscape(): boolean {\n const start = this.index\n if (this.eat(ReverseSolidus)) {\n if (this.eatAtomEscape()) {\n return true\n }\n this.rewind(start)\n }\n return false\n }\n\n private eatUncapturingGroup(): boolean {\n const start = this.index\n if (this.eat3(LeftParenthesis, QuestionMark, Colon)) {\n this.onGroupEnter(start)\n this.disjunction()\n if (!this.eat(RightParenthesis)) {\n this.raise(\"Unterminated group\")\n }\n this.onGroupLeave(start, this.index)\n return true\n }\n return false\n }\n\n private eatCapturingGroup(): boolean {\n const start = this.index\n if (this.eat(LeftParenthesis)) {\n this._lastStrValue = \"\"\n if (this.ecmaVersion >= 2018) {\n this.groupSpecifier()\n } else if (this.currentCodePoint === QuestionMark) {\n this.raise(\"Invalid group\")\n }\n const name = this._lastStrValue || null\n\n this.onCapturingGroupEnter(start, name)\n this.disjunction()\n if (!this.eat(RightParenthesis)) {\n this.raise(\"Unterminated group\")\n }\n this.onCapturingGroupLeave(start, this.index, name)\n\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ExtendedAtom\n private eatExtendedAtom(): boolean {\n return (\n this.eatDot() ||\n this.eatReverseSolidusAtomEscape() ||\n this.eatCharacterClass() ||\n this.eatUncapturingGroup() ||\n this.eatCapturingGroup() ||\n this.eatInvalidBracedQuantifier() ||\n this.eatExtendedPatternCharacter()\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-InvalidBracedQuantifier\n private eatInvalidBracedQuantifier(): boolean {\n if (this.eatBracedQuantifier(true)) {\n this.raise(\"Nothing to repeat\")\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\n private eatSyntaxCharacter(): boolean {\n if (isSyntaxCharacter(this.currentCodePoint)) {\n this._lastIntValue = this.currentCodePoint\n this.advance()\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n private eatPatternCharacter(): boolean {\n const start = this.index\n const cp = this.currentCodePoint\n if (cp !== -1 && !isSyntaxCharacter(cp)) {\n this.advance()\n this.onCharacter(start, this.index, cp)\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ExtendedPatternCharacter\n private eatExtendedPatternCharacter(): boolean {\n const start = this.index\n const cp = this.currentCodePoint\n if (\n cp !== -1 &&\n cp !== CircumflexAccent &&\n cp !== DollarSign &&\n cp !== FullStop &&\n cp !== Asterisk &&\n cp !== PlusSign &&\n cp !== QuestionMark &&\n cp !== LeftParenthesis &&\n cp !== RightParenthesis &&\n cp !== LeftSquareBracket &&\n cp !== VerticalLine\n ) {\n this.advance()\n this.onCharacter(start, this.index, cp)\n return true\n }\n return false\n }\n\n // GroupSpecifier[U] ::\n // [empty]\n // `?` GroupName[?U]\n private groupSpecifier(): void {\n this._lastStrValue = \"\"\n if (this.eat(QuestionMark)) {\n if (this.eatGroupName()) {\n if (!this._groupNames.has(this._lastStrValue)) {\n this._groupNames.add(this._lastStrValue)\n return\n }\n this.raise(\"Duplicate capture group name\")\n }\n this.raise(\"Invalid group\")\n }\n }\n\n // GroupName[U] ::\n // `<` RegExpIdentifierName[?U] `>`\n private eatGroupName(): boolean {\n this._lastStrValue = \"\"\n if (this.eat(LessThanSign)) {\n if (this.eatRegExpIdentifierName() && this.eat(GreaterThanSign)) {\n return true\n }\n this.raise(\"Invalid capture group name\")\n }\n return false\n }\n\n // RegExpIdentifierName[U] ::\n // RegExpIdentifierStart[?U]\n // RegExpIdentifierName[?U] RegExpIdentifierPart[?U]\n private eatRegExpIdentifierName(): boolean {\n this._lastStrValue = \"\"\n if (this.eatRegExpIdentifierStart()) {\n this._lastStrValue += String.fromCodePoint(this._lastIntValue)\n while (this.eatRegExpIdentifierPart()) {\n this._lastStrValue += String.fromCodePoint(this._lastIntValue)\n }\n return true\n }\n return false\n }\n\n // RegExpIdentifierStart[U] ::\n // UnicodeIDStart\n // `$`\n // `_`\n // `\\` RegExpUnicodeEscapeSequence[?U]\n private eatRegExpIdentifierStart(): boolean {\n const start = this.index\n let cp = this.currentCodePoint\n this.advance()\n\n if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) {\n cp = this._lastIntValue\n }\n if (isRegExpIdentifierStart(cp)) {\n this._lastIntValue = cp\n return true\n }\n\n if (this.index !== start) {\n this.rewind(start)\n }\n return false\n }\n\n // RegExpIdentifierPart[U] ::\n // UnicodeIDContinue\n // `$`\n // `_`\n // `\\` RegExpUnicodeEscapeSequence[?U]\n // \n // \n private eatRegExpIdentifierPart(): boolean {\n const start = this.index\n let cp = this.currentCodePoint\n this.advance()\n\n if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) {\n cp = this._lastIntValue\n }\n if (isRegExpIdentifierPart(cp)) {\n this._lastIntValue = cp\n return true\n }\n\n if (this.index !== start) {\n this.rewind(start)\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-AtomEscape\n private eatAtomEscape(): boolean {\n if (\n this.eatBackreference() ||\n this.eatCharacterClassEscape() ||\n this.eatCharacterEscape() ||\n (this._nFlag && this.eatKGroupName())\n ) {\n return true\n }\n if (this.strict || this._uFlag) {\n this.raise(\"Invalid escape\")\n }\n return false\n }\n\n private eatBackreference(): boolean {\n const start = this.index\n if (this.eatDecimalEscape()) {\n const n = this._lastIntValue\n if (n <= this._numCapturingParens) {\n this.onBackreference(start - 1, this.index, n)\n return true\n }\n if (this.strict) {\n this.raise(\"Invalid escape\")\n }\n this.rewind(start)\n }\n return false\n }\n\n private eatKGroupName(): boolean {\n const start = this.index\n if (this.eat(LatinSmallLetterK)) {\n if (this.eatGroupName()) {\n const groupName = this._lastStrValue\n this._backreferenceNames.add(groupName)\n this.onBackreference(start - 1, this.index, groupName)\n return true\n }\n this.raise(\"Invalid named reference\")\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-CharacterEscape\n private eatCharacterEscape(): boolean {\n const start = this.index\n if (\n this.eatControlEscape() ||\n this.eatCControlLetter() ||\n this.eatZero() ||\n this.eatHexEscapeSequence() ||\n this.eatRegExpUnicodeEscapeSequence() ||\n (!this.strict && this.eatLegacyOctalEscapeSequence()) ||\n this.eatIdentityEscape()\n ) {\n this.onCharacter(start - 1, this.index, this._lastIntValue)\n return true\n }\n return false\n }\n\n private eatCControlLetter(): boolean {\n const start = this.index\n if (this.eat(LatinSmallLetterC)) {\n if (this.eatControlLetter()) {\n return true\n }\n this.rewind(start)\n }\n return false\n }\n\n private eatZero(): boolean {\n if (\n this.currentCodePoint === DigitZero &&\n !isDecimalDigit(this.nextCodePoint)\n ) {\n this._lastIntValue = 0\n this.advance()\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\n private eatControlEscape(): boolean {\n if (this.eat(LatinSmallLetterT)) {\n this._lastIntValue = CharacterTabulation\n return true\n }\n if (this.eat(LatinSmallLetterN)) {\n this._lastIntValue = LineFeed\n return true\n }\n if (this.eat(LatinSmallLetterV)) {\n this._lastIntValue = LineTabulation\n return true\n }\n if (this.eat(LatinSmallLetterF)) {\n this._lastIntValue = FormFeed\n return true\n }\n if (this.eat(LatinSmallLetterR)) {\n this._lastIntValue = CarriageReturn\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\n private eatControlLetter(): boolean {\n const cp = this.currentCodePoint\n if (isLatinLetter(cp)) {\n this.advance()\n this._lastIntValue = cp % 0x20\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\n private eatRegExpUnicodeEscapeSequence(): boolean {\n const start = this.index\n\n if (this.eat(LatinSmallLetterU)) {\n if (this.eatFixedHexDigits(4)) {\n const lead = this._lastIntValue\n if (this._uFlag && lead >= 0xd800 && lead <= 0xdbff) {\n const leadSurrogateEnd = this.index\n if (\n this.eat(ReverseSolidus) &&\n this.eat(LatinSmallLetterU) &&\n this.eatFixedHexDigits(4)\n ) {\n const trail = this._lastIntValue\n if (trail >= 0xdc00 && trail <= 0xdfff) {\n this._lastIntValue =\n (lead - 0xd800) * 0x400 +\n (trail - 0xdc00) +\n 0x10000\n return true\n }\n }\n this.rewind(leadSurrogateEnd)\n this._lastIntValue = lead\n }\n return true\n }\n if (\n this._uFlag &&\n this.eat(LeftCurlyBracket) &&\n this.eatHexDigits() &&\n this.eat(RightCurlyBracket) &&\n isValidUnicode(this._lastIntValue)\n ) {\n return true\n }\n if (this.strict || this._uFlag) {\n this.raise(\"Invalid unicode escape\")\n }\n this.rewind(start)\n }\n\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-IdentityEscape\n private eatIdentityEscape(): boolean {\n if (this._uFlag) {\n if (this.eatSyntaxCharacter()) {\n return true\n }\n if (this.eat(Solidus)) {\n this._lastIntValue = Solidus\n return true\n }\n return false\n }\n\n if (this.isValidIdentityEscape(this.currentCodePoint)) {\n this._lastIntValue = this.currentCodePoint\n this.advance()\n return true\n }\n\n return false\n }\n private isValidIdentityEscape(cp: number): boolean {\n if (cp === -1) {\n return false\n }\n if (this.strict) {\n return !isIdContinue(cp)\n }\n return (\n cp !== LatinSmallLetterC &&\n (!this._nFlag || cp !== LatinSmallLetterK)\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\n private eatDecimalEscape(): boolean {\n this._lastIntValue = 0\n let cp = this.currentCodePoint\n if (cp >= DigitOne && cp <= DigitNine) {\n do {\n this._lastIntValue = 10 * this._lastIntValue + (cp - DigitZero)\n this.advance()\n } while (\n (cp = this.currentCodePoint) >= DigitZero &&\n cp <= DigitNine\n )\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\n private eatCharacterClassEscape(): boolean {\n const start = this.index\n\n if (this.eat(LatinSmallLetterD)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"digit\", false)\n return true\n }\n if (this.eat(LatinCapitalLetterD)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"digit\", true)\n return true\n }\n if (this.eat(LatinSmallLetterS)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"space\", false)\n return true\n }\n if (this.eat(LatinCapitalLetterS)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"space\", true)\n return true\n }\n if (this.eat(LatinSmallLetterW)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"word\", false)\n return true\n }\n if (this.eat(LatinCapitalLetterW)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"word\", true)\n return true\n }\n\n let negate = false\n if (\n this._uFlag &&\n this.ecmaVersion >= 2018 &&\n (this.eat(LatinSmallLetterP) ||\n (negate = this.eat(LatinCapitalLetterP)))\n ) {\n this._lastIntValue = -1\n if (\n this.eat(LeftCurlyBracket) &&\n this.eatUnicodePropertyValueExpression() &&\n this.eat(RightCurlyBracket)\n ) {\n this.onUnicodePropertyCharacterSet(\n start - 1,\n this.index,\n \"property\",\n this._lastKeyValue,\n this._lastValValue || null,\n negate,\n )\n return true\n }\n this.raise(\"Invalid property name\")\n }\n\n return false\n }\n\n // UnicodePropertyValueExpression ::\n // UnicodePropertyName `=` UnicodePropertyValue\n // LoneUnicodePropertyNameOrValue\n private eatUnicodePropertyValueExpression(): boolean {\n const start = this.index\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.eatUnicodePropertyName() && this.eat(EqualsSign)) {\n this._lastKeyValue = this._lastStrValue\n if (this.eatUnicodePropertyValue()) {\n this._lastValValue = this._lastStrValue\n if (\n isValidUnicodeProperty(\n this._lastKeyValue,\n this._lastValValue,\n )\n ) {\n return true\n }\n this.raise(\"Invalid property name\")\n }\n }\n this.rewind(start)\n\n // LoneUnicodePropertyNameOrValue\n if (this.eatLoneUnicodePropertyNameOrValue()) {\n const nameOrValue = this._lastStrValue\n if (isValidUnicodeProperty(\"General_Category\", nameOrValue)) {\n this._lastKeyValue = \"General_Category\"\n this._lastValValue = nameOrValue\n return true\n }\n if (isValidUnicodePropertyName(nameOrValue)) {\n this._lastKeyValue = nameOrValue\n this._lastValValue = \"\"\n return true\n }\n this.raise(\"Invalid property name\")\n }\n return false\n }\n\n // UnicodePropertyName ::\n // UnicodePropertyNameCharacters\n private eatUnicodePropertyName(): boolean {\n this._lastStrValue = \"\"\n while (isUnicodePropertyNameCharacter(this.currentCodePoint)) {\n this._lastStrValue += String.fromCodePoint(this.currentCodePoint)\n this.advance()\n }\n return this._lastStrValue !== \"\"\n }\n\n // UnicodePropertyValue ::\n // UnicodePropertyValueCharacters\n private eatUnicodePropertyValue(): boolean {\n this._lastStrValue = \"\"\n while (isUnicodePropertyValueCharacter(this.currentCodePoint)) {\n this._lastStrValue += String.fromCodePoint(this.currentCodePoint)\n this.advance()\n }\n return this._lastStrValue !== \"\"\n }\n\n // LoneUnicodePropertyNameOrValue ::\n // UnicodePropertyValueCharacters\n private eatLoneUnicodePropertyNameOrValue(): boolean {\n return this.eatUnicodePropertyValue()\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\n private eatCharacterClass(): boolean {\n const start = this.index\n if (this.eat(LeftSquareBracket)) {\n const negate = this.eat(CircumflexAccent)\n this.onCharacterClassEnter(start, negate)\n this.classRanges()\n if (!this.eat(RightSquareBracket)) {\n this.raise(\"Unterminated character class\")\n }\n this.onCharacterClassLeave(start, this.index, negate)\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\n private classRanges(): void {\n let start = this.index\n while (this.eatClassAtom()) {\n const left = this._lastIntValue\n const hyphenStart = this.index\n if (this.eat(HyphenMinus)) {\n this.onCharacter(hyphenStart, this.index, HyphenMinus)\n\n if (this.eatClassAtom()) {\n const right = this._lastIntValue\n\n if (left === -1 || right === -1) {\n if (this.strict) {\n this.raise(\"Invalid character class\")\n }\n } else if (left > right) {\n this.raise(\"Range out of order in character class\")\n } else {\n this.onCharacterClassRange(\n start,\n this.index,\n left,\n right,\n )\n }\n }\n }\n\n start = this.index\n }\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\n private eatClassAtom(): boolean {\n const start = this.index\n\n if (this.eat(ReverseSolidus)) {\n if (this.eatClassEscape()) {\n return true\n }\n if (this._uFlag) {\n this.raise(\"Invalid escape\")\n }\n this.rewind(start)\n }\n\n const cp = this.currentCodePoint\n if (cp !== -1 && cp !== RightSquareBracket) {\n this.advance()\n this._lastIntValue = cp\n this.onCharacter(start, this.index, cp)\n return true\n }\n\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ClassEscape\n private eatClassEscape(): boolean {\n const start = this.index\n\n if (this.eat(LatinSmallLetterB)) {\n this._lastIntValue = Backspace\n this.onCharacter(start - 1, this.index, Backspace)\n return true\n }\n\n if (this._uFlag && this.eat(HyphenMinus)) {\n this._lastIntValue = HyphenMinus\n this.onCharacter(start - 1, this.index, HyphenMinus)\n return true\n }\n\n if (!this._uFlag && this.eat(LatinSmallLetterC)) {\n if (this.eatClassControlLetter()) {\n this.onCharacter(start - 1, this.index, this._lastIntValue)\n return true\n }\n this.rewind(start)\n }\n\n return this.eatCharacterClassEscape() || this.eatCharacterEscape()\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ClassControlLetter\n private eatClassControlLetter(): boolean {\n const cp = this.currentCodePoint\n if (isDecimalDigit(cp) || cp === LowLine) {\n this.advance()\n this._lastIntValue = cp % 0x20\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n private eatHexEscapeSequence(): boolean {\n const start = this.index\n if (this.eat(LatinSmallLetterX)) {\n if (this.eatFixedHexDigits(2)) {\n return true\n }\n if (this._uFlag) {\n this.raise(\"Invalid escape\")\n }\n this.rewind(start)\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\n private eatDecimalDigits(): boolean {\n const start = this.index\n\n this._lastIntValue = 0\n while (isDecimalDigit(this.currentCodePoint)) {\n this._lastIntValue =\n 10 * this._lastIntValue + digitToInt(this.currentCodePoint)\n this.advance()\n }\n\n return this.index !== start\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\n private eatHexDigits(): boolean {\n const start = this.index\n this._lastIntValue = 0\n while (isHexDigit(this.currentCodePoint)) {\n this._lastIntValue =\n 16 * this._lastIntValue + digitToInt(this.currentCodePoint)\n this.advance()\n }\n return this.index !== start\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-LegacyOctalEscapeSequence\n // Allows only 0-377(octal) i.e. 0-255(decimal).\n private eatLegacyOctalEscapeSequence(): boolean {\n if (this.eatOctalDigit()) {\n const n1 = this._lastIntValue\n if (this.eatOctalDigit()) {\n const n2 = this._lastIntValue\n if (n1 <= 3 && this.eatOctalDigit()) {\n this._lastIntValue = n1 * 64 + n2 * 8 + this._lastIntValue\n } else {\n this._lastIntValue = n1 * 8 + n2\n }\n } else {\n this._lastIntValue = n1\n }\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\n private eatOctalDigit(): boolean {\n const cp = this.currentCodePoint\n if (isOctalDigit(cp)) {\n this.advance()\n this._lastIntValue = cp - DigitZero\n return true\n }\n this._lastIntValue = 0\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n private eatFixedHexDigits(length: number): boolean {\n const start = this.index\n this._lastIntValue = 0\n for (let i = 0; i < length; ++i) {\n const cp = this.currentCodePoint\n if (!isHexDigit(cp)) {\n this.rewind(start)\n return false\n }\n this._lastIntValue = 16 * this._lastIntValue + digitToInt(cp)\n this.advance()\n }\n return true\n }\n}\n","import {\n AlternativeElement,\n AnyCharacterSet,\n Assertion,\n Backreference,\n CapturingGroup,\n Character,\n CharacterClass,\n CharacterClassRange,\n Disjunction,\n Element,\n EscapeCharacterSet,\n Flags,\n Group,\n RegExpLiteral,\n LookaroundAssertion,\n Pattern,\n QuantifiableElement,\n Quantifier,\n UnicodePropertyCharacterSet,\n} from \"./ast\"\nimport { assert, last } from \"./util\"\nimport { RegExpValidator } from \"./validator\"\n\ntype AppendableNode =\n | Pattern\n | Disjunction\n | Group\n | CapturingGroup\n | CharacterClass\n | LookaroundAssertion\n\nconst DummyPattern = {} as Pattern\nconst DummyFlags = {} as Flags\nconst DummyCapturingGroup = {} as CapturingGroup\n\n/**\n * Convert given elements to an alternative.\n * This doesn't clone the array, so the return value is `elements` itself.\n * @param elements Elements to convert.\n */\nfunction elementsToAlternative(\n elements: Element[],\n parent: Disjunction,\n): AlternativeElement[] {\n for (const element of elements) {\n assert(element.type !== \"Disjunction\")\n element.parent = parent\n }\n return elements as AlternativeElement[]\n}\n\nfunction addAlternativeElement(\n parent:\n | Pattern\n | Disjunction\n | Group\n | CapturingGroup\n | LookaroundAssertion,\n node:\n | Group\n | CapturingGroup\n | Quantifier\n | CharacterClass\n | Assertion\n | AnyCharacterSet\n | Backreference,\n): void {\n if (parent.type === \"Disjunction\") {\n last(parent.alternatives)!.push(node)\n } else {\n parent.elements.push(node)\n }\n}\n\nfunction addCommonElement(\n parent: AppendableNode,\n node: EscapeCharacterSet | UnicodePropertyCharacterSet | Character,\n): void {\n if (parent.type === \"Disjunction\") {\n last(parent.alternatives)!.push(node)\n } else if (parent.type === \"CharacterClass\") {\n parent.elements.push(node)\n } else {\n parent.elements.push(node)\n }\n}\n\nclass RegExpParserState {\n readonly strict: boolean\n readonly ecmaVersion: 5 | 2015 | 2016 | 2017 | 2018\n private _node: AppendableNode = DummyPattern\n private _flags: Flags = DummyFlags\n private _disjunctionStartStack: number[] = []\n private _backreferences: Backreference[] = []\n private _capturingGroups: CapturingGroup[] = []\n\n source: string = \"\"\n\n constructor(options?: RegExpParser.Options) {\n this.strict = Boolean(options && options.strict)\n this.ecmaVersion = (options && options.ecmaVersion) || 2018\n }\n\n get pattern(): Pattern {\n if (this._node.type !== \"Pattern\") {\n throw new Error(\"UnknownError\")\n }\n return this._node\n }\n\n get flags(): Flags {\n if (this._flags.type !== \"Flags\") {\n throw new Error(\"UnknownError\")\n }\n return this._flags\n }\n\n onFlags(\n start: number,\n end: number,\n global: boolean,\n ignoreCase: boolean,\n multiline: boolean,\n unicode: boolean,\n sticky: boolean,\n dotAll: boolean,\n ): void {\n this._flags = {\n type: \"Flags\",\n parent: null,\n start,\n end,\n raw: this.source.slice(start, end),\n global,\n ignoreCase,\n multiline,\n unicode,\n sticky,\n dotAll,\n }\n }\n\n onPatternEnter(start: number): void {\n this._node = {\n type: \"Pattern\",\n parent: null,\n start,\n end: start,\n raw: \"\",\n elements: [],\n }\n this._backreferences.length = 0\n this._capturingGroups.length = 0\n }\n\n onPatternLeave(start: number, end: number): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n\n for (const reference of this._backreferences) {\n const ref = reference.ref\n const group =\n typeof ref === \"number\"\n ? this._capturingGroups[ref - 1]\n : this._capturingGroups.find(g => g.name === ref)!\n reference.resolved = group\n group.references.push(reference)\n }\n }\n\n onDisjunctionEnter(start: number): void {\n this._disjunctionStartStack.push(start)\n }\n\n onDisjunctionLeave(start: number, end: number): void {\n this._disjunctionStartStack.pop()\n }\n\n onAlternativeEnter(start: number, index: number): void {\n if (index === 0) {\n return\n }\n\n const parentNode = this._node\n if (\n parentNode.type === \"Disjunction\" ||\n parentNode.type === \"CharacterClass\"\n ) {\n throw new Error(\"UnknownError\")\n }\n\n const prevNode = last(parentNode.elements)\n if (prevNode != null && prevNode.type === \"Disjunction\") {\n this._node = prevNode\n prevNode.alternatives.push([])\n } else {\n this._node = {\n type: \"Disjunction\",\n parent: parentNode,\n start: last(this._disjunctionStartStack)!,\n end: start,\n raw: \"\",\n alternatives: [],\n }\n const elements = elementsToAlternative(\n parentNode.elements,\n this._node,\n )\n this._node.alternatives.push(elements, [])\n parentNode.elements = [this._node]\n }\n }\n\n onAlternativeLeave(start: number, end: number, index: number): void {\n if (index === 0) {\n return\n }\n this._node.end = end\n this._node.raw = this.source.slice(this._node.start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onGroupEnter(start: number): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n this._node = {\n type: \"Group\",\n parent: parentNode,\n start,\n end: start,\n raw: \"\",\n elements: [],\n }\n addAlternativeElement(parentNode, this._node)\n }\n\n onGroupLeave(start: number, end: number): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onCapturingGroupEnter(start: number, name: string | null): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n this._node = {\n type: \"CapturingGroup\",\n parent: parentNode,\n start,\n end: start,\n raw: \"\",\n name,\n elements: [],\n references: [],\n }\n addAlternativeElement(parentNode, this._node)\n this._capturingGroups.push(this._node)\n }\n\n onCapturingGroupLeave(\n start: number,\n end: number,\n name: string | null,\n ): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onQuantifier(\n start: number,\n end: number,\n min: number,\n max: number,\n greedy: boolean,\n ): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n // Replace the last element.\n const elements =\n parentNode.type === \"Disjunction\"\n ? last(parentNode.alternatives)!\n : parentNode.elements\n const prevNode = elements.pop()!\n const node: Quantifier = {\n type: \"Quantifier\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n min,\n max,\n greedy,\n element: prevNode as QuantifiableElement,\n }\n elements.push(node)\n prevNode.parent = node\n }\n\n onLookaroundAssertionEnter(\n start: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n this._node = {\n type: \"Assertion\",\n parent: parentNode,\n start,\n end: start,\n raw: \"\",\n kind,\n negate,\n elements: [],\n } as LookaroundAssertion\n addAlternativeElement(parentNode, this._node)\n }\n\n onLookaroundAssertionLeave(\n start: number,\n end: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onEdgeAssertion(start: number, end: number, kind: \"start\" | \"end\"): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n addAlternativeElement(parentNode, {\n type: \"Assertion\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n })\n }\n\n onWordBoundaryAssertion(\n start: number,\n end: number,\n kind: \"word\",\n negate: boolean,\n ): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n addAlternativeElement(parentNode, {\n type: \"Assertion\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n negate,\n })\n }\n\n onAnyCharacterSet(start: number, end: number, kind: \"any\"): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n addAlternativeElement(parentNode, {\n type: \"CharacterSet\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n })\n }\n\n onEscapeCharacterSet(\n start: number,\n end: number,\n kind: \"digit\" | \"space\" | \"word\",\n negate: boolean,\n ): void {\n addCommonElement(this._node, {\n type: \"CharacterSet\",\n parent: this._node,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n negate,\n })\n }\n\n onUnicodePropertyCharacterSet(\n start: number,\n end: number,\n kind: \"property\",\n key: string,\n value: string | null,\n negate: boolean,\n ): void {\n addCommonElement(this._node, {\n type: \"CharacterSet\",\n parent: this._node,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n key,\n value,\n negate,\n })\n }\n\n onCharacter(start: number, end: number, value: number): void {\n addCommonElement(this._node, {\n type: \"Character\",\n parent: this._node,\n start,\n end,\n raw: this.source.slice(start, end),\n value,\n })\n }\n\n onBackreference(start: number, end: number, ref: number | string): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n const node: Backreference = {\n type: \"Backreference\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n ref,\n resolved: DummyCapturingGroup,\n }\n addAlternativeElement(parentNode, node)\n this._backreferences.push(node)\n }\n\n onCharacterClassEnter(start: number, negate: boolean): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n this._node = {\n type: \"CharacterClass\",\n parent: parentNode,\n start,\n end: start,\n raw: \"\",\n negate,\n elements: [],\n }\n addAlternativeElement(parentNode, this._node)\n }\n\n onCharacterClassLeave(start: number, end: number, negate: boolean): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onCharacterClassRange(\n start: number,\n end: number,\n min: number,\n max: number,\n ): void {\n const parentNode = this._node\n if (parentNode.type !== \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n // Replace the last three elements.\n const elements = parentNode.elements\n const rightNode = elements.pop() as Character\n elements.pop() // hyphen\n const leftNode = elements.pop() as Character\n const node: CharacterClassRange = {\n type: \"CharacterClassRange\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n min: leftNode,\n max: rightNode,\n }\n assert(leftNode != null && leftNode.type === \"Character\")\n assert(rightNode != null && rightNode.type === \"Character\")\n leftNode.parent = node\n rightNode.parent = node\n elements.push(node)\n }\n}\n\nexport namespace RegExpParser {\n /**\n * The options for RegExpParser construction.\n */\n export interface Options {\n /**\n * The flag to disable Annex B syntax. Default is `false`.\n */\n strict?: boolean\n\n /**\n * ECMAScript version. Default is `2018`.\n * - `2015` added `u` and `y` flags.\n * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,\n * and Unicode Property Escape.\n */\n ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018\n }\n}\n\nexport class RegExpParser {\n private _state: RegExpParserState\n private _validator: RegExpValidator\n\n /**\n * Initialize this parser.\n * @param options The options of parser.\n */\n constructor(options?: RegExpParser.Options) {\n this._state = new RegExpParserState(options)\n this._validator = new RegExpValidator(this._state)\n }\n\n /**\n * Parse a regular expression literal. E.g. \"/abc/g\"\n * @param source The source code to parse.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n * @returns The AST of the given regular expression.\n */\n parseLiteral(\n source: string,\n start: number = 0,\n end: number = source.length,\n ): RegExpLiteral {\n this._state.source = source\n this._validator.validateLiteral(source, start, end)\n const pattern = this._state.pattern\n const flags = this._state.flags\n const literal: RegExpLiteral = {\n type: \"RegExpLiteral\",\n parent: null,\n start,\n end,\n raw: source,\n pattern,\n flags,\n }\n pattern.parent = literal\n flags.parent = literal\n return literal\n }\n\n /**\n * Parse a regular expression flags. E.g. \"gim\"\n * @param source The source code to parse.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n * @returns The AST of the given flags.\n */\n parseFlags(\n source: string,\n start: number = 0,\n end: number = source.length,\n ): Flags {\n this._state.source = source\n this._validator.validateFlags(source, start, end)\n return this._state.flags\n }\n\n /**\n * Parse a regular expression pattern. E.g. \"abc\"\n * @param source The source code to parse.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n * @param uFlag The flag to set unicode mode.\n * @returns The AST of the given pattern.\n */\n parsePattern(\n source: string,\n start: number = 0,\n end: number = source.length,\n uFlag: boolean = false,\n ): Pattern {\n this._state.source = source\n this._validator.validatePattern(source, start, end, uFlag)\n return this._state.pattern\n }\n}\n","import * as AST from \"./ast\"\nimport { RegExpParser } from \"./parser\"\nimport { RegExpValidator } from \"./validator\"\n\nexport { AST, RegExpParser, RegExpValidator }\n\n/**\n * Parse a given regular expression literal then make AST object.\n * @param source The source code to parse.\n * @param options The options to parse.\n * @returns The AST of the regular expression.\n */\nexport function parseRegExpLiteral(\n source: string,\n options?: RegExpParser.Options,\n): AST.RegExpLiteral {\n return new RegExpParser(options).parseLiteral(source)\n}\n\n/**\n * Validate a given regular expression literal.\n * @param source The source code to validate.\n * @param options The options to validate.\n */\nexport function validateRegExpLiteral(\n source: string,\n options?: RegExpValidator.Options,\n): void {\n return new RegExpValidator(options).validateLiteral(source)\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js.map","sources":["src/util.ts","src/reader.ts","src/regexp-syntax-error.ts","src/unicode/ids.ts","src/unicode/property-data.ts","src/unicode/index.ts","src/validator.ts","src/parser.ts","src/index.ts"],"sourcesContent":["export function assert(condition: boolean, message?: string): void {\n if (!condition) {\n throw new Error(message || \"AssertionError\")\n }\n}\n\nexport function last(xs: T[]): T | undefined {\n return xs.length === 0 ? undefined : xs[xs.length - 1]\n}\n","const legacyImpl = {\n at(s: string, end: number, i: number): number {\n return i < end ? s.charCodeAt(i) : -1\n },\n width(c: number): number {\n return 1\n },\n}\nconst unicodeImpl = {\n at(s: string, end: number, i: number): number {\n return i < end ? s.codePointAt(i)! : -1\n },\n width(c: number): number {\n return c > 0xffff ? 2 : 1\n },\n}\n\nexport class Reader {\n private _impl = legacyImpl\n private _s: string = \"\"\n private _i: number = 0\n private _end: number = 0\n private _cp1: number = -1\n private _w1: number = 1\n private _cp2: number = -1\n private _w2: number = 1\n private _cp3: number = -1\n private _w3: number = 1\n private _cp4: number = -1\n\n get source(): string {\n return this._s\n }\n\n get index(): number {\n return this._i\n }\n\n get currentCodePoint(): number {\n return this._cp1\n }\n\n get nextCodePoint(): number {\n return this._cp2\n }\n\n get nextCodePoint2(): number {\n return this._cp3\n }\n\n get nextCodePoint3(): number {\n return this._cp4\n }\n\n reset(source: string, start: number, end: number, uFlag: boolean): void {\n this._impl = uFlag ? unicodeImpl : legacyImpl\n this._s = source\n this._end = end\n this.rewind(start)\n }\n\n rewind(index: number): void {\n const impl = this._impl\n this._i = index\n this._cp1 = impl.at(this._s, this._end, index)\n this._w1 = impl.width(this._cp1)\n this._cp2 = impl.at(this._s, this._end, index + this._w1)\n this._w2 = impl.width(this._cp2)\n this._cp3 = impl.at(this._s, this._end, index + this._w1 + this._w2)\n this._w3 = impl.width(this._cp3)\n this._cp4 = impl.at(\n this._s,\n this._end,\n index + this._w1 + this._w2 + this._w3,\n )\n }\n\n advance(): void {\n if (this._cp1 !== -1) {\n const impl = this._impl\n this._i += this._w1\n this._cp1 = this._cp2\n this._w1 = this._w2\n this._cp2 = this._cp3\n this._w2 = impl.width(this._cp2)\n this._cp3 = this._cp4\n this._w3 = impl.width(this._cp3)\n this._cp4 = impl.at(\n this._s,\n this._end,\n this._i + this._w1 + this._w2 + this._w3,\n )\n }\n }\n\n eat(cp: number): boolean {\n if (this._cp1 === cp) {\n this.advance()\n return true\n }\n return false\n }\n\n eat2(cp1: number, cp2: number): boolean {\n if (this._cp1 === cp1 && this._cp2 === cp2) {\n this.advance()\n this.advance()\n return true\n }\n return false\n }\n\n eat3(cp1: number, cp2: number, cp3: number): boolean {\n if (this._cp1 === cp1 && this._cp2 === cp2 && this._cp3 === cp3) {\n this.advance()\n this.advance()\n this.advance()\n return true\n }\n return false\n }\n}\n","export class RegExpSyntaxError extends SyntaxError {\n public index: number\n constructor(\n source: string,\n uFlag: boolean,\n index: number,\n message: string,\n ) {\n /*eslint-disable no-param-reassign */\n if (source) {\n if (source[0] !== \"/\") {\n source = `/${source}/${uFlag ? \"u\" : \"\"}`\n }\n source = `: ${source}`\n }\n /*eslint-enable no-param-reassign */\n\n super(`Invalid regular expression${source}: ${message}`)\n this.index = index\n }\n}\n","/* Generated from DerivedCoreProperties-10.0.0.txt */\nexport function isIdStart(cp: number): boolean {\n if (cp < 0x41) return false\n if (cp < 0x5b) return true\n if (cp < 0x61) return false\n if (cp < 0x7b) return true\n return isLargeIdStart(cp)\n}\nexport function isIdContinue(cp: number): boolean {\n if (cp < 0x30) return false\n if (cp < 0x3a) return true\n if (cp < 0x41) return false\n if (cp < 0x5b) return true\n if (cp === 0x5f) return true\n if (cp < 0x61) return false\n if (cp < 0x7b) return true\n return isLargeIdStart(cp) || isLargeIdContinue(cp)\n}\n\nfunction isLargeIdStart(cp: number): boolean {\n if (cp < 0x303c) {\n if (cp < 0xeaa) {\n if (cp < 0xa2a) {\n if (cp < 0x6d5) {\n if (cp < 0x37a) {\n if (cp < 0x294) {\n if (cp < 0xf8) {\n if (cp === 0xaa) return true\n if (cp === 0xb5) return true\n if (cp === 0xba) return true\n if (cp < 0xc0) return false\n if (cp < 0xd7) return true\n if (cp < 0xd8) return false\n if (cp < 0xf7) return true\n return false\n }\n if (cp < 0x1bb) return true\n if (cp === 0x1bb) return true\n if (cp < 0x1bc) return false\n if (cp < 0x1c0) return true\n if (cp < 0x1c0) return false\n if (cp < 0x1c4) return true\n if (cp < 0x1c4) return false\n if (cp < 0x294) return true\n return false\n }\n if (cp < 0x2ec) {\n if (cp === 0x294) return true\n if (cp < 0x295) return false\n if (cp < 0x2b0) return true\n if (cp < 0x2b0) return false\n if (cp < 0x2c2) return true\n if (cp < 0x2c6) return false\n if (cp < 0x2d2) return true\n if (cp < 0x2e0) return false\n if (cp < 0x2e5) return true\n return false\n }\n if (cp === 0x2ec) return true\n if (cp === 0x2ee) return true\n if (cp < 0x370) return false\n if (cp < 0x374) return true\n if (cp === 0x374) return true\n if (cp < 0x376) return false\n if (cp < 0x378) return true\n return false\n }\n if (cp < 0x531) {\n if (cp < 0x38c) {\n if (cp === 0x37a) return true\n if (cp < 0x37b) return false\n if (cp < 0x37e) return true\n if (cp === 0x37f) return true\n if (cp === 0x386) return true\n if (cp < 0x388) return false\n if (cp < 0x38b) return true\n return false\n }\n if (cp === 0x38c) return true\n if (cp < 0x38e) return false\n if (cp < 0x3a2) return true\n if (cp < 0x3a3) return false\n if (cp < 0x3f6) return true\n if (cp < 0x3f7) return false\n if (cp < 0x482) return true\n if (cp < 0x48a) return false\n if (cp < 0x530) return true\n return false\n }\n if (cp < 0x620) {\n if (cp < 0x531) return false\n if (cp < 0x557) return true\n if (cp === 0x559) return true\n if (cp < 0x561) return false\n if (cp < 0x588) return true\n if (cp < 0x5d0) return false\n if (cp < 0x5eb) return true\n if (cp < 0x5f0) return false\n if (cp < 0x5f3) return true\n return false\n }\n if (cp < 0x640) return true\n if (cp === 0x640) return true\n if (cp < 0x641) return false\n if (cp < 0x64b) return true\n if (cp < 0x66e) return false\n if (cp < 0x670) return true\n if (cp < 0x671) return false\n if (cp < 0x6d4) return true\n return false\n }\n if (cp < 0x904) {\n if (cp < 0x7f4) {\n if (cp < 0x710) {\n if (cp === 0x6d5) return true\n if (cp < 0x6e5) return false\n if (cp < 0x6e7) return true\n if (cp < 0x6ee) return false\n if (cp < 0x6f0) return true\n if (cp < 0x6fa) return false\n if (cp < 0x6fd) return true\n if (cp === 0x6ff) return true\n return false\n }\n if (cp === 0x710) return true\n if (cp < 0x712) return false\n if (cp < 0x730) return true\n if (cp < 0x74d) return false\n if (cp < 0x7a6) return true\n if (cp === 0x7b1) return true\n if (cp < 0x7ca) return false\n if (cp < 0x7eb) return true\n return false\n }\n if (cp < 0x828) {\n if (cp < 0x7f4) return false\n if (cp < 0x7f6) return true\n if (cp === 0x7fa) return true\n if (cp < 0x800) return false\n if (cp < 0x816) return true\n if (cp === 0x81a) return true\n if (cp === 0x824) return true\n return false\n }\n if (cp === 0x828) return true\n if (cp < 0x840) return false\n if (cp < 0x859) return true\n if (cp < 0x860) return false\n if (cp < 0x86b) return true\n if (cp < 0x8a0) return false\n if (cp < 0x8b5) return true\n if (cp < 0x8b6) return false\n if (cp < 0x8be) return true\n return false\n }\n if (cp < 0x9b2) {\n if (cp < 0x972) {\n if (cp < 0x904) return false\n if (cp < 0x93a) return true\n if (cp === 0x93d) return true\n if (cp === 0x950) return true\n if (cp < 0x958) return false\n if (cp < 0x962) return true\n if (cp === 0x971) return true\n return false\n }\n if (cp < 0x981) return true\n if (cp < 0x985) return false\n if (cp < 0x98d) return true\n if (cp < 0x98f) return false\n if (cp < 0x991) return true\n if (cp < 0x993) return false\n if (cp < 0x9a9) return true\n if (cp < 0x9aa) return false\n if (cp < 0x9b1) return true\n return false\n }\n if (cp < 0x9df) {\n if (cp === 0x9b2) return true\n if (cp < 0x9b6) return false\n if (cp < 0x9ba) return true\n if (cp === 0x9bd) return true\n if (cp === 0x9ce) return true\n if (cp < 0x9dc) return false\n if (cp < 0x9de) return true\n return false\n }\n if (cp < 0x9e2) return true\n if (cp < 0x9f0) return false\n if (cp < 0x9f2) return true\n if (cp === 0x9fc) return true\n if (cp < 0xa05) return false\n if (cp < 0xa0b) return true\n if (cp < 0xa0f) return false\n if (cp < 0xa11) return true\n if (cp < 0xa13) return false\n if (cp < 0xa29) return true\n return false\n }\n if (cp < 0xc2a) {\n if (cp < 0xb2a) {\n if (cp < 0xaaa) {\n if (cp < 0xa5e) {\n if (cp < 0xa2a) return false\n if (cp < 0xa31) return true\n if (cp < 0xa32) return false\n if (cp < 0xa34) return true\n if (cp < 0xa35) return false\n if (cp < 0xa37) return true\n if (cp < 0xa38) return false\n if (cp < 0xa3a) return true\n if (cp < 0xa59) return false\n if (cp < 0xa5d) return true\n return false\n }\n if (cp === 0xa5e) return true\n if (cp < 0xa72) return false\n if (cp < 0xa75) return true\n if (cp < 0xa85) return false\n if (cp < 0xa8e) return true\n if (cp < 0xa8f) return false\n if (cp < 0xa92) return true\n if (cp < 0xa93) return false\n if (cp < 0xaa9) return true\n return false\n }\n if (cp < 0xae0) {\n if (cp < 0xaaa) return false\n if (cp < 0xab1) return true\n if (cp < 0xab2) return false\n if (cp < 0xab4) return true\n if (cp < 0xab5) return false\n if (cp < 0xaba) return true\n if (cp === 0xabd) return true\n if (cp === 0xad0) return true\n return false\n }\n if (cp < 0xae2) return true\n if (cp === 0xaf9) return true\n if (cp < 0xb05) return false\n if (cp < 0xb0d) return true\n if (cp < 0xb0f) return false\n if (cp < 0xb11) return true\n if (cp < 0xb13) return false\n if (cp < 0xb29) return true\n return false\n }\n if (cp < 0xb92) {\n if (cp < 0xb5f) {\n if (cp < 0xb2a) return false\n if (cp < 0xb31) return true\n if (cp < 0xb32) return false\n if (cp < 0xb34) return true\n if (cp < 0xb35) return false\n if (cp < 0xb3a) return true\n if (cp === 0xb3d) return true\n if (cp < 0xb5c) return false\n if (cp < 0xb5e) return true\n return false\n }\n if (cp < 0xb62) return true\n if (cp === 0xb71) return true\n if (cp === 0xb83) return true\n if (cp < 0xb85) return false\n if (cp < 0xb8b) return true\n if (cp < 0xb8e) return false\n if (cp < 0xb91) return true\n return false\n }\n if (cp < 0xba8) {\n if (cp < 0xb92) return false\n if (cp < 0xb96) return true\n if (cp < 0xb99) return false\n if (cp < 0xb9b) return true\n if (cp === 0xb9c) return true\n if (cp < 0xb9e) return false\n if (cp < 0xba0) return true\n if (cp < 0xba3) return false\n if (cp < 0xba5) return true\n return false\n }\n if (cp < 0xbab) return true\n if (cp < 0xbae) return false\n if (cp < 0xbba) return true\n if (cp === 0xbd0) return true\n if (cp < 0xc05) return false\n if (cp < 0xc0d) return true\n if (cp < 0xc0e) return false\n if (cp < 0xc11) return true\n if (cp < 0xc12) return false\n if (cp < 0xc29) return true\n return false\n }\n if (cp < 0xd5f) {\n if (cp < 0xcbd) {\n if (cp < 0xc85) {\n if (cp < 0xc2a) return false\n if (cp < 0xc3a) return true\n if (cp === 0xc3d) return true\n if (cp < 0xc58) return false\n if (cp < 0xc5b) return true\n if (cp < 0xc60) return false\n if (cp < 0xc62) return true\n if (cp === 0xc80) return true\n return false\n }\n if (cp < 0xc8d) return true\n if (cp < 0xc8e) return false\n if (cp < 0xc91) return true\n if (cp < 0xc92) return false\n if (cp < 0xca9) return true\n if (cp < 0xcaa) return false\n if (cp < 0xcb4) return true\n if (cp < 0xcb5) return false\n if (cp < 0xcba) return true\n return false\n }\n if (cp < 0xd0e) {\n if (cp === 0xcbd) return true\n if (cp === 0xcde) return true\n if (cp < 0xce0) return false\n if (cp < 0xce2) return true\n if (cp < 0xcf1) return false\n if (cp < 0xcf3) return true\n if (cp < 0xd05) return false\n if (cp < 0xd0d) return true\n return false\n }\n if (cp < 0xd11) return true\n if (cp < 0xd12) return false\n if (cp < 0xd3b) return true\n if (cp === 0xd3d) return true\n if (cp === 0xd4e) return true\n if (cp < 0xd54) return false\n if (cp < 0xd57) return true\n return false\n }\n if (cp < 0xe46) {\n if (cp < 0xdbd) {\n if (cp < 0xd5f) return false\n if (cp < 0xd62) return true\n if (cp < 0xd7a) return false\n if (cp < 0xd80) return true\n if (cp < 0xd85) return false\n if (cp < 0xd97) return true\n if (cp < 0xd9a) return false\n if (cp < 0xdb2) return true\n if (cp < 0xdb3) return false\n if (cp < 0xdbc) return true\n return false\n }\n if (cp === 0xdbd) return true\n if (cp < 0xdc0) return false\n if (cp < 0xdc7) return true\n if (cp < 0xe01) return false\n if (cp < 0xe31) return true\n if (cp < 0xe32) return false\n if (cp < 0xe34) return true\n if (cp < 0xe40) return false\n if (cp < 0xe46) return true\n return false\n }\n if (cp < 0xe8d) {\n if (cp === 0xe46) return true\n if (cp < 0xe81) return false\n if (cp < 0xe83) return true\n if (cp === 0xe84) return true\n if (cp < 0xe87) return false\n if (cp < 0xe89) return true\n if (cp === 0xe8a) return true\n return false\n }\n if (cp === 0xe8d) return true\n if (cp < 0xe94) return false\n if (cp < 0xe98) return true\n if (cp < 0xe99) return false\n if (cp < 0xea0) return true\n if (cp < 0xea1) return false\n if (cp < 0xea4) return true\n if (cp === 0xea5) return true\n if (cp === 0xea7) return true\n return false\n }\n if (cp < 0x1c5a) {\n if (cp < 0x1380) {\n if (cp < 0x10a0) {\n if (cp < 0xf88) {\n if (cp < 0xec6) {\n if (cp < 0xeaa) return false\n if (cp < 0xeac) return true\n if (cp < 0xead) return false\n if (cp < 0xeb1) return true\n if (cp < 0xeb2) return false\n if (cp < 0xeb4) return true\n if (cp === 0xebd) return true\n if (cp < 0xec0) return false\n if (cp < 0xec5) return true\n return false\n }\n if (cp === 0xec6) return true\n if (cp < 0xedc) return false\n if (cp < 0xee0) return true\n if (cp === 0xf00) return true\n if (cp < 0xf40) return false\n if (cp < 0xf48) return true\n if (cp < 0xf49) return false\n if (cp < 0xf6d) return true\n return false\n }\n if (cp < 0x1061) {\n if (cp < 0xf88) return false\n if (cp < 0xf8d) return true\n if (cp < 0x1000) return false\n if (cp < 0x102b) return true\n if (cp === 0x103f) return true\n if (cp < 0x1050) return false\n if (cp < 0x1056) return true\n if (cp < 0x105a) return false\n if (cp < 0x105e) return true\n return false\n }\n if (cp === 0x1061) return true\n if (cp < 0x1065) return false\n if (cp < 0x1067) return true\n if (cp < 0x106e) return false\n if (cp < 0x1071) return true\n if (cp < 0x1075) return false\n if (cp < 0x1082) return true\n if (cp === 0x108e) return true\n return false\n }\n if (cp < 0x1260) {\n if (cp < 0x10fd) {\n if (cp < 0x10a0) return false\n if (cp < 0x10c6) return true\n if (cp === 0x10c7) return true\n if (cp === 0x10cd) return true\n if (cp < 0x10d0) return false\n if (cp < 0x10fb) return true\n if (cp === 0x10fc) return true\n return false\n }\n if (cp < 0x1249) return true\n if (cp < 0x124a) return false\n if (cp < 0x124e) return true\n if (cp < 0x1250) return false\n if (cp < 0x1257) return true\n if (cp === 0x1258) return true\n if (cp < 0x125a) return false\n if (cp < 0x125e) return true\n return false\n }\n if (cp < 0x12c0) {\n if (cp < 0x1260) return false\n if (cp < 0x1289) return true\n if (cp < 0x128a) return false\n if (cp < 0x128e) return true\n if (cp < 0x1290) return false\n if (cp < 0x12b1) return true\n if (cp < 0x12b2) return false\n if (cp < 0x12b6) return true\n if (cp < 0x12b8) return false\n if (cp < 0x12bf) return true\n return false\n }\n if (cp === 0x12c0) return true\n if (cp < 0x12c2) return false\n if (cp < 0x12c6) return true\n if (cp < 0x12c8) return false\n if (cp < 0x12d7) return true\n if (cp < 0x12d8) return false\n if (cp < 0x1311) return true\n if (cp < 0x1312) return false\n if (cp < 0x1316) return true\n if (cp < 0x1318) return false\n if (cp < 0x135b) return true\n return false\n }\n if (cp < 0x1844) {\n if (cp < 0x170e) {\n if (cp < 0x1681) {\n if (cp < 0x1380) return false\n if (cp < 0x1390) return true\n if (cp < 0x13a0) return false\n if (cp < 0x13f6) return true\n if (cp < 0x13f8) return false\n if (cp < 0x13fe) return true\n if (cp < 0x1401) return false\n if (cp < 0x166d) return true\n if (cp < 0x166f) return false\n if (cp < 0x1680) return true\n return false\n }\n if (cp < 0x169b) return true\n if (cp < 0x16a0) return false\n if (cp < 0x16eb) return true\n if (cp < 0x16ee) return false\n if (cp < 0x16f1) return true\n if (cp < 0x16f1) return false\n if (cp < 0x16f9) return true\n if (cp < 0x1700) return false\n if (cp < 0x170d) return true\n return false\n }\n if (cp < 0x1780) {\n if (cp < 0x170e) return false\n if (cp < 0x1712) return true\n if (cp < 0x1720) return false\n if (cp < 0x1732) return true\n if (cp < 0x1740) return false\n if (cp < 0x1752) return true\n if (cp < 0x1760) return false\n if (cp < 0x176d) return true\n if (cp < 0x176e) return false\n if (cp < 0x1771) return true\n return false\n }\n if (cp < 0x17b4) return true\n if (cp === 0x17d7) return true\n if (cp === 0x17dc) return true\n if (cp < 0x1820) return false\n if (cp < 0x1843) return true\n if (cp === 0x1843) return true\n return false\n }\n if (cp < 0x19b0) {\n if (cp < 0x18b0) {\n if (cp < 0x1844) return false\n if (cp < 0x1878) return true\n if (cp < 0x1880) return false\n if (cp < 0x1885) return true\n if (cp < 0x1885) return false\n if (cp < 0x1887) return true\n if (cp < 0x1887) return false\n if (cp < 0x18a9) return true\n if (cp === 0x18aa) return true\n return false\n }\n if (cp < 0x18f6) return true\n if (cp < 0x1900) return false\n if (cp < 0x191f) return true\n if (cp < 0x1950) return false\n if (cp < 0x196e) return true\n if (cp < 0x1970) return false\n if (cp < 0x1975) return true\n if (cp < 0x1980) return false\n if (cp < 0x19ac) return true\n return false\n }\n if (cp < 0x1b45) {\n if (cp < 0x19b0) return false\n if (cp < 0x19ca) return true\n if (cp < 0x1a00) return false\n if (cp < 0x1a17) return true\n if (cp < 0x1a20) return false\n if (cp < 0x1a55) return true\n if (cp === 0x1aa7) return true\n if (cp < 0x1b05) return false\n if (cp < 0x1b34) return true\n return false\n }\n if (cp < 0x1b4c) return true\n if (cp < 0x1b83) return false\n if (cp < 0x1ba1) return true\n if (cp < 0x1bae) return false\n if (cp < 0x1bb0) return true\n if (cp < 0x1bba) return false\n if (cp < 0x1be6) return true\n if (cp < 0x1c00) return false\n if (cp < 0x1c24) return true\n if (cp < 0x1c4d) return false\n if (cp < 0x1c50) return true\n return false\n }\n if (cp < 0x2126) {\n if (cp < 0x1f5f) {\n if (cp < 0x1d79) {\n if (cp < 0x1cf5) {\n if (cp < 0x1c5a) return false\n if (cp < 0x1c78) return true\n if (cp < 0x1c78) return false\n if (cp < 0x1c7e) return true\n if (cp < 0x1c80) return false\n if (cp < 0x1c89) return true\n if (cp < 0x1ce9) return false\n if (cp < 0x1ced) return true\n if (cp < 0x1cee) return false\n if (cp < 0x1cf2) return true\n return false\n }\n if (cp < 0x1cf7) return true\n if (cp < 0x1d00) return false\n if (cp < 0x1d2c) return true\n if (cp < 0x1d2c) return false\n if (cp < 0x1d6b) return true\n if (cp < 0x1d6b) return false\n if (cp < 0x1d78) return true\n if (cp === 0x1d78) return true\n return false\n }\n if (cp < 0x1f48) {\n if (cp < 0x1d79) return false\n if (cp < 0x1d9b) return true\n if (cp < 0x1d9b) return false\n if (cp < 0x1dc0) return true\n if (cp < 0x1e00) return false\n if (cp < 0x1f16) return true\n if (cp < 0x1f18) return false\n if (cp < 0x1f1e) return true\n if (cp < 0x1f20) return false\n if (cp < 0x1f46) return true\n return false\n }\n if (cp < 0x1f4e) return true\n if (cp < 0x1f50) return false\n if (cp < 0x1f58) return true\n if (cp === 0x1f59) return true\n if (cp === 0x1f5b) return true\n if (cp === 0x1f5d) return true\n return false\n }\n if (cp < 0x1ff6) {\n if (cp < 0x1fc6) {\n if (cp < 0x1f5f) return false\n if (cp < 0x1f7e) return true\n if (cp < 0x1f80) return false\n if (cp < 0x1fb5) return true\n if (cp < 0x1fb6) return false\n if (cp < 0x1fbd) return true\n if (cp === 0x1fbe) return true\n if (cp < 0x1fc2) return false\n if (cp < 0x1fc5) return true\n return false\n }\n if (cp < 0x1fcd) return true\n if (cp < 0x1fd0) return false\n if (cp < 0x1fd4) return true\n if (cp < 0x1fd6) return false\n if (cp < 0x1fdc) return true\n if (cp < 0x1fe0) return false\n if (cp < 0x1fed) return true\n if (cp < 0x1ff2) return false\n if (cp < 0x1ff5) return true\n return false\n }\n if (cp < 0x2107) {\n if (cp < 0x1ff6) return false\n if (cp < 0x1ffd) return true\n if (cp === 0x2071) return true\n if (cp === 0x207f) return true\n if (cp < 0x2090) return false\n if (cp < 0x209d) return true\n if (cp === 0x2102) return true\n return false\n }\n if (cp === 0x2107) return true\n if (cp < 0x210a) return false\n if (cp < 0x2114) return true\n if (cp === 0x2115) return true\n if (cp === 0x2118) return true\n if (cp < 0x2119) return false\n if (cp < 0x211e) return true\n if (cp === 0x2124) return true\n return false\n }\n if (cp < 0x2d00) {\n if (cp < 0x2160) {\n if (cp < 0x2135) {\n if (cp === 0x2126) return true\n if (cp === 0x2128) return true\n if (cp < 0x212a) return false\n if (cp < 0x212e) return true\n if (cp === 0x212e) return true\n if (cp < 0x212f) return false\n if (cp < 0x2135) return true\n return false\n }\n if (cp < 0x2139) return true\n if (cp === 0x2139) return true\n if (cp < 0x213c) return false\n if (cp < 0x2140) return true\n if (cp < 0x2145) return false\n if (cp < 0x214a) return true\n if (cp === 0x214e) return true\n return false\n }\n if (cp < 0x2c60) {\n if (cp < 0x2160) return false\n if (cp < 0x2183) return true\n if (cp < 0x2183) return false\n if (cp < 0x2185) return true\n if (cp < 0x2185) return false\n if (cp < 0x2189) return true\n if (cp < 0x2c00) return false\n if (cp < 0x2c2f) return true\n if (cp < 0x2c30) return false\n if (cp < 0x2c5f) return true\n return false\n }\n if (cp < 0x2c7c) return true\n if (cp < 0x2c7c) return false\n if (cp < 0x2c7e) return true\n if (cp < 0x2c7e) return false\n if (cp < 0x2ce5) return true\n if (cp < 0x2ceb) return false\n if (cp < 0x2cef) return true\n if (cp < 0x2cf2) return false\n if (cp < 0x2cf4) return true\n return false\n }\n if (cp < 0x2dc0) {\n if (cp < 0x2d80) {\n if (cp < 0x2d00) return false\n if (cp < 0x2d26) return true\n if (cp === 0x2d27) return true\n if (cp === 0x2d2d) return true\n if (cp < 0x2d30) return false\n if (cp < 0x2d68) return true\n if (cp === 0x2d6f) return true\n return false\n }\n if (cp < 0x2d97) return true\n if (cp < 0x2da0) return false\n if (cp < 0x2da7) return true\n if (cp < 0x2da8) return false\n if (cp < 0x2daf) return true\n if (cp < 0x2db0) return false\n if (cp < 0x2db7) return true\n if (cp < 0x2db8) return false\n if (cp < 0x2dbf) return true\n return false\n }\n if (cp < 0x3006) {\n if (cp < 0x2dc0) return false\n if (cp < 0x2dc7) return true\n if (cp < 0x2dc8) return false\n if (cp < 0x2dcf) return true\n if (cp < 0x2dd0) return false\n if (cp < 0x2dd7) return true\n if (cp < 0x2dd8) return false\n if (cp < 0x2ddf) return true\n if (cp === 0x3005) return true\n return false\n }\n if (cp === 0x3006) return true\n if (cp === 0x3007) return true\n if (cp < 0x3021) return false\n if (cp < 0x302a) return true\n if (cp < 0x3031) return false\n if (cp < 0x3036) return true\n if (cp < 0x3038) return false\n if (cp < 0x303b) return true\n if (cp === 0x303b) return true\n return false\n }\n if (cp < 0x10a10) {\n if (cp < 0xab28) {\n if (cp < 0xa7fa) {\n if (cp < 0xa60c) {\n if (cp < 0x31a0) {\n if (cp < 0x30a1) {\n if (cp === 0x303c) return true\n if (cp < 0x3041) return false\n if (cp < 0x3097) return true\n if (cp < 0x309b) return false\n if (cp < 0x309d) return true\n if (cp < 0x309d) return false\n if (cp < 0x309f) return true\n if (cp === 0x309f) return true\n return false\n }\n if (cp < 0x30fb) return true\n if (cp < 0x30fc) return false\n if (cp < 0x30ff) return true\n if (cp === 0x30ff) return true\n if (cp < 0x3105) return false\n if (cp < 0x312f) return true\n if (cp < 0x3131) return false\n if (cp < 0x318f) return true\n return false\n }\n if (cp < 0xa015) {\n if (cp < 0x31a0) return false\n if (cp < 0x31bb) return true\n if (cp < 0x31f0) return false\n if (cp < 0x3200) return true\n if (cp < 0x3400) return false\n if (cp < 0x4db6) return true\n if (cp < 0x4e00) return false\n if (cp < 0x9feb) return true\n if (cp < 0xa000) return false\n if (cp < 0xa015) return true\n return false\n }\n if (cp === 0xa015) return true\n if (cp < 0xa016) return false\n if (cp < 0xa48d) return true\n if (cp < 0xa4d0) return false\n if (cp < 0xa4f8) return true\n if (cp < 0xa4f8) return false\n if (cp < 0xa4fe) return true\n if (cp < 0xa500) return false\n if (cp < 0xa60c) return true\n return false\n }\n if (cp < 0xa717) {\n if (cp < 0xa67f) {\n if (cp === 0xa60c) return true\n if (cp < 0xa610) return false\n if (cp < 0xa620) return true\n if (cp < 0xa62a) return false\n if (cp < 0xa62c) return true\n if (cp < 0xa640) return false\n if (cp < 0xa66e) return true\n if (cp === 0xa66e) return true\n return false\n }\n if (cp === 0xa67f) return true\n if (cp < 0xa680) return false\n if (cp < 0xa69c) return true\n if (cp < 0xa69c) return false\n if (cp < 0xa69e) return true\n if (cp < 0xa6a0) return false\n if (cp < 0xa6e6) return true\n if (cp < 0xa6e6) return false\n if (cp < 0xa6f0) return true\n return false\n }\n if (cp < 0xa78b) {\n if (cp < 0xa717) return false\n if (cp < 0xa720) return true\n if (cp < 0xa722) return false\n if (cp < 0xa770) return true\n if (cp === 0xa770) return true\n if (cp < 0xa771) return false\n if (cp < 0xa788) return true\n if (cp === 0xa788) return true\n return false\n }\n if (cp < 0xa78f) return true\n if (cp === 0xa78f) return true\n if (cp < 0xa790) return false\n if (cp < 0xa7af) return true\n if (cp < 0xa7b0) return false\n if (cp < 0xa7b8) return true\n if (cp === 0xa7f7) return true\n if (cp < 0xa7f8) return false\n if (cp < 0xa7fa) return true\n return false\n }\n if (cp < 0xaa40) {\n if (cp < 0xa90a) {\n if (cp < 0xa840) {\n if (cp === 0xa7fa) return true\n if (cp < 0xa7fb) return false\n if (cp < 0xa802) return true\n if (cp < 0xa803) return false\n if (cp < 0xa806) return true\n if (cp < 0xa807) return false\n if (cp < 0xa80b) return true\n if (cp < 0xa80c) return false\n if (cp < 0xa823) return true\n return false\n }\n if (cp < 0xa874) return true\n if (cp < 0xa882) return false\n if (cp < 0xa8b4) return true\n if (cp < 0xa8f2) return false\n if (cp < 0xa8f8) return true\n if (cp === 0xa8fb) return true\n if (cp === 0xa8fd) return true\n return false\n }\n if (cp < 0xa9e0) {\n if (cp < 0xa90a) return false\n if (cp < 0xa926) return true\n if (cp < 0xa930) return false\n if (cp < 0xa947) return true\n if (cp < 0xa960) return false\n if (cp < 0xa97d) return true\n if (cp < 0xa984) return false\n if (cp < 0xa9b3) return true\n if (cp === 0xa9cf) return true\n return false\n }\n if (cp < 0xa9e5) return true\n if (cp === 0xa9e6) return true\n if (cp < 0xa9e7) return false\n if (cp < 0xa9f0) return true\n if (cp < 0xa9fa) return false\n if (cp < 0xa9ff) return true\n if (cp < 0xaa00) return false\n if (cp < 0xaa29) return true\n return false\n }\n if (cp < 0xaac0) {\n if (cp < 0xaa7a) {\n if (cp < 0xaa40) return false\n if (cp < 0xaa43) return true\n if (cp < 0xaa44) return false\n if (cp < 0xaa4c) return true\n if (cp < 0xaa60) return false\n if (cp < 0xaa70) return true\n if (cp === 0xaa70) return true\n if (cp < 0xaa71) return false\n if (cp < 0xaa77) return true\n return false\n }\n if (cp === 0xaa7a) return true\n if (cp < 0xaa7e) return false\n if (cp < 0xaab0) return true\n if (cp === 0xaab1) return true\n if (cp < 0xaab5) return false\n if (cp < 0xaab7) return true\n if (cp < 0xaab9) return false\n if (cp < 0xaabe) return true\n return false\n }\n if (cp < 0xaaf2) {\n if (cp === 0xaac0) return true\n if (cp === 0xaac2) return true\n if (cp < 0xaadb) return false\n if (cp < 0xaadd) return true\n if (cp === 0xaadd) return true\n if (cp < 0xaae0) return false\n if (cp < 0xaaeb) return true\n return false\n }\n if (cp === 0xaaf2) return true\n if (cp < 0xaaf3) return false\n if (cp < 0xaaf5) return true\n if (cp < 0xab01) return false\n if (cp < 0xab07) return true\n if (cp < 0xab09) return false\n if (cp < 0xab0f) return true\n if (cp < 0xab11) return false\n if (cp < 0xab17) return true\n if (cp < 0xab20) return false\n if (cp < 0xab27) return true\n return false\n }\n if (cp < 0x1003c) {\n if (cp < 0xfb46) {\n if (cp < 0xfa70) {\n if (cp < 0xabc0) {\n if (cp < 0xab28) return false\n if (cp < 0xab2f) return true\n if (cp < 0xab30) return false\n if (cp < 0xab5b) return true\n if (cp < 0xab5c) return false\n if (cp < 0xab60) return true\n if (cp < 0xab60) return false\n if (cp < 0xab66) return true\n if (cp < 0xab70) return false\n if (cp < 0xabc0) return true\n return false\n }\n if (cp < 0xabe3) return true\n if (cp < 0xac00) return false\n if (cp < 0xd7a4) return true\n if (cp < 0xd7b0) return false\n if (cp < 0xd7c7) return true\n if (cp < 0xd7cb) return false\n if (cp < 0xd7fc) return true\n if (cp < 0xf900) return false\n if (cp < 0xfa6e) return true\n return false\n }\n if (cp < 0xfb2a) {\n if (cp < 0xfa70) return false\n if (cp < 0xfada) return true\n if (cp < 0xfb00) return false\n if (cp < 0xfb07) return true\n if (cp < 0xfb13) return false\n if (cp < 0xfb18) return true\n if (cp === 0xfb1d) return true\n if (cp < 0xfb1f) return false\n if (cp < 0xfb29) return true\n return false\n }\n if (cp < 0xfb37) return true\n if (cp < 0xfb38) return false\n if (cp < 0xfb3d) return true\n if (cp === 0xfb3e) return true\n if (cp < 0xfb40) return false\n if (cp < 0xfb42) return true\n if (cp < 0xfb43) return false\n if (cp < 0xfb45) return true\n return false\n }\n if (cp < 0xff70) {\n if (cp < 0xfe70) {\n if (cp < 0xfb46) return false\n if (cp < 0xfbb2) return true\n if (cp < 0xfbd3) return false\n if (cp < 0xfd3e) return true\n if (cp < 0xfd50) return false\n if (cp < 0xfd90) return true\n if (cp < 0xfd92) return false\n if (cp < 0xfdc8) return true\n if (cp < 0xfdf0) return false\n if (cp < 0xfdfc) return true\n return false\n }\n if (cp < 0xfe75) return true\n if (cp < 0xfe76) return false\n if (cp < 0xfefd) return true\n if (cp < 0xff21) return false\n if (cp < 0xff3b) return true\n if (cp < 0xff41) return false\n if (cp < 0xff5b) return true\n if (cp < 0xff66) return false\n if (cp < 0xff70) return true\n return false\n }\n if (cp < 0xffca) {\n if (cp === 0xff70) return true\n if (cp < 0xff71) return false\n if (cp < 0xff9e) return true\n if (cp < 0xff9e) return false\n if (cp < 0xffa0) return true\n if (cp < 0xffa0) return false\n if (cp < 0xffbf) return true\n if (cp < 0xffc2) return false\n if (cp < 0xffc8) return true\n return false\n }\n if (cp < 0xffd0) return true\n if (cp < 0xffd2) return false\n if (cp < 0xffd8) return true\n if (cp < 0xffda) return false\n if (cp < 0xffdd) return true\n if (cp < 0x10000) return false\n if (cp < 0x1000c) return true\n if (cp < 0x1000d) return false\n if (cp < 0x10027) return true\n if (cp < 0x10028) return false\n if (cp < 0x1003b) return true\n return false\n }\n if (cp < 0x104d8) {\n if (cp < 0x10342) {\n if (cp < 0x10280) {\n if (cp < 0x1003c) return false\n if (cp < 0x1003e) return true\n if (cp < 0x1003f) return false\n if (cp < 0x1004e) return true\n if (cp < 0x10050) return false\n if (cp < 0x1005e) return true\n if (cp < 0x10080) return false\n if (cp < 0x100fb) return true\n if (cp < 0x10140) return false\n if (cp < 0x10175) return true\n return false\n }\n if (cp < 0x1029d) return true\n if (cp < 0x102a0) return false\n if (cp < 0x102d1) return true\n if (cp < 0x10300) return false\n if (cp < 0x10320) return true\n if (cp < 0x1032d) return false\n if (cp < 0x10341) return true\n if (cp === 0x10341) return true\n return false\n }\n if (cp < 0x103c8) {\n if (cp < 0x10342) return false\n if (cp < 0x1034a) return true\n if (cp === 0x1034a) return true\n if (cp < 0x10350) return false\n if (cp < 0x10376) return true\n if (cp < 0x10380) return false\n if (cp < 0x1039e) return true\n if (cp < 0x103a0) return false\n if (cp < 0x103c4) return true\n return false\n }\n if (cp < 0x103d0) return true\n if (cp < 0x103d1) return false\n if (cp < 0x103d6) return true\n if (cp < 0x10400) return false\n if (cp < 0x10450) return true\n if (cp < 0x10450) return false\n if (cp < 0x1049e) return true\n if (cp < 0x104b0) return false\n if (cp < 0x104d4) return true\n return false\n }\n if (cp < 0x1083c) {\n if (cp < 0x10760) {\n if (cp < 0x104d8) return false\n if (cp < 0x104fc) return true\n if (cp < 0x10500) return false\n if (cp < 0x10528) return true\n if (cp < 0x10530) return false\n if (cp < 0x10564) return true\n if (cp < 0x10600) return false\n if (cp < 0x10737) return true\n if (cp < 0x10740) return false\n if (cp < 0x10756) return true\n return false\n }\n if (cp < 0x10768) return true\n if (cp < 0x10800) return false\n if (cp < 0x10806) return true\n if (cp === 0x10808) return true\n if (cp < 0x1080a) return false\n if (cp < 0x10836) return true\n if (cp < 0x10837) return false\n if (cp < 0x10839) return true\n return false\n }\n if (cp < 0x108f4) {\n if (cp === 0x1083c) return true\n if (cp < 0x1083f) return false\n if (cp < 0x10856) return true\n if (cp < 0x10860) return false\n if (cp < 0x10877) return true\n if (cp < 0x10880) return false\n if (cp < 0x1089f) return true\n if (cp < 0x108e0) return false\n if (cp < 0x108f3) return true\n return false\n }\n if (cp < 0x108f6) return true\n if (cp < 0x10900) return false\n if (cp < 0x10916) return true\n if (cp < 0x10920) return false\n if (cp < 0x1093a) return true\n if (cp < 0x10980) return false\n if (cp < 0x109b8) return true\n if (cp < 0x109be) return false\n if (cp < 0x109c0) return true\n if (cp === 0x10a00) return true\n return false\n }\n if (cp < 0x16f50) {\n if (cp < 0x11400) {\n if (cp < 0x11183) {\n if (cp < 0x10b80) {\n if (cp < 0x10ac0) {\n if (cp < 0x10a10) return false\n if (cp < 0x10a14) return true\n if (cp < 0x10a15) return false\n if (cp < 0x10a18) return true\n if (cp < 0x10a19) return false\n if (cp < 0x10a34) return true\n if (cp < 0x10a60) return false\n if (cp < 0x10a7d) return true\n if (cp < 0x10a80) return false\n if (cp < 0x10a9d) return true\n return false\n }\n if (cp < 0x10ac8) return true\n if (cp < 0x10ac9) return false\n if (cp < 0x10ae5) return true\n if (cp < 0x10b00) return false\n if (cp < 0x10b36) return true\n if (cp < 0x10b40) return false\n if (cp < 0x10b56) return true\n if (cp < 0x10b60) return false\n if (cp < 0x10b73) return true\n return false\n }\n if (cp < 0x11083) {\n if (cp < 0x10b80) return false\n if (cp < 0x10b92) return true\n if (cp < 0x10c00) return false\n if (cp < 0x10c49) return true\n if (cp < 0x10c80) return false\n if (cp < 0x10cb3) return true\n if (cp < 0x10cc0) return false\n if (cp < 0x10cf3) return true\n if (cp < 0x11003) return false\n if (cp < 0x11038) return true\n return false\n }\n if (cp < 0x110b0) return true\n if (cp < 0x110d0) return false\n if (cp < 0x110e9) return true\n if (cp < 0x11103) return false\n if (cp < 0x11127) return true\n if (cp < 0x11150) return false\n if (cp < 0x11173) return true\n if (cp === 0x11176) return true\n return false\n }\n if (cp < 0x1129f) {\n if (cp < 0x11213) {\n if (cp < 0x11183) return false\n if (cp < 0x111b3) return true\n if (cp < 0x111c1) return false\n if (cp < 0x111c5) return true\n if (cp === 0x111da) return true\n if (cp === 0x111dc) return true\n if (cp < 0x11200) return false\n if (cp < 0x11212) return true\n return false\n }\n if (cp < 0x1122c) return true\n if (cp < 0x11280) return false\n if (cp < 0x11287) return true\n if (cp === 0x11288) return true\n if (cp < 0x1128a) return false\n if (cp < 0x1128e) return true\n if (cp < 0x1128f) return false\n if (cp < 0x1129e) return true\n return false\n }\n if (cp < 0x1132a) {\n if (cp < 0x1129f) return false\n if (cp < 0x112a9) return true\n if (cp < 0x112b0) return false\n if (cp < 0x112df) return true\n if (cp < 0x11305) return false\n if (cp < 0x1130d) return true\n if (cp < 0x1130f) return false\n if (cp < 0x11311) return true\n if (cp < 0x11313) return false\n if (cp < 0x11329) return true\n return false\n }\n if (cp < 0x11331) return true\n if (cp < 0x11332) return false\n if (cp < 0x11334) return true\n if (cp < 0x11335) return false\n if (cp < 0x1133a) return true\n if (cp === 0x1133d) return true\n if (cp === 0x11350) return true\n if (cp < 0x1135d) return false\n if (cp < 0x11362) return true\n return false\n }\n if (cp < 0x11c00) {\n if (cp < 0x11700) {\n if (cp < 0x11580) {\n if (cp < 0x11400) return false\n if (cp < 0x11435) return true\n if (cp < 0x11447) return false\n if (cp < 0x1144b) return true\n if (cp < 0x11480) return false\n if (cp < 0x114b0) return true\n if (cp < 0x114c4) return false\n if (cp < 0x114c6) return true\n if (cp === 0x114c7) return true\n return false\n }\n if (cp < 0x115af) return true\n if (cp < 0x115d8) return false\n if (cp < 0x115dc) return true\n if (cp < 0x11600) return false\n if (cp < 0x11630) return true\n if (cp === 0x11644) return true\n if (cp < 0x11680) return false\n if (cp < 0x116ab) return true\n return false\n }\n if (cp < 0x11a3a) {\n if (cp < 0x11700) return false\n if (cp < 0x1171a) return true\n if (cp < 0x118a0) return false\n if (cp < 0x118e0) return true\n if (cp === 0x118ff) return true\n if (cp === 0x11a00) return true\n if (cp < 0x11a0b) return false\n if (cp < 0x11a33) return true\n return false\n }\n if (cp === 0x11a3a) return true\n if (cp === 0x11a50) return true\n if (cp < 0x11a5c) return false\n if (cp < 0x11a84) return true\n if (cp < 0x11a86) return false\n if (cp < 0x11a8a) return true\n if (cp < 0x11ac0) return false\n if (cp < 0x11af9) return true\n return false\n }\n if (cp < 0x12480) {\n if (cp < 0x11d08) {\n if (cp < 0x11c00) return false\n if (cp < 0x11c09) return true\n if (cp < 0x11c0a) return false\n if (cp < 0x11c2f) return true\n if (cp === 0x11c40) return true\n if (cp < 0x11c72) return false\n if (cp < 0x11c90) return true\n if (cp < 0x11d00) return false\n if (cp < 0x11d07) return true\n return false\n }\n if (cp < 0x11d0a) return true\n if (cp < 0x11d0b) return false\n if (cp < 0x11d31) return true\n if (cp === 0x11d46) return true\n if (cp < 0x12000) return false\n if (cp < 0x1239a) return true\n if (cp < 0x12400) return false\n if (cp < 0x1246f) return true\n return false\n }\n if (cp < 0x16ad0) {\n if (cp < 0x12480) return false\n if (cp < 0x12544) return true\n if (cp < 0x13000) return false\n if (cp < 0x1342f) return true\n if (cp < 0x14400) return false\n if (cp < 0x14647) return true\n if (cp < 0x16800) return false\n if (cp < 0x16a39) return true\n if (cp < 0x16a40) return false\n if (cp < 0x16a5f) return true\n return false\n }\n if (cp < 0x16aee) return true\n if (cp < 0x16b00) return false\n if (cp < 0x16b30) return true\n if (cp < 0x16b40) return false\n if (cp < 0x16b44) return true\n if (cp < 0x16b63) return false\n if (cp < 0x16b78) return true\n if (cp < 0x16b7d) return false\n if (cp < 0x16b90) return true\n if (cp < 0x16f00) return false\n if (cp < 0x16f45) return true\n return false\n }\n if (cp < 0x1e800) {\n if (cp < 0x1d4c5) {\n if (cp < 0x1bc90) {\n if (cp < 0x1b000) {\n if (cp === 0x16f50) return true\n if (cp < 0x16f93) return false\n if (cp < 0x16fa0) return true\n if (cp < 0x16fe0) return false\n if (cp < 0x16fe2) return true\n if (cp < 0x17000) return false\n if (cp < 0x187ed) return true\n if (cp < 0x18800) return false\n if (cp < 0x18af3) return true\n return false\n }\n if (cp < 0x1b11f) return true\n if (cp < 0x1b170) return false\n if (cp < 0x1b2fc) return true\n if (cp < 0x1bc00) return false\n if (cp < 0x1bc6b) return true\n if (cp < 0x1bc70) return false\n if (cp < 0x1bc7d) return true\n if (cp < 0x1bc80) return false\n if (cp < 0x1bc89) return true\n return false\n }\n if (cp < 0x1d4a5) {\n if (cp < 0x1bc90) return false\n if (cp < 0x1bc9a) return true\n if (cp < 0x1d400) return false\n if (cp < 0x1d455) return true\n if (cp < 0x1d456) return false\n if (cp < 0x1d49d) return true\n if (cp < 0x1d49e) return false\n if (cp < 0x1d4a0) return true\n if (cp === 0x1d4a2) return true\n return false\n }\n if (cp < 0x1d4a7) return true\n if (cp < 0x1d4a9) return false\n if (cp < 0x1d4ad) return true\n if (cp < 0x1d4ae) return false\n if (cp < 0x1d4ba) return true\n if (cp === 0x1d4bb) return true\n if (cp < 0x1d4bd) return false\n if (cp < 0x1d4c4) return true\n return false\n }\n if (cp < 0x1d6a8) {\n if (cp < 0x1d53b) {\n if (cp < 0x1d4c5) return false\n if (cp < 0x1d506) return true\n if (cp < 0x1d507) return false\n if (cp < 0x1d50b) return true\n if (cp < 0x1d50d) return false\n if (cp < 0x1d515) return true\n if (cp < 0x1d516) return false\n if (cp < 0x1d51d) return true\n if (cp < 0x1d51e) return false\n if (cp < 0x1d53a) return true\n return false\n }\n if (cp < 0x1d53f) return true\n if (cp < 0x1d540) return false\n if (cp < 0x1d545) return true\n if (cp === 0x1d546) return true\n if (cp < 0x1d54a) return false\n if (cp < 0x1d551) return true\n if (cp < 0x1d552) return false\n if (cp < 0x1d6a6) return true\n return false\n }\n if (cp < 0x1d736) {\n if (cp < 0x1d6a8) return false\n if (cp < 0x1d6c1) return true\n if (cp < 0x1d6c2) return false\n if (cp < 0x1d6db) return true\n if (cp < 0x1d6dc) return false\n if (cp < 0x1d6fb) return true\n if (cp < 0x1d6fc) return false\n if (cp < 0x1d715) return true\n if (cp < 0x1d716) return false\n if (cp < 0x1d735) return true\n return false\n }\n if (cp < 0x1d74f) return true\n if (cp < 0x1d750) return false\n if (cp < 0x1d76f) return true\n if (cp < 0x1d770) return false\n if (cp < 0x1d789) return true\n if (cp < 0x1d78a) return false\n if (cp < 0x1d7a9) return true\n if (cp < 0x1d7aa) return false\n if (cp < 0x1d7c3) return true\n if (cp < 0x1d7c4) return false\n if (cp < 0x1d7cc) return true\n return false\n }\n if (cp < 0x1ee5b) {\n if (cp < 0x1ee3b) {\n if (cp < 0x1ee24) {\n if (cp < 0x1e800) return false\n if (cp < 0x1e8c5) return true\n if (cp < 0x1e900) return false\n if (cp < 0x1e944) return true\n if (cp < 0x1ee00) return false\n if (cp < 0x1ee04) return true\n if (cp < 0x1ee05) return false\n if (cp < 0x1ee20) return true\n if (cp < 0x1ee21) return false\n if (cp < 0x1ee23) return true\n return false\n }\n if (cp === 0x1ee24) return true\n if (cp === 0x1ee27) return true\n if (cp < 0x1ee29) return false\n if (cp < 0x1ee33) return true\n if (cp < 0x1ee34) return false\n if (cp < 0x1ee38) return true\n if (cp === 0x1ee39) return true\n return false\n }\n if (cp < 0x1ee4d) {\n if (cp === 0x1ee3b) return true\n if (cp === 0x1ee42) return true\n if (cp === 0x1ee47) return true\n if (cp === 0x1ee49) return true\n if (cp === 0x1ee4b) return true\n return false\n }\n if (cp < 0x1ee50) return true\n if (cp < 0x1ee51) return false\n if (cp < 0x1ee53) return true\n if (cp === 0x1ee54) return true\n if (cp === 0x1ee57) return true\n if (cp === 0x1ee59) return true\n return false\n }\n if (cp < 0x1ee80) {\n if (cp < 0x1ee67) {\n if (cp === 0x1ee5b) return true\n if (cp === 0x1ee5d) return true\n if (cp === 0x1ee5f) return true\n if (cp < 0x1ee61) return false\n if (cp < 0x1ee63) return true\n if (cp === 0x1ee64) return true\n return false\n }\n if (cp < 0x1ee6b) return true\n if (cp < 0x1ee6c) return false\n if (cp < 0x1ee73) return true\n if (cp < 0x1ee74) return false\n if (cp < 0x1ee78) return true\n if (cp < 0x1ee79) return false\n if (cp < 0x1ee7d) return true\n if (cp === 0x1ee7e) return true\n return false\n }\n if (cp < 0x20000) {\n if (cp < 0x1ee80) return false\n if (cp < 0x1ee8a) return true\n if (cp < 0x1ee8b) return false\n if (cp < 0x1ee9c) return true\n if (cp < 0x1eea1) return false\n if (cp < 0x1eea4) return true\n if (cp < 0x1eea5) return false\n if (cp < 0x1eeaa) return true\n if (cp < 0x1eeab) return false\n if (cp < 0x1eebc) return true\n return false\n }\n if (cp < 0x2a6d7) return true\n if (cp < 0x2a700) return false\n if (cp < 0x2b735) return true\n if (cp < 0x2b740) return false\n if (cp < 0x2b81e) return true\n if (cp < 0x2b820) return false\n if (cp < 0x2cea2) return true\n if (cp < 0x2ceb0) return false\n if (cp < 0x2ebe1) return true\n if (cp < 0x2f800) return false\n if (cp < 0x2fa1e) return true\n return false\n}\n\nfunction isLargeIdContinue(cp: number): boolean {\n if (cp < 0x1bf2) {\n if (cp < 0xd62) {\n if (cp < 0xa83) {\n if (cp < 0x93b) {\n if (cp < 0x6ea) {\n if (cp < 0x5c7) {\n if (cp === 0xb7) return true\n if (cp < 0x300) return false\n if (cp < 0x370) return true\n if (cp === 0x387) return true\n if (cp < 0x483) return false\n if (cp < 0x488) return true\n if (cp < 0x591) return false\n if (cp < 0x5be) return true\n if (cp === 0x5bf) return true\n if (cp < 0x5c1) return false\n if (cp < 0x5c3) return true\n if (cp < 0x5c4) return false\n if (cp < 0x5c6) return true\n return false\n }\n if (cp === 0x5c7) return true\n if (cp < 0x610) return false\n if (cp < 0x61b) return true\n if (cp < 0x64b) return false\n if (cp < 0x660) return true\n if (cp < 0x660) return false\n if (cp < 0x66a) return true\n if (cp === 0x670) return true\n if (cp < 0x6d6) return false\n if (cp < 0x6dd) return true\n if (cp < 0x6df) return false\n if (cp < 0x6e5) return true\n if (cp < 0x6e7) return false\n if (cp < 0x6e9) return true\n return false\n }\n if (cp < 0x81b) {\n if (cp < 0x6ea) return false\n if (cp < 0x6ee) return true\n if (cp < 0x6f0) return false\n if (cp < 0x6fa) return true\n if (cp === 0x711) return true\n if (cp < 0x730) return false\n if (cp < 0x74b) return true\n if (cp < 0x7a6) return false\n if (cp < 0x7b1) return true\n if (cp < 0x7c0) return false\n if (cp < 0x7ca) return true\n if (cp < 0x7eb) return false\n if (cp < 0x7f4) return true\n if (cp < 0x816) return false\n if (cp < 0x81a) return true\n return false\n }\n if (cp < 0x824) return true\n if (cp < 0x825) return false\n if (cp < 0x828) return true\n if (cp < 0x829) return false\n if (cp < 0x82e) return true\n if (cp < 0x859) return false\n if (cp < 0x85c) return true\n if (cp < 0x8d4) return false\n if (cp < 0x8e2) return true\n if (cp < 0x8e3) return false\n if (cp < 0x903) return true\n if (cp === 0x903) return true\n if (cp === 0x93a) return true\n return false\n }\n if (cp < 0x9cb) {\n if (cp < 0x962) {\n if (cp === 0x93b) return true\n if (cp === 0x93c) return true\n if (cp < 0x93e) return false\n if (cp < 0x941) return true\n if (cp < 0x941) return false\n if (cp < 0x949) return true\n if (cp < 0x949) return false\n if (cp < 0x94d) return true\n if (cp === 0x94d) return true\n if (cp < 0x94e) return false\n if (cp < 0x950) return true\n if (cp < 0x951) return false\n if (cp < 0x958) return true\n return false\n }\n if (cp < 0x964) return true\n if (cp < 0x966) return false\n if (cp < 0x970) return true\n if (cp === 0x981) return true\n if (cp < 0x982) return false\n if (cp < 0x984) return true\n if (cp === 0x9bc) return true\n if (cp < 0x9be) return false\n if (cp < 0x9c1) return true\n if (cp < 0x9c1) return false\n if (cp < 0x9c5) return true\n if (cp < 0x9c7) return false\n if (cp < 0x9c9) return true\n return false\n }\n if (cp < 0xa3e) {\n if (cp < 0x9cb) return false\n if (cp < 0x9cd) return true\n if (cp === 0x9cd) return true\n if (cp === 0x9d7) return true\n if (cp < 0x9e2) return false\n if (cp < 0x9e4) return true\n if (cp < 0x9e6) return false\n if (cp < 0x9f0) return true\n if (cp < 0xa01) return false\n if (cp < 0xa03) return true\n if (cp === 0xa03) return true\n if (cp === 0xa3c) return true\n return false\n }\n if (cp < 0xa41) return true\n if (cp < 0xa41) return false\n if (cp < 0xa43) return true\n if (cp < 0xa47) return false\n if (cp < 0xa49) return true\n if (cp < 0xa4b) return false\n if (cp < 0xa4e) return true\n if (cp === 0xa51) return true\n if (cp < 0xa66) return false\n if (cp < 0xa70) return true\n if (cp < 0xa70) return false\n if (cp < 0xa72) return true\n if (cp === 0xa75) return true\n if (cp < 0xa81) return false\n if (cp < 0xa83) return true\n return false\n }\n if (cp < 0xbd7) {\n if (cp < 0xb40) {\n if (cp < 0xae2) {\n if (cp === 0xa83) return true\n if (cp === 0xabc) return true\n if (cp < 0xabe) return false\n if (cp < 0xac1) return true\n if (cp < 0xac1) return false\n if (cp < 0xac6) return true\n if (cp < 0xac7) return false\n if (cp < 0xac9) return true\n if (cp === 0xac9) return true\n if (cp < 0xacb) return false\n if (cp < 0xacd) return true\n if (cp === 0xacd) return true\n return false\n }\n if (cp < 0xae4) return true\n if (cp < 0xae6) return false\n if (cp < 0xaf0) return true\n if (cp < 0xafa) return false\n if (cp < 0xb00) return true\n if (cp === 0xb01) return true\n if (cp < 0xb02) return false\n if (cp < 0xb04) return true\n if (cp === 0xb3c) return true\n if (cp === 0xb3e) return true\n if (cp === 0xb3f) return true\n return false\n }\n if (cp < 0xb66) {\n if (cp === 0xb40) return true\n if (cp < 0xb41) return false\n if (cp < 0xb45) return true\n if (cp < 0xb47) return false\n if (cp < 0xb49) return true\n if (cp < 0xb4b) return false\n if (cp < 0xb4d) return true\n if (cp === 0xb4d) return true\n if (cp === 0xb56) return true\n if (cp === 0xb57) return true\n if (cp < 0xb62) return false\n if (cp < 0xb64) return true\n return false\n }\n if (cp < 0xb70) return true\n if (cp === 0xb82) return true\n if (cp < 0xbbe) return false\n if (cp < 0xbc0) return true\n if (cp === 0xbc0) return true\n if (cp < 0xbc1) return false\n if (cp < 0xbc3) return true\n if (cp < 0xbc6) return false\n if (cp < 0xbc9) return true\n if (cp < 0xbca) return false\n if (cp < 0xbcd) return true\n if (cp === 0xbcd) return true\n return false\n }\n if (cp < 0xcc0) {\n if (cp < 0xc55) {\n if (cp === 0xbd7) return true\n if (cp < 0xbe6) return false\n if (cp < 0xbf0) return true\n if (cp === 0xc00) return true\n if (cp < 0xc01) return false\n if (cp < 0xc04) return true\n if (cp < 0xc3e) return false\n if (cp < 0xc41) return true\n if (cp < 0xc41) return false\n if (cp < 0xc45) return true\n if (cp < 0xc46) return false\n if (cp < 0xc49) return true\n if (cp < 0xc4a) return false\n if (cp < 0xc4e) return true\n return false\n }\n if (cp < 0xc57) return true\n if (cp < 0xc62) return false\n if (cp < 0xc64) return true\n if (cp < 0xc66) return false\n if (cp < 0xc70) return true\n if (cp === 0xc81) return true\n if (cp < 0xc82) return false\n if (cp < 0xc84) return true\n if (cp === 0xcbc) return true\n if (cp === 0xcbe) return true\n if (cp === 0xcbf) return true\n return false\n }\n if (cp < 0xd00) {\n if (cp < 0xcc0) return false\n if (cp < 0xcc5) return true\n if (cp === 0xcc6) return true\n if (cp < 0xcc7) return false\n if (cp < 0xcc9) return true\n if (cp < 0xcca) return false\n if (cp < 0xccc) return true\n if (cp < 0xccc) return false\n if (cp < 0xcce) return true\n if (cp < 0xcd5) return false\n if (cp < 0xcd7) return true\n if (cp < 0xce2) return false\n if (cp < 0xce4) return true\n if (cp < 0xce6) return false\n if (cp < 0xcf0) return true\n return false\n }\n if (cp < 0xd02) return true\n if (cp < 0xd02) return false\n if (cp < 0xd04) return true\n if (cp < 0xd3b) return false\n if (cp < 0xd3d) return true\n if (cp < 0xd3e) return false\n if (cp < 0xd41) return true\n if (cp < 0xd41) return false\n if (cp < 0xd45) return true\n if (cp < 0xd46) return false\n if (cp < 0xd49) return true\n if (cp < 0xd4a) return false\n if (cp < 0xd4d) return true\n if (cp === 0xd4d) return true\n if (cp === 0xd57) return true\n return false\n }\n if (cp < 0x17be) {\n if (cp < 0x102b) {\n if (cp < 0xebb) {\n if (cp < 0xde6) {\n if (cp < 0xd62) return false\n if (cp < 0xd64) return true\n if (cp < 0xd66) return false\n if (cp < 0xd70) return true\n if (cp < 0xd82) return false\n if (cp < 0xd84) return true\n if (cp === 0xdca) return true\n if (cp < 0xdcf) return false\n if (cp < 0xdd2) return true\n if (cp < 0xdd2) return false\n if (cp < 0xdd5) return true\n if (cp === 0xdd6) return true\n if (cp < 0xdd8) return false\n if (cp < 0xde0) return true\n return false\n }\n if (cp < 0xdf0) return true\n if (cp < 0xdf2) return false\n if (cp < 0xdf4) return true\n if (cp === 0xe31) return true\n if (cp < 0xe34) return false\n if (cp < 0xe3b) return true\n if (cp < 0xe47) return false\n if (cp < 0xe4f) return true\n if (cp < 0xe50) return false\n if (cp < 0xe5a) return true\n if (cp === 0xeb1) return true\n if (cp < 0xeb4) return false\n if (cp < 0xeba) return true\n return false\n }\n if (cp < 0xf3e) {\n if (cp < 0xebb) return false\n if (cp < 0xebd) return true\n if (cp < 0xec8) return false\n if (cp < 0xece) return true\n if (cp < 0xed0) return false\n if (cp < 0xeda) return true\n if (cp < 0xf18) return false\n if (cp < 0xf1a) return true\n if (cp < 0xf20) return false\n if (cp < 0xf2a) return true\n if (cp === 0xf35) return true\n if (cp === 0xf37) return true\n if (cp === 0xf39) return true\n return false\n }\n if (cp < 0xf40) return true\n if (cp < 0xf71) return false\n if (cp < 0xf7f) return true\n if (cp === 0xf7f) return true\n if (cp < 0xf80) return false\n if (cp < 0xf85) return true\n if (cp < 0xf86) return false\n if (cp < 0xf88) return true\n if (cp < 0xf8d) return false\n if (cp < 0xf98) return true\n if (cp < 0xf99) return false\n if (cp < 0xfbd) return true\n if (cp === 0xfc6) return true\n return false\n }\n if (cp < 0x1083) {\n if (cp < 0x1040) {\n if (cp < 0x102b) return false\n if (cp < 0x102d) return true\n if (cp < 0x102d) return false\n if (cp < 0x1031) return true\n if (cp === 0x1031) return true\n if (cp < 0x1032) return false\n if (cp < 0x1038) return true\n if (cp === 0x1038) return true\n if (cp < 0x1039) return false\n if (cp < 0x103b) return true\n if (cp < 0x103b) return false\n if (cp < 0x103d) return true\n if (cp < 0x103d) return false\n if (cp < 0x103f) return true\n return false\n }\n if (cp < 0x104a) return true\n if (cp < 0x1056) return false\n if (cp < 0x1058) return true\n if (cp < 0x1058) return false\n if (cp < 0x105a) return true\n if (cp < 0x105e) return false\n if (cp < 0x1061) return true\n if (cp < 0x1062) return false\n if (cp < 0x1065) return true\n if (cp < 0x1067) return false\n if (cp < 0x106e) return true\n if (cp < 0x1071) return false\n if (cp < 0x1075) return true\n if (cp === 0x1082) return true\n return false\n }\n if (cp < 0x135d) {\n if (cp < 0x1083) return false\n if (cp < 0x1085) return true\n if (cp < 0x1085) return false\n if (cp < 0x1087) return true\n if (cp < 0x1087) return false\n if (cp < 0x108d) return true\n if (cp === 0x108d) return true\n if (cp === 0x108f) return true\n if (cp < 0x1090) return false\n if (cp < 0x109a) return true\n if (cp < 0x109a) return false\n if (cp < 0x109d) return true\n if (cp === 0x109d) return true\n return false\n }\n if (cp < 0x1360) return true\n if (cp < 0x1369) return false\n if (cp < 0x1372) return true\n if (cp < 0x1712) return false\n if (cp < 0x1715) return true\n if (cp < 0x1732) return false\n if (cp < 0x1735) return true\n if (cp < 0x1752) return false\n if (cp < 0x1754) return true\n if (cp < 0x1772) return false\n if (cp < 0x1774) return true\n if (cp < 0x17b4) return false\n if (cp < 0x17b6) return true\n if (cp === 0x17b6) return true\n if (cp < 0x17b7) return false\n if (cp < 0x17be) return true\n return false\n }\n if (cp < 0x1a73) {\n if (cp < 0x1939) {\n if (cp < 0x18a9) {\n if (cp < 0x17be) return false\n if (cp < 0x17c6) return true\n if (cp === 0x17c6) return true\n if (cp < 0x17c7) return false\n if (cp < 0x17c9) return true\n if (cp < 0x17c9) return false\n if (cp < 0x17d4) return true\n if (cp === 0x17dd) return true\n if (cp < 0x17e0) return false\n if (cp < 0x17ea) return true\n if (cp < 0x180b) return false\n if (cp < 0x180e) return true\n if (cp < 0x1810) return false\n if (cp < 0x181a) return true\n return false\n }\n if (cp === 0x18a9) return true\n if (cp < 0x1920) return false\n if (cp < 0x1923) return true\n if (cp < 0x1923) return false\n if (cp < 0x1927) return true\n if (cp < 0x1927) return false\n if (cp < 0x1929) return true\n if (cp < 0x1929) return false\n if (cp < 0x192c) return true\n if (cp < 0x1930) return false\n if (cp < 0x1932) return true\n if (cp === 0x1932) return true\n if (cp < 0x1933) return false\n if (cp < 0x1939) return true\n return false\n }\n if (cp < 0x1a56) {\n if (cp < 0x1939) return false\n if (cp < 0x193c) return true\n if (cp < 0x1946) return false\n if (cp < 0x1950) return true\n if (cp < 0x19d0) return false\n if (cp < 0x19da) return true\n if (cp === 0x19da) return true\n if (cp < 0x1a17) return false\n if (cp < 0x1a19) return true\n if (cp < 0x1a19) return false\n if (cp < 0x1a1b) return true\n if (cp === 0x1a1b) return true\n if (cp === 0x1a55) return true\n return false\n }\n if (cp === 0x1a56) return true\n if (cp === 0x1a57) return true\n if (cp < 0x1a58) return false\n if (cp < 0x1a5f) return true\n if (cp === 0x1a60) return true\n if (cp === 0x1a61) return true\n if (cp === 0x1a62) return true\n if (cp < 0x1a63) return false\n if (cp < 0x1a65) return true\n if (cp < 0x1a65) return false\n if (cp < 0x1a6d) return true\n if (cp < 0x1a6d) return false\n if (cp < 0x1a73) return true\n return false\n }\n if (cp < 0x1b6b) {\n if (cp < 0x1b35) {\n if (cp < 0x1a73) return false\n if (cp < 0x1a7d) return true\n if (cp === 0x1a7f) return true\n if (cp < 0x1a80) return false\n if (cp < 0x1a8a) return true\n if (cp < 0x1a90) return false\n if (cp < 0x1a9a) return true\n if (cp < 0x1ab0) return false\n if (cp < 0x1abe) return true\n if (cp < 0x1b00) return false\n if (cp < 0x1b04) return true\n if (cp === 0x1b04) return true\n if (cp === 0x1b34) return true\n return false\n }\n if (cp === 0x1b35) return true\n if (cp < 0x1b36) return false\n if (cp < 0x1b3b) return true\n if (cp === 0x1b3b) return true\n if (cp === 0x1b3c) return true\n if (cp < 0x1b3d) return false\n if (cp < 0x1b42) return true\n if (cp === 0x1b42) return true\n if (cp < 0x1b43) return false\n if (cp < 0x1b45) return true\n if (cp < 0x1b50) return false\n if (cp < 0x1b5a) return true\n return false\n }\n if (cp < 0x1bab) {\n if (cp < 0x1b6b) return false\n if (cp < 0x1b74) return true\n if (cp < 0x1b80) return false\n if (cp < 0x1b82) return true\n if (cp === 0x1b82) return true\n if (cp === 0x1ba1) return true\n if (cp < 0x1ba2) return false\n if (cp < 0x1ba6) return true\n if (cp < 0x1ba6) return false\n if (cp < 0x1ba8) return true\n if (cp < 0x1ba8) return false\n if (cp < 0x1baa) return true\n if (cp === 0x1baa) return true\n return false\n }\n if (cp < 0x1bae) return true\n if (cp < 0x1bb0) return false\n if (cp < 0x1bba) return true\n if (cp === 0x1be6) return true\n if (cp === 0x1be7) return true\n if (cp < 0x1be8) return false\n if (cp < 0x1bea) return true\n if (cp < 0x1bea) return false\n if (cp < 0x1bed) return true\n if (cp === 0x1bed) return true\n if (cp === 0x1bee) return true\n if (cp < 0x1bef) return false\n if (cp < 0x1bf2) return true\n return false\n }\n if (cp < 0x111d0) {\n if (cp < 0xaa43) {\n if (cp < 0xa69e) {\n if (cp < 0x1dc0) {\n if (cp < 0x1cd4) {\n if (cp < 0x1bf2) return false\n if (cp < 0x1bf4) return true\n if (cp < 0x1c24) return false\n if (cp < 0x1c2c) return true\n if (cp < 0x1c2c) return false\n if (cp < 0x1c34) return true\n if (cp < 0x1c34) return false\n if (cp < 0x1c36) return true\n if (cp < 0x1c36) return false\n if (cp < 0x1c38) return true\n if (cp < 0x1c40) return false\n if (cp < 0x1c4a) return true\n if (cp < 0x1c50) return false\n if (cp < 0x1c5a) return true\n if (cp < 0x1cd0) return false\n if (cp < 0x1cd3) return true\n return false\n }\n if (cp < 0x1ce1) return true\n if (cp === 0x1ce1) return true\n if (cp < 0x1ce2) return false\n if (cp < 0x1ce9) return true\n if (cp === 0x1ced) return true\n if (cp < 0x1cf2) return false\n if (cp < 0x1cf4) return true\n if (cp === 0x1cf4) return true\n if (cp === 0x1cf7) return true\n if (cp < 0x1cf8) return false\n if (cp < 0x1cfa) return true\n return false\n }\n if (cp < 0x2d7f) {\n if (cp < 0x1dc0) return false\n if (cp < 0x1dfa) return true\n if (cp < 0x1dfb) return false\n if (cp < 0x1e00) return true\n if (cp < 0x203f) return false\n if (cp < 0x2041) return true\n if (cp === 0x2054) return true\n if (cp < 0x20d0) return false\n if (cp < 0x20dd) return true\n if (cp === 0x20e1) return true\n if (cp < 0x20e5) return false\n if (cp < 0x20f1) return true\n if (cp < 0x2cef) return false\n if (cp < 0x2cf2) return true\n return false\n }\n if (cp === 0x2d7f) return true\n if (cp < 0x2de0) return false\n if (cp < 0x2e00) return true\n if (cp < 0x302a) return false\n if (cp < 0x302e) return true\n if (cp < 0x302e) return false\n if (cp < 0x3030) return true\n if (cp < 0x3099) return false\n if (cp < 0x309b) return true\n if (cp < 0xa620) return false\n if (cp < 0xa62a) return true\n if (cp === 0xa66f) return true\n if (cp < 0xa674) return false\n if (cp < 0xa67e) return true\n return false\n }\n if (cp < 0xa952) {\n if (cp < 0xa880) {\n if (cp < 0xa69e) return false\n if (cp < 0xa6a0) return true\n if (cp < 0xa6f0) return false\n if (cp < 0xa6f2) return true\n if (cp === 0xa802) return true\n if (cp === 0xa806) return true\n if (cp === 0xa80b) return true\n if (cp < 0xa823) return false\n if (cp < 0xa825) return true\n if (cp < 0xa825) return false\n if (cp < 0xa827) return true\n if (cp === 0xa827) return true\n return false\n }\n if (cp < 0xa882) return true\n if (cp < 0xa8b4) return false\n if (cp < 0xa8c4) return true\n if (cp < 0xa8c4) return false\n if (cp < 0xa8c6) return true\n if (cp < 0xa8d0) return false\n if (cp < 0xa8da) return true\n if (cp < 0xa8e0) return false\n if (cp < 0xa8f2) return true\n if (cp < 0xa900) return false\n if (cp < 0xa90a) return true\n if (cp < 0xa926) return false\n if (cp < 0xa92e) return true\n if (cp < 0xa947) return false\n if (cp < 0xa952) return true\n return false\n }\n if (cp < 0xa9bd) {\n if (cp < 0xa952) return false\n if (cp < 0xa954) return true\n if (cp < 0xa980) return false\n if (cp < 0xa983) return true\n if (cp === 0xa983) return true\n if (cp === 0xa9b3) return true\n if (cp < 0xa9b4) return false\n if (cp < 0xa9b6) return true\n if (cp < 0xa9b6) return false\n if (cp < 0xa9ba) return true\n if (cp < 0xa9ba) return false\n if (cp < 0xa9bc) return true\n if (cp === 0xa9bc) return true\n return false\n }\n if (cp < 0xa9c1) return true\n if (cp < 0xa9d0) return false\n if (cp < 0xa9da) return true\n if (cp === 0xa9e5) return true\n if (cp < 0xa9f0) return false\n if (cp < 0xa9fa) return true\n if (cp < 0xaa29) return false\n if (cp < 0xaa2f) return true\n if (cp < 0xaa2f) return false\n if (cp < 0xaa31) return true\n if (cp < 0xaa31) return false\n if (cp < 0xaa33) return true\n if (cp < 0xaa33) return false\n if (cp < 0xaa35) return true\n if (cp < 0xaa35) return false\n if (cp < 0xaa37) return true\n return false\n }\n if (cp < 0x102e0) {\n if (cp < 0xaaf6) {\n if (cp < 0xaab2) {\n if (cp === 0xaa43) return true\n if (cp === 0xaa4c) return true\n if (cp === 0xaa4d) return true\n if (cp < 0xaa50) return false\n if (cp < 0xaa5a) return true\n if (cp === 0xaa7b) return true\n if (cp === 0xaa7c) return true\n if (cp === 0xaa7d) return true\n if (cp === 0xaab0) return true\n return false\n }\n if (cp < 0xaab5) return true\n if (cp < 0xaab7) return false\n if (cp < 0xaab9) return true\n if (cp < 0xaabe) return false\n if (cp < 0xaac0) return true\n if (cp === 0xaac1) return true\n if (cp === 0xaaeb) return true\n if (cp < 0xaaec) return false\n if (cp < 0xaaee) return true\n if (cp < 0xaaee) return false\n if (cp < 0xaaf0) return true\n if (cp === 0xaaf5) return true\n return false\n }\n if (cp < 0xabf0) {\n if (cp === 0xaaf6) return true\n if (cp < 0xabe3) return false\n if (cp < 0xabe5) return true\n if (cp === 0xabe5) return true\n if (cp < 0xabe6) return false\n if (cp < 0xabe8) return true\n if (cp === 0xabe8) return true\n if (cp < 0xabe9) return false\n if (cp < 0xabeb) return true\n if (cp === 0xabec) return true\n if (cp === 0xabed) return true\n return false\n }\n if (cp < 0xabfa) return true\n if (cp === 0xfb1e) return true\n if (cp < 0xfe00) return false\n if (cp < 0xfe10) return true\n if (cp < 0xfe20) return false\n if (cp < 0xfe30) return true\n if (cp < 0xfe33) return false\n if (cp < 0xfe35) return true\n if (cp < 0xfe4d) return false\n if (cp < 0xfe50) return true\n if (cp < 0xff10) return false\n if (cp < 0xff1a) return true\n if (cp === 0xff3f) return true\n if (cp === 0x101fd) return true\n return false\n }\n if (cp < 0x110b0) {\n if (cp < 0x10ae5) {\n if (cp === 0x102e0) return true\n if (cp < 0x10376) return false\n if (cp < 0x1037b) return true\n if (cp < 0x104a0) return false\n if (cp < 0x104aa) return true\n if (cp < 0x10a01) return false\n if (cp < 0x10a04) return true\n if (cp < 0x10a05) return false\n if (cp < 0x10a07) return true\n if (cp < 0x10a0c) return false\n if (cp < 0x10a10) return true\n if (cp < 0x10a38) return false\n if (cp < 0x10a3b) return true\n if (cp === 0x10a3f) return true\n return false\n }\n if (cp < 0x10ae7) return true\n if (cp === 0x11000) return true\n if (cp === 0x11001) return true\n if (cp === 0x11002) return true\n if (cp < 0x11038) return false\n if (cp < 0x11047) return true\n if (cp < 0x11066) return false\n if (cp < 0x11070) return true\n if (cp < 0x1107f) return false\n if (cp < 0x11082) return true\n if (cp === 0x11082) return true\n return false\n }\n if (cp < 0x1112d) {\n if (cp < 0x110b0) return false\n if (cp < 0x110b3) return true\n if (cp < 0x110b3) return false\n if (cp < 0x110b7) return true\n if (cp < 0x110b7) return false\n if (cp < 0x110b9) return true\n if (cp < 0x110b9) return false\n if (cp < 0x110bb) return true\n if (cp < 0x110f0) return false\n if (cp < 0x110fa) return true\n if (cp < 0x11100) return false\n if (cp < 0x11103) return true\n if (cp < 0x11127) return false\n if (cp < 0x1112c) return true\n if (cp === 0x1112c) return true\n return false\n }\n if (cp < 0x11135) return true\n if (cp < 0x11136) return false\n if (cp < 0x11140) return true\n if (cp === 0x11173) return true\n if (cp < 0x11180) return false\n if (cp < 0x11182) return true\n if (cp === 0x11182) return true\n if (cp < 0x111b3) return false\n if (cp < 0x111b6) return true\n if (cp < 0x111b6) return false\n if (cp < 0x111bf) return true\n if (cp < 0x111bf) return false\n if (cp < 0x111c1) return true\n if (cp < 0x111ca) return false\n if (cp < 0x111cd) return true\n return false\n }\n if (cp < 0x11726) {\n if (cp < 0x114b3) {\n if (cp < 0x11340) {\n if (cp < 0x112df) {\n if (cp < 0x111d0) return false\n if (cp < 0x111da) return true\n if (cp < 0x1122c) return false\n if (cp < 0x1122f) return true\n if (cp < 0x1122f) return false\n if (cp < 0x11232) return true\n if (cp < 0x11232) return false\n if (cp < 0x11234) return true\n if (cp === 0x11234) return true\n if (cp === 0x11235) return true\n if (cp < 0x11236) return false\n if (cp < 0x11238) return true\n if (cp === 0x1123e) return true\n return false\n }\n if (cp === 0x112df) return true\n if (cp < 0x112e0) return false\n if (cp < 0x112e3) return true\n if (cp < 0x112e3) return false\n if (cp < 0x112eb) return true\n if (cp < 0x112f0) return false\n if (cp < 0x112fa) return true\n if (cp < 0x11300) return false\n if (cp < 0x11302) return true\n if (cp < 0x11302) return false\n if (cp < 0x11304) return true\n if (cp === 0x1133c) return true\n if (cp < 0x1133e) return false\n if (cp < 0x11340) return true\n return false\n }\n if (cp < 0x11435) {\n if (cp === 0x11340) return true\n if (cp < 0x11341) return false\n if (cp < 0x11345) return true\n if (cp < 0x11347) return false\n if (cp < 0x11349) return true\n if (cp < 0x1134b) return false\n if (cp < 0x1134e) return true\n if (cp === 0x11357) return true\n if (cp < 0x11362) return false\n if (cp < 0x11364) return true\n if (cp < 0x11366) return false\n if (cp < 0x1136d) return true\n if (cp < 0x11370) return false\n if (cp < 0x11375) return true\n return false\n }\n if (cp < 0x11438) return true\n if (cp < 0x11438) return false\n if (cp < 0x11440) return true\n if (cp < 0x11440) return false\n if (cp < 0x11442) return true\n if (cp < 0x11442) return false\n if (cp < 0x11445) return true\n if (cp === 0x11445) return true\n if (cp === 0x11446) return true\n if (cp < 0x11450) return false\n if (cp < 0x1145a) return true\n if (cp < 0x114b0) return false\n if (cp < 0x114b3) return true\n return false\n }\n if (cp < 0x11633) {\n if (cp < 0x115af) {\n if (cp < 0x114b3) return false\n if (cp < 0x114b9) return true\n if (cp === 0x114b9) return true\n if (cp === 0x114ba) return true\n if (cp < 0x114bb) return false\n if (cp < 0x114bf) return true\n if (cp < 0x114bf) return false\n if (cp < 0x114c1) return true\n if (cp === 0x114c1) return true\n if (cp < 0x114c2) return false\n if (cp < 0x114c4) return true\n if (cp < 0x114d0) return false\n if (cp < 0x114da) return true\n return false\n }\n if (cp < 0x115b2) return true\n if (cp < 0x115b2) return false\n if (cp < 0x115b6) return true\n if (cp < 0x115b8) return false\n if (cp < 0x115bc) return true\n if (cp < 0x115bc) return false\n if (cp < 0x115be) return true\n if (cp === 0x115be) return true\n if (cp < 0x115bf) return false\n if (cp < 0x115c1) return true\n if (cp < 0x115dc) return false\n if (cp < 0x115de) return true\n if (cp < 0x11630) return false\n if (cp < 0x11633) return true\n return false\n }\n if (cp < 0x116ad) {\n if (cp < 0x11633) return false\n if (cp < 0x1163b) return true\n if (cp < 0x1163b) return false\n if (cp < 0x1163d) return true\n if (cp === 0x1163d) return true\n if (cp === 0x1163e) return true\n if (cp < 0x1163f) return false\n if (cp < 0x11641) return true\n if (cp < 0x11650) return false\n if (cp < 0x1165a) return true\n if (cp === 0x116ab) return true\n if (cp === 0x116ac) return true\n return false\n }\n if (cp === 0x116ad) return true\n if (cp < 0x116ae) return false\n if (cp < 0x116b0) return true\n if (cp < 0x116b0) return false\n if (cp < 0x116b6) return true\n if (cp === 0x116b6) return true\n if (cp === 0x116b7) return true\n if (cp < 0x116c0) return false\n if (cp < 0x116ca) return true\n if (cp < 0x1171d) return false\n if (cp < 0x11720) return true\n if (cp < 0x11720) return false\n if (cp < 0x11722) return true\n if (cp < 0x11722) return false\n if (cp < 0x11726) return true\n return false\n }\n if (cp < 0x11d3f) {\n if (cp < 0x11a98) {\n if (cp < 0x11a39) {\n if (cp === 0x11726) return true\n if (cp < 0x11727) return false\n if (cp < 0x1172c) return true\n if (cp < 0x11730) return false\n if (cp < 0x1173a) return true\n if (cp < 0x118e0) return false\n if (cp < 0x118ea) return true\n if (cp < 0x11a01) return false\n if (cp < 0x11a07) return true\n if (cp < 0x11a07) return false\n if (cp < 0x11a09) return true\n if (cp < 0x11a09) return false\n if (cp < 0x11a0b) return true\n if (cp < 0x11a33) return false\n if (cp < 0x11a39) return true\n return false\n }\n if (cp === 0x11a39) return true\n if (cp < 0x11a3b) return false\n if (cp < 0x11a3f) return true\n if (cp === 0x11a47) return true\n if (cp < 0x11a51) return false\n if (cp < 0x11a57) return true\n if (cp < 0x11a57) return false\n if (cp < 0x11a59) return true\n if (cp < 0x11a59) return false\n if (cp < 0x11a5c) return true\n if (cp < 0x11a8a) return false\n if (cp < 0x11a97) return true\n if (cp === 0x11a97) return true\n return false\n }\n if (cp < 0x11ca9) {\n if (cp < 0x11a98) return false\n if (cp < 0x11a9a) return true\n if (cp === 0x11c2f) return true\n if (cp < 0x11c30) return false\n if (cp < 0x11c37) return true\n if (cp < 0x11c38) return false\n if (cp < 0x11c3e) return true\n if (cp === 0x11c3e) return true\n if (cp === 0x11c3f) return true\n if (cp < 0x11c50) return false\n if (cp < 0x11c5a) return true\n if (cp < 0x11c92) return false\n if (cp < 0x11ca8) return true\n return false\n }\n if (cp === 0x11ca9) return true\n if (cp < 0x11caa) return false\n if (cp < 0x11cb1) return true\n if (cp === 0x11cb1) return true\n if (cp < 0x11cb2) return false\n if (cp < 0x11cb4) return true\n if (cp === 0x11cb4) return true\n if (cp < 0x11cb5) return false\n if (cp < 0x11cb7) return true\n if (cp < 0x11d31) return false\n if (cp < 0x11d37) return true\n if (cp === 0x11d3a) return true\n if (cp < 0x11d3c) return false\n if (cp < 0x11d3e) return true\n return false\n }\n if (cp < 0x1d242) {\n if (cp < 0x16f8f) {\n if (cp < 0x11d3f) return false\n if (cp < 0x11d46) return true\n if (cp === 0x11d47) return true\n if (cp < 0x11d50) return false\n if (cp < 0x11d5a) return true\n if (cp < 0x16a60) return false\n if (cp < 0x16a6a) return true\n if (cp < 0x16af0) return false\n if (cp < 0x16af5) return true\n if (cp < 0x16b30) return false\n if (cp < 0x16b37) return true\n if (cp < 0x16b50) return false\n if (cp < 0x16b5a) return true\n if (cp < 0x16f51) return false\n if (cp < 0x16f7f) return true\n return false\n }\n if (cp < 0x16f93) return true\n if (cp < 0x1bc9d) return false\n if (cp < 0x1bc9f) return true\n if (cp < 0x1d165) return false\n if (cp < 0x1d167) return true\n if (cp < 0x1d167) return false\n if (cp < 0x1d16a) return true\n if (cp < 0x1d16d) return false\n if (cp < 0x1d173) return true\n if (cp < 0x1d17b) return false\n if (cp < 0x1d183) return true\n if (cp < 0x1d185) return false\n if (cp < 0x1d18c) return true\n if (cp < 0x1d1aa) return false\n if (cp < 0x1d1ae) return true\n return false\n }\n if (cp < 0x1e000) {\n if (cp < 0x1d242) return false\n if (cp < 0x1d245) return true\n if (cp < 0x1d7ce) return false\n if (cp < 0x1d800) return true\n if (cp < 0x1da00) return false\n if (cp < 0x1da37) return true\n if (cp < 0x1da3b) return false\n if (cp < 0x1da6d) return true\n if (cp === 0x1da75) return true\n if (cp === 0x1da84) return true\n if (cp < 0x1da9b) return false\n if (cp < 0x1daa0) return true\n if (cp < 0x1daa1) return false\n if (cp < 0x1dab0) return true\n return false\n }\n if (cp < 0x1e007) return true\n if (cp < 0x1e008) return false\n if (cp < 0x1e019) return true\n if (cp < 0x1e01b) return false\n if (cp < 0x1e022) return true\n if (cp < 0x1e023) return false\n if (cp < 0x1e025) return true\n if (cp < 0x1e026) return false\n if (cp < 0x1e02b) return true\n if (cp < 0x1e8d0) return false\n if (cp < 0x1e8d7) return true\n if (cp < 0x1e944) return false\n if (cp < 0x1e94b) return true\n if (cp < 0x1e950) return false\n if (cp < 0x1e95a) return true\n if (cp < 0xe0100) return false\n if (cp < 0xe01f0) return true\n return false\n}\n","const PropertyData: Object & { [key: string]: Set } = {\n $LONE: new Set([\n \"ASCII\",\n \"ASCII_Hex_Digit\",\n \"AHex\",\n \"Alphabetic\",\n \"Alpha\",\n \"Any\",\n \"Assigned\",\n \"Bidi_Control\",\n \"Bidi_C\",\n \"Bidi_Mirrored\",\n \"Bidi_M\",\n \"Case_Ignorable\",\n \"CI\",\n \"Cased\",\n \"Changes_When_Casefolded\",\n \"CWCF\",\n \"Changes_When_Casemapped\",\n \"CWCM\",\n \"Changes_When_Lowercased\",\n \"CWL\",\n \"Changes_When_NFKC_Casefolded\",\n \"CWKCF\",\n \"Changes_When_Titlecased\",\n \"CWT\",\n \"Changes_When_Uppercased\",\n \"CWU\",\n \"Dash\",\n \"Default_Ignorable_Code_Point\",\n \"DI\",\n \"Deprecated\",\n \"Dep\",\n \"Diacritic\",\n \"Dia\",\n \"Emoji\",\n \"Emoji_Component\",\n \"Emoji_Modifier\",\n \"Emoji_Modifier_Base\",\n \"Emoji_Presentation\",\n \"Extender\",\n \"Ext\",\n \"Grapheme_Base\",\n \"Gr_Base\",\n \"Grapheme_Extend\",\n \"Gr_Ext\",\n \"Hex_Digit\",\n \"Hex\",\n \"IDS_Binary_Operator\",\n \"IDSB\",\n \"IDS_Trinary_Operator\",\n \"IDST\",\n \"ID_Continue\",\n \"IDC\",\n \"ID_Start\",\n \"IDS\",\n \"Ideographic\",\n \"Ideo\",\n \"Join_Control\",\n \"Join_C\",\n \"Logical_Order_Exception\",\n \"LOE\",\n \"Lowercase\",\n \"Lower\",\n \"Math\",\n \"Noncharacter_Code_Point\",\n \"NChar\",\n \"Pattern_Syntax\",\n \"Pat_Syn\",\n \"Pattern_White_Space\",\n \"Pat_WS\",\n \"Quotation_Mark\",\n \"QMark\",\n \"Radical\",\n \"Regional_Indicator\",\n \"RI\",\n \"Sentence_Terminal\",\n \"STerm\",\n \"Soft_Dotted\",\n \"SD\",\n \"Terminal_Punctuation\",\n \"Term\",\n \"Unified_Ideograph\",\n \"UIdeo\",\n \"Uppercase\",\n \"Upper\",\n \"Variation_Selector\",\n \"VS\",\n \"White_Space\",\n \"space\",\n \"XID_Continue\",\n \"XIDC\",\n \"XID_Start\",\n \"XIDS\",\n ]),\n General_Category: new Set([\n \"Cased_Letter\",\n \"LC\",\n \"Close_Punctuation\",\n \"Pe\",\n \"Connector_Punctuation\",\n \"Pc\",\n \"Control\",\n \"Cc\",\n \"cntrl\",\n \"Currency_Symbol\",\n \"Sc\",\n \"Dash_Punctuation\",\n \"Pd\",\n \"Decimal_Number\",\n \"Nd\",\n \"digit\",\n \"Enclosing_Mark\",\n \"Me\",\n \"Final_Punctuation\",\n \"Pf\",\n \"Format\",\n \"Cf\",\n \"Initial_Punctuation\",\n \"Pi\",\n \"Letter\",\n \"L\",\n \"Letter_Number\",\n \"Nl\",\n \"Line_Separator\",\n \"Zl\",\n \"Lowercase_Letter\",\n \"Ll\",\n \"Mark\",\n \"M\",\n \"Combining_Mark\",\n \"Math_Symbol\",\n \"Sm\",\n \"Modifier_Letter\",\n \"Lm\",\n \"Modifier_Symbol\",\n \"Sk\",\n \"Nonspacing_Mark\",\n \"Mn\",\n \"Number\",\n \"N\",\n \"Open_Punctuation\",\n \"Ps\",\n \"Other\",\n \"C\",\n \"Other_Letter\",\n \"Lo\",\n \"Other_Number\",\n \"No\",\n \"Other_Punctuation\",\n \"Po\",\n \"Other_Symbol\",\n \"So\",\n \"Paragraph_Separator\",\n \"Zp\",\n \"Private_Use\",\n \"Co\",\n \"Punctuation\",\n \"P\",\n \"punct\",\n \"Separator\",\n \"Z\",\n \"Space_Separator\",\n \"Zs\",\n \"Spacing_Mark\",\n \"Mc\",\n \"Surrogate\",\n \"Cs\",\n \"Symbol\",\n \"S\",\n \"Titlecase_Letter\",\n \"Lt\",\n \"Unassigned\",\n \"Cn\",\n \"Uppercase_Letter\",\n \"Lu\",\n ]),\n Script: new Set([\n \"Adlam\",\n \"Adlm\",\n \"Ahom\",\n \"Anatolian_Hieroglyphs\",\n \"Hluw\",\n \"Arabic\",\n \"Arab\",\n \"Armenian\",\n \"Armn\",\n \"Avestan\",\n \"Avst\",\n \"Balinese\",\n \"Bali\",\n \"Bamum\",\n \"Bamu\",\n \"Bassa_Vah\",\n \"Bass\",\n \"Batak\",\n \"Batk\",\n \"Bengali\",\n \"Beng\",\n \"Bhaiksuki\",\n \"Bhks\",\n \"Bopomofo\",\n \"Bopo\",\n \"Brahmi\",\n \"Brah\",\n \"Braille\",\n \"Brai\",\n \"Buginese\",\n \"Bugi\",\n \"Buhid\",\n \"Buhd\",\n \"Canadian_Aboriginal\",\n \"Cans\",\n \"Carian\",\n \"Cari\",\n \"Caucasian_Albanian\",\n \"Aghb\",\n \"Chakma\",\n \"Cakm\",\n \"Cham\",\n \"Cherokee\",\n \"Cher\",\n \"Common\",\n \"Zyyy\",\n \"Coptic\",\n \"Copt\",\n \"Qaac\",\n \"Cuneiform\",\n \"Xsux\",\n \"Cypriot\",\n \"Cprt\",\n \"Cyrillic\",\n \"Cyrl\",\n \"Deseret\",\n \"Dsrt\",\n \"Devanagari\",\n \"Deva\",\n \"Duployan\",\n \"Dupl\",\n \"Egyptian_Hieroglyphs\",\n \"Egyp\",\n \"Elbasan\",\n \"Elba\",\n \"Ethiopic\",\n \"Ethi\",\n \"Georgian\",\n \"Geor\",\n \"Glagolitic\",\n \"Glag\",\n \"Gothic\",\n \"Goth\",\n \"Grantha\",\n \"Gran\",\n \"Greek\",\n \"Grek\",\n \"Gujarati\",\n \"Gujr\",\n \"Gurmukhi\",\n \"Guru\",\n \"Han\",\n \"Hani\",\n \"Hangul\",\n \"Hang\",\n \"Hanunoo\",\n \"Hano\",\n \"Hatran\",\n \"Hatr\",\n \"Hebrew\",\n \"Hebr\",\n \"Hiragana\",\n \"Hira\",\n \"Imperial_Aramaic\",\n \"Armi\",\n \"Inherited\",\n \"Zinh\",\n \"Qaai\",\n \"Inscriptional_Pahlavi\",\n \"Phli\",\n \"Inscriptional_Parthian\",\n \"Prti\",\n \"Javanese\",\n \"Java\",\n \"Kaithi\",\n \"Kthi\",\n \"Kannada\",\n \"Knda\",\n \"Katakana\",\n \"Kana\",\n \"Kayah_Li\",\n \"Kali\",\n \"Kharoshthi\",\n \"Khar\",\n \"Khmer\",\n \"Khmr\",\n \"Khojki\",\n \"Khoj\",\n \"Khudawadi\",\n \"Sind\",\n \"Lao\",\n \"Laoo\",\n \"Latin\",\n \"Latn\",\n \"Lepcha\",\n \"Lepc\",\n \"Limbu\",\n \"Limb\",\n \"Linear_A\",\n \"Lina\",\n \"Linear_B\",\n \"Linb\",\n \"Lisu\",\n \"Lycian\",\n \"Lyci\",\n \"Lydian\",\n \"Lydi\",\n \"Mahajani\",\n \"Mahj\",\n \"Malayalam\",\n \"Mlym\",\n \"Mandaic\",\n \"Mand\",\n \"Manichaean\",\n \"Mani\",\n \"Marchen\",\n \"Marc\",\n \"Masaram_Gondi\",\n \"Gonm\",\n \"Meetei_Mayek\",\n \"Mtei\",\n \"Mende_Kikakui\",\n \"Mend\",\n \"Meroitic_Cursive\",\n \"Merc\",\n \"Meroitic_Hieroglyphs\",\n \"Mero\",\n \"Miao\",\n \"Plrd\",\n \"Modi\",\n \"Mongolian\",\n \"Mong\",\n \"Mro\",\n \"Mroo\",\n \"Multani\",\n \"Mult\",\n \"Myanmar\",\n \"Mymr\",\n \"Nabataean\",\n \"Nbat\",\n \"New_Tai_Lue\",\n \"Talu\",\n \"Newa\",\n \"Nko\",\n \"Nkoo\",\n \"Nushu\",\n \"Nshu\",\n \"Ogham\",\n \"Ogam\",\n \"Ol_Chiki\",\n \"Olck\",\n \"Old_Hungarian\",\n \"Hung\",\n \"Old_Italic\",\n \"Ital\",\n \"Old_North_Arabian\",\n \"Narb\",\n \"Old_Permic\",\n \"Perm\",\n \"Old_Persian\",\n \"Xpeo\",\n \"Old_South_Arabian\",\n \"Sarb\",\n \"Old_Turkic\",\n \"Orkh\",\n \"Oriya\",\n \"Orya\",\n \"Osage\",\n \"Osge\",\n \"Osmanya\",\n \"Osma\",\n \"Pahawh_Hmong\",\n \"Hmng\",\n \"Palmyrene\",\n \"Palm\",\n \"Pau_Cin_Hau\",\n \"Pauc\",\n \"Phags_Pa\",\n \"Phag\",\n \"Phoenician\",\n \"Phnx\",\n \"Psalter_Pahlavi\",\n \"Phlp\",\n \"Rejang\",\n \"Rjng\",\n \"Runic\",\n \"Runr\",\n \"Samaritan\",\n \"Samr\",\n \"Saurashtra\",\n \"Saur\",\n \"Sharada\",\n \"Shrd\",\n \"Shavian\",\n \"Shaw\",\n \"Siddham\",\n \"Sidd\",\n \"SignWriting\",\n \"Sgnw\",\n \"Sinhala\",\n \"Sinh\",\n \"Sora_Sompeng\",\n \"Sora\",\n \"Soyombo\",\n \"Soyo\",\n \"Sundanese\",\n \"Sund\",\n \"Syloti_Nagri\",\n \"Sylo\",\n \"Syriac\",\n \"Syrc\",\n \"Tagalog\",\n \"Tglg\",\n \"Tagbanwa\",\n \"Tagb\",\n \"Tai_Le\",\n \"Tale\",\n \"Tai_Tham\",\n \"Lana\",\n \"Tai_Viet\",\n \"Tavt\",\n \"Takri\",\n \"Takr\",\n \"Tamil\",\n \"Taml\",\n \"Tangut\",\n \"Tang\",\n \"Telugu\",\n \"Telu\",\n \"Thaana\",\n \"Thaa\",\n \"Thai\",\n \"Tibetan\",\n \"Tibt\",\n \"Tifinagh\",\n \"Tfng\",\n \"Tirhuta\",\n \"Tirh\",\n \"Ugaritic\",\n \"Ugar\",\n \"Vai\",\n \"Vaii\",\n \"Warang_Citi\",\n \"Wara\",\n \"Yi\",\n \"Yiii\",\n \"Zanabazar_Square\",\n \"Zanb\",\n ]),\n}\n\nPropertyData.gc = PropertyData.General_Category\nPropertyData.sc = PropertyData.Script_Extensions = PropertyData.scx =\n PropertyData.Script\n\nexport { PropertyData }\n","export { isIdContinue, isIdStart } from \"./ids\"\nexport { PropertyData } from \"./property-data\"\n\nexport const Null = 0x00\nexport const Backspace = 0x08\nexport const CharacterTabulation = 0x09\nexport const LineFeed = 0x0a\nexport const LineTabulation = 0x0b\nexport const FormFeed = 0x0c\nexport const CarriageReturn = 0x0d\nexport const ExclamationMark = 0x21\nexport const DollarSign = 0x24\nexport const LeftParenthesis = 0x28\nexport const RightParenthesis = 0x29\nexport const Asterisk = 0x2a\nexport const PlusSign = 0x2b\nexport const Comma = 0x2c\nexport const HyphenMinus = 0x2d\nexport const FullStop = 0x2e\nexport const Solidus = 0x2f\nexport const DigitZero = 0x30\nexport const DigitOne = 0x31\nexport const DigitSeven = 0x37\nexport const DigitNine = 0x39\nexport const Colon = 0x3a\nexport const LessThanSign = 0x3c\nexport const EqualsSign = 0x3d\nexport const GreaterThanSign = 0x3e\nexport const QuestionMark = 0x3f\nexport const LatinCapitalLetterA = 0x41\nexport const LatinCapitalLetterB = 0x42\nexport const LatinCapitalLetterD = 0x44\nexport const LatinCapitalLetterF = 0x46\nexport const LatinCapitalLetterP = 0x50\nexport const LatinCapitalLetterS = 0x53\nexport const LatinCapitalLetterW = 0x57\nexport const LatinCapitalLetterZ = 0x5a\nexport const LowLine = 0x5f\nexport const LatinSmallLetterA = 0x61\nexport const LatinSmallLetterB = 0x62\nexport const LatinSmallLetterC = 0x63\nexport const LatinSmallLetterD = 0x64\nexport const LatinSmallLetterF = 0x66\nexport const LatinSmallLetterG = 0x67\nexport const LatinSmallLetterI = 0x69\nexport const LatinSmallLetterK = 0x6b\nexport const LatinSmallLetterM = 0x6d\nexport const LatinSmallLetterN = 0x6e\nexport const LatinSmallLetterP = 0x70\nexport const LatinSmallLetterR = 0x72\nexport const LatinSmallLetterS = 0x73\nexport const LatinSmallLetterT = 0x74\nexport const LatinSmallLetterU = 0x75\nexport const LatinSmallLetterV = 0x76\nexport const LatinSmallLetterW = 0x77\nexport const LatinSmallLetterX = 0x78\nexport const LatinSmallLetterY = 0x79\nexport const LatinSmallLetterZ = 0x7a\nexport const LeftSquareBracket = 0x5b\nexport const ReverseSolidus = 0x5c\nexport const RightSquareBracket = 0x5d\nexport const CircumflexAccent = 0x5e\nexport const LeftCurlyBracket = 0x7b\nexport const VerticalLine = 0x7c\nexport const RightCurlyBracket = 0x7d\nexport const ZeroWidthNonJoiner = 0x200c\nexport const ZeroWidthJoiner = 0x200d\nexport const LineSeparator = 0x2028\nexport const ParagraphSeparator = 0x2029\n\nexport const MinCodePoint = 0x00\nexport const MaxCodePoint = 0x10ffff\n\nexport function isLatinLetter(code: number): boolean {\n return (\n (code >= LatinCapitalLetterA && code <= LatinCapitalLetterZ) ||\n (code >= LatinSmallLetterA && code <= LatinSmallLetterZ)\n )\n}\n\nexport function isDecimalDigit(code: number): boolean {\n return code >= DigitZero && code <= DigitNine\n}\n\nexport function isOctalDigit(code: number): boolean {\n return code >= DigitZero && code <= DigitSeven\n}\n\nexport function isHexDigit(code: number): boolean {\n return (\n (code >= DigitZero && code <= DigitNine) ||\n (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) ||\n (code >= LatinSmallLetterA && code <= LatinSmallLetterF)\n )\n}\n\nexport function isLineTerminator(code: number): boolean {\n return (\n code === LineFeed ||\n code === CarriageReturn ||\n code === LineSeparator ||\n code === ParagraphSeparator\n )\n}\n\nexport function isValidUnicode(code: number): boolean {\n return code >= MinCodePoint && code <= MaxCodePoint\n}\n\nexport function digitToInt(code: number): number {\n if (code >= LatinSmallLetterA && code <= LatinSmallLetterF) {\n return code - LatinSmallLetterA + 10\n }\n if (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) {\n return code - LatinCapitalLetterA + 10\n }\n return code - DigitZero\n}\n","import { Reader } from \"./reader\"\nimport { RegExpSyntaxError } from \"./regexp-syntax-error\"\nimport {\n Asterisk,\n Backspace,\n CarriageReturn,\n CharacterTabulation,\n CircumflexAccent,\n Colon,\n Comma,\n DigitNine,\n DigitOne,\n digitToInt,\n DigitZero,\n DollarSign,\n EqualsSign,\n ExclamationMark,\n FormFeed,\n FullStop,\n GreaterThanSign,\n HyphenMinus,\n isDecimalDigit,\n isHexDigit,\n isIdContinue,\n isIdStart,\n isLatinLetter,\n isLineTerminator,\n isOctalDigit,\n isValidUnicode,\n LatinCapitalLetterB,\n LatinCapitalLetterD,\n LatinCapitalLetterP,\n LatinCapitalLetterS,\n LatinCapitalLetterW,\n LatinSmallLetterB,\n LatinSmallLetterC,\n LatinSmallLetterD,\n LatinSmallLetterF,\n LatinSmallLetterG,\n LatinSmallLetterI,\n LatinSmallLetterK,\n LatinSmallLetterM,\n LatinSmallLetterN,\n LatinSmallLetterP,\n LatinSmallLetterR,\n LatinSmallLetterS,\n LatinSmallLetterT,\n LatinSmallLetterU,\n LatinSmallLetterV,\n LatinSmallLetterW,\n LatinSmallLetterX,\n LatinSmallLetterY,\n LeftCurlyBracket,\n LeftParenthesis,\n LeftSquareBracket,\n LessThanSign,\n LineFeed,\n LineTabulation,\n LowLine,\n PlusSign,\n PropertyData,\n QuestionMark,\n ReverseSolidus,\n RightCurlyBracket,\n RightParenthesis,\n RightSquareBracket,\n Solidus,\n VerticalLine,\n ZeroWidthJoiner,\n ZeroWidthNonJoiner,\n} from \"./unicode\"\n\nfunction isSyntaxCharacter(cp: number): boolean {\n return (\n cp === CircumflexAccent ||\n cp === DollarSign ||\n cp === ReverseSolidus ||\n cp === FullStop ||\n cp === Asterisk ||\n cp === PlusSign ||\n cp === QuestionMark ||\n cp === LeftParenthesis ||\n cp === RightParenthesis ||\n cp === LeftSquareBracket ||\n cp === RightSquareBracket ||\n cp === LeftCurlyBracket ||\n cp === RightCurlyBracket ||\n cp === VerticalLine\n )\n}\n\nfunction isRegExpIdentifierStart(cp: number): boolean {\n return isIdStart(cp) || cp === DollarSign || cp === LowLine\n}\n\nfunction isRegExpIdentifierPart(cp: number): boolean {\n return (\n isIdContinue(cp) ||\n cp === DollarSign ||\n cp === LowLine ||\n cp === ZeroWidthNonJoiner ||\n cp === ZeroWidthJoiner\n )\n}\n\nfunction isUnicodePropertyNameCharacter(cp: number): boolean {\n return isLatinLetter(cp) || cp === LowLine\n}\n\nfunction isUnicodePropertyValueCharacter(cp: number): boolean {\n return isUnicodePropertyNameCharacter(cp) || isDecimalDigit(cp)\n}\n\nfunction isValidUnicodeProperty(name: string, value: string): boolean {\n //eslint-disable-next-line no-prototype-builtins\n return PropertyData.hasOwnProperty(name) && PropertyData[name].has(value)\n}\n\nfunction isValidUnicodePropertyName(name: string): boolean {\n return PropertyData.$LONE.has(name)\n}\n\nexport namespace RegExpValidator {\n /**\n * The options for RegExpValidator construction.\n */\n export interface Options {\n /**\n * The flag to disable Annex B syntax. Default is `false`.\n */\n strict?: boolean\n\n /**\n * ECMAScript version. Default is `2018`.\n * - `2015` added `u` and `y` flags.\n * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,\n * and Unicode Property Escape.\n */\n ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018\n\n /**\n * A function that is called when the validator entered a RegExp literal.\n * @param start The 0-based index of the first character.\n */\n onLiteralEnter?(start: number): void\n\n /**\n * A function that is called when the validator left a RegExp literal.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n */\n onLiteralLeave?(start: number, end: number): void\n\n /**\n * A function that is called when the validator found flags.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param global `g` flag.\n * @param ignoreCase `i` flag.\n * @param multiline `m` flag.\n * @param unicode `u` flag.\n * @param sticky `y` flag.\n * @param dotAll `s` flag.\n */\n onFlags?(\n start: number,\n end: number,\n global: boolean,\n ignoreCase: boolean,\n multiline: boolean,\n unicode: boolean,\n sticky: boolean,\n dotAll: boolean,\n ): void\n\n /**\n * A function that is called when the validator entered a pattern.\n * @param start The 0-based index of the first character.\n */\n onPatternEnter?(start: number): void\n\n /**\n * A function that is called when the validator left a pattern.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n */\n onPatternLeave?(start: number, end: number): void\n\n /**\n * A function that is called when the validator entered a disjunction.\n * @param start The 0-based index of the first character.\n */\n onDisjunctionEnter?(start: number): void\n\n /**\n * A function that is called when the validator left a disjunction.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n */\n onDisjunctionLeave?(start: number, end: number): void\n\n /**\n * A function that is called when the validator entered an alternative.\n * @param start The 0-based index of the first character.\n * @param index The 0-based index of alternatives in a disjunction.\n */\n onAlternativeEnter?(start: number, index: number): void\n\n /**\n * A function that is called when the validator left an alternative.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param index The 0-based index of alternatives in a disjunction.\n */\n onAlternativeLeave?(start: number, end: number, index: number): void\n\n /**\n * A function that is called when the validator entered an uncapturing group.\n * @param start The 0-based index of the first character.\n */\n onGroupEnter?(start: number): void\n\n /**\n * A function that is called when the validator left an uncapturing group.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n */\n onGroupLeave?(start: number, end: number): void\n\n /**\n * A function that is called when the validator entered a capturing group.\n * @param start The 0-based index of the first character.\n * @param name The group name.\n */\n onCapturingGroupEnter?(start: number, name: string | null): void\n\n /**\n * A function that is called when the validator left a capturing group.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param name The group name.\n */\n onCapturingGroupLeave?(\n start: number,\n end: number,\n name: string | null,\n ): void\n\n /**\n * A function that is called when the validator found a quantifier.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param min The minimum number of repeating.\n * @param max The maximum number of repeating.\n * @param greedy The flag to choose the longest matching.\n */\n onQuantifier?(\n start: number,\n end: number,\n min: number,\n max: number,\n greedy: boolean,\n ): void\n\n /**\n * A function that is called when the validator entered a lookahead/lookbehind assertion.\n * @param start The 0-based index of the first character.\n * @param kind The kind of the assertion.\n * @param negate The flag which represents that the assertion is negative.\n */\n onLookaroundAssertionEnter?(\n start: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator left a lookahead/lookbehind assertion.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the assertion.\n * @param negate The flag which represents that the assertion is negative.\n */\n onLookaroundAssertionLeave?(\n start: number,\n end: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found an edge boundary assertion.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the assertion.\n */\n onEdgeAssertion?(\n start: number,\n end: number,\n kind: \"start\" | \"end\",\n ): void\n\n /**\n * A function that is called when the validator found a word boundary assertion.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the assertion.\n * @param negate The flag which represents that the assertion is negative.\n */\n onWordBoundaryAssertion?(\n start: number,\n end: number,\n kind: \"word\",\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found a dot.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the character set.\n */\n onAnyCharacterSet?(start: number, end: number, kind: \"any\"): void\n\n /**\n * A function that is called when the validator found a character set escape.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the character set.\n * @param negate The flag which represents that the character set is negative.\n */\n onEscapeCharacterSet?(\n start: number,\n end: number,\n kind: \"digit\" | \"space\" | \"word\",\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found a Unicode proerty escape.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the character set.\n * @param key The property name.\n * @param value The property value.\n * @param negate The flag which represents that the character set is negative.\n */\n onUnicodePropertyCharacterSet?(\n start: number,\n end: number,\n kind: \"property\",\n key: string,\n value: string | null,\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found a character.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param value The code point of the character.\n */\n onCharacter?(start: number, end: number, value: number): void\n\n /**\n * A function that is called when the validator found a backreference.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param ref The key of the referred capturing group.\n */\n onBackreference?(start: number, end: number, ref: number | string): void\n\n /**\n * A function that is called when the validator entered a character class.\n * @param start The 0-based index of the first character.\n * @param negate The flag which represents that the character class is negative.\n */\n onCharacterClassEnter?(start: number, negate: boolean): void\n\n /**\n * A function that is called when the validator left a character class.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param negate The flag which represents that the character class is negative.\n */\n onCharacterClassLeave?(\n start: number,\n end: number,\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found a character class range.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param min The minimum code point of the range.\n * @param max The maximum code point of the range.\n */\n onCharacterClassRange?(\n start: number,\n end: number,\n min: number,\n max: number,\n ): void\n }\n}\n\n/**\n * The regular expression validator.\n */\nexport class RegExpValidator {\n private readonly _options: RegExpValidator.Options\n private readonly _reader = new Reader()\n private _uFlag = false\n private _nFlag = false\n private _lastIntValue = 0\n private _lastMinValue = 0\n private _lastMaxValue = 0\n private _lastStrValue = \"\"\n private _lastKeyValue = \"\"\n private _lastValValue = \"\"\n private _lastAssertionIsQuantifiable = false\n private _numCapturingParens = 0\n private _groupNames = new Set()\n private _backreferenceNames = new Set()\n\n /**\n * Initialize this validator.\n * @param options The options of validator.\n */\n constructor(options?: RegExpValidator.Options) {\n this._options = options || {}\n }\n\n /**\n * Validate a regular expression literal. E.g. \"/abc/g\"\n * @param source The source code to validate.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n */\n validateLiteral(\n source: string,\n start: number = 0,\n end: number = source.length,\n ): void {\n this._uFlag = this._nFlag = false\n this.reset(source, start, end)\n\n this.onLiteralEnter(start)\n if (this.eat(Solidus) && this.eatRegExpBody() && this.eat(Solidus)) {\n const flagStart = this.index\n const uFlag = source.indexOf(\"u\", flagStart) !== -1\n this.validateFlags(source, flagStart, end)\n this.validatePattern(source, start + 1, flagStart - 1, uFlag)\n } else if (start >= end) {\n this.raise(\"Empty\")\n } else {\n const c = String.fromCodePoint(this.currentCodePoint)\n this.raise(`Unexpected character '${c}'`)\n }\n this.onLiteralLeave(start, end)\n }\n\n /**\n * Validate a regular expression flags. E.g. \"gim\"\n * @param source The source code to validate.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n */\n validateFlags(\n source: string,\n start: number = 0,\n end: number = source.length,\n ): void {\n const existingFlags = new Set()\n let global = false\n let ignoreCase = false\n let multiline = false\n let sticky = false\n let unicode = false\n let dotAll = false\n for (let i = start; i < end; ++i) {\n const flag = source.charCodeAt(i)\n\n if (existingFlags.has(flag)) {\n this.raise(`Duplicated flag '${source[i]}'`)\n }\n existingFlags.add(flag)\n\n if (flag === LatinSmallLetterG) {\n global = true\n } else if (flag === LatinSmallLetterI) {\n ignoreCase = true\n } else if (flag === LatinSmallLetterM) {\n multiline = true\n } else if (flag === LatinSmallLetterU && this.ecmaVersion >= 2015) {\n unicode = true\n } else if (flag === LatinSmallLetterY && this.ecmaVersion >= 2015) {\n sticky = true\n } else if (flag === LatinSmallLetterS && this.ecmaVersion >= 2018) {\n dotAll = true\n } else {\n this.raise(`Invalid flag '${source[i]}'`)\n }\n }\n this.onFlags(\n start,\n end,\n global,\n ignoreCase,\n multiline,\n unicode,\n sticky,\n dotAll,\n )\n }\n\n /**\n * Validate a regular expression pattern. E.g. \"abc\"\n * @param source The source code to validate.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n * @param uFlag The flag to set unicode mode.\n */\n validatePattern(\n source: string,\n start: number = 0,\n end: number = source.length,\n uFlag: boolean = false,\n ): void {\n this._uFlag = uFlag && this.ecmaVersion >= 2015\n this._nFlag = uFlag && this.ecmaVersion >= 2018\n this.reset(source, start, end)\n this.pattern()\n\n if (\n !this._nFlag &&\n this.ecmaVersion >= 2018 &&\n this._groupNames.size > 0\n ) {\n this._nFlag = true\n this.rewind(start)\n this.pattern()\n }\n }\n\n // #region Delegate for Options\n\n private get strict() {\n return Boolean(this._options.strict || this._uFlag)\n }\n\n private get ecmaVersion() {\n return this._options.ecmaVersion || 2018\n }\n\n private onLiteralEnter(start: number): void {\n if (this._options.onLiteralEnter) {\n this._options.onLiteralEnter(start)\n }\n }\n\n private onLiteralLeave(start: number, end: number): void {\n if (this._options.onLiteralLeave) {\n this._options.onLiteralLeave(start, end)\n }\n }\n\n private onFlags(\n start: number,\n end: number,\n global: boolean,\n ignoreCase: boolean,\n multiline: boolean,\n unicode: boolean,\n sticky: boolean,\n dotAll: boolean,\n ): void {\n if (this._options.onFlags) {\n this._options.onFlags(\n start,\n end,\n global,\n ignoreCase,\n multiline,\n unicode,\n sticky,\n dotAll,\n )\n }\n }\n\n private onPatternEnter(start: number): void {\n if (this._options.onPatternEnter) {\n this._options.onPatternEnter(start)\n }\n }\n\n private onPatternLeave(start: number, end: number): void {\n if (this._options.onPatternLeave) {\n this._options.onPatternLeave(start, end)\n }\n }\n\n private onDisjunctionEnter(start: number): void {\n if (this._options.onDisjunctionEnter) {\n this._options.onDisjunctionEnter(start)\n }\n }\n\n private onDisjunctionLeave(start: number, end: number): void {\n if (this._options.onDisjunctionLeave) {\n this._options.onDisjunctionLeave(start, end)\n }\n }\n\n private onAlternativeEnter(start: number, index: number): void {\n if (this._options.onAlternativeEnter) {\n this._options.onAlternativeEnter(start, index)\n }\n }\n\n private onAlternativeLeave(\n start: number,\n end: number,\n index: number,\n ): void {\n if (this._options.onAlternativeLeave) {\n this._options.onAlternativeLeave(start, end, index)\n }\n }\n\n private onGroupEnter(start: number): void {\n if (this._options.onGroupEnter) {\n this._options.onGroupEnter(start)\n }\n }\n\n private onGroupLeave(start: number, end: number): void {\n if (this._options.onGroupLeave) {\n this._options.onGroupLeave(start, end)\n }\n }\n\n private onCapturingGroupEnter(start: number, name: string | null): void {\n if (this._options.onCapturingGroupEnter) {\n this._options.onCapturingGroupEnter(start, name)\n }\n }\n\n private onCapturingGroupLeave(\n start: number,\n end: number,\n name: string | null,\n ): void {\n if (this._options.onCapturingGroupLeave) {\n this._options.onCapturingGroupLeave(start, end, name)\n }\n }\n\n private onQuantifier(\n start: number,\n end: number,\n min: number,\n max: number,\n greedy: boolean,\n ): void {\n if (this._options.onQuantifier) {\n this._options.onQuantifier(start, end, min, max, greedy)\n }\n }\n\n private onLookaroundAssertionEnter(\n start: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void {\n if (this._options.onLookaroundAssertionEnter) {\n this._options.onLookaroundAssertionEnter(start, kind, negate)\n }\n }\n\n private onLookaroundAssertionLeave(\n start: number,\n end: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void {\n if (this._options.onLookaroundAssertionLeave) {\n this._options.onLookaroundAssertionLeave(start, end, kind, negate)\n }\n }\n\n private onEdgeAssertion(\n start: number,\n end: number,\n kind: \"start\" | \"end\",\n ): void {\n if (this._options.onEdgeAssertion) {\n this._options.onEdgeAssertion(start, end, kind)\n }\n }\n\n private onWordBoundaryAssertion(\n start: number,\n end: number,\n kind: \"word\",\n negate: boolean,\n ): void {\n if (this._options.onWordBoundaryAssertion) {\n this._options.onWordBoundaryAssertion(start, end, kind, negate)\n }\n }\n\n private onAnyCharacterSet(start: number, end: number, kind: \"any\"): void {\n if (this._options.onAnyCharacterSet) {\n this._options.onAnyCharacterSet(start, end, kind)\n }\n }\n\n private onEscapeCharacterSet(\n start: number,\n end: number,\n kind: \"digit\" | \"space\" | \"word\",\n negate: boolean,\n ): void {\n if (this._options.onEscapeCharacterSet) {\n this._options.onEscapeCharacterSet(start, end, kind, negate)\n }\n }\n\n private onUnicodePropertyCharacterSet(\n start: number,\n end: number,\n kind: \"property\",\n key: string,\n value: string | null,\n negate: boolean,\n ): void {\n if (this._options.onUnicodePropertyCharacterSet) {\n this._options.onUnicodePropertyCharacterSet(\n start,\n end,\n kind,\n key,\n value,\n negate,\n )\n }\n }\n\n private onCharacter(start: number, end: number, value: number): void {\n if (this._options.onCharacter) {\n this._options.onCharacter(start, end, value)\n }\n }\n\n private onBackreference(\n start: number,\n end: number,\n ref: number | string,\n ): void {\n if (this._options.onBackreference) {\n this._options.onBackreference(start, end, ref)\n }\n }\n\n private onCharacterClassEnter(start: number, negate: boolean): void {\n if (this._options.onCharacterClassEnter) {\n this._options.onCharacterClassEnter(start, negate)\n }\n }\n\n private onCharacterClassLeave(\n start: number,\n end: number,\n negate: boolean,\n ): void {\n if (this._options.onCharacterClassLeave) {\n this._options.onCharacterClassLeave(start, end, negate)\n }\n }\n\n private onCharacterClassRange(\n start: number,\n end: number,\n min: number,\n max: number,\n ): void {\n if (this._options.onCharacterClassRange) {\n this._options.onCharacterClassRange(start, end, min, max)\n }\n }\n\n // #endregion\n\n // #region Delegate for Reader\n\n private get source(): string {\n return this._reader.source\n }\n\n private get index(): number {\n return this._reader.index\n }\n\n private get currentCodePoint(): number {\n return this._reader.currentCodePoint\n }\n\n private get nextCodePoint(): number {\n return this._reader.nextCodePoint\n }\n\n private get nextCodePoint2(): number {\n return this._reader.nextCodePoint2\n }\n\n private get nextCodePoint3(): number {\n return this._reader.nextCodePoint3\n }\n\n private reset(source: string, start: number, end: number): void {\n this._reader.reset(source, start, end, this._uFlag)\n }\n\n private rewind(index: number): void {\n this._reader.rewind(index)\n }\n\n private advance(): void {\n this._reader.advance()\n }\n\n private eat(cp: number): boolean {\n return this._reader.eat(cp)\n }\n\n private eat2(cp1: number, cp2: number): boolean {\n return this._reader.eat2(cp1, cp2)\n }\n\n private eat3(cp1: number, cp2: number, cp3: number): boolean {\n return this._reader.eat3(cp1, cp2, cp3)\n }\n\n // #endregion\n\n private raise(message: string): never {\n throw new RegExpSyntaxError(\n this.source,\n this._uFlag,\n this.index,\n message,\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-RegularExpressionBody\n private eatRegExpBody(): boolean {\n const start = this.index\n let inClass = false\n let escaped = false\n\n for (;;) {\n const cp = this.currentCodePoint\n if (cp === -1 || isLineTerminator(cp)) {\n const kind = inClass ? \"character class\" : \"regular expression\"\n this.raise(`Unterminated ${kind}`)\n }\n if (escaped) {\n escaped = false\n } else if (cp === ReverseSolidus) {\n escaped = true\n } else if (cp === LeftSquareBracket) {\n inClass = true\n } else if (cp === RightSquareBracket) {\n inClass = false\n } else if (\n (cp === Solidus && !inClass) ||\n (cp === Asterisk && this.index === start)\n ) {\n break\n }\n this.advance()\n }\n\n return this.index !== start\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\n private pattern(): void {\n const start = this.index\n this._numCapturingParens = this.countCapturingParens()\n this._groupNames.clear()\n this._backreferenceNames.clear()\n\n this.onPatternEnter(start)\n this.disjunction()\n\n const cp = this.currentCodePoint\n if (this.currentCodePoint !== -1) {\n if (cp === RightParenthesis) {\n this.raise(\"Unmatched ')'\")\n }\n if (cp === RightSquareBracket || cp === RightCurlyBracket) {\n this.raise(\"Lone quantifier brackets\")\n }\n const c = String.fromCodePoint(cp)\n this.raise(`Unexpected character '${c}'`)\n }\n this._backreferenceNames.forEach(name => {\n if (!this._groupNames.has(name)) {\n this.raise(\"Invalid named capture referenced\")\n }\n })\n this.onPatternLeave(start, this.index)\n }\n\n private countCapturingParens(): number {\n const start = this.index\n let inClass = false\n let escaped = false\n let count = 0\n let cp = 0\n\n while ((cp = this.currentCodePoint) !== -1) {\n if (escaped) {\n escaped = false\n } else if (cp === ReverseSolidus) {\n escaped = true\n } else if (cp === LeftSquareBracket) {\n inClass = true\n } else if (cp === RightSquareBracket) {\n inClass = false\n } else if (\n cp === LeftParenthesis &&\n !inClass &&\n (this.nextCodePoint !== QuestionMark ||\n (this.nextCodePoint2 === LessThanSign &&\n this.nextCodePoint3 !== EqualsSign &&\n this.nextCodePoint3 !== ExclamationMark))\n ) {\n count += 1\n }\n this.advance()\n }\n\n this.rewind(start)\n return count\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\n private disjunction(): void {\n const start = this.index\n let i = 0\n\n this.onDisjunctionEnter(start)\n this.alternative(i++)\n while (this.eat(VerticalLine)) {\n this.alternative(i++)\n }\n\n if (this.eatQuantifier(true)) {\n this.raise(\"Nothing to repeat\")\n }\n if (this.eat(LeftCurlyBracket)) {\n this.raise(\"Lone quantifier brackets\")\n }\n this.onDisjunctionLeave(start, this.index)\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\n private alternative(i: number): void {\n const start = this.index\n\n this.onAlternativeEnter(start, i)\n while (this.currentCodePoint !== -1 && this.eatTerm());\n this.onAlternativeLeave(start, this.index, i)\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-Term\n private eatTerm(): boolean {\n if (this.eatAssertion()) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `this.lastAssertionIsQuantifiable` is true if the last eaten\n // Assertion is a QuantifiableAssertion.\n if (this._lastAssertionIsQuantifiable) {\n this.eatQuantifier()\n }\n return true\n }\n\n if (this.strict ? this.eatAtom() : this.eatExtendedAtom()) {\n this.eatQuantifier()\n return true\n }\n\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-Assertion\n private eatAssertion(): boolean {\n const start = this.index\n this._lastAssertionIsQuantifiable = false\n\n // ^, $, \\B \\b\n if (this.eat(CircumflexAccent)) {\n this.onEdgeAssertion(start, this.index, \"start\")\n return true\n }\n if (this.eat(DollarSign)) {\n this.onEdgeAssertion(start, this.index, \"end\")\n return true\n }\n if (this.eat2(ReverseSolidus, LatinCapitalLetterB)) {\n this.onWordBoundaryAssertion(start, this.index, \"word\", true)\n return true\n }\n if (this.eat2(ReverseSolidus, LatinSmallLetterB)) {\n this.onWordBoundaryAssertion(start, this.index, \"word\", false)\n return true\n }\n\n // Lookahead / Lookbehind\n if (this.eat2(LeftParenthesis, QuestionMark)) {\n const lookbehind =\n this.ecmaVersion >= 2018 && this.eat(LessThanSign)\n let negate = false\n if (this.eat(EqualsSign) || (negate = this.eat(ExclamationMark))) {\n const kind = lookbehind ? \"lookbehind\" : \"lookahead\"\n this.onLookaroundAssertionEnter(start, kind, negate)\n this.disjunction()\n if (!this.eat(RightParenthesis)) {\n this.raise(\"Unterminated group\")\n }\n this._lastAssertionIsQuantifiable = !lookbehind && !this.strict\n this.onLookaroundAssertionLeave(start, this.index, kind, negate)\n return true\n }\n this.rewind(start)\n }\n\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\n // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\n private eatQuantifier(noError = false): boolean {\n const start = this.index\n let min = 0\n let max = 0\n let greedy = false\n\n if (this.eat(Asterisk)) {\n min = 0\n max = Number.POSITIVE_INFINITY\n } else if (this.eat(PlusSign)) {\n min = 1\n max = Number.POSITIVE_INFINITY\n } else if (this.eat(QuestionMark)) {\n min = 0\n max = 1\n } else if (this.eatBracedQuantifier(noError)) {\n min = this._lastMinValue\n max = this._lastMaxValue\n } else {\n return false\n }\n greedy = !this.eat(QuestionMark)\n\n if (!noError) {\n this.onQuantifier(start, this.index, min, max, greedy)\n }\n return true\n }\n\n private eatBracedQuantifier(noError: boolean): boolean {\n const start = this.index\n if (this.eat(LeftCurlyBracket)) {\n this._lastMinValue = 0\n this._lastMaxValue = Number.POSITIVE_INFINITY\n if (this.eatDecimalDigits()) {\n this._lastMinValue = this._lastMaxValue = this._lastIntValue\n if (this.eat(Comma)) {\n this._lastMaxValue = this.eatDecimalDigits()\n ? this._lastIntValue\n : Number.POSITIVE_INFINITY\n }\n if (this.eat(RightCurlyBracket)) {\n if (!noError && this._lastMaxValue < this._lastMinValue) {\n this.raise(\"numbers out of order in {} quantifier\")\n }\n return true\n }\n }\n if (!noError && this.strict) {\n this.raise(\"Incomplete quantifier\")\n }\n this.rewind(start)\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\n private eatAtom(): boolean {\n return (\n this.eatPatternCharacter() ||\n this.eatDot() ||\n this.eatReverseSolidusAtomEscape() ||\n this.eatCharacterClass() ||\n this.eatUncapturingGroup() ||\n this.eatCapturingGroup()\n )\n }\n\n private eatDot(): boolean {\n if (this.eat(FullStop)) {\n this.onAnyCharacterSet(this.index - 1, this.index, \"any\")\n return true\n }\n return false\n }\n\n private eatReverseSolidusAtomEscape(): boolean {\n const start = this.index\n if (this.eat(ReverseSolidus)) {\n if (this.eatAtomEscape()) {\n return true\n }\n this.rewind(start)\n }\n return false\n }\n\n private eatUncapturingGroup(): boolean {\n const start = this.index\n if (this.eat3(LeftParenthesis, QuestionMark, Colon)) {\n this.onGroupEnter(start)\n this.disjunction()\n if (!this.eat(RightParenthesis)) {\n this.raise(\"Unterminated group\")\n }\n this.onGroupLeave(start, this.index)\n return true\n }\n return false\n }\n\n private eatCapturingGroup(): boolean {\n const start = this.index\n if (this.eat(LeftParenthesis)) {\n this._lastStrValue = \"\"\n if (this.ecmaVersion >= 2018) {\n this.groupSpecifier()\n } else if (this.currentCodePoint === QuestionMark) {\n this.raise(\"Invalid group\")\n }\n const name = this._lastStrValue || null\n\n this.onCapturingGroupEnter(start, name)\n this.disjunction()\n if (!this.eat(RightParenthesis)) {\n this.raise(\"Unterminated group\")\n }\n this.onCapturingGroupLeave(start, this.index, name)\n\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ExtendedAtom\n private eatExtendedAtom(): boolean {\n return (\n this.eatDot() ||\n this.eatReverseSolidusAtomEscape() ||\n this.eatCharacterClass() ||\n this.eatUncapturingGroup() ||\n this.eatCapturingGroup() ||\n this.eatInvalidBracedQuantifier() ||\n this.eatExtendedPatternCharacter()\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-InvalidBracedQuantifier\n private eatInvalidBracedQuantifier(): boolean {\n if (this.eatBracedQuantifier(true)) {\n this.raise(\"Nothing to repeat\")\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\n private eatSyntaxCharacter(): boolean {\n if (isSyntaxCharacter(this.currentCodePoint)) {\n this._lastIntValue = this.currentCodePoint\n this.advance()\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n private eatPatternCharacter(): boolean {\n const start = this.index\n const cp = this.currentCodePoint\n if (cp !== -1 && !isSyntaxCharacter(cp)) {\n this.advance()\n this.onCharacter(start, this.index, cp)\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ExtendedPatternCharacter\n private eatExtendedPatternCharacter(): boolean {\n const start = this.index\n const cp = this.currentCodePoint\n if (\n cp !== -1 &&\n cp !== CircumflexAccent &&\n cp !== DollarSign &&\n cp !== FullStop &&\n cp !== Asterisk &&\n cp !== PlusSign &&\n cp !== QuestionMark &&\n cp !== LeftParenthesis &&\n cp !== RightParenthesis &&\n cp !== LeftSquareBracket &&\n cp !== VerticalLine\n ) {\n this.advance()\n this.onCharacter(start, this.index, cp)\n return true\n }\n return false\n }\n\n // GroupSpecifier[U] ::\n // [empty]\n // `?` GroupName[?U]\n private groupSpecifier(): void {\n this._lastStrValue = \"\"\n if (this.eat(QuestionMark)) {\n if (this.eatGroupName()) {\n if (!this._groupNames.has(this._lastStrValue)) {\n this._groupNames.add(this._lastStrValue)\n return\n }\n this.raise(\"Duplicate capture group name\")\n }\n this.raise(\"Invalid group\")\n }\n }\n\n // GroupName[U] ::\n // `<` RegExpIdentifierName[?U] `>`\n private eatGroupName(): boolean {\n this._lastStrValue = \"\"\n if (this.eat(LessThanSign)) {\n if (this.eatRegExpIdentifierName() && this.eat(GreaterThanSign)) {\n return true\n }\n this.raise(\"Invalid capture group name\")\n }\n return false\n }\n\n // RegExpIdentifierName[U] ::\n // RegExpIdentifierStart[?U]\n // RegExpIdentifierName[?U] RegExpIdentifierPart[?U]\n private eatRegExpIdentifierName(): boolean {\n this._lastStrValue = \"\"\n if (this.eatRegExpIdentifierStart()) {\n this._lastStrValue += String.fromCodePoint(this._lastIntValue)\n while (this.eatRegExpIdentifierPart()) {\n this._lastStrValue += String.fromCodePoint(this._lastIntValue)\n }\n return true\n }\n return false\n }\n\n // RegExpIdentifierStart[U] ::\n // UnicodeIDStart\n // `$`\n // `_`\n // `\\` RegExpUnicodeEscapeSequence[?U]\n private eatRegExpIdentifierStart(): boolean {\n const start = this.index\n let cp = this.currentCodePoint\n this.advance()\n\n if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) {\n cp = this._lastIntValue\n }\n if (isRegExpIdentifierStart(cp)) {\n this._lastIntValue = cp\n return true\n }\n\n if (this.index !== start) {\n this.rewind(start)\n }\n return false\n }\n\n // RegExpIdentifierPart[U] ::\n // UnicodeIDContinue\n // `$`\n // `_`\n // `\\` RegExpUnicodeEscapeSequence[?U]\n // \n // \n private eatRegExpIdentifierPart(): boolean {\n const start = this.index\n let cp = this.currentCodePoint\n this.advance()\n\n if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) {\n cp = this._lastIntValue\n }\n if (isRegExpIdentifierPart(cp)) {\n this._lastIntValue = cp\n return true\n }\n\n if (this.index !== start) {\n this.rewind(start)\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-AtomEscape\n private eatAtomEscape(): boolean {\n if (\n this.eatBackreference() ||\n this.eatCharacterClassEscape() ||\n this.eatCharacterEscape() ||\n (this._nFlag && this.eatKGroupName())\n ) {\n return true\n }\n if (this.strict || this._uFlag) {\n this.raise(\"Invalid escape\")\n }\n return false\n }\n\n private eatBackreference(): boolean {\n const start = this.index\n if (this.eatDecimalEscape()) {\n const n = this._lastIntValue\n if (n <= this._numCapturingParens) {\n this.onBackreference(start - 1, this.index, n)\n return true\n }\n if (this.strict) {\n this.raise(\"Invalid escape\")\n }\n this.rewind(start)\n }\n return false\n }\n\n private eatKGroupName(): boolean {\n const start = this.index\n if (this.eat(LatinSmallLetterK)) {\n if (this.eatGroupName()) {\n const groupName = this._lastStrValue\n this._backreferenceNames.add(groupName)\n this.onBackreference(start - 1, this.index, groupName)\n return true\n }\n this.raise(\"Invalid named reference\")\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-CharacterEscape\n private eatCharacterEscape(): boolean {\n const start = this.index\n if (\n this.eatControlEscape() ||\n this.eatCControlLetter() ||\n this.eatZero() ||\n this.eatHexEscapeSequence() ||\n this.eatRegExpUnicodeEscapeSequence() ||\n (!this.strict && this.eatLegacyOctalEscapeSequence()) ||\n this.eatIdentityEscape()\n ) {\n this.onCharacter(start - 1, this.index, this._lastIntValue)\n return true\n }\n return false\n }\n\n private eatCControlLetter(): boolean {\n const start = this.index\n if (this.eat(LatinSmallLetterC)) {\n if (this.eatControlLetter()) {\n return true\n }\n this.rewind(start)\n }\n return false\n }\n\n private eatZero(): boolean {\n if (\n this.currentCodePoint === DigitZero &&\n !isDecimalDigit(this.nextCodePoint)\n ) {\n this._lastIntValue = 0\n this.advance()\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\n private eatControlEscape(): boolean {\n if (this.eat(LatinSmallLetterT)) {\n this._lastIntValue = CharacterTabulation\n return true\n }\n if (this.eat(LatinSmallLetterN)) {\n this._lastIntValue = LineFeed\n return true\n }\n if (this.eat(LatinSmallLetterV)) {\n this._lastIntValue = LineTabulation\n return true\n }\n if (this.eat(LatinSmallLetterF)) {\n this._lastIntValue = FormFeed\n return true\n }\n if (this.eat(LatinSmallLetterR)) {\n this._lastIntValue = CarriageReturn\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\n private eatControlLetter(): boolean {\n const cp = this.currentCodePoint\n if (isLatinLetter(cp)) {\n this.advance()\n this._lastIntValue = cp % 0x20\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\n private eatRegExpUnicodeEscapeSequence(): boolean {\n const start = this.index\n\n if (this.eat(LatinSmallLetterU)) {\n if (this.eatFixedHexDigits(4)) {\n const lead = this._lastIntValue\n if (this._uFlag && lead >= 0xd800 && lead <= 0xdbff) {\n const leadSurrogateEnd = this.index\n if (\n this.eat(ReverseSolidus) &&\n this.eat(LatinSmallLetterU) &&\n this.eatFixedHexDigits(4)\n ) {\n const trail = this._lastIntValue\n if (trail >= 0xdc00 && trail <= 0xdfff) {\n this._lastIntValue =\n (lead - 0xd800) * 0x400 +\n (trail - 0xdc00) +\n 0x10000\n return true\n }\n }\n this.rewind(leadSurrogateEnd)\n this._lastIntValue = lead\n }\n return true\n }\n if (\n this._uFlag &&\n this.eat(LeftCurlyBracket) &&\n this.eatHexDigits() &&\n this.eat(RightCurlyBracket) &&\n isValidUnicode(this._lastIntValue)\n ) {\n return true\n }\n if (this.strict || this._uFlag) {\n this.raise(\"Invalid unicode escape\")\n }\n this.rewind(start)\n }\n\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-IdentityEscape\n private eatIdentityEscape(): boolean {\n if (this._uFlag) {\n if (this.eatSyntaxCharacter()) {\n return true\n }\n if (this.eat(Solidus)) {\n this._lastIntValue = Solidus\n return true\n }\n return false\n }\n\n if (this.isValidIdentityEscape(this.currentCodePoint)) {\n this._lastIntValue = this.currentCodePoint\n this.advance()\n return true\n }\n\n return false\n }\n private isValidIdentityEscape(cp: number): boolean {\n if (cp === -1) {\n return false\n }\n if (this.strict) {\n return !isIdContinue(cp)\n }\n return (\n cp !== LatinSmallLetterC &&\n (!this._nFlag || cp !== LatinSmallLetterK)\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\n private eatDecimalEscape(): boolean {\n this._lastIntValue = 0\n let cp = this.currentCodePoint\n if (cp >= DigitOne && cp <= DigitNine) {\n do {\n this._lastIntValue = 10 * this._lastIntValue + (cp - DigitZero)\n this.advance()\n } while (\n (cp = this.currentCodePoint) >= DigitZero &&\n cp <= DigitNine\n )\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\n private eatCharacterClassEscape(): boolean {\n const start = this.index\n\n if (this.eat(LatinSmallLetterD)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"digit\", false)\n return true\n }\n if (this.eat(LatinCapitalLetterD)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"digit\", true)\n return true\n }\n if (this.eat(LatinSmallLetterS)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"space\", false)\n return true\n }\n if (this.eat(LatinCapitalLetterS)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"space\", true)\n return true\n }\n if (this.eat(LatinSmallLetterW)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"word\", false)\n return true\n }\n if (this.eat(LatinCapitalLetterW)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"word\", true)\n return true\n }\n\n let negate = false\n if (\n this._uFlag &&\n this.ecmaVersion >= 2018 &&\n (this.eat(LatinSmallLetterP) ||\n (negate = this.eat(LatinCapitalLetterP)))\n ) {\n this._lastIntValue = -1\n if (\n this.eat(LeftCurlyBracket) &&\n this.eatUnicodePropertyValueExpression() &&\n this.eat(RightCurlyBracket)\n ) {\n this.onUnicodePropertyCharacterSet(\n start - 1,\n this.index,\n \"property\",\n this._lastKeyValue,\n this._lastValValue || null,\n negate,\n )\n return true\n }\n this.raise(\"Invalid property name\")\n }\n\n return false\n }\n\n // UnicodePropertyValueExpression ::\n // UnicodePropertyName `=` UnicodePropertyValue\n // LoneUnicodePropertyNameOrValue\n private eatUnicodePropertyValueExpression(): boolean {\n const start = this.index\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.eatUnicodePropertyName() && this.eat(EqualsSign)) {\n this._lastKeyValue = this._lastStrValue\n if (this.eatUnicodePropertyValue()) {\n this._lastValValue = this._lastStrValue\n if (\n isValidUnicodeProperty(\n this._lastKeyValue,\n this._lastValValue,\n )\n ) {\n return true\n }\n this.raise(\"Invalid property name\")\n }\n }\n this.rewind(start)\n\n // LoneUnicodePropertyNameOrValue\n if (this.eatLoneUnicodePropertyNameOrValue()) {\n const nameOrValue = this._lastStrValue\n if (isValidUnicodeProperty(\"General_Category\", nameOrValue)) {\n this._lastKeyValue = \"General_Category\"\n this._lastValValue = nameOrValue\n return true\n }\n if (isValidUnicodePropertyName(nameOrValue)) {\n this._lastKeyValue = nameOrValue\n this._lastValValue = \"\"\n return true\n }\n this.raise(\"Invalid property name\")\n }\n return false\n }\n\n // UnicodePropertyName ::\n // UnicodePropertyNameCharacters\n private eatUnicodePropertyName(): boolean {\n this._lastStrValue = \"\"\n while (isUnicodePropertyNameCharacter(this.currentCodePoint)) {\n this._lastStrValue += String.fromCodePoint(this.currentCodePoint)\n this.advance()\n }\n return this._lastStrValue !== \"\"\n }\n\n // UnicodePropertyValue ::\n // UnicodePropertyValueCharacters\n private eatUnicodePropertyValue(): boolean {\n this._lastStrValue = \"\"\n while (isUnicodePropertyValueCharacter(this.currentCodePoint)) {\n this._lastStrValue += String.fromCodePoint(this.currentCodePoint)\n this.advance()\n }\n return this._lastStrValue !== \"\"\n }\n\n // LoneUnicodePropertyNameOrValue ::\n // UnicodePropertyValueCharacters\n private eatLoneUnicodePropertyNameOrValue(): boolean {\n return this.eatUnicodePropertyValue()\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\n private eatCharacterClass(): boolean {\n const start = this.index\n if (this.eat(LeftSquareBracket)) {\n const negate = this.eat(CircumflexAccent)\n this.onCharacterClassEnter(start, negate)\n this.classRanges()\n if (!this.eat(RightSquareBracket)) {\n this.raise(\"Unterminated character class\")\n }\n this.onCharacterClassLeave(start, this.index, negate)\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\n private classRanges(): void {\n let start = this.index\n while (this.eatClassAtom()) {\n const left = this._lastIntValue\n const hyphenStart = this.index\n if (this.eat(HyphenMinus)) {\n this.onCharacter(hyphenStart, this.index, HyphenMinus)\n\n if (this.eatClassAtom()) {\n const right = this._lastIntValue\n\n if (left === -1 || right === -1) {\n if (this.strict) {\n this.raise(\"Invalid character class\")\n }\n } else if (left > right) {\n this.raise(\"Range out of order in character class\")\n } else {\n this.onCharacterClassRange(\n start,\n this.index,\n left,\n right,\n )\n }\n }\n }\n\n start = this.index\n }\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\n private eatClassAtom(): boolean {\n const start = this.index\n\n if (this.eat(ReverseSolidus)) {\n if (this.eatClassEscape()) {\n return true\n }\n if (this._uFlag) {\n this.raise(\"Invalid escape\")\n }\n this.rewind(start)\n }\n\n const cp = this.currentCodePoint\n if (cp !== -1 && cp !== RightSquareBracket) {\n this.advance()\n this._lastIntValue = cp\n this.onCharacter(start, this.index, cp)\n return true\n }\n\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ClassEscape\n private eatClassEscape(): boolean {\n const start = this.index\n\n if (this.eat(LatinSmallLetterB)) {\n this._lastIntValue = Backspace\n this.onCharacter(start - 1, this.index, Backspace)\n return true\n }\n\n if (this._uFlag && this.eat(HyphenMinus)) {\n this._lastIntValue = HyphenMinus\n this.onCharacter(start - 1, this.index, HyphenMinus)\n return true\n }\n\n if (!this._uFlag && this.eat(LatinSmallLetterC)) {\n if (this.eatClassControlLetter()) {\n this.onCharacter(start - 1, this.index, this._lastIntValue)\n return true\n }\n this.rewind(start)\n }\n\n return this.eatCharacterClassEscape() || this.eatCharacterEscape()\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ClassControlLetter\n private eatClassControlLetter(): boolean {\n const cp = this.currentCodePoint\n if (isDecimalDigit(cp) || cp === LowLine) {\n this.advance()\n this._lastIntValue = cp % 0x20\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n private eatHexEscapeSequence(): boolean {\n const start = this.index\n if (this.eat(LatinSmallLetterX)) {\n if (this.eatFixedHexDigits(2)) {\n return true\n }\n if (this._uFlag) {\n this.raise(\"Invalid escape\")\n }\n this.rewind(start)\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\n private eatDecimalDigits(): boolean {\n const start = this.index\n\n this._lastIntValue = 0\n while (isDecimalDigit(this.currentCodePoint)) {\n this._lastIntValue =\n 10 * this._lastIntValue + digitToInt(this.currentCodePoint)\n this.advance()\n }\n\n return this.index !== start\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\n private eatHexDigits(): boolean {\n const start = this.index\n this._lastIntValue = 0\n while (isHexDigit(this.currentCodePoint)) {\n this._lastIntValue =\n 16 * this._lastIntValue + digitToInt(this.currentCodePoint)\n this.advance()\n }\n return this.index !== start\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-LegacyOctalEscapeSequence\n // Allows only 0-377(octal) i.e. 0-255(decimal).\n private eatLegacyOctalEscapeSequence(): boolean {\n if (this.eatOctalDigit()) {\n const n1 = this._lastIntValue\n if (this.eatOctalDigit()) {\n const n2 = this._lastIntValue\n if (n1 <= 3 && this.eatOctalDigit()) {\n this._lastIntValue = n1 * 64 + n2 * 8 + this._lastIntValue\n } else {\n this._lastIntValue = n1 * 8 + n2\n }\n } else {\n this._lastIntValue = n1\n }\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\n private eatOctalDigit(): boolean {\n const cp = this.currentCodePoint\n if (isOctalDigit(cp)) {\n this.advance()\n this._lastIntValue = cp - DigitZero\n return true\n }\n this._lastIntValue = 0\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n private eatFixedHexDigits(length: number): boolean {\n const start = this.index\n this._lastIntValue = 0\n for (let i = 0; i < length; ++i) {\n const cp = this.currentCodePoint\n if (!isHexDigit(cp)) {\n this.rewind(start)\n return false\n }\n this._lastIntValue = 16 * this._lastIntValue + digitToInt(cp)\n this.advance()\n }\n return true\n }\n}\n","import {\n AlternativeElement,\n AnyCharacterSet,\n Assertion,\n Backreference,\n CapturingGroup,\n Character,\n CharacterClass,\n CharacterClassRange,\n Disjunction,\n Element,\n EscapeCharacterSet,\n Flags,\n Group,\n RegExpLiteral,\n LookaroundAssertion,\n Pattern,\n QuantifiableElement,\n Quantifier,\n UnicodePropertyCharacterSet,\n} from \"./ast\"\nimport { assert, last } from \"./util\"\nimport { RegExpValidator } from \"./validator\"\n\ntype AppendableNode =\n | Pattern\n | Disjunction\n | Group\n | CapturingGroup\n | CharacterClass\n | LookaroundAssertion\n\nconst DummyPattern = {} as Pattern\nconst DummyFlags = {} as Flags\nconst DummyCapturingGroup = {} as CapturingGroup\n\n/**\n * Convert given elements to an alternative.\n * This doesn't clone the array, so the return value is `elements` itself.\n * @param elements Elements to convert.\n */\nfunction elementsToAlternative(\n elements: Element[],\n parent: Disjunction,\n): AlternativeElement[] {\n for (const element of elements) {\n assert(element.type !== \"Disjunction\")\n element.parent = parent\n }\n return elements as AlternativeElement[]\n}\n\nfunction addAlternativeElement(\n parent:\n | Pattern\n | Disjunction\n | Group\n | CapturingGroup\n | LookaroundAssertion,\n node:\n | Group\n | CapturingGroup\n | Quantifier\n | CharacterClass\n | Assertion\n | AnyCharacterSet\n | Backreference,\n): void {\n if (parent.type === \"Disjunction\") {\n last(parent.alternatives)!.push(node)\n } else {\n parent.elements.push(node)\n }\n}\n\nfunction addCommonElement(\n parent: AppendableNode,\n node: EscapeCharacterSet | UnicodePropertyCharacterSet | Character,\n): void {\n if (parent.type === \"Disjunction\") {\n last(parent.alternatives)!.push(node)\n } else if (parent.type === \"CharacterClass\") {\n parent.elements.push(node)\n } else {\n parent.elements.push(node)\n }\n}\n\nclass RegExpParserState {\n readonly strict: boolean\n readonly ecmaVersion: 5 | 2015 | 2016 | 2017 | 2018\n private _node: AppendableNode = DummyPattern\n private _flags: Flags = DummyFlags\n private _disjunctionStartStack: number[] = []\n private _backreferences: Backreference[] = []\n private _capturingGroups: CapturingGroup[] = []\n\n source: string = \"\"\n\n constructor(options?: RegExpParser.Options) {\n this.strict = Boolean(options && options.strict)\n this.ecmaVersion = (options && options.ecmaVersion) || 2018\n }\n\n get pattern(): Pattern {\n if (this._node.type !== \"Pattern\") {\n throw new Error(\"UnknownError\")\n }\n return this._node\n }\n\n get flags(): Flags {\n if (this._flags.type !== \"Flags\") {\n throw new Error(\"UnknownError\")\n }\n return this._flags\n }\n\n onFlags(\n start: number,\n end: number,\n global: boolean,\n ignoreCase: boolean,\n multiline: boolean,\n unicode: boolean,\n sticky: boolean,\n dotAll: boolean,\n ): void {\n this._flags = {\n type: \"Flags\",\n parent: null,\n start,\n end,\n raw: this.source.slice(start, end),\n global,\n ignoreCase,\n multiline,\n unicode,\n sticky,\n dotAll,\n }\n }\n\n onPatternEnter(start: number): void {\n this._node = {\n type: \"Pattern\",\n parent: null,\n start,\n end: start,\n raw: \"\",\n elements: [],\n }\n this._backreferences.length = 0\n this._capturingGroups.length = 0\n }\n\n onPatternLeave(start: number, end: number): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n\n for (const reference of this._backreferences) {\n const ref = reference.ref\n const group =\n typeof ref === \"number\"\n ? this._capturingGroups[ref - 1]\n : this._capturingGroups.find(g => g.name === ref)!\n reference.resolved = group\n group.references.push(reference)\n }\n }\n\n onDisjunctionEnter(start: number): void {\n this._disjunctionStartStack.push(start)\n }\n\n onDisjunctionLeave(start: number, end: number): void {\n this._disjunctionStartStack.pop()\n }\n\n onAlternativeEnter(start: number, index: number): void {\n if (index === 0) {\n return\n }\n\n const parentNode = this._node\n if (\n parentNode.type === \"Disjunction\" ||\n parentNode.type === \"CharacterClass\"\n ) {\n throw new Error(\"UnknownError\")\n }\n\n const prevNode = last(parentNode.elements)\n if (prevNode != null && prevNode.type === \"Disjunction\") {\n this._node = prevNode\n prevNode.alternatives.push([])\n } else {\n this._node = {\n type: \"Disjunction\",\n parent: parentNode,\n start: last(this._disjunctionStartStack)!,\n end: start,\n raw: \"\",\n alternatives: [],\n }\n const elements = elementsToAlternative(\n parentNode.elements,\n this._node,\n )\n this._node.alternatives.push(elements, [])\n parentNode.elements = [this._node]\n }\n }\n\n onAlternativeLeave(start: number, end: number, index: number): void {\n if (index === 0) {\n return\n }\n this._node.end = end\n this._node.raw = this.source.slice(this._node.start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onGroupEnter(start: number): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n this._node = {\n type: \"Group\",\n parent: parentNode,\n start,\n end: start,\n raw: \"\",\n elements: [],\n }\n addAlternativeElement(parentNode, this._node)\n }\n\n onGroupLeave(start: number, end: number): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onCapturingGroupEnter(start: number, name: string | null): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n this._node = {\n type: \"CapturingGroup\",\n parent: parentNode,\n start,\n end: start,\n raw: \"\",\n name,\n elements: [],\n references: [],\n }\n addAlternativeElement(parentNode, this._node)\n this._capturingGroups.push(this._node)\n }\n\n onCapturingGroupLeave(\n start: number,\n end: number,\n name: string | null,\n ): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onQuantifier(\n start: number,\n end: number,\n min: number,\n max: number,\n greedy: boolean,\n ): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n // Replace the last element.\n const elements =\n parentNode.type === \"Disjunction\"\n ? last(parentNode.alternatives)!\n : parentNode.elements\n const prevNode = elements.pop()!\n const node: Quantifier = {\n type: \"Quantifier\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n min,\n max,\n greedy,\n element: prevNode as QuantifiableElement,\n }\n elements.push(node)\n prevNode.parent = node\n }\n\n onLookaroundAssertionEnter(\n start: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n this._node = {\n type: \"Assertion\",\n parent: parentNode,\n start,\n end: start,\n raw: \"\",\n kind,\n negate,\n elements: [],\n } as LookaroundAssertion\n addAlternativeElement(parentNode, this._node)\n }\n\n onLookaroundAssertionLeave(\n start: number,\n end: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onEdgeAssertion(start: number, end: number, kind: \"start\" | \"end\"): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n addAlternativeElement(parentNode, {\n type: \"Assertion\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n })\n }\n\n onWordBoundaryAssertion(\n start: number,\n end: number,\n kind: \"word\",\n negate: boolean,\n ): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n addAlternativeElement(parentNode, {\n type: \"Assertion\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n negate,\n })\n }\n\n onAnyCharacterSet(start: number, end: number, kind: \"any\"): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n addAlternativeElement(parentNode, {\n type: \"CharacterSet\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n })\n }\n\n onEscapeCharacterSet(\n start: number,\n end: number,\n kind: \"digit\" | \"space\" | \"word\",\n negate: boolean,\n ): void {\n addCommonElement(this._node, {\n type: \"CharacterSet\",\n parent: this._node,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n negate,\n })\n }\n\n onUnicodePropertyCharacterSet(\n start: number,\n end: number,\n kind: \"property\",\n key: string,\n value: string | null,\n negate: boolean,\n ): void {\n addCommonElement(this._node, {\n type: \"CharacterSet\",\n parent: this._node,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n key,\n value,\n negate,\n })\n }\n\n onCharacter(start: number, end: number, value: number): void {\n addCommonElement(this._node, {\n type: \"Character\",\n parent: this._node,\n start,\n end,\n raw: this.source.slice(start, end),\n value,\n })\n }\n\n onBackreference(start: number, end: number, ref: number | string): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n const node: Backreference = {\n type: \"Backreference\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n ref,\n resolved: DummyCapturingGroup,\n }\n addAlternativeElement(parentNode, node)\n this._backreferences.push(node)\n }\n\n onCharacterClassEnter(start: number, negate: boolean): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n this._node = {\n type: \"CharacterClass\",\n parent: parentNode,\n start,\n end: start,\n raw: \"\",\n negate,\n elements: [],\n }\n addAlternativeElement(parentNode, this._node)\n }\n\n onCharacterClassLeave(start: number, end: number, negate: boolean): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onCharacterClassRange(\n start: number,\n end: number,\n min: number,\n max: number,\n ): void {\n const parentNode = this._node\n if (parentNode.type !== \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n // Replace the last three elements.\n const elements = parentNode.elements\n const rightNode = elements.pop() as Character\n elements.pop() // hyphen\n const leftNode = elements.pop() as Character\n const node: CharacterClassRange = {\n type: \"CharacterClassRange\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n min: leftNode,\n max: rightNode,\n }\n assert(leftNode != null && leftNode.type === \"Character\")\n assert(rightNode != null && rightNode.type === \"Character\")\n leftNode.parent = node\n rightNode.parent = node\n elements.push(node)\n }\n}\n\nexport namespace RegExpParser {\n /**\n * The options for RegExpParser construction.\n */\n export interface Options {\n /**\n * The flag to disable Annex B syntax. Default is `false`.\n */\n strict?: boolean\n\n /**\n * ECMAScript version. Default is `2018`.\n * - `2015` added `u` and `y` flags.\n * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,\n * and Unicode Property Escape.\n */\n ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018\n }\n}\n\nexport class RegExpParser {\n private _state: RegExpParserState\n private _validator: RegExpValidator\n\n /**\n * Initialize this parser.\n * @param options The options of parser.\n */\n constructor(options?: RegExpParser.Options) {\n this._state = new RegExpParserState(options)\n this._validator = new RegExpValidator(this._state)\n }\n\n /**\n * Parse a regular expression literal. E.g. \"/abc/g\"\n * @param source The source code to parse.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n * @returns The AST of the given regular expression.\n */\n parseLiteral(\n source: string,\n start: number = 0,\n end: number = source.length,\n ): RegExpLiteral {\n this._state.source = source\n this._validator.validateLiteral(source, start, end)\n const pattern = this._state.pattern\n const flags = this._state.flags\n const literal: RegExpLiteral = {\n type: \"RegExpLiteral\",\n parent: null,\n start,\n end,\n raw: source,\n pattern,\n flags,\n }\n pattern.parent = literal\n flags.parent = literal\n return literal\n }\n\n /**\n * Parse a regular expression flags. E.g. \"gim\"\n * @param source The source code to parse.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n * @returns The AST of the given flags.\n */\n parseFlags(\n source: string,\n start: number = 0,\n end: number = source.length,\n ): Flags {\n this._state.source = source\n this._validator.validateFlags(source, start, end)\n return this._state.flags\n }\n\n /**\n * Parse a regular expression pattern. E.g. \"abc\"\n * @param source The source code to parse.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n * @param uFlag The flag to set unicode mode.\n * @returns The AST of the given pattern.\n */\n parsePattern(\n source: string,\n start: number = 0,\n end: number = source.length,\n uFlag: boolean = false,\n ): Pattern {\n this._state.source = source\n this._validator.validatePattern(source, start, end, uFlag)\n return this._state.pattern\n }\n}\n","import * as AST from \"./ast\"\nimport { RegExpParser } from \"./parser\"\nimport { RegExpValidator } from \"./validator\"\n\nexport { AST, RegExpParser, RegExpValidator }\n\n/**\n * Parse a given regular expression literal then make AST object.\n * @param source The source code to parse.\n * @param options The options to parse.\n * @returns The AST of the regular expression.\n */\nexport function parseRegExpLiteral(\n source: string,\n options?: RegExpParser.Options,\n): AST.RegExpLiteral {\n return new RegExpParser(options).parseLiteral(source)\n}\n\n/**\n * Validate a given regular expression literal.\n * @param source The source code to validate.\n * @param options The options to validate.\n */\nexport function validateRegExpLiteral(\n source: string,\n options?: RegExpValidator.Options,\n): void {\n return new RegExpValidator(options).validateLiteral(source)\n}\n"],"names":["condition","message","Error","xs","length","undefined","legacyImpl","s","end","i","charCodeAt","c","unicodeImpl","codePointAt","source","_s","index","_i","currentCodePoint","_cp1","nextCodePoint","_cp2","nextCodePoint2","_cp3","nextCodePoint3","_cp4","start","uFlag","_impl","_end","rewind","impl","at","_w1","width","_w2","_w3","cp","advance","cp1","cp2","cp3","SyntaxError","isLargeIdStart","isLargeIdContinue","PropertyData","Set","gc","General_Category","sc","Script_Extensions","scx","Script","Backspace","CharacterTabulation","LineFeed","LineTabulation","FormFeed","CarriageReturn","ExclamationMark","DollarSign","LeftParenthesis","RightParenthesis","Asterisk","PlusSign","Comma","HyphenMinus","FullStop","Solidus","DigitZero","DigitOne","DigitSeven","DigitNine","Colon","LessThanSign","EqualsSign","GreaterThanSign","QuestionMark","LatinCapitalLetterA","LatinCapitalLetterB","LatinCapitalLetterD","LatinCapitalLetterF","LatinCapitalLetterP","LatinCapitalLetterS","LatinCapitalLetterW","LatinCapitalLetterZ","LowLine","LatinSmallLetterA","LatinSmallLetterB","LatinSmallLetterC","LatinSmallLetterD","LatinSmallLetterF","LatinSmallLetterG","LatinSmallLetterI","LatinSmallLetterK","LatinSmallLetterM","LatinSmallLetterN","LatinSmallLetterP","LatinSmallLetterR","LatinSmallLetterS","LatinSmallLetterT","LatinSmallLetterU","LatinSmallLetterV","LatinSmallLetterW","LatinSmallLetterX","LatinSmallLetterY","LatinSmallLetterZ","LeftSquareBracket","ReverseSolidus","RightSquareBracket","CircumflexAccent","LeftCurlyBracket","VerticalLine","RightCurlyBracket","ZeroWidthNonJoiner","ZeroWidthJoiner","LineSeparator","ParagraphSeparator","MinCodePoint","MaxCodePoint","code","isIdStart","isIdContinue","isLatinLetter","isUnicodePropertyNameCharacter","isDecimalDigit","name","value","hasOwnProperty","has","$LONE","options","Reader","_options","_uFlag","_nFlag","reset","onLiteralEnter","eat","eatRegExpBody","flagStart","indexOf","validateFlags","validatePattern","raise","String","fromCodePoint","onLiteralLeave","existingFlags","global","ignoreCase","multiline","sticky","unicode","dotAll","flag","add","ecmaVersion","onFlags","pattern","_groupNames","size","strict","Boolean","onPatternEnter","onPatternLeave","onDisjunctionEnter","onDisjunctionLeave","onAlternativeEnter","onAlternativeLeave","onGroupEnter","onGroupLeave","onCapturingGroupEnter","onCapturingGroupLeave","min","max","greedy","onQuantifier","kind","negate","onLookaroundAssertionEnter","onLookaroundAssertionLeave","onEdgeAssertion","onWordBoundaryAssertion","onAnyCharacterSet","onEscapeCharacterSet","key","onUnicodePropertyCharacterSet","onCharacter","ref","onBackreference","onCharacterClassEnter","onCharacterClassLeave","onCharacterClassRange","_reader","eat2","eat3","RegExpSyntaxError","inClass","escaped","isLineTerminator","_numCapturingParens","countCapturingParens","clear","_backreferenceNames","disjunction","forEach","count","alternative","eatQuantifier","eatTerm","eatAssertion","_lastAssertionIsQuantifiable","eatAtom","eatExtendedAtom","lookbehind","noError","Number","POSITIVE_INFINITY","eatBracedQuantifier","_lastMinValue","_lastMaxValue","eatDecimalDigits","_lastIntValue","eatPatternCharacter","eatDot","eatReverseSolidusAtomEscape","eatCharacterClass","eatUncapturingGroup","eatCapturingGroup","eatAtomEscape","_lastStrValue","groupSpecifier","eatInvalidBracedQuantifier","eatExtendedPatternCharacter","isSyntaxCharacter","eatGroupName","eatRegExpIdentifierName","eatRegExpIdentifierStart","eatRegExpIdentifierPart","eatRegExpUnicodeEscapeSequence","isRegExpIdentifierStart","isRegExpIdentifierPart","eatBackreference","eatCharacterClassEscape","eatCharacterEscape","eatKGroupName","eatDecimalEscape","n","groupName","eatControlEscape","eatCControlLetter","eatZero","eatHexEscapeSequence","eatLegacyOctalEscapeSequence","eatIdentityEscape","eatControlLetter","eatFixedHexDigits","lead","leadSurrogateEnd","trail","eatHexDigits","isValidUnicode","eatSyntaxCharacter","isValidIdentityEscape","eatUnicodePropertyValueExpression","_lastKeyValue","_lastValValue","eatUnicodePropertyName","eatUnicodePropertyValue","isValidUnicodeProperty","eatLoneUnicodePropertyNameOrValue","nameOrValue","isValidUnicodePropertyName","isUnicodePropertyValueCharacter","classRanges","eatClassAtom","left","hyphenStart","right","eatClassEscape","eatClassControlLetter","digitToInt","isHexDigit","eatOctalDigit","n1","n2","isOctalDigit","DummyPattern","DummyFlags","DummyCapturingGroup","elements","parent","element","type","node","alternatives","push","_node","flags","_flags","slice","_backreferences","_capturingGroups","raw","reference","group","find","g","resolved","references","_disjunctionStartStack","pop","parentNode","prevNode","last","elementsToAlternative","rightNode","leftNode","_state","RegExpParserState","_validator","RegExpValidator","validateLiteral","literal","RegExpParser","parseLiteral"],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/regexpp/index.mjs b/tools/node_modules/eslint/node_modules/regexpp/index.mjs new file mode 100644 index 00000000000000..7095305f2f9c95 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/regexpp/index.mjs @@ -0,0 +1,6785 @@ +/*! @author Toru Nagashima */ + + +var ast = Object.freeze({ + +}); + +function assert(condition, message) { + if (!condition) { + throw new Error(message || "AssertionError"); + } +} +function last(xs) { + return xs.length === 0 ? undefined : xs[xs.length - 1]; +} + +const legacyImpl = { + at(s, end, i) { + return i < end ? s.charCodeAt(i) : -1; + }, + width(c) { + return 1; + }, +}; +const unicodeImpl = { + at(s, end, i) { + return i < end ? s.codePointAt(i) : -1; + }, + width(c) { + return c > 0xffff ? 2 : 1; + }, +}; +class Reader { + constructor() { + this._impl = legacyImpl; + this._s = ""; + this._i = 0; + this._end = 0; + this._cp1 = -1; + this._w1 = 1; + this._cp2 = -1; + this._w2 = 1; + this._cp3 = -1; + this._w3 = 1; + this._cp4 = -1; + } + get source() { + return this._s; + } + get index() { + return this._i; + } + get currentCodePoint() { + return this._cp1; + } + get nextCodePoint() { + return this._cp2; + } + get nextCodePoint2() { + return this._cp3; + } + get nextCodePoint3() { + return this._cp4; + } + reset(source, start, end, uFlag) { + this._impl = uFlag ? unicodeImpl : legacyImpl; + this._s = source; + this._end = end; + this.rewind(start); + } + rewind(index) { + const impl = this._impl; + this._i = index; + this._cp1 = impl.at(this._s, this._end, index); + this._w1 = impl.width(this._cp1); + this._cp2 = impl.at(this._s, this._end, index + this._w1); + this._w2 = impl.width(this._cp2); + this._cp3 = impl.at(this._s, this._end, index + this._w1 + this._w2); + this._w3 = impl.width(this._cp3); + this._cp4 = impl.at(this._s, this._end, index + this._w1 + this._w2 + this._w3); + } + advance() { + if (this._cp1 !== -1) { + const impl = this._impl; + this._i += this._w1; + this._cp1 = this._cp2; + this._w1 = this._w2; + this._cp2 = this._cp3; + this._w2 = impl.width(this._cp2); + this._cp3 = this._cp4; + this._w3 = impl.width(this._cp3); + this._cp4 = impl.at(this._s, this._end, this._i + this._w1 + this._w2 + this._w3); + } + } + eat(cp) { + if (this._cp1 === cp) { + this.advance(); + return true; + } + return false; + } + eat2(cp1, cp2) { + if (this._cp1 === cp1 && this._cp2 === cp2) { + this.advance(); + this.advance(); + return true; + } + return false; + } + eat3(cp1, cp2, cp3) { + if (this._cp1 === cp1 && this._cp2 === cp2 && this._cp3 === cp3) { + this.advance(); + this.advance(); + this.advance(); + return true; + } + return false; + } +} + +class RegExpSyntaxError extends SyntaxError { + constructor(source, uFlag, index, message) { + if (source) { + if (source[0] !== "/") { + source = `/${source}/${uFlag ? "u" : ""}`; + } + source = `: ${source}`; + } + super(`Invalid regular expression${source}: ${message}`); + this.index = index; + } +} + +function isIdStart(cp) { + if (cp < 0x41) + return false; + if (cp < 0x5b) + return true; + if (cp < 0x61) + return false; + if (cp < 0x7b) + return true; + return isLargeIdStart(cp); +} +function isIdContinue(cp) { + if (cp < 0x30) + return false; + if (cp < 0x3a) + return true; + if (cp < 0x41) + return false; + if (cp < 0x5b) + return true; + if (cp === 0x5f) + return true; + if (cp < 0x61) + return false; + if (cp < 0x7b) + return true; + return isLargeIdStart(cp) || isLargeIdContinue(cp); +} +function isLargeIdStart(cp) { + if (cp < 0x303c) { + if (cp < 0xeaa) { + if (cp < 0xa2a) { + if (cp < 0x6d5) { + if (cp < 0x37a) { + if (cp < 0x294) { + if (cp < 0xf8) { + if (cp === 0xaa) + return true; + if (cp === 0xb5) + return true; + if (cp === 0xba) + return true; + if (cp < 0xc0) + return false; + if (cp < 0xd7) + return true; + if (cp < 0xd8) + return false; + if (cp < 0xf7) + return true; + return false; + } + if (cp < 0x1bb) + return true; + if (cp === 0x1bb) + return true; + if (cp < 0x1bc) + return false; + if (cp < 0x1c0) + return true; + if (cp < 0x1c0) + return false; + if (cp < 0x1c4) + return true; + if (cp < 0x1c4) + return false; + if (cp < 0x294) + return true; + return false; + } + if (cp < 0x2ec) { + if (cp === 0x294) + return true; + if (cp < 0x295) + return false; + if (cp < 0x2b0) + return true; + if (cp < 0x2b0) + return false; + if (cp < 0x2c2) + return true; + if (cp < 0x2c6) + return false; + if (cp < 0x2d2) + return true; + if (cp < 0x2e0) + return false; + if (cp < 0x2e5) + return true; + return false; + } + if (cp === 0x2ec) + return true; + if (cp === 0x2ee) + return true; + if (cp < 0x370) + return false; + if (cp < 0x374) + return true; + if (cp === 0x374) + return true; + if (cp < 0x376) + return false; + if (cp < 0x378) + return true; + return false; + } + if (cp < 0x531) { + if (cp < 0x38c) { + if (cp === 0x37a) + return true; + if (cp < 0x37b) + return false; + if (cp < 0x37e) + return true; + if (cp === 0x37f) + return true; + if (cp === 0x386) + return true; + if (cp < 0x388) + return false; + if (cp < 0x38b) + return true; + return false; + } + if (cp === 0x38c) + return true; + if (cp < 0x38e) + return false; + if (cp < 0x3a2) + return true; + if (cp < 0x3a3) + return false; + if (cp < 0x3f6) + return true; + if (cp < 0x3f7) + return false; + if (cp < 0x482) + return true; + if (cp < 0x48a) + return false; + if (cp < 0x530) + return true; + return false; + } + if (cp < 0x620) { + if (cp < 0x531) + return false; + if (cp < 0x557) + return true; + if (cp === 0x559) + return true; + if (cp < 0x561) + return false; + if (cp < 0x588) + return true; + if (cp < 0x5d0) + return false; + if (cp < 0x5eb) + return true; + if (cp < 0x5f0) + return false; + if (cp < 0x5f3) + return true; + return false; + } + if (cp < 0x640) + return true; + if (cp === 0x640) + return true; + if (cp < 0x641) + return false; + if (cp < 0x64b) + return true; + if (cp < 0x66e) + return false; + if (cp < 0x670) + return true; + if (cp < 0x671) + return false; + if (cp < 0x6d4) + return true; + return false; + } + if (cp < 0x904) { + if (cp < 0x7f4) { + if (cp < 0x710) { + if (cp === 0x6d5) + return true; + if (cp < 0x6e5) + return false; + if (cp < 0x6e7) + return true; + if (cp < 0x6ee) + return false; + if (cp < 0x6f0) + return true; + if (cp < 0x6fa) + return false; + if (cp < 0x6fd) + return true; + if (cp === 0x6ff) + return true; + return false; + } + if (cp === 0x710) + return true; + if (cp < 0x712) + return false; + if (cp < 0x730) + return true; + if (cp < 0x74d) + return false; + if (cp < 0x7a6) + return true; + if (cp === 0x7b1) + return true; + if (cp < 0x7ca) + return false; + if (cp < 0x7eb) + return true; + return false; + } + if (cp < 0x828) { + if (cp < 0x7f4) + return false; + if (cp < 0x7f6) + return true; + if (cp === 0x7fa) + return true; + if (cp < 0x800) + return false; + if (cp < 0x816) + return true; + if (cp === 0x81a) + return true; + if (cp === 0x824) + return true; + return false; + } + if (cp === 0x828) + return true; + if (cp < 0x840) + return false; + if (cp < 0x859) + return true; + if (cp < 0x860) + return false; + if (cp < 0x86b) + return true; + if (cp < 0x8a0) + return false; + if (cp < 0x8b5) + return true; + if (cp < 0x8b6) + return false; + if (cp < 0x8be) + return true; + return false; + } + if (cp < 0x9b2) { + if (cp < 0x972) { + if (cp < 0x904) + return false; + if (cp < 0x93a) + return true; + if (cp === 0x93d) + return true; + if (cp === 0x950) + return true; + if (cp < 0x958) + return false; + if (cp < 0x962) + return true; + if (cp === 0x971) + return true; + return false; + } + if (cp < 0x981) + return true; + if (cp < 0x985) + return false; + if (cp < 0x98d) + return true; + if (cp < 0x98f) + return false; + if (cp < 0x991) + return true; + if (cp < 0x993) + return false; + if (cp < 0x9a9) + return true; + if (cp < 0x9aa) + return false; + if (cp < 0x9b1) + return true; + return false; + } + if (cp < 0x9df) { + if (cp === 0x9b2) + return true; + if (cp < 0x9b6) + return false; + if (cp < 0x9ba) + return true; + if (cp === 0x9bd) + return true; + if (cp === 0x9ce) + return true; + if (cp < 0x9dc) + return false; + if (cp < 0x9de) + return true; + return false; + } + if (cp < 0x9e2) + return true; + if (cp < 0x9f0) + return false; + if (cp < 0x9f2) + return true; + if (cp === 0x9fc) + return true; + if (cp < 0xa05) + return false; + if (cp < 0xa0b) + return true; + if (cp < 0xa0f) + return false; + if (cp < 0xa11) + return true; + if (cp < 0xa13) + return false; + if (cp < 0xa29) + return true; + return false; + } + if (cp < 0xc2a) { + if (cp < 0xb2a) { + if (cp < 0xaaa) { + if (cp < 0xa5e) { + if (cp < 0xa2a) + return false; + if (cp < 0xa31) + return true; + if (cp < 0xa32) + return false; + if (cp < 0xa34) + return true; + if (cp < 0xa35) + return false; + if (cp < 0xa37) + return true; + if (cp < 0xa38) + return false; + if (cp < 0xa3a) + return true; + if (cp < 0xa59) + return false; + if (cp < 0xa5d) + return true; + return false; + } + if (cp === 0xa5e) + return true; + if (cp < 0xa72) + return false; + if (cp < 0xa75) + return true; + if (cp < 0xa85) + return false; + if (cp < 0xa8e) + return true; + if (cp < 0xa8f) + return false; + if (cp < 0xa92) + return true; + if (cp < 0xa93) + return false; + if (cp < 0xaa9) + return true; + return false; + } + if (cp < 0xae0) { + if (cp < 0xaaa) + return false; + if (cp < 0xab1) + return true; + if (cp < 0xab2) + return false; + if (cp < 0xab4) + return true; + if (cp < 0xab5) + return false; + if (cp < 0xaba) + return true; + if (cp === 0xabd) + return true; + if (cp === 0xad0) + return true; + return false; + } + if (cp < 0xae2) + return true; + if (cp === 0xaf9) + return true; + if (cp < 0xb05) + return false; + if (cp < 0xb0d) + return true; + if (cp < 0xb0f) + return false; + if (cp < 0xb11) + return true; + if (cp < 0xb13) + return false; + if (cp < 0xb29) + return true; + return false; + } + if (cp < 0xb92) { + if (cp < 0xb5f) { + if (cp < 0xb2a) + return false; + if (cp < 0xb31) + return true; + if (cp < 0xb32) + return false; + if (cp < 0xb34) + return true; + if (cp < 0xb35) + return false; + if (cp < 0xb3a) + return true; + if (cp === 0xb3d) + return true; + if (cp < 0xb5c) + return false; + if (cp < 0xb5e) + return true; + return false; + } + if (cp < 0xb62) + return true; + if (cp === 0xb71) + return true; + if (cp === 0xb83) + return true; + if (cp < 0xb85) + return false; + if (cp < 0xb8b) + return true; + if (cp < 0xb8e) + return false; + if (cp < 0xb91) + return true; + return false; + } + if (cp < 0xba8) { + if (cp < 0xb92) + return false; + if (cp < 0xb96) + return true; + if (cp < 0xb99) + return false; + if (cp < 0xb9b) + return true; + if (cp === 0xb9c) + return true; + if (cp < 0xb9e) + return false; + if (cp < 0xba0) + return true; + if (cp < 0xba3) + return false; + if (cp < 0xba5) + return true; + return false; + } + if (cp < 0xbab) + return true; + if (cp < 0xbae) + return false; + if (cp < 0xbba) + return true; + if (cp === 0xbd0) + return true; + if (cp < 0xc05) + return false; + if (cp < 0xc0d) + return true; + if (cp < 0xc0e) + return false; + if (cp < 0xc11) + return true; + if (cp < 0xc12) + return false; + if (cp < 0xc29) + return true; + return false; + } + if (cp < 0xd5f) { + if (cp < 0xcbd) { + if (cp < 0xc85) { + if (cp < 0xc2a) + return false; + if (cp < 0xc3a) + return true; + if (cp === 0xc3d) + return true; + if (cp < 0xc58) + return false; + if (cp < 0xc5b) + return true; + if (cp < 0xc60) + return false; + if (cp < 0xc62) + return true; + if (cp === 0xc80) + return true; + return false; + } + if (cp < 0xc8d) + return true; + if (cp < 0xc8e) + return false; + if (cp < 0xc91) + return true; + if (cp < 0xc92) + return false; + if (cp < 0xca9) + return true; + if (cp < 0xcaa) + return false; + if (cp < 0xcb4) + return true; + if (cp < 0xcb5) + return false; + if (cp < 0xcba) + return true; + return false; + } + if (cp < 0xd0e) { + if (cp === 0xcbd) + return true; + if (cp === 0xcde) + return true; + if (cp < 0xce0) + return false; + if (cp < 0xce2) + return true; + if (cp < 0xcf1) + return false; + if (cp < 0xcf3) + return true; + if (cp < 0xd05) + return false; + if (cp < 0xd0d) + return true; + return false; + } + if (cp < 0xd11) + return true; + if (cp < 0xd12) + return false; + if (cp < 0xd3b) + return true; + if (cp === 0xd3d) + return true; + if (cp === 0xd4e) + return true; + if (cp < 0xd54) + return false; + if (cp < 0xd57) + return true; + return false; + } + if (cp < 0xe46) { + if (cp < 0xdbd) { + if (cp < 0xd5f) + return false; + if (cp < 0xd62) + return true; + if (cp < 0xd7a) + return false; + if (cp < 0xd80) + return true; + if (cp < 0xd85) + return false; + if (cp < 0xd97) + return true; + if (cp < 0xd9a) + return false; + if (cp < 0xdb2) + return true; + if (cp < 0xdb3) + return false; + if (cp < 0xdbc) + return true; + return false; + } + if (cp === 0xdbd) + return true; + if (cp < 0xdc0) + return false; + if (cp < 0xdc7) + return true; + if (cp < 0xe01) + return false; + if (cp < 0xe31) + return true; + if (cp < 0xe32) + return false; + if (cp < 0xe34) + return true; + if (cp < 0xe40) + return false; + if (cp < 0xe46) + return true; + return false; + } + if (cp < 0xe8d) { + if (cp === 0xe46) + return true; + if (cp < 0xe81) + return false; + if (cp < 0xe83) + return true; + if (cp === 0xe84) + return true; + if (cp < 0xe87) + return false; + if (cp < 0xe89) + return true; + if (cp === 0xe8a) + return true; + return false; + } + if (cp === 0xe8d) + return true; + if (cp < 0xe94) + return false; + if (cp < 0xe98) + return true; + if (cp < 0xe99) + return false; + if (cp < 0xea0) + return true; + if (cp < 0xea1) + return false; + if (cp < 0xea4) + return true; + if (cp === 0xea5) + return true; + if (cp === 0xea7) + return true; + return false; + } + if (cp < 0x1c5a) { + if (cp < 0x1380) { + if (cp < 0x10a0) { + if (cp < 0xf88) { + if (cp < 0xec6) { + if (cp < 0xeaa) + return false; + if (cp < 0xeac) + return true; + if (cp < 0xead) + return false; + if (cp < 0xeb1) + return true; + if (cp < 0xeb2) + return false; + if (cp < 0xeb4) + return true; + if (cp === 0xebd) + return true; + if (cp < 0xec0) + return false; + if (cp < 0xec5) + return true; + return false; + } + if (cp === 0xec6) + return true; + if (cp < 0xedc) + return false; + if (cp < 0xee0) + return true; + if (cp === 0xf00) + return true; + if (cp < 0xf40) + return false; + if (cp < 0xf48) + return true; + if (cp < 0xf49) + return false; + if (cp < 0xf6d) + return true; + return false; + } + if (cp < 0x1061) { + if (cp < 0xf88) + return false; + if (cp < 0xf8d) + return true; + if (cp < 0x1000) + return false; + if (cp < 0x102b) + return true; + if (cp === 0x103f) + return true; + if (cp < 0x1050) + return false; + if (cp < 0x1056) + return true; + if (cp < 0x105a) + return false; + if (cp < 0x105e) + return true; + return false; + } + if (cp === 0x1061) + return true; + if (cp < 0x1065) + return false; + if (cp < 0x1067) + return true; + if (cp < 0x106e) + return false; + if (cp < 0x1071) + return true; + if (cp < 0x1075) + return false; + if (cp < 0x1082) + return true; + if (cp === 0x108e) + return true; + return false; + } + if (cp < 0x1260) { + if (cp < 0x10fd) { + if (cp < 0x10a0) + return false; + if (cp < 0x10c6) + return true; + if (cp === 0x10c7) + return true; + if (cp === 0x10cd) + return true; + if (cp < 0x10d0) + return false; + if (cp < 0x10fb) + return true; + if (cp === 0x10fc) + return true; + return false; + } + if (cp < 0x1249) + return true; + if (cp < 0x124a) + return false; + if (cp < 0x124e) + return true; + if (cp < 0x1250) + return false; + if (cp < 0x1257) + return true; + if (cp === 0x1258) + return true; + if (cp < 0x125a) + return false; + if (cp < 0x125e) + return true; + return false; + } + if (cp < 0x12c0) { + if (cp < 0x1260) + return false; + if (cp < 0x1289) + return true; + if (cp < 0x128a) + return false; + if (cp < 0x128e) + return true; + if (cp < 0x1290) + return false; + if (cp < 0x12b1) + return true; + if (cp < 0x12b2) + return false; + if (cp < 0x12b6) + return true; + if (cp < 0x12b8) + return false; + if (cp < 0x12bf) + return true; + return false; + } + if (cp === 0x12c0) + return true; + if (cp < 0x12c2) + return false; + if (cp < 0x12c6) + return true; + if (cp < 0x12c8) + return false; + if (cp < 0x12d7) + return true; + if (cp < 0x12d8) + return false; + if (cp < 0x1311) + return true; + if (cp < 0x1312) + return false; + if (cp < 0x1316) + return true; + if (cp < 0x1318) + return false; + if (cp < 0x135b) + return true; + return false; + } + if (cp < 0x1844) { + if (cp < 0x170e) { + if (cp < 0x1681) { + if (cp < 0x1380) + return false; + if (cp < 0x1390) + return true; + if (cp < 0x13a0) + return false; + if (cp < 0x13f6) + return true; + if (cp < 0x13f8) + return false; + if (cp < 0x13fe) + return true; + if (cp < 0x1401) + return false; + if (cp < 0x166d) + return true; + if (cp < 0x166f) + return false; + if (cp < 0x1680) + return true; + return false; + } + if (cp < 0x169b) + return true; + if (cp < 0x16a0) + return false; + if (cp < 0x16eb) + return true; + if (cp < 0x16ee) + return false; + if (cp < 0x16f1) + return true; + if (cp < 0x16f1) + return false; + if (cp < 0x16f9) + return true; + if (cp < 0x1700) + return false; + if (cp < 0x170d) + return true; + return false; + } + if (cp < 0x1780) { + if (cp < 0x170e) + return false; + if (cp < 0x1712) + return true; + if (cp < 0x1720) + return false; + if (cp < 0x1732) + return true; + if (cp < 0x1740) + return false; + if (cp < 0x1752) + return true; + if (cp < 0x1760) + return false; + if (cp < 0x176d) + return true; + if (cp < 0x176e) + return false; + if (cp < 0x1771) + return true; + return false; + } + if (cp < 0x17b4) + return true; + if (cp === 0x17d7) + return true; + if (cp === 0x17dc) + return true; + if (cp < 0x1820) + return false; + if (cp < 0x1843) + return true; + if (cp === 0x1843) + return true; + return false; + } + if (cp < 0x19b0) { + if (cp < 0x18b0) { + if (cp < 0x1844) + return false; + if (cp < 0x1878) + return true; + if (cp < 0x1880) + return false; + if (cp < 0x1885) + return true; + if (cp < 0x1885) + return false; + if (cp < 0x1887) + return true; + if (cp < 0x1887) + return false; + if (cp < 0x18a9) + return true; + if (cp === 0x18aa) + return true; + return false; + } + if (cp < 0x18f6) + return true; + if (cp < 0x1900) + return false; + if (cp < 0x191f) + return true; + if (cp < 0x1950) + return false; + if (cp < 0x196e) + return true; + if (cp < 0x1970) + return false; + if (cp < 0x1975) + return true; + if (cp < 0x1980) + return false; + if (cp < 0x19ac) + return true; + return false; + } + if (cp < 0x1b45) { + if (cp < 0x19b0) + return false; + if (cp < 0x19ca) + return true; + if (cp < 0x1a00) + return false; + if (cp < 0x1a17) + return true; + if (cp < 0x1a20) + return false; + if (cp < 0x1a55) + return true; + if (cp === 0x1aa7) + return true; + if (cp < 0x1b05) + return false; + if (cp < 0x1b34) + return true; + return false; + } + if (cp < 0x1b4c) + return true; + if (cp < 0x1b83) + return false; + if (cp < 0x1ba1) + return true; + if (cp < 0x1bae) + return false; + if (cp < 0x1bb0) + return true; + if (cp < 0x1bba) + return false; + if (cp < 0x1be6) + return true; + if (cp < 0x1c00) + return false; + if (cp < 0x1c24) + return true; + if (cp < 0x1c4d) + return false; + if (cp < 0x1c50) + return true; + return false; + } + if (cp < 0x2126) { + if (cp < 0x1f5f) { + if (cp < 0x1d79) { + if (cp < 0x1cf5) { + if (cp < 0x1c5a) + return false; + if (cp < 0x1c78) + return true; + if (cp < 0x1c78) + return false; + if (cp < 0x1c7e) + return true; + if (cp < 0x1c80) + return false; + if (cp < 0x1c89) + return true; + if (cp < 0x1ce9) + return false; + if (cp < 0x1ced) + return true; + if (cp < 0x1cee) + return false; + if (cp < 0x1cf2) + return true; + return false; + } + if (cp < 0x1cf7) + return true; + if (cp < 0x1d00) + return false; + if (cp < 0x1d2c) + return true; + if (cp < 0x1d2c) + return false; + if (cp < 0x1d6b) + return true; + if (cp < 0x1d6b) + return false; + if (cp < 0x1d78) + return true; + if (cp === 0x1d78) + return true; + return false; + } + if (cp < 0x1f48) { + if (cp < 0x1d79) + return false; + if (cp < 0x1d9b) + return true; + if (cp < 0x1d9b) + return false; + if (cp < 0x1dc0) + return true; + if (cp < 0x1e00) + return false; + if (cp < 0x1f16) + return true; + if (cp < 0x1f18) + return false; + if (cp < 0x1f1e) + return true; + if (cp < 0x1f20) + return false; + if (cp < 0x1f46) + return true; + return false; + } + if (cp < 0x1f4e) + return true; + if (cp < 0x1f50) + return false; + if (cp < 0x1f58) + return true; + if (cp === 0x1f59) + return true; + if (cp === 0x1f5b) + return true; + if (cp === 0x1f5d) + return true; + return false; + } + if (cp < 0x1ff6) { + if (cp < 0x1fc6) { + if (cp < 0x1f5f) + return false; + if (cp < 0x1f7e) + return true; + if (cp < 0x1f80) + return false; + if (cp < 0x1fb5) + return true; + if (cp < 0x1fb6) + return false; + if (cp < 0x1fbd) + return true; + if (cp === 0x1fbe) + return true; + if (cp < 0x1fc2) + return false; + if (cp < 0x1fc5) + return true; + return false; + } + if (cp < 0x1fcd) + return true; + if (cp < 0x1fd0) + return false; + if (cp < 0x1fd4) + return true; + if (cp < 0x1fd6) + return false; + if (cp < 0x1fdc) + return true; + if (cp < 0x1fe0) + return false; + if (cp < 0x1fed) + return true; + if (cp < 0x1ff2) + return false; + if (cp < 0x1ff5) + return true; + return false; + } + if (cp < 0x2107) { + if (cp < 0x1ff6) + return false; + if (cp < 0x1ffd) + return true; + if (cp === 0x2071) + return true; + if (cp === 0x207f) + return true; + if (cp < 0x2090) + return false; + if (cp < 0x209d) + return true; + if (cp === 0x2102) + return true; + return false; + } + if (cp === 0x2107) + return true; + if (cp < 0x210a) + return false; + if (cp < 0x2114) + return true; + if (cp === 0x2115) + return true; + if (cp === 0x2118) + return true; + if (cp < 0x2119) + return false; + if (cp < 0x211e) + return true; + if (cp === 0x2124) + return true; + return false; + } + if (cp < 0x2d00) { + if (cp < 0x2160) { + if (cp < 0x2135) { + if (cp === 0x2126) + return true; + if (cp === 0x2128) + return true; + if (cp < 0x212a) + return false; + if (cp < 0x212e) + return true; + if (cp === 0x212e) + return true; + if (cp < 0x212f) + return false; + if (cp < 0x2135) + return true; + return false; + } + if (cp < 0x2139) + return true; + if (cp === 0x2139) + return true; + if (cp < 0x213c) + return false; + if (cp < 0x2140) + return true; + if (cp < 0x2145) + return false; + if (cp < 0x214a) + return true; + if (cp === 0x214e) + return true; + return false; + } + if (cp < 0x2c60) { + if (cp < 0x2160) + return false; + if (cp < 0x2183) + return true; + if (cp < 0x2183) + return false; + if (cp < 0x2185) + return true; + if (cp < 0x2185) + return false; + if (cp < 0x2189) + return true; + if (cp < 0x2c00) + return false; + if (cp < 0x2c2f) + return true; + if (cp < 0x2c30) + return false; + if (cp < 0x2c5f) + return true; + return false; + } + if (cp < 0x2c7c) + return true; + if (cp < 0x2c7c) + return false; + if (cp < 0x2c7e) + return true; + if (cp < 0x2c7e) + return false; + if (cp < 0x2ce5) + return true; + if (cp < 0x2ceb) + return false; + if (cp < 0x2cef) + return true; + if (cp < 0x2cf2) + return false; + if (cp < 0x2cf4) + return true; + return false; + } + if (cp < 0x2dc0) { + if (cp < 0x2d80) { + if (cp < 0x2d00) + return false; + if (cp < 0x2d26) + return true; + if (cp === 0x2d27) + return true; + if (cp === 0x2d2d) + return true; + if (cp < 0x2d30) + return false; + if (cp < 0x2d68) + return true; + if (cp === 0x2d6f) + return true; + return false; + } + if (cp < 0x2d97) + return true; + if (cp < 0x2da0) + return false; + if (cp < 0x2da7) + return true; + if (cp < 0x2da8) + return false; + if (cp < 0x2daf) + return true; + if (cp < 0x2db0) + return false; + if (cp < 0x2db7) + return true; + if (cp < 0x2db8) + return false; + if (cp < 0x2dbf) + return true; + return false; + } + if (cp < 0x3006) { + if (cp < 0x2dc0) + return false; + if (cp < 0x2dc7) + return true; + if (cp < 0x2dc8) + return false; + if (cp < 0x2dcf) + return true; + if (cp < 0x2dd0) + return false; + if (cp < 0x2dd7) + return true; + if (cp < 0x2dd8) + return false; + if (cp < 0x2ddf) + return true; + if (cp === 0x3005) + return true; + return false; + } + if (cp === 0x3006) + return true; + if (cp === 0x3007) + return true; + if (cp < 0x3021) + return false; + if (cp < 0x302a) + return true; + if (cp < 0x3031) + return false; + if (cp < 0x3036) + return true; + if (cp < 0x3038) + return false; + if (cp < 0x303b) + return true; + if (cp === 0x303b) + return true; + return false; + } + if (cp < 0x10a10) { + if (cp < 0xab28) { + if (cp < 0xa7fa) { + if (cp < 0xa60c) { + if (cp < 0x31a0) { + if (cp < 0x30a1) { + if (cp === 0x303c) + return true; + if (cp < 0x3041) + return false; + if (cp < 0x3097) + return true; + if (cp < 0x309b) + return false; + if (cp < 0x309d) + return true; + if (cp < 0x309d) + return false; + if (cp < 0x309f) + return true; + if (cp === 0x309f) + return true; + return false; + } + if (cp < 0x30fb) + return true; + if (cp < 0x30fc) + return false; + if (cp < 0x30ff) + return true; + if (cp === 0x30ff) + return true; + if (cp < 0x3105) + return false; + if (cp < 0x312f) + return true; + if (cp < 0x3131) + return false; + if (cp < 0x318f) + return true; + return false; + } + if (cp < 0xa015) { + if (cp < 0x31a0) + return false; + if (cp < 0x31bb) + return true; + if (cp < 0x31f0) + return false; + if (cp < 0x3200) + return true; + if (cp < 0x3400) + return false; + if (cp < 0x4db6) + return true; + if (cp < 0x4e00) + return false; + if (cp < 0x9feb) + return true; + if (cp < 0xa000) + return false; + if (cp < 0xa015) + return true; + return false; + } + if (cp === 0xa015) + return true; + if (cp < 0xa016) + return false; + if (cp < 0xa48d) + return true; + if (cp < 0xa4d0) + return false; + if (cp < 0xa4f8) + return true; + if (cp < 0xa4f8) + return false; + if (cp < 0xa4fe) + return true; + if (cp < 0xa500) + return false; + if (cp < 0xa60c) + return true; + return false; + } + if (cp < 0xa717) { + if (cp < 0xa67f) { + if (cp === 0xa60c) + return true; + if (cp < 0xa610) + return false; + if (cp < 0xa620) + return true; + if (cp < 0xa62a) + return false; + if (cp < 0xa62c) + return true; + if (cp < 0xa640) + return false; + if (cp < 0xa66e) + return true; + if (cp === 0xa66e) + return true; + return false; + } + if (cp === 0xa67f) + return true; + if (cp < 0xa680) + return false; + if (cp < 0xa69c) + return true; + if (cp < 0xa69c) + return false; + if (cp < 0xa69e) + return true; + if (cp < 0xa6a0) + return false; + if (cp < 0xa6e6) + return true; + if (cp < 0xa6e6) + return false; + if (cp < 0xa6f0) + return true; + return false; + } + if (cp < 0xa78b) { + if (cp < 0xa717) + return false; + if (cp < 0xa720) + return true; + if (cp < 0xa722) + return false; + if (cp < 0xa770) + return true; + if (cp === 0xa770) + return true; + if (cp < 0xa771) + return false; + if (cp < 0xa788) + return true; + if (cp === 0xa788) + return true; + return false; + } + if (cp < 0xa78f) + return true; + if (cp === 0xa78f) + return true; + if (cp < 0xa790) + return false; + if (cp < 0xa7af) + return true; + if (cp < 0xa7b0) + return false; + if (cp < 0xa7b8) + return true; + if (cp === 0xa7f7) + return true; + if (cp < 0xa7f8) + return false; + if (cp < 0xa7fa) + return true; + return false; + } + if (cp < 0xaa40) { + if (cp < 0xa90a) { + if (cp < 0xa840) { + if (cp === 0xa7fa) + return true; + if (cp < 0xa7fb) + return false; + if (cp < 0xa802) + return true; + if (cp < 0xa803) + return false; + if (cp < 0xa806) + return true; + if (cp < 0xa807) + return false; + if (cp < 0xa80b) + return true; + if (cp < 0xa80c) + return false; + if (cp < 0xa823) + return true; + return false; + } + if (cp < 0xa874) + return true; + if (cp < 0xa882) + return false; + if (cp < 0xa8b4) + return true; + if (cp < 0xa8f2) + return false; + if (cp < 0xa8f8) + return true; + if (cp === 0xa8fb) + return true; + if (cp === 0xa8fd) + return true; + return false; + } + if (cp < 0xa9e0) { + if (cp < 0xa90a) + return false; + if (cp < 0xa926) + return true; + if (cp < 0xa930) + return false; + if (cp < 0xa947) + return true; + if (cp < 0xa960) + return false; + if (cp < 0xa97d) + return true; + if (cp < 0xa984) + return false; + if (cp < 0xa9b3) + return true; + if (cp === 0xa9cf) + return true; + return false; + } + if (cp < 0xa9e5) + return true; + if (cp === 0xa9e6) + return true; + if (cp < 0xa9e7) + return false; + if (cp < 0xa9f0) + return true; + if (cp < 0xa9fa) + return false; + if (cp < 0xa9ff) + return true; + if (cp < 0xaa00) + return false; + if (cp < 0xaa29) + return true; + return false; + } + if (cp < 0xaac0) { + if (cp < 0xaa7a) { + if (cp < 0xaa40) + return false; + if (cp < 0xaa43) + return true; + if (cp < 0xaa44) + return false; + if (cp < 0xaa4c) + return true; + if (cp < 0xaa60) + return false; + if (cp < 0xaa70) + return true; + if (cp === 0xaa70) + return true; + if (cp < 0xaa71) + return false; + if (cp < 0xaa77) + return true; + return false; + } + if (cp === 0xaa7a) + return true; + if (cp < 0xaa7e) + return false; + if (cp < 0xaab0) + return true; + if (cp === 0xaab1) + return true; + if (cp < 0xaab5) + return false; + if (cp < 0xaab7) + return true; + if (cp < 0xaab9) + return false; + if (cp < 0xaabe) + return true; + return false; + } + if (cp < 0xaaf2) { + if (cp === 0xaac0) + return true; + if (cp === 0xaac2) + return true; + if (cp < 0xaadb) + return false; + if (cp < 0xaadd) + return true; + if (cp === 0xaadd) + return true; + if (cp < 0xaae0) + return false; + if (cp < 0xaaeb) + return true; + return false; + } + if (cp === 0xaaf2) + return true; + if (cp < 0xaaf3) + return false; + if (cp < 0xaaf5) + return true; + if (cp < 0xab01) + return false; + if (cp < 0xab07) + return true; + if (cp < 0xab09) + return false; + if (cp < 0xab0f) + return true; + if (cp < 0xab11) + return false; + if (cp < 0xab17) + return true; + if (cp < 0xab20) + return false; + if (cp < 0xab27) + return true; + return false; + } + if (cp < 0x1003c) { + if (cp < 0xfb46) { + if (cp < 0xfa70) { + if (cp < 0xabc0) { + if (cp < 0xab28) + return false; + if (cp < 0xab2f) + return true; + if (cp < 0xab30) + return false; + if (cp < 0xab5b) + return true; + if (cp < 0xab5c) + return false; + if (cp < 0xab60) + return true; + if (cp < 0xab60) + return false; + if (cp < 0xab66) + return true; + if (cp < 0xab70) + return false; + if (cp < 0xabc0) + return true; + return false; + } + if (cp < 0xabe3) + return true; + if (cp < 0xac00) + return false; + if (cp < 0xd7a4) + return true; + if (cp < 0xd7b0) + return false; + if (cp < 0xd7c7) + return true; + if (cp < 0xd7cb) + return false; + if (cp < 0xd7fc) + return true; + if (cp < 0xf900) + return false; + if (cp < 0xfa6e) + return true; + return false; + } + if (cp < 0xfb2a) { + if (cp < 0xfa70) + return false; + if (cp < 0xfada) + return true; + if (cp < 0xfb00) + return false; + if (cp < 0xfb07) + return true; + if (cp < 0xfb13) + return false; + if (cp < 0xfb18) + return true; + if (cp === 0xfb1d) + return true; + if (cp < 0xfb1f) + return false; + if (cp < 0xfb29) + return true; + return false; + } + if (cp < 0xfb37) + return true; + if (cp < 0xfb38) + return false; + if (cp < 0xfb3d) + return true; + if (cp === 0xfb3e) + return true; + if (cp < 0xfb40) + return false; + if (cp < 0xfb42) + return true; + if (cp < 0xfb43) + return false; + if (cp < 0xfb45) + return true; + return false; + } + if (cp < 0xff70) { + if (cp < 0xfe70) { + if (cp < 0xfb46) + return false; + if (cp < 0xfbb2) + return true; + if (cp < 0xfbd3) + return false; + if (cp < 0xfd3e) + return true; + if (cp < 0xfd50) + return false; + if (cp < 0xfd90) + return true; + if (cp < 0xfd92) + return false; + if (cp < 0xfdc8) + return true; + if (cp < 0xfdf0) + return false; + if (cp < 0xfdfc) + return true; + return false; + } + if (cp < 0xfe75) + return true; + if (cp < 0xfe76) + return false; + if (cp < 0xfefd) + return true; + if (cp < 0xff21) + return false; + if (cp < 0xff3b) + return true; + if (cp < 0xff41) + return false; + if (cp < 0xff5b) + return true; + if (cp < 0xff66) + return false; + if (cp < 0xff70) + return true; + return false; + } + if (cp < 0xffca) { + if (cp === 0xff70) + return true; + if (cp < 0xff71) + return false; + if (cp < 0xff9e) + return true; + if (cp < 0xff9e) + return false; + if (cp < 0xffa0) + return true; + if (cp < 0xffa0) + return false; + if (cp < 0xffbf) + return true; + if (cp < 0xffc2) + return false; + if (cp < 0xffc8) + return true; + return false; + } + if (cp < 0xffd0) + return true; + if (cp < 0xffd2) + return false; + if (cp < 0xffd8) + return true; + if (cp < 0xffda) + return false; + if (cp < 0xffdd) + return true; + if (cp < 0x10000) + return false; + if (cp < 0x1000c) + return true; + if (cp < 0x1000d) + return false; + if (cp < 0x10027) + return true; + if (cp < 0x10028) + return false; + if (cp < 0x1003b) + return true; + return false; + } + if (cp < 0x104d8) { + if (cp < 0x10342) { + if (cp < 0x10280) { + if (cp < 0x1003c) + return false; + if (cp < 0x1003e) + return true; + if (cp < 0x1003f) + return false; + if (cp < 0x1004e) + return true; + if (cp < 0x10050) + return false; + if (cp < 0x1005e) + return true; + if (cp < 0x10080) + return false; + if (cp < 0x100fb) + return true; + if (cp < 0x10140) + return false; + if (cp < 0x10175) + return true; + return false; + } + if (cp < 0x1029d) + return true; + if (cp < 0x102a0) + return false; + if (cp < 0x102d1) + return true; + if (cp < 0x10300) + return false; + if (cp < 0x10320) + return true; + if (cp < 0x1032d) + return false; + if (cp < 0x10341) + return true; + if (cp === 0x10341) + return true; + return false; + } + if (cp < 0x103c8) { + if (cp < 0x10342) + return false; + if (cp < 0x1034a) + return true; + if (cp === 0x1034a) + return true; + if (cp < 0x10350) + return false; + if (cp < 0x10376) + return true; + if (cp < 0x10380) + return false; + if (cp < 0x1039e) + return true; + if (cp < 0x103a0) + return false; + if (cp < 0x103c4) + return true; + return false; + } + if (cp < 0x103d0) + return true; + if (cp < 0x103d1) + return false; + if (cp < 0x103d6) + return true; + if (cp < 0x10400) + return false; + if (cp < 0x10450) + return true; + if (cp < 0x10450) + return false; + if (cp < 0x1049e) + return true; + if (cp < 0x104b0) + return false; + if (cp < 0x104d4) + return true; + return false; + } + if (cp < 0x1083c) { + if (cp < 0x10760) { + if (cp < 0x104d8) + return false; + if (cp < 0x104fc) + return true; + if (cp < 0x10500) + return false; + if (cp < 0x10528) + return true; + if (cp < 0x10530) + return false; + if (cp < 0x10564) + return true; + if (cp < 0x10600) + return false; + if (cp < 0x10737) + return true; + if (cp < 0x10740) + return false; + if (cp < 0x10756) + return true; + return false; + } + if (cp < 0x10768) + return true; + if (cp < 0x10800) + return false; + if (cp < 0x10806) + return true; + if (cp === 0x10808) + return true; + if (cp < 0x1080a) + return false; + if (cp < 0x10836) + return true; + if (cp < 0x10837) + return false; + if (cp < 0x10839) + return true; + return false; + } + if (cp < 0x108f4) { + if (cp === 0x1083c) + return true; + if (cp < 0x1083f) + return false; + if (cp < 0x10856) + return true; + if (cp < 0x10860) + return false; + if (cp < 0x10877) + return true; + if (cp < 0x10880) + return false; + if (cp < 0x1089f) + return true; + if (cp < 0x108e0) + return false; + if (cp < 0x108f3) + return true; + return false; + } + if (cp < 0x108f6) + return true; + if (cp < 0x10900) + return false; + if (cp < 0x10916) + return true; + if (cp < 0x10920) + return false; + if (cp < 0x1093a) + return true; + if (cp < 0x10980) + return false; + if (cp < 0x109b8) + return true; + if (cp < 0x109be) + return false; + if (cp < 0x109c0) + return true; + if (cp === 0x10a00) + return true; + return false; + } + if (cp < 0x16f50) { + if (cp < 0x11400) { + if (cp < 0x11183) { + if (cp < 0x10b80) { + if (cp < 0x10ac0) { + if (cp < 0x10a10) + return false; + if (cp < 0x10a14) + return true; + if (cp < 0x10a15) + return false; + if (cp < 0x10a18) + return true; + if (cp < 0x10a19) + return false; + if (cp < 0x10a34) + return true; + if (cp < 0x10a60) + return false; + if (cp < 0x10a7d) + return true; + if (cp < 0x10a80) + return false; + if (cp < 0x10a9d) + return true; + return false; + } + if (cp < 0x10ac8) + return true; + if (cp < 0x10ac9) + return false; + if (cp < 0x10ae5) + return true; + if (cp < 0x10b00) + return false; + if (cp < 0x10b36) + return true; + if (cp < 0x10b40) + return false; + if (cp < 0x10b56) + return true; + if (cp < 0x10b60) + return false; + if (cp < 0x10b73) + return true; + return false; + } + if (cp < 0x11083) { + if (cp < 0x10b80) + return false; + if (cp < 0x10b92) + return true; + if (cp < 0x10c00) + return false; + if (cp < 0x10c49) + return true; + if (cp < 0x10c80) + return false; + if (cp < 0x10cb3) + return true; + if (cp < 0x10cc0) + return false; + if (cp < 0x10cf3) + return true; + if (cp < 0x11003) + return false; + if (cp < 0x11038) + return true; + return false; + } + if (cp < 0x110b0) + return true; + if (cp < 0x110d0) + return false; + if (cp < 0x110e9) + return true; + if (cp < 0x11103) + return false; + if (cp < 0x11127) + return true; + if (cp < 0x11150) + return false; + if (cp < 0x11173) + return true; + if (cp === 0x11176) + return true; + return false; + } + if (cp < 0x1129f) { + if (cp < 0x11213) { + if (cp < 0x11183) + return false; + if (cp < 0x111b3) + return true; + if (cp < 0x111c1) + return false; + if (cp < 0x111c5) + return true; + if (cp === 0x111da) + return true; + if (cp === 0x111dc) + return true; + if (cp < 0x11200) + return false; + if (cp < 0x11212) + return true; + return false; + } + if (cp < 0x1122c) + return true; + if (cp < 0x11280) + return false; + if (cp < 0x11287) + return true; + if (cp === 0x11288) + return true; + if (cp < 0x1128a) + return false; + if (cp < 0x1128e) + return true; + if (cp < 0x1128f) + return false; + if (cp < 0x1129e) + return true; + return false; + } + if (cp < 0x1132a) { + if (cp < 0x1129f) + return false; + if (cp < 0x112a9) + return true; + if (cp < 0x112b0) + return false; + if (cp < 0x112df) + return true; + if (cp < 0x11305) + return false; + if (cp < 0x1130d) + return true; + if (cp < 0x1130f) + return false; + if (cp < 0x11311) + return true; + if (cp < 0x11313) + return false; + if (cp < 0x11329) + return true; + return false; + } + if (cp < 0x11331) + return true; + if (cp < 0x11332) + return false; + if (cp < 0x11334) + return true; + if (cp < 0x11335) + return false; + if (cp < 0x1133a) + return true; + if (cp === 0x1133d) + return true; + if (cp === 0x11350) + return true; + if (cp < 0x1135d) + return false; + if (cp < 0x11362) + return true; + return false; + } + if (cp < 0x11c00) { + if (cp < 0x11700) { + if (cp < 0x11580) { + if (cp < 0x11400) + return false; + if (cp < 0x11435) + return true; + if (cp < 0x11447) + return false; + if (cp < 0x1144b) + return true; + if (cp < 0x11480) + return false; + if (cp < 0x114b0) + return true; + if (cp < 0x114c4) + return false; + if (cp < 0x114c6) + return true; + if (cp === 0x114c7) + return true; + return false; + } + if (cp < 0x115af) + return true; + if (cp < 0x115d8) + return false; + if (cp < 0x115dc) + return true; + if (cp < 0x11600) + return false; + if (cp < 0x11630) + return true; + if (cp === 0x11644) + return true; + if (cp < 0x11680) + return false; + if (cp < 0x116ab) + return true; + return false; + } + if (cp < 0x11a3a) { + if (cp < 0x11700) + return false; + if (cp < 0x1171a) + return true; + if (cp < 0x118a0) + return false; + if (cp < 0x118e0) + return true; + if (cp === 0x118ff) + return true; + if (cp === 0x11a00) + return true; + if (cp < 0x11a0b) + return false; + if (cp < 0x11a33) + return true; + return false; + } + if (cp === 0x11a3a) + return true; + if (cp === 0x11a50) + return true; + if (cp < 0x11a5c) + return false; + if (cp < 0x11a84) + return true; + if (cp < 0x11a86) + return false; + if (cp < 0x11a8a) + return true; + if (cp < 0x11ac0) + return false; + if (cp < 0x11af9) + return true; + return false; + } + if (cp < 0x12480) { + if (cp < 0x11d08) { + if (cp < 0x11c00) + return false; + if (cp < 0x11c09) + return true; + if (cp < 0x11c0a) + return false; + if (cp < 0x11c2f) + return true; + if (cp === 0x11c40) + return true; + if (cp < 0x11c72) + return false; + if (cp < 0x11c90) + return true; + if (cp < 0x11d00) + return false; + if (cp < 0x11d07) + return true; + return false; + } + if (cp < 0x11d0a) + return true; + if (cp < 0x11d0b) + return false; + if (cp < 0x11d31) + return true; + if (cp === 0x11d46) + return true; + if (cp < 0x12000) + return false; + if (cp < 0x1239a) + return true; + if (cp < 0x12400) + return false; + if (cp < 0x1246f) + return true; + return false; + } + if (cp < 0x16ad0) { + if (cp < 0x12480) + return false; + if (cp < 0x12544) + return true; + if (cp < 0x13000) + return false; + if (cp < 0x1342f) + return true; + if (cp < 0x14400) + return false; + if (cp < 0x14647) + return true; + if (cp < 0x16800) + return false; + if (cp < 0x16a39) + return true; + if (cp < 0x16a40) + return false; + if (cp < 0x16a5f) + return true; + return false; + } + if (cp < 0x16aee) + return true; + if (cp < 0x16b00) + return false; + if (cp < 0x16b30) + return true; + if (cp < 0x16b40) + return false; + if (cp < 0x16b44) + return true; + if (cp < 0x16b63) + return false; + if (cp < 0x16b78) + return true; + if (cp < 0x16b7d) + return false; + if (cp < 0x16b90) + return true; + if (cp < 0x16f00) + return false; + if (cp < 0x16f45) + return true; + return false; + } + if (cp < 0x1e800) { + if (cp < 0x1d4c5) { + if (cp < 0x1bc90) { + if (cp < 0x1b000) { + if (cp === 0x16f50) + return true; + if (cp < 0x16f93) + return false; + if (cp < 0x16fa0) + return true; + if (cp < 0x16fe0) + return false; + if (cp < 0x16fe2) + return true; + if (cp < 0x17000) + return false; + if (cp < 0x187ed) + return true; + if (cp < 0x18800) + return false; + if (cp < 0x18af3) + return true; + return false; + } + if (cp < 0x1b11f) + return true; + if (cp < 0x1b170) + return false; + if (cp < 0x1b2fc) + return true; + if (cp < 0x1bc00) + return false; + if (cp < 0x1bc6b) + return true; + if (cp < 0x1bc70) + return false; + if (cp < 0x1bc7d) + return true; + if (cp < 0x1bc80) + return false; + if (cp < 0x1bc89) + return true; + return false; + } + if (cp < 0x1d4a5) { + if (cp < 0x1bc90) + return false; + if (cp < 0x1bc9a) + return true; + if (cp < 0x1d400) + return false; + if (cp < 0x1d455) + return true; + if (cp < 0x1d456) + return false; + if (cp < 0x1d49d) + return true; + if (cp < 0x1d49e) + return false; + if (cp < 0x1d4a0) + return true; + if (cp === 0x1d4a2) + return true; + return false; + } + if (cp < 0x1d4a7) + return true; + if (cp < 0x1d4a9) + return false; + if (cp < 0x1d4ad) + return true; + if (cp < 0x1d4ae) + return false; + if (cp < 0x1d4ba) + return true; + if (cp === 0x1d4bb) + return true; + if (cp < 0x1d4bd) + return false; + if (cp < 0x1d4c4) + return true; + return false; + } + if (cp < 0x1d6a8) { + if (cp < 0x1d53b) { + if (cp < 0x1d4c5) + return false; + if (cp < 0x1d506) + return true; + if (cp < 0x1d507) + return false; + if (cp < 0x1d50b) + return true; + if (cp < 0x1d50d) + return false; + if (cp < 0x1d515) + return true; + if (cp < 0x1d516) + return false; + if (cp < 0x1d51d) + return true; + if (cp < 0x1d51e) + return false; + if (cp < 0x1d53a) + return true; + return false; + } + if (cp < 0x1d53f) + return true; + if (cp < 0x1d540) + return false; + if (cp < 0x1d545) + return true; + if (cp === 0x1d546) + return true; + if (cp < 0x1d54a) + return false; + if (cp < 0x1d551) + return true; + if (cp < 0x1d552) + return false; + if (cp < 0x1d6a6) + return true; + return false; + } + if (cp < 0x1d736) { + if (cp < 0x1d6a8) + return false; + if (cp < 0x1d6c1) + return true; + if (cp < 0x1d6c2) + return false; + if (cp < 0x1d6db) + return true; + if (cp < 0x1d6dc) + return false; + if (cp < 0x1d6fb) + return true; + if (cp < 0x1d6fc) + return false; + if (cp < 0x1d715) + return true; + if (cp < 0x1d716) + return false; + if (cp < 0x1d735) + return true; + return false; + } + if (cp < 0x1d74f) + return true; + if (cp < 0x1d750) + return false; + if (cp < 0x1d76f) + return true; + if (cp < 0x1d770) + return false; + if (cp < 0x1d789) + return true; + if (cp < 0x1d78a) + return false; + if (cp < 0x1d7a9) + return true; + if (cp < 0x1d7aa) + return false; + if (cp < 0x1d7c3) + return true; + if (cp < 0x1d7c4) + return false; + if (cp < 0x1d7cc) + return true; + return false; + } + if (cp < 0x1ee5b) { + if (cp < 0x1ee3b) { + if (cp < 0x1ee24) { + if (cp < 0x1e800) + return false; + if (cp < 0x1e8c5) + return true; + if (cp < 0x1e900) + return false; + if (cp < 0x1e944) + return true; + if (cp < 0x1ee00) + return false; + if (cp < 0x1ee04) + return true; + if (cp < 0x1ee05) + return false; + if (cp < 0x1ee20) + return true; + if (cp < 0x1ee21) + return false; + if (cp < 0x1ee23) + return true; + return false; + } + if (cp === 0x1ee24) + return true; + if (cp === 0x1ee27) + return true; + if (cp < 0x1ee29) + return false; + if (cp < 0x1ee33) + return true; + if (cp < 0x1ee34) + return false; + if (cp < 0x1ee38) + return true; + if (cp === 0x1ee39) + return true; + return false; + } + if (cp < 0x1ee4d) { + if (cp === 0x1ee3b) + return true; + if (cp === 0x1ee42) + return true; + if (cp === 0x1ee47) + return true; + if (cp === 0x1ee49) + return true; + if (cp === 0x1ee4b) + return true; + return false; + } + if (cp < 0x1ee50) + return true; + if (cp < 0x1ee51) + return false; + if (cp < 0x1ee53) + return true; + if (cp === 0x1ee54) + return true; + if (cp === 0x1ee57) + return true; + if (cp === 0x1ee59) + return true; + return false; + } + if (cp < 0x1ee80) { + if (cp < 0x1ee67) { + if (cp === 0x1ee5b) + return true; + if (cp === 0x1ee5d) + return true; + if (cp === 0x1ee5f) + return true; + if (cp < 0x1ee61) + return false; + if (cp < 0x1ee63) + return true; + if (cp === 0x1ee64) + return true; + return false; + } + if (cp < 0x1ee6b) + return true; + if (cp < 0x1ee6c) + return false; + if (cp < 0x1ee73) + return true; + if (cp < 0x1ee74) + return false; + if (cp < 0x1ee78) + return true; + if (cp < 0x1ee79) + return false; + if (cp < 0x1ee7d) + return true; + if (cp === 0x1ee7e) + return true; + return false; + } + if (cp < 0x20000) { + if (cp < 0x1ee80) + return false; + if (cp < 0x1ee8a) + return true; + if (cp < 0x1ee8b) + return false; + if (cp < 0x1ee9c) + return true; + if (cp < 0x1eea1) + return false; + if (cp < 0x1eea4) + return true; + if (cp < 0x1eea5) + return false; + if (cp < 0x1eeaa) + return true; + if (cp < 0x1eeab) + return false; + if (cp < 0x1eebc) + return true; + return false; + } + if (cp < 0x2a6d7) + return true; + if (cp < 0x2a700) + return false; + if (cp < 0x2b735) + return true; + if (cp < 0x2b740) + return false; + if (cp < 0x2b81e) + return true; + if (cp < 0x2b820) + return false; + if (cp < 0x2cea2) + return true; + if (cp < 0x2ceb0) + return false; + if (cp < 0x2ebe1) + return true; + if (cp < 0x2f800) + return false; + if (cp < 0x2fa1e) + return true; + return false; +} +function isLargeIdContinue(cp) { + if (cp < 0x1bf2) { + if (cp < 0xd62) { + if (cp < 0xa83) { + if (cp < 0x93b) { + if (cp < 0x6ea) { + if (cp < 0x5c7) { + if (cp === 0xb7) + return true; + if (cp < 0x300) + return false; + if (cp < 0x370) + return true; + if (cp === 0x387) + return true; + if (cp < 0x483) + return false; + if (cp < 0x488) + return true; + if (cp < 0x591) + return false; + if (cp < 0x5be) + return true; + if (cp === 0x5bf) + return true; + if (cp < 0x5c1) + return false; + if (cp < 0x5c3) + return true; + if (cp < 0x5c4) + return false; + if (cp < 0x5c6) + return true; + return false; + } + if (cp === 0x5c7) + return true; + if (cp < 0x610) + return false; + if (cp < 0x61b) + return true; + if (cp < 0x64b) + return false; + if (cp < 0x660) + return true; + if (cp < 0x660) + return false; + if (cp < 0x66a) + return true; + if (cp === 0x670) + return true; + if (cp < 0x6d6) + return false; + if (cp < 0x6dd) + return true; + if (cp < 0x6df) + return false; + if (cp < 0x6e5) + return true; + if (cp < 0x6e7) + return false; + if (cp < 0x6e9) + return true; + return false; + } + if (cp < 0x81b) { + if (cp < 0x6ea) + return false; + if (cp < 0x6ee) + return true; + if (cp < 0x6f0) + return false; + if (cp < 0x6fa) + return true; + if (cp === 0x711) + return true; + if (cp < 0x730) + return false; + if (cp < 0x74b) + return true; + if (cp < 0x7a6) + return false; + if (cp < 0x7b1) + return true; + if (cp < 0x7c0) + return false; + if (cp < 0x7ca) + return true; + if (cp < 0x7eb) + return false; + if (cp < 0x7f4) + return true; + if (cp < 0x816) + return false; + if (cp < 0x81a) + return true; + return false; + } + if (cp < 0x824) + return true; + if (cp < 0x825) + return false; + if (cp < 0x828) + return true; + if (cp < 0x829) + return false; + if (cp < 0x82e) + return true; + if (cp < 0x859) + return false; + if (cp < 0x85c) + return true; + if (cp < 0x8d4) + return false; + if (cp < 0x8e2) + return true; + if (cp < 0x8e3) + return false; + if (cp < 0x903) + return true; + if (cp === 0x903) + return true; + if (cp === 0x93a) + return true; + return false; + } + if (cp < 0x9cb) { + if (cp < 0x962) { + if (cp === 0x93b) + return true; + if (cp === 0x93c) + return true; + if (cp < 0x93e) + return false; + if (cp < 0x941) + return true; + if (cp < 0x941) + return false; + if (cp < 0x949) + return true; + if (cp < 0x949) + return false; + if (cp < 0x94d) + return true; + if (cp === 0x94d) + return true; + if (cp < 0x94e) + return false; + if (cp < 0x950) + return true; + if (cp < 0x951) + return false; + if (cp < 0x958) + return true; + return false; + } + if (cp < 0x964) + return true; + if (cp < 0x966) + return false; + if (cp < 0x970) + return true; + if (cp === 0x981) + return true; + if (cp < 0x982) + return false; + if (cp < 0x984) + return true; + if (cp === 0x9bc) + return true; + if (cp < 0x9be) + return false; + if (cp < 0x9c1) + return true; + if (cp < 0x9c1) + return false; + if (cp < 0x9c5) + return true; + if (cp < 0x9c7) + return false; + if (cp < 0x9c9) + return true; + return false; + } + if (cp < 0xa3e) { + if (cp < 0x9cb) + return false; + if (cp < 0x9cd) + return true; + if (cp === 0x9cd) + return true; + if (cp === 0x9d7) + return true; + if (cp < 0x9e2) + return false; + if (cp < 0x9e4) + return true; + if (cp < 0x9e6) + return false; + if (cp < 0x9f0) + return true; + if (cp < 0xa01) + return false; + if (cp < 0xa03) + return true; + if (cp === 0xa03) + return true; + if (cp === 0xa3c) + return true; + return false; + } + if (cp < 0xa41) + return true; + if (cp < 0xa41) + return false; + if (cp < 0xa43) + return true; + if (cp < 0xa47) + return false; + if (cp < 0xa49) + return true; + if (cp < 0xa4b) + return false; + if (cp < 0xa4e) + return true; + if (cp === 0xa51) + return true; + if (cp < 0xa66) + return false; + if (cp < 0xa70) + return true; + if (cp < 0xa70) + return false; + if (cp < 0xa72) + return true; + if (cp === 0xa75) + return true; + if (cp < 0xa81) + return false; + if (cp < 0xa83) + return true; + return false; + } + if (cp < 0xbd7) { + if (cp < 0xb40) { + if (cp < 0xae2) { + if (cp === 0xa83) + return true; + if (cp === 0xabc) + return true; + if (cp < 0xabe) + return false; + if (cp < 0xac1) + return true; + if (cp < 0xac1) + return false; + if (cp < 0xac6) + return true; + if (cp < 0xac7) + return false; + if (cp < 0xac9) + return true; + if (cp === 0xac9) + return true; + if (cp < 0xacb) + return false; + if (cp < 0xacd) + return true; + if (cp === 0xacd) + return true; + return false; + } + if (cp < 0xae4) + return true; + if (cp < 0xae6) + return false; + if (cp < 0xaf0) + return true; + if (cp < 0xafa) + return false; + if (cp < 0xb00) + return true; + if (cp === 0xb01) + return true; + if (cp < 0xb02) + return false; + if (cp < 0xb04) + return true; + if (cp === 0xb3c) + return true; + if (cp === 0xb3e) + return true; + if (cp === 0xb3f) + return true; + return false; + } + if (cp < 0xb66) { + if (cp === 0xb40) + return true; + if (cp < 0xb41) + return false; + if (cp < 0xb45) + return true; + if (cp < 0xb47) + return false; + if (cp < 0xb49) + return true; + if (cp < 0xb4b) + return false; + if (cp < 0xb4d) + return true; + if (cp === 0xb4d) + return true; + if (cp === 0xb56) + return true; + if (cp === 0xb57) + return true; + if (cp < 0xb62) + return false; + if (cp < 0xb64) + return true; + return false; + } + if (cp < 0xb70) + return true; + if (cp === 0xb82) + return true; + if (cp < 0xbbe) + return false; + if (cp < 0xbc0) + return true; + if (cp === 0xbc0) + return true; + if (cp < 0xbc1) + return false; + if (cp < 0xbc3) + return true; + if (cp < 0xbc6) + return false; + if (cp < 0xbc9) + return true; + if (cp < 0xbca) + return false; + if (cp < 0xbcd) + return true; + if (cp === 0xbcd) + return true; + return false; + } + if (cp < 0xcc0) { + if (cp < 0xc55) { + if (cp === 0xbd7) + return true; + if (cp < 0xbe6) + return false; + if (cp < 0xbf0) + return true; + if (cp === 0xc00) + return true; + if (cp < 0xc01) + return false; + if (cp < 0xc04) + return true; + if (cp < 0xc3e) + return false; + if (cp < 0xc41) + return true; + if (cp < 0xc41) + return false; + if (cp < 0xc45) + return true; + if (cp < 0xc46) + return false; + if (cp < 0xc49) + return true; + if (cp < 0xc4a) + return false; + if (cp < 0xc4e) + return true; + return false; + } + if (cp < 0xc57) + return true; + if (cp < 0xc62) + return false; + if (cp < 0xc64) + return true; + if (cp < 0xc66) + return false; + if (cp < 0xc70) + return true; + if (cp === 0xc81) + return true; + if (cp < 0xc82) + return false; + if (cp < 0xc84) + return true; + if (cp === 0xcbc) + return true; + if (cp === 0xcbe) + return true; + if (cp === 0xcbf) + return true; + return false; + } + if (cp < 0xd00) { + if (cp < 0xcc0) + return false; + if (cp < 0xcc5) + return true; + if (cp === 0xcc6) + return true; + if (cp < 0xcc7) + return false; + if (cp < 0xcc9) + return true; + if (cp < 0xcca) + return false; + if (cp < 0xccc) + return true; + if (cp < 0xccc) + return false; + if (cp < 0xcce) + return true; + if (cp < 0xcd5) + return false; + if (cp < 0xcd7) + return true; + if (cp < 0xce2) + return false; + if (cp < 0xce4) + return true; + if (cp < 0xce6) + return false; + if (cp < 0xcf0) + return true; + return false; + } + if (cp < 0xd02) + return true; + if (cp < 0xd02) + return false; + if (cp < 0xd04) + return true; + if (cp < 0xd3b) + return false; + if (cp < 0xd3d) + return true; + if (cp < 0xd3e) + return false; + if (cp < 0xd41) + return true; + if (cp < 0xd41) + return false; + if (cp < 0xd45) + return true; + if (cp < 0xd46) + return false; + if (cp < 0xd49) + return true; + if (cp < 0xd4a) + return false; + if (cp < 0xd4d) + return true; + if (cp === 0xd4d) + return true; + if (cp === 0xd57) + return true; + return false; + } + if (cp < 0x17be) { + if (cp < 0x102b) { + if (cp < 0xebb) { + if (cp < 0xde6) { + if (cp < 0xd62) + return false; + if (cp < 0xd64) + return true; + if (cp < 0xd66) + return false; + if (cp < 0xd70) + return true; + if (cp < 0xd82) + return false; + if (cp < 0xd84) + return true; + if (cp === 0xdca) + return true; + if (cp < 0xdcf) + return false; + if (cp < 0xdd2) + return true; + if (cp < 0xdd2) + return false; + if (cp < 0xdd5) + return true; + if (cp === 0xdd6) + return true; + if (cp < 0xdd8) + return false; + if (cp < 0xde0) + return true; + return false; + } + if (cp < 0xdf0) + return true; + if (cp < 0xdf2) + return false; + if (cp < 0xdf4) + return true; + if (cp === 0xe31) + return true; + if (cp < 0xe34) + return false; + if (cp < 0xe3b) + return true; + if (cp < 0xe47) + return false; + if (cp < 0xe4f) + return true; + if (cp < 0xe50) + return false; + if (cp < 0xe5a) + return true; + if (cp === 0xeb1) + return true; + if (cp < 0xeb4) + return false; + if (cp < 0xeba) + return true; + return false; + } + if (cp < 0xf3e) { + if (cp < 0xebb) + return false; + if (cp < 0xebd) + return true; + if (cp < 0xec8) + return false; + if (cp < 0xece) + return true; + if (cp < 0xed0) + return false; + if (cp < 0xeda) + return true; + if (cp < 0xf18) + return false; + if (cp < 0xf1a) + return true; + if (cp < 0xf20) + return false; + if (cp < 0xf2a) + return true; + if (cp === 0xf35) + return true; + if (cp === 0xf37) + return true; + if (cp === 0xf39) + return true; + return false; + } + if (cp < 0xf40) + return true; + if (cp < 0xf71) + return false; + if (cp < 0xf7f) + return true; + if (cp === 0xf7f) + return true; + if (cp < 0xf80) + return false; + if (cp < 0xf85) + return true; + if (cp < 0xf86) + return false; + if (cp < 0xf88) + return true; + if (cp < 0xf8d) + return false; + if (cp < 0xf98) + return true; + if (cp < 0xf99) + return false; + if (cp < 0xfbd) + return true; + if (cp === 0xfc6) + return true; + return false; + } + if (cp < 0x1083) { + if (cp < 0x1040) { + if (cp < 0x102b) + return false; + if (cp < 0x102d) + return true; + if (cp < 0x102d) + return false; + if (cp < 0x1031) + return true; + if (cp === 0x1031) + return true; + if (cp < 0x1032) + return false; + if (cp < 0x1038) + return true; + if (cp === 0x1038) + return true; + if (cp < 0x1039) + return false; + if (cp < 0x103b) + return true; + if (cp < 0x103b) + return false; + if (cp < 0x103d) + return true; + if (cp < 0x103d) + return false; + if (cp < 0x103f) + return true; + return false; + } + if (cp < 0x104a) + return true; + if (cp < 0x1056) + return false; + if (cp < 0x1058) + return true; + if (cp < 0x1058) + return false; + if (cp < 0x105a) + return true; + if (cp < 0x105e) + return false; + if (cp < 0x1061) + return true; + if (cp < 0x1062) + return false; + if (cp < 0x1065) + return true; + if (cp < 0x1067) + return false; + if (cp < 0x106e) + return true; + if (cp < 0x1071) + return false; + if (cp < 0x1075) + return true; + if (cp === 0x1082) + return true; + return false; + } + if (cp < 0x135d) { + if (cp < 0x1083) + return false; + if (cp < 0x1085) + return true; + if (cp < 0x1085) + return false; + if (cp < 0x1087) + return true; + if (cp < 0x1087) + return false; + if (cp < 0x108d) + return true; + if (cp === 0x108d) + return true; + if (cp === 0x108f) + return true; + if (cp < 0x1090) + return false; + if (cp < 0x109a) + return true; + if (cp < 0x109a) + return false; + if (cp < 0x109d) + return true; + if (cp === 0x109d) + return true; + return false; + } + if (cp < 0x1360) + return true; + if (cp < 0x1369) + return false; + if (cp < 0x1372) + return true; + if (cp < 0x1712) + return false; + if (cp < 0x1715) + return true; + if (cp < 0x1732) + return false; + if (cp < 0x1735) + return true; + if (cp < 0x1752) + return false; + if (cp < 0x1754) + return true; + if (cp < 0x1772) + return false; + if (cp < 0x1774) + return true; + if (cp < 0x17b4) + return false; + if (cp < 0x17b6) + return true; + if (cp === 0x17b6) + return true; + if (cp < 0x17b7) + return false; + if (cp < 0x17be) + return true; + return false; + } + if (cp < 0x1a73) { + if (cp < 0x1939) { + if (cp < 0x18a9) { + if (cp < 0x17be) + return false; + if (cp < 0x17c6) + return true; + if (cp === 0x17c6) + return true; + if (cp < 0x17c7) + return false; + if (cp < 0x17c9) + return true; + if (cp < 0x17c9) + return false; + if (cp < 0x17d4) + return true; + if (cp === 0x17dd) + return true; + if (cp < 0x17e0) + return false; + if (cp < 0x17ea) + return true; + if (cp < 0x180b) + return false; + if (cp < 0x180e) + return true; + if (cp < 0x1810) + return false; + if (cp < 0x181a) + return true; + return false; + } + if (cp === 0x18a9) + return true; + if (cp < 0x1920) + return false; + if (cp < 0x1923) + return true; + if (cp < 0x1923) + return false; + if (cp < 0x1927) + return true; + if (cp < 0x1927) + return false; + if (cp < 0x1929) + return true; + if (cp < 0x1929) + return false; + if (cp < 0x192c) + return true; + if (cp < 0x1930) + return false; + if (cp < 0x1932) + return true; + if (cp === 0x1932) + return true; + if (cp < 0x1933) + return false; + if (cp < 0x1939) + return true; + return false; + } + if (cp < 0x1a56) { + if (cp < 0x1939) + return false; + if (cp < 0x193c) + return true; + if (cp < 0x1946) + return false; + if (cp < 0x1950) + return true; + if (cp < 0x19d0) + return false; + if (cp < 0x19da) + return true; + if (cp === 0x19da) + return true; + if (cp < 0x1a17) + return false; + if (cp < 0x1a19) + return true; + if (cp < 0x1a19) + return false; + if (cp < 0x1a1b) + return true; + if (cp === 0x1a1b) + return true; + if (cp === 0x1a55) + return true; + return false; + } + if (cp === 0x1a56) + return true; + if (cp === 0x1a57) + return true; + if (cp < 0x1a58) + return false; + if (cp < 0x1a5f) + return true; + if (cp === 0x1a60) + return true; + if (cp === 0x1a61) + return true; + if (cp === 0x1a62) + return true; + if (cp < 0x1a63) + return false; + if (cp < 0x1a65) + return true; + if (cp < 0x1a65) + return false; + if (cp < 0x1a6d) + return true; + if (cp < 0x1a6d) + return false; + if (cp < 0x1a73) + return true; + return false; + } + if (cp < 0x1b6b) { + if (cp < 0x1b35) { + if (cp < 0x1a73) + return false; + if (cp < 0x1a7d) + return true; + if (cp === 0x1a7f) + return true; + if (cp < 0x1a80) + return false; + if (cp < 0x1a8a) + return true; + if (cp < 0x1a90) + return false; + if (cp < 0x1a9a) + return true; + if (cp < 0x1ab0) + return false; + if (cp < 0x1abe) + return true; + if (cp < 0x1b00) + return false; + if (cp < 0x1b04) + return true; + if (cp === 0x1b04) + return true; + if (cp === 0x1b34) + return true; + return false; + } + if (cp === 0x1b35) + return true; + if (cp < 0x1b36) + return false; + if (cp < 0x1b3b) + return true; + if (cp === 0x1b3b) + return true; + if (cp === 0x1b3c) + return true; + if (cp < 0x1b3d) + return false; + if (cp < 0x1b42) + return true; + if (cp === 0x1b42) + return true; + if (cp < 0x1b43) + return false; + if (cp < 0x1b45) + return true; + if (cp < 0x1b50) + return false; + if (cp < 0x1b5a) + return true; + return false; + } + if (cp < 0x1bab) { + if (cp < 0x1b6b) + return false; + if (cp < 0x1b74) + return true; + if (cp < 0x1b80) + return false; + if (cp < 0x1b82) + return true; + if (cp === 0x1b82) + return true; + if (cp === 0x1ba1) + return true; + if (cp < 0x1ba2) + return false; + if (cp < 0x1ba6) + return true; + if (cp < 0x1ba6) + return false; + if (cp < 0x1ba8) + return true; + if (cp < 0x1ba8) + return false; + if (cp < 0x1baa) + return true; + if (cp === 0x1baa) + return true; + return false; + } + if (cp < 0x1bae) + return true; + if (cp < 0x1bb0) + return false; + if (cp < 0x1bba) + return true; + if (cp === 0x1be6) + return true; + if (cp === 0x1be7) + return true; + if (cp < 0x1be8) + return false; + if (cp < 0x1bea) + return true; + if (cp < 0x1bea) + return false; + if (cp < 0x1bed) + return true; + if (cp === 0x1bed) + return true; + if (cp === 0x1bee) + return true; + if (cp < 0x1bef) + return false; + if (cp < 0x1bf2) + return true; + return false; + } + if (cp < 0x111d0) { + if (cp < 0xaa43) { + if (cp < 0xa69e) { + if (cp < 0x1dc0) { + if (cp < 0x1cd4) { + if (cp < 0x1bf2) + return false; + if (cp < 0x1bf4) + return true; + if (cp < 0x1c24) + return false; + if (cp < 0x1c2c) + return true; + if (cp < 0x1c2c) + return false; + if (cp < 0x1c34) + return true; + if (cp < 0x1c34) + return false; + if (cp < 0x1c36) + return true; + if (cp < 0x1c36) + return false; + if (cp < 0x1c38) + return true; + if (cp < 0x1c40) + return false; + if (cp < 0x1c4a) + return true; + if (cp < 0x1c50) + return false; + if (cp < 0x1c5a) + return true; + if (cp < 0x1cd0) + return false; + if (cp < 0x1cd3) + return true; + return false; + } + if (cp < 0x1ce1) + return true; + if (cp === 0x1ce1) + return true; + if (cp < 0x1ce2) + return false; + if (cp < 0x1ce9) + return true; + if (cp === 0x1ced) + return true; + if (cp < 0x1cf2) + return false; + if (cp < 0x1cf4) + return true; + if (cp === 0x1cf4) + return true; + if (cp === 0x1cf7) + return true; + if (cp < 0x1cf8) + return false; + if (cp < 0x1cfa) + return true; + return false; + } + if (cp < 0x2d7f) { + if (cp < 0x1dc0) + return false; + if (cp < 0x1dfa) + return true; + if (cp < 0x1dfb) + return false; + if (cp < 0x1e00) + return true; + if (cp < 0x203f) + return false; + if (cp < 0x2041) + return true; + if (cp === 0x2054) + return true; + if (cp < 0x20d0) + return false; + if (cp < 0x20dd) + return true; + if (cp === 0x20e1) + return true; + if (cp < 0x20e5) + return false; + if (cp < 0x20f1) + return true; + if (cp < 0x2cef) + return false; + if (cp < 0x2cf2) + return true; + return false; + } + if (cp === 0x2d7f) + return true; + if (cp < 0x2de0) + return false; + if (cp < 0x2e00) + return true; + if (cp < 0x302a) + return false; + if (cp < 0x302e) + return true; + if (cp < 0x302e) + return false; + if (cp < 0x3030) + return true; + if (cp < 0x3099) + return false; + if (cp < 0x309b) + return true; + if (cp < 0xa620) + return false; + if (cp < 0xa62a) + return true; + if (cp === 0xa66f) + return true; + if (cp < 0xa674) + return false; + if (cp < 0xa67e) + return true; + return false; + } + if (cp < 0xa952) { + if (cp < 0xa880) { + if (cp < 0xa69e) + return false; + if (cp < 0xa6a0) + return true; + if (cp < 0xa6f0) + return false; + if (cp < 0xa6f2) + return true; + if (cp === 0xa802) + return true; + if (cp === 0xa806) + return true; + if (cp === 0xa80b) + return true; + if (cp < 0xa823) + return false; + if (cp < 0xa825) + return true; + if (cp < 0xa825) + return false; + if (cp < 0xa827) + return true; + if (cp === 0xa827) + return true; + return false; + } + if (cp < 0xa882) + return true; + if (cp < 0xa8b4) + return false; + if (cp < 0xa8c4) + return true; + if (cp < 0xa8c4) + return false; + if (cp < 0xa8c6) + return true; + if (cp < 0xa8d0) + return false; + if (cp < 0xa8da) + return true; + if (cp < 0xa8e0) + return false; + if (cp < 0xa8f2) + return true; + if (cp < 0xa900) + return false; + if (cp < 0xa90a) + return true; + if (cp < 0xa926) + return false; + if (cp < 0xa92e) + return true; + if (cp < 0xa947) + return false; + if (cp < 0xa952) + return true; + return false; + } + if (cp < 0xa9bd) { + if (cp < 0xa952) + return false; + if (cp < 0xa954) + return true; + if (cp < 0xa980) + return false; + if (cp < 0xa983) + return true; + if (cp === 0xa983) + return true; + if (cp === 0xa9b3) + return true; + if (cp < 0xa9b4) + return false; + if (cp < 0xa9b6) + return true; + if (cp < 0xa9b6) + return false; + if (cp < 0xa9ba) + return true; + if (cp < 0xa9ba) + return false; + if (cp < 0xa9bc) + return true; + if (cp === 0xa9bc) + return true; + return false; + } + if (cp < 0xa9c1) + return true; + if (cp < 0xa9d0) + return false; + if (cp < 0xa9da) + return true; + if (cp === 0xa9e5) + return true; + if (cp < 0xa9f0) + return false; + if (cp < 0xa9fa) + return true; + if (cp < 0xaa29) + return false; + if (cp < 0xaa2f) + return true; + if (cp < 0xaa2f) + return false; + if (cp < 0xaa31) + return true; + if (cp < 0xaa31) + return false; + if (cp < 0xaa33) + return true; + if (cp < 0xaa33) + return false; + if (cp < 0xaa35) + return true; + if (cp < 0xaa35) + return false; + if (cp < 0xaa37) + return true; + return false; + } + if (cp < 0x102e0) { + if (cp < 0xaaf6) { + if (cp < 0xaab2) { + if (cp === 0xaa43) + return true; + if (cp === 0xaa4c) + return true; + if (cp === 0xaa4d) + return true; + if (cp < 0xaa50) + return false; + if (cp < 0xaa5a) + return true; + if (cp === 0xaa7b) + return true; + if (cp === 0xaa7c) + return true; + if (cp === 0xaa7d) + return true; + if (cp === 0xaab0) + return true; + return false; + } + if (cp < 0xaab5) + return true; + if (cp < 0xaab7) + return false; + if (cp < 0xaab9) + return true; + if (cp < 0xaabe) + return false; + if (cp < 0xaac0) + return true; + if (cp === 0xaac1) + return true; + if (cp === 0xaaeb) + return true; + if (cp < 0xaaec) + return false; + if (cp < 0xaaee) + return true; + if (cp < 0xaaee) + return false; + if (cp < 0xaaf0) + return true; + if (cp === 0xaaf5) + return true; + return false; + } + if (cp < 0xabf0) { + if (cp === 0xaaf6) + return true; + if (cp < 0xabe3) + return false; + if (cp < 0xabe5) + return true; + if (cp === 0xabe5) + return true; + if (cp < 0xabe6) + return false; + if (cp < 0xabe8) + return true; + if (cp === 0xabe8) + return true; + if (cp < 0xabe9) + return false; + if (cp < 0xabeb) + return true; + if (cp === 0xabec) + return true; + if (cp === 0xabed) + return true; + return false; + } + if (cp < 0xabfa) + return true; + if (cp === 0xfb1e) + return true; + if (cp < 0xfe00) + return false; + if (cp < 0xfe10) + return true; + if (cp < 0xfe20) + return false; + if (cp < 0xfe30) + return true; + if (cp < 0xfe33) + return false; + if (cp < 0xfe35) + return true; + if (cp < 0xfe4d) + return false; + if (cp < 0xfe50) + return true; + if (cp < 0xff10) + return false; + if (cp < 0xff1a) + return true; + if (cp === 0xff3f) + return true; + if (cp === 0x101fd) + return true; + return false; + } + if (cp < 0x110b0) { + if (cp < 0x10ae5) { + if (cp === 0x102e0) + return true; + if (cp < 0x10376) + return false; + if (cp < 0x1037b) + return true; + if (cp < 0x104a0) + return false; + if (cp < 0x104aa) + return true; + if (cp < 0x10a01) + return false; + if (cp < 0x10a04) + return true; + if (cp < 0x10a05) + return false; + if (cp < 0x10a07) + return true; + if (cp < 0x10a0c) + return false; + if (cp < 0x10a10) + return true; + if (cp < 0x10a38) + return false; + if (cp < 0x10a3b) + return true; + if (cp === 0x10a3f) + return true; + return false; + } + if (cp < 0x10ae7) + return true; + if (cp === 0x11000) + return true; + if (cp === 0x11001) + return true; + if (cp === 0x11002) + return true; + if (cp < 0x11038) + return false; + if (cp < 0x11047) + return true; + if (cp < 0x11066) + return false; + if (cp < 0x11070) + return true; + if (cp < 0x1107f) + return false; + if (cp < 0x11082) + return true; + if (cp === 0x11082) + return true; + return false; + } + if (cp < 0x1112d) { + if (cp < 0x110b0) + return false; + if (cp < 0x110b3) + return true; + if (cp < 0x110b3) + return false; + if (cp < 0x110b7) + return true; + if (cp < 0x110b7) + return false; + if (cp < 0x110b9) + return true; + if (cp < 0x110b9) + return false; + if (cp < 0x110bb) + return true; + if (cp < 0x110f0) + return false; + if (cp < 0x110fa) + return true; + if (cp < 0x11100) + return false; + if (cp < 0x11103) + return true; + if (cp < 0x11127) + return false; + if (cp < 0x1112c) + return true; + if (cp === 0x1112c) + return true; + return false; + } + if (cp < 0x11135) + return true; + if (cp < 0x11136) + return false; + if (cp < 0x11140) + return true; + if (cp === 0x11173) + return true; + if (cp < 0x11180) + return false; + if (cp < 0x11182) + return true; + if (cp === 0x11182) + return true; + if (cp < 0x111b3) + return false; + if (cp < 0x111b6) + return true; + if (cp < 0x111b6) + return false; + if (cp < 0x111bf) + return true; + if (cp < 0x111bf) + return false; + if (cp < 0x111c1) + return true; + if (cp < 0x111ca) + return false; + if (cp < 0x111cd) + return true; + return false; + } + if (cp < 0x11726) { + if (cp < 0x114b3) { + if (cp < 0x11340) { + if (cp < 0x112df) { + if (cp < 0x111d0) + return false; + if (cp < 0x111da) + return true; + if (cp < 0x1122c) + return false; + if (cp < 0x1122f) + return true; + if (cp < 0x1122f) + return false; + if (cp < 0x11232) + return true; + if (cp < 0x11232) + return false; + if (cp < 0x11234) + return true; + if (cp === 0x11234) + return true; + if (cp === 0x11235) + return true; + if (cp < 0x11236) + return false; + if (cp < 0x11238) + return true; + if (cp === 0x1123e) + return true; + return false; + } + if (cp === 0x112df) + return true; + if (cp < 0x112e0) + return false; + if (cp < 0x112e3) + return true; + if (cp < 0x112e3) + return false; + if (cp < 0x112eb) + return true; + if (cp < 0x112f0) + return false; + if (cp < 0x112fa) + return true; + if (cp < 0x11300) + return false; + if (cp < 0x11302) + return true; + if (cp < 0x11302) + return false; + if (cp < 0x11304) + return true; + if (cp === 0x1133c) + return true; + if (cp < 0x1133e) + return false; + if (cp < 0x11340) + return true; + return false; + } + if (cp < 0x11435) { + if (cp === 0x11340) + return true; + if (cp < 0x11341) + return false; + if (cp < 0x11345) + return true; + if (cp < 0x11347) + return false; + if (cp < 0x11349) + return true; + if (cp < 0x1134b) + return false; + if (cp < 0x1134e) + return true; + if (cp === 0x11357) + return true; + if (cp < 0x11362) + return false; + if (cp < 0x11364) + return true; + if (cp < 0x11366) + return false; + if (cp < 0x1136d) + return true; + if (cp < 0x11370) + return false; + if (cp < 0x11375) + return true; + return false; + } + if (cp < 0x11438) + return true; + if (cp < 0x11438) + return false; + if (cp < 0x11440) + return true; + if (cp < 0x11440) + return false; + if (cp < 0x11442) + return true; + if (cp < 0x11442) + return false; + if (cp < 0x11445) + return true; + if (cp === 0x11445) + return true; + if (cp === 0x11446) + return true; + if (cp < 0x11450) + return false; + if (cp < 0x1145a) + return true; + if (cp < 0x114b0) + return false; + if (cp < 0x114b3) + return true; + return false; + } + if (cp < 0x11633) { + if (cp < 0x115af) { + if (cp < 0x114b3) + return false; + if (cp < 0x114b9) + return true; + if (cp === 0x114b9) + return true; + if (cp === 0x114ba) + return true; + if (cp < 0x114bb) + return false; + if (cp < 0x114bf) + return true; + if (cp < 0x114bf) + return false; + if (cp < 0x114c1) + return true; + if (cp === 0x114c1) + return true; + if (cp < 0x114c2) + return false; + if (cp < 0x114c4) + return true; + if (cp < 0x114d0) + return false; + if (cp < 0x114da) + return true; + return false; + } + if (cp < 0x115b2) + return true; + if (cp < 0x115b2) + return false; + if (cp < 0x115b6) + return true; + if (cp < 0x115b8) + return false; + if (cp < 0x115bc) + return true; + if (cp < 0x115bc) + return false; + if (cp < 0x115be) + return true; + if (cp === 0x115be) + return true; + if (cp < 0x115bf) + return false; + if (cp < 0x115c1) + return true; + if (cp < 0x115dc) + return false; + if (cp < 0x115de) + return true; + if (cp < 0x11630) + return false; + if (cp < 0x11633) + return true; + return false; + } + if (cp < 0x116ad) { + if (cp < 0x11633) + return false; + if (cp < 0x1163b) + return true; + if (cp < 0x1163b) + return false; + if (cp < 0x1163d) + return true; + if (cp === 0x1163d) + return true; + if (cp === 0x1163e) + return true; + if (cp < 0x1163f) + return false; + if (cp < 0x11641) + return true; + if (cp < 0x11650) + return false; + if (cp < 0x1165a) + return true; + if (cp === 0x116ab) + return true; + if (cp === 0x116ac) + return true; + return false; + } + if (cp === 0x116ad) + return true; + if (cp < 0x116ae) + return false; + if (cp < 0x116b0) + return true; + if (cp < 0x116b0) + return false; + if (cp < 0x116b6) + return true; + if (cp === 0x116b6) + return true; + if (cp === 0x116b7) + return true; + if (cp < 0x116c0) + return false; + if (cp < 0x116ca) + return true; + if (cp < 0x1171d) + return false; + if (cp < 0x11720) + return true; + if (cp < 0x11720) + return false; + if (cp < 0x11722) + return true; + if (cp < 0x11722) + return false; + if (cp < 0x11726) + return true; + return false; + } + if (cp < 0x11d3f) { + if (cp < 0x11a98) { + if (cp < 0x11a39) { + if (cp === 0x11726) + return true; + if (cp < 0x11727) + return false; + if (cp < 0x1172c) + return true; + if (cp < 0x11730) + return false; + if (cp < 0x1173a) + return true; + if (cp < 0x118e0) + return false; + if (cp < 0x118ea) + return true; + if (cp < 0x11a01) + return false; + if (cp < 0x11a07) + return true; + if (cp < 0x11a07) + return false; + if (cp < 0x11a09) + return true; + if (cp < 0x11a09) + return false; + if (cp < 0x11a0b) + return true; + if (cp < 0x11a33) + return false; + if (cp < 0x11a39) + return true; + return false; + } + if (cp === 0x11a39) + return true; + if (cp < 0x11a3b) + return false; + if (cp < 0x11a3f) + return true; + if (cp === 0x11a47) + return true; + if (cp < 0x11a51) + return false; + if (cp < 0x11a57) + return true; + if (cp < 0x11a57) + return false; + if (cp < 0x11a59) + return true; + if (cp < 0x11a59) + return false; + if (cp < 0x11a5c) + return true; + if (cp < 0x11a8a) + return false; + if (cp < 0x11a97) + return true; + if (cp === 0x11a97) + return true; + return false; + } + if (cp < 0x11ca9) { + if (cp < 0x11a98) + return false; + if (cp < 0x11a9a) + return true; + if (cp === 0x11c2f) + return true; + if (cp < 0x11c30) + return false; + if (cp < 0x11c37) + return true; + if (cp < 0x11c38) + return false; + if (cp < 0x11c3e) + return true; + if (cp === 0x11c3e) + return true; + if (cp === 0x11c3f) + return true; + if (cp < 0x11c50) + return false; + if (cp < 0x11c5a) + return true; + if (cp < 0x11c92) + return false; + if (cp < 0x11ca8) + return true; + return false; + } + if (cp === 0x11ca9) + return true; + if (cp < 0x11caa) + return false; + if (cp < 0x11cb1) + return true; + if (cp === 0x11cb1) + return true; + if (cp < 0x11cb2) + return false; + if (cp < 0x11cb4) + return true; + if (cp === 0x11cb4) + return true; + if (cp < 0x11cb5) + return false; + if (cp < 0x11cb7) + return true; + if (cp < 0x11d31) + return false; + if (cp < 0x11d37) + return true; + if (cp === 0x11d3a) + return true; + if (cp < 0x11d3c) + return false; + if (cp < 0x11d3e) + return true; + return false; + } + if (cp < 0x1d242) { + if (cp < 0x16f8f) { + if (cp < 0x11d3f) + return false; + if (cp < 0x11d46) + return true; + if (cp === 0x11d47) + return true; + if (cp < 0x11d50) + return false; + if (cp < 0x11d5a) + return true; + if (cp < 0x16a60) + return false; + if (cp < 0x16a6a) + return true; + if (cp < 0x16af0) + return false; + if (cp < 0x16af5) + return true; + if (cp < 0x16b30) + return false; + if (cp < 0x16b37) + return true; + if (cp < 0x16b50) + return false; + if (cp < 0x16b5a) + return true; + if (cp < 0x16f51) + return false; + if (cp < 0x16f7f) + return true; + return false; + } + if (cp < 0x16f93) + return true; + if (cp < 0x1bc9d) + return false; + if (cp < 0x1bc9f) + return true; + if (cp < 0x1d165) + return false; + if (cp < 0x1d167) + return true; + if (cp < 0x1d167) + return false; + if (cp < 0x1d16a) + return true; + if (cp < 0x1d16d) + return false; + if (cp < 0x1d173) + return true; + if (cp < 0x1d17b) + return false; + if (cp < 0x1d183) + return true; + if (cp < 0x1d185) + return false; + if (cp < 0x1d18c) + return true; + if (cp < 0x1d1aa) + return false; + if (cp < 0x1d1ae) + return true; + return false; + } + if (cp < 0x1e000) { + if (cp < 0x1d242) + return false; + if (cp < 0x1d245) + return true; + if (cp < 0x1d7ce) + return false; + if (cp < 0x1d800) + return true; + if (cp < 0x1da00) + return false; + if (cp < 0x1da37) + return true; + if (cp < 0x1da3b) + return false; + if (cp < 0x1da6d) + return true; + if (cp === 0x1da75) + return true; + if (cp === 0x1da84) + return true; + if (cp < 0x1da9b) + return false; + if (cp < 0x1daa0) + return true; + if (cp < 0x1daa1) + return false; + if (cp < 0x1dab0) + return true; + return false; + } + if (cp < 0x1e007) + return true; + if (cp < 0x1e008) + return false; + if (cp < 0x1e019) + return true; + if (cp < 0x1e01b) + return false; + if (cp < 0x1e022) + return true; + if (cp < 0x1e023) + return false; + if (cp < 0x1e025) + return true; + if (cp < 0x1e026) + return false; + if (cp < 0x1e02b) + return true; + if (cp < 0x1e8d0) + return false; + if (cp < 0x1e8d7) + return true; + if (cp < 0x1e944) + return false; + if (cp < 0x1e94b) + return true; + if (cp < 0x1e950) + return false; + if (cp < 0x1e95a) + return true; + if (cp < 0xe0100) + return false; + if (cp < 0xe01f0) + return true; + return false; +} + +const PropertyData = { + $LONE: new Set([ + "ASCII", + "ASCII_Hex_Digit", + "AHex", + "Alphabetic", + "Alpha", + "Any", + "Assigned", + "Bidi_Control", + "Bidi_C", + "Bidi_Mirrored", + "Bidi_M", + "Case_Ignorable", + "CI", + "Cased", + "Changes_When_Casefolded", + "CWCF", + "Changes_When_Casemapped", + "CWCM", + "Changes_When_Lowercased", + "CWL", + "Changes_When_NFKC_Casefolded", + "CWKCF", + "Changes_When_Titlecased", + "CWT", + "Changes_When_Uppercased", + "CWU", + "Dash", + "Default_Ignorable_Code_Point", + "DI", + "Deprecated", + "Dep", + "Diacritic", + "Dia", + "Emoji", + "Emoji_Component", + "Emoji_Modifier", + "Emoji_Modifier_Base", + "Emoji_Presentation", + "Extender", + "Ext", + "Grapheme_Base", + "Gr_Base", + "Grapheme_Extend", + "Gr_Ext", + "Hex_Digit", + "Hex", + "IDS_Binary_Operator", + "IDSB", + "IDS_Trinary_Operator", + "IDST", + "ID_Continue", + "IDC", + "ID_Start", + "IDS", + "Ideographic", + "Ideo", + "Join_Control", + "Join_C", + "Logical_Order_Exception", + "LOE", + "Lowercase", + "Lower", + "Math", + "Noncharacter_Code_Point", + "NChar", + "Pattern_Syntax", + "Pat_Syn", + "Pattern_White_Space", + "Pat_WS", + "Quotation_Mark", + "QMark", + "Radical", + "Regional_Indicator", + "RI", + "Sentence_Terminal", + "STerm", + "Soft_Dotted", + "SD", + "Terminal_Punctuation", + "Term", + "Unified_Ideograph", + "UIdeo", + "Uppercase", + "Upper", + "Variation_Selector", + "VS", + "White_Space", + "space", + "XID_Continue", + "XIDC", + "XID_Start", + "XIDS", + ]), + General_Category: new Set([ + "Cased_Letter", + "LC", + "Close_Punctuation", + "Pe", + "Connector_Punctuation", + "Pc", + "Control", + "Cc", + "cntrl", + "Currency_Symbol", + "Sc", + "Dash_Punctuation", + "Pd", + "Decimal_Number", + "Nd", + "digit", + "Enclosing_Mark", + "Me", + "Final_Punctuation", + "Pf", + "Format", + "Cf", + "Initial_Punctuation", + "Pi", + "Letter", + "L", + "Letter_Number", + "Nl", + "Line_Separator", + "Zl", + "Lowercase_Letter", + "Ll", + "Mark", + "M", + "Combining_Mark", + "Math_Symbol", + "Sm", + "Modifier_Letter", + "Lm", + "Modifier_Symbol", + "Sk", + "Nonspacing_Mark", + "Mn", + "Number", + "N", + "Open_Punctuation", + "Ps", + "Other", + "C", + "Other_Letter", + "Lo", + "Other_Number", + "No", + "Other_Punctuation", + "Po", + "Other_Symbol", + "So", + "Paragraph_Separator", + "Zp", + "Private_Use", + "Co", + "Punctuation", + "P", + "punct", + "Separator", + "Z", + "Space_Separator", + "Zs", + "Spacing_Mark", + "Mc", + "Surrogate", + "Cs", + "Symbol", + "S", + "Titlecase_Letter", + "Lt", + "Unassigned", + "Cn", + "Uppercase_Letter", + "Lu", + ]), + Script: new Set([ + "Adlam", + "Adlm", + "Ahom", + "Anatolian_Hieroglyphs", + "Hluw", + "Arabic", + "Arab", + "Armenian", + "Armn", + "Avestan", + "Avst", + "Balinese", + "Bali", + "Bamum", + "Bamu", + "Bassa_Vah", + "Bass", + "Batak", + "Batk", + "Bengali", + "Beng", + "Bhaiksuki", + "Bhks", + "Bopomofo", + "Bopo", + "Brahmi", + "Brah", + "Braille", + "Brai", + "Buginese", + "Bugi", + "Buhid", + "Buhd", + "Canadian_Aboriginal", + "Cans", + "Carian", + "Cari", + "Caucasian_Albanian", + "Aghb", + "Chakma", + "Cakm", + "Cham", + "Cherokee", + "Cher", + "Common", + "Zyyy", + "Coptic", + "Copt", + "Qaac", + "Cuneiform", + "Xsux", + "Cypriot", + "Cprt", + "Cyrillic", + "Cyrl", + "Deseret", + "Dsrt", + "Devanagari", + "Deva", + "Duployan", + "Dupl", + "Egyptian_Hieroglyphs", + "Egyp", + "Elbasan", + "Elba", + "Ethiopic", + "Ethi", + "Georgian", + "Geor", + "Glagolitic", + "Glag", + "Gothic", + "Goth", + "Grantha", + "Gran", + "Greek", + "Grek", + "Gujarati", + "Gujr", + "Gurmukhi", + "Guru", + "Han", + "Hani", + "Hangul", + "Hang", + "Hanunoo", + "Hano", + "Hatran", + "Hatr", + "Hebrew", + "Hebr", + "Hiragana", + "Hira", + "Imperial_Aramaic", + "Armi", + "Inherited", + "Zinh", + "Qaai", + "Inscriptional_Pahlavi", + "Phli", + "Inscriptional_Parthian", + "Prti", + "Javanese", + "Java", + "Kaithi", + "Kthi", + "Kannada", + "Knda", + "Katakana", + "Kana", + "Kayah_Li", + "Kali", + "Kharoshthi", + "Khar", + "Khmer", + "Khmr", + "Khojki", + "Khoj", + "Khudawadi", + "Sind", + "Lao", + "Laoo", + "Latin", + "Latn", + "Lepcha", + "Lepc", + "Limbu", + "Limb", + "Linear_A", + "Lina", + "Linear_B", + "Linb", + "Lisu", + "Lycian", + "Lyci", + "Lydian", + "Lydi", + "Mahajani", + "Mahj", + "Malayalam", + "Mlym", + "Mandaic", + "Mand", + "Manichaean", + "Mani", + "Marchen", + "Marc", + "Masaram_Gondi", + "Gonm", + "Meetei_Mayek", + "Mtei", + "Mende_Kikakui", + "Mend", + "Meroitic_Cursive", + "Merc", + "Meroitic_Hieroglyphs", + "Mero", + "Miao", + "Plrd", + "Modi", + "Mongolian", + "Mong", + "Mro", + "Mroo", + "Multani", + "Mult", + "Myanmar", + "Mymr", + "Nabataean", + "Nbat", + "New_Tai_Lue", + "Talu", + "Newa", + "Nko", + "Nkoo", + "Nushu", + "Nshu", + "Ogham", + "Ogam", + "Ol_Chiki", + "Olck", + "Old_Hungarian", + "Hung", + "Old_Italic", + "Ital", + "Old_North_Arabian", + "Narb", + "Old_Permic", + "Perm", + "Old_Persian", + "Xpeo", + "Old_South_Arabian", + "Sarb", + "Old_Turkic", + "Orkh", + "Oriya", + "Orya", + "Osage", + "Osge", + "Osmanya", + "Osma", + "Pahawh_Hmong", + "Hmng", + "Palmyrene", + "Palm", + "Pau_Cin_Hau", + "Pauc", + "Phags_Pa", + "Phag", + "Phoenician", + "Phnx", + "Psalter_Pahlavi", + "Phlp", + "Rejang", + "Rjng", + "Runic", + "Runr", + "Samaritan", + "Samr", + "Saurashtra", + "Saur", + "Sharada", + "Shrd", + "Shavian", + "Shaw", + "Siddham", + "Sidd", + "SignWriting", + "Sgnw", + "Sinhala", + "Sinh", + "Sora_Sompeng", + "Sora", + "Soyombo", + "Soyo", + "Sundanese", + "Sund", + "Syloti_Nagri", + "Sylo", + "Syriac", + "Syrc", + "Tagalog", + "Tglg", + "Tagbanwa", + "Tagb", + "Tai_Le", + "Tale", + "Tai_Tham", + "Lana", + "Tai_Viet", + "Tavt", + "Takri", + "Takr", + "Tamil", + "Taml", + "Tangut", + "Tang", + "Telugu", + "Telu", + "Thaana", + "Thaa", + "Thai", + "Tibetan", + "Tibt", + "Tifinagh", + "Tfng", + "Tirhuta", + "Tirh", + "Ugaritic", + "Ugar", + "Vai", + "Vaii", + "Warang_Citi", + "Wara", + "Yi", + "Yiii", + "Zanabazar_Square", + "Zanb", + ]), +}; +PropertyData.gc = PropertyData.General_Category; +PropertyData.sc = PropertyData.Script_Extensions = PropertyData.scx = + PropertyData.Script; + +const Backspace = 0x08; +const CharacterTabulation = 0x09; +const LineFeed = 0x0a; +const LineTabulation = 0x0b; +const FormFeed = 0x0c; +const CarriageReturn = 0x0d; +const ExclamationMark = 0x21; +const DollarSign = 0x24; +const LeftParenthesis = 0x28; +const RightParenthesis = 0x29; +const Asterisk = 0x2a; +const PlusSign = 0x2b; +const Comma = 0x2c; +const HyphenMinus = 0x2d; +const FullStop = 0x2e; +const Solidus = 0x2f; +const DigitZero = 0x30; +const DigitOne = 0x31; +const DigitSeven = 0x37; +const DigitNine = 0x39; +const Colon = 0x3a; +const LessThanSign = 0x3c; +const EqualsSign = 0x3d; +const GreaterThanSign = 0x3e; +const QuestionMark = 0x3f; +const LatinCapitalLetterA = 0x41; +const LatinCapitalLetterB = 0x42; +const LatinCapitalLetterD = 0x44; +const LatinCapitalLetterF = 0x46; +const LatinCapitalLetterP = 0x50; +const LatinCapitalLetterS = 0x53; +const LatinCapitalLetterW = 0x57; +const LatinCapitalLetterZ = 0x5a; +const LowLine = 0x5f; +const LatinSmallLetterA = 0x61; +const LatinSmallLetterB = 0x62; +const LatinSmallLetterC = 0x63; +const LatinSmallLetterD = 0x64; +const LatinSmallLetterF = 0x66; +const LatinSmallLetterG = 0x67; +const LatinSmallLetterI = 0x69; +const LatinSmallLetterK = 0x6b; +const LatinSmallLetterM = 0x6d; +const LatinSmallLetterN = 0x6e; +const LatinSmallLetterP = 0x70; +const LatinSmallLetterR = 0x72; +const LatinSmallLetterS = 0x73; +const LatinSmallLetterT = 0x74; +const LatinSmallLetterU = 0x75; +const LatinSmallLetterV = 0x76; +const LatinSmallLetterW = 0x77; +const LatinSmallLetterX = 0x78; +const LatinSmallLetterY = 0x79; +const LatinSmallLetterZ = 0x7a; +const LeftSquareBracket = 0x5b; +const ReverseSolidus = 0x5c; +const RightSquareBracket = 0x5d; +const CircumflexAccent = 0x5e; +const LeftCurlyBracket = 0x7b; +const VerticalLine = 0x7c; +const RightCurlyBracket = 0x7d; +const ZeroWidthNonJoiner = 0x200c; +const ZeroWidthJoiner = 0x200d; +const LineSeparator = 0x2028; +const ParagraphSeparator = 0x2029; +const MinCodePoint = 0x00; +const MaxCodePoint = 0x10ffff; +function isLatinLetter(code) { + return ((code >= LatinCapitalLetterA && code <= LatinCapitalLetterZ) || + (code >= LatinSmallLetterA && code <= LatinSmallLetterZ)); +} +function isDecimalDigit(code) { + return code >= DigitZero && code <= DigitNine; +} +function isOctalDigit(code) { + return code >= DigitZero && code <= DigitSeven; +} +function isHexDigit(code) { + return ((code >= DigitZero && code <= DigitNine) || + (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) || + (code >= LatinSmallLetterA && code <= LatinSmallLetterF)); +} +function isLineTerminator(code) { + return (code === LineFeed || + code === CarriageReturn || + code === LineSeparator || + code === ParagraphSeparator); +} +function isValidUnicode(code) { + return code >= MinCodePoint && code <= MaxCodePoint; +} +function digitToInt(code) { + if (code >= LatinSmallLetterA && code <= LatinSmallLetterF) { + return code - LatinSmallLetterA + 10; + } + if (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) { + return code - LatinCapitalLetterA + 10; + } + return code - DigitZero; +} + +function isSyntaxCharacter(cp) { + return (cp === CircumflexAccent || + cp === DollarSign || + cp === ReverseSolidus || + cp === FullStop || + cp === Asterisk || + cp === PlusSign || + cp === QuestionMark || + cp === LeftParenthesis || + cp === RightParenthesis || + cp === LeftSquareBracket || + cp === RightSquareBracket || + cp === LeftCurlyBracket || + cp === RightCurlyBracket || + cp === VerticalLine); +} +function isRegExpIdentifierStart(cp) { + return isIdStart(cp) || cp === DollarSign || cp === LowLine; +} +function isRegExpIdentifierPart(cp) { + return (isIdContinue(cp) || + cp === DollarSign || + cp === LowLine || + cp === ZeroWidthNonJoiner || + cp === ZeroWidthJoiner); +} +function isUnicodePropertyNameCharacter(cp) { + return isLatinLetter(cp) || cp === LowLine; +} +function isUnicodePropertyValueCharacter(cp) { + return isUnicodePropertyNameCharacter(cp) || isDecimalDigit(cp); +} +function isValidUnicodeProperty(name, value) { + return PropertyData.hasOwnProperty(name) && PropertyData[name].has(value); +} +function isValidUnicodePropertyName(name) { + return PropertyData.$LONE.has(name); +} +class RegExpValidator { + constructor(options) { + this._reader = new Reader(); + this._uFlag = false; + this._nFlag = false; + this._lastIntValue = 0; + this._lastMinValue = 0; + this._lastMaxValue = 0; + this._lastStrValue = ""; + this._lastKeyValue = ""; + this._lastValValue = ""; + this._lastAssertionIsQuantifiable = false; + this._numCapturingParens = 0; + this._groupNames = new Set(); + this._backreferenceNames = new Set(); + this._options = options || {}; + } + validateLiteral(source, start = 0, end = source.length) { + this._uFlag = this._nFlag = false; + this.reset(source, start, end); + this.onLiteralEnter(start); + if (this.eat(Solidus) && this.eatRegExpBody() && this.eat(Solidus)) { + const flagStart = this.index; + const uFlag = source.indexOf("u", flagStart) !== -1; + this.validateFlags(source, flagStart, end); + this.validatePattern(source, start + 1, flagStart - 1, uFlag); + } + else if (start >= end) { + this.raise("Empty"); + } + else { + const c = String.fromCodePoint(this.currentCodePoint); + this.raise(`Unexpected character '${c}'`); + } + this.onLiteralLeave(start, end); + } + validateFlags(source, start = 0, end = source.length) { + const existingFlags = new Set(); + let global = false; + let ignoreCase = false; + let multiline = false; + let sticky = false; + let unicode = false; + let dotAll = false; + for (let i = start; i < end; ++i) { + const flag = source.charCodeAt(i); + if (existingFlags.has(flag)) { + this.raise(`Duplicated flag '${source[i]}'`); + } + existingFlags.add(flag); + if (flag === LatinSmallLetterG) { + global = true; + } + else if (flag === LatinSmallLetterI) { + ignoreCase = true; + } + else if (flag === LatinSmallLetterM) { + multiline = true; + } + else if (flag === LatinSmallLetterU && this.ecmaVersion >= 2015) { + unicode = true; + } + else if (flag === LatinSmallLetterY && this.ecmaVersion >= 2015) { + sticky = true; + } + else if (flag === LatinSmallLetterS && this.ecmaVersion >= 2018) { + dotAll = true; + } + else { + this.raise(`Invalid flag '${source[i]}'`); + } + } + this.onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll); + } + validatePattern(source, start = 0, end = source.length, uFlag = false) { + this._uFlag = uFlag && this.ecmaVersion >= 2015; + this._nFlag = uFlag && this.ecmaVersion >= 2018; + this.reset(source, start, end); + this.pattern(); + if (!this._nFlag && + this.ecmaVersion >= 2018 && + this._groupNames.size > 0) { + this._nFlag = true; + this.rewind(start); + this.pattern(); + } + } + get strict() { + return Boolean(this._options.strict || this._uFlag); + } + get ecmaVersion() { + return this._options.ecmaVersion || 2018; + } + onLiteralEnter(start) { + if (this._options.onLiteralEnter) { + this._options.onLiteralEnter(start); + } + } + onLiteralLeave(start, end) { + if (this._options.onLiteralLeave) { + this._options.onLiteralLeave(start, end); + } + } + onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll) { + if (this._options.onFlags) { + this._options.onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll); + } + } + onPatternEnter(start) { + if (this._options.onPatternEnter) { + this._options.onPatternEnter(start); + } + } + onPatternLeave(start, end) { + if (this._options.onPatternLeave) { + this._options.onPatternLeave(start, end); + } + } + onDisjunctionEnter(start) { + if (this._options.onDisjunctionEnter) { + this._options.onDisjunctionEnter(start); + } + } + onDisjunctionLeave(start, end) { + if (this._options.onDisjunctionLeave) { + this._options.onDisjunctionLeave(start, end); + } + } + onAlternativeEnter(start, index) { + if (this._options.onAlternativeEnter) { + this._options.onAlternativeEnter(start, index); + } + } + onAlternativeLeave(start, end, index) { + if (this._options.onAlternativeLeave) { + this._options.onAlternativeLeave(start, end, index); + } + } + onGroupEnter(start) { + if (this._options.onGroupEnter) { + this._options.onGroupEnter(start); + } + } + onGroupLeave(start, end) { + if (this._options.onGroupLeave) { + this._options.onGroupLeave(start, end); + } + } + onCapturingGroupEnter(start, name) { + if (this._options.onCapturingGroupEnter) { + this._options.onCapturingGroupEnter(start, name); + } + } + onCapturingGroupLeave(start, end, name) { + if (this._options.onCapturingGroupLeave) { + this._options.onCapturingGroupLeave(start, end, name); + } + } + onQuantifier(start, end, min, max, greedy) { + if (this._options.onQuantifier) { + this._options.onQuantifier(start, end, min, max, greedy); + } + } + onLookaroundAssertionEnter(start, kind, negate) { + if (this._options.onLookaroundAssertionEnter) { + this._options.onLookaroundAssertionEnter(start, kind, negate); + } + } + onLookaroundAssertionLeave(start, end, kind, negate) { + if (this._options.onLookaroundAssertionLeave) { + this._options.onLookaroundAssertionLeave(start, end, kind, negate); + } + } + onEdgeAssertion(start, end, kind) { + if (this._options.onEdgeAssertion) { + this._options.onEdgeAssertion(start, end, kind); + } + } + onWordBoundaryAssertion(start, end, kind, negate) { + if (this._options.onWordBoundaryAssertion) { + this._options.onWordBoundaryAssertion(start, end, kind, negate); + } + } + onAnyCharacterSet(start, end, kind) { + if (this._options.onAnyCharacterSet) { + this._options.onAnyCharacterSet(start, end, kind); + } + } + onEscapeCharacterSet(start, end, kind, negate) { + if (this._options.onEscapeCharacterSet) { + this._options.onEscapeCharacterSet(start, end, kind, negate); + } + } + onUnicodePropertyCharacterSet(start, end, kind, key, value, negate) { + if (this._options.onUnicodePropertyCharacterSet) { + this._options.onUnicodePropertyCharacterSet(start, end, kind, key, value, negate); + } + } + onCharacter(start, end, value) { + if (this._options.onCharacter) { + this._options.onCharacter(start, end, value); + } + } + onBackreference(start, end, ref) { + if (this._options.onBackreference) { + this._options.onBackreference(start, end, ref); + } + } + onCharacterClassEnter(start, negate) { + if (this._options.onCharacterClassEnter) { + this._options.onCharacterClassEnter(start, negate); + } + } + onCharacterClassLeave(start, end, negate) { + if (this._options.onCharacterClassLeave) { + this._options.onCharacterClassLeave(start, end, negate); + } + } + onCharacterClassRange(start, end, min, max) { + if (this._options.onCharacterClassRange) { + this._options.onCharacterClassRange(start, end, min, max); + } + } + get source() { + return this._reader.source; + } + get index() { + return this._reader.index; + } + get currentCodePoint() { + return this._reader.currentCodePoint; + } + get nextCodePoint() { + return this._reader.nextCodePoint; + } + get nextCodePoint2() { + return this._reader.nextCodePoint2; + } + get nextCodePoint3() { + return this._reader.nextCodePoint3; + } + reset(source, start, end) { + this._reader.reset(source, start, end, this._uFlag); + } + rewind(index) { + this._reader.rewind(index); + } + advance() { + this._reader.advance(); + } + eat(cp) { + return this._reader.eat(cp); + } + eat2(cp1, cp2) { + return this._reader.eat2(cp1, cp2); + } + eat3(cp1, cp2, cp3) { + return this._reader.eat3(cp1, cp2, cp3); + } + raise(message) { + throw new RegExpSyntaxError(this.source, this._uFlag, this.index, message); + } + eatRegExpBody() { + const start = this.index; + let inClass = false; + let escaped = false; + for (;;) { + const cp = this.currentCodePoint; + if (cp === -1 || isLineTerminator(cp)) { + const kind = inClass ? "character class" : "regular expression"; + this.raise(`Unterminated ${kind}`); + } + if (escaped) { + escaped = false; + } + else if (cp === ReverseSolidus) { + escaped = true; + } + else if (cp === LeftSquareBracket) { + inClass = true; + } + else if (cp === RightSquareBracket) { + inClass = false; + } + else if ((cp === Solidus && !inClass) || + (cp === Asterisk && this.index === start)) { + break; + } + this.advance(); + } + return this.index !== start; + } + pattern() { + const start = this.index; + this._numCapturingParens = this.countCapturingParens(); + this._groupNames.clear(); + this._backreferenceNames.clear(); + this.onPatternEnter(start); + this.disjunction(); + const cp = this.currentCodePoint; + if (this.currentCodePoint !== -1) { + if (cp === RightParenthesis) { + this.raise("Unmatched ')'"); + } + if (cp === RightSquareBracket || cp === RightCurlyBracket) { + this.raise("Lone quantifier brackets"); + } + const c = String.fromCodePoint(cp); + this.raise(`Unexpected character '${c}'`); + } + this._backreferenceNames.forEach(name => { + if (!this._groupNames.has(name)) { + this.raise("Invalid named capture referenced"); + } + }); + this.onPatternLeave(start, this.index); + } + countCapturingParens() { + const start = this.index; + let inClass = false; + let escaped = false; + let count = 0; + let cp = 0; + while ((cp = this.currentCodePoint) !== -1) { + if (escaped) { + escaped = false; + } + else if (cp === ReverseSolidus) { + escaped = true; + } + else if (cp === LeftSquareBracket) { + inClass = true; + } + else if (cp === RightSquareBracket) { + inClass = false; + } + else if (cp === LeftParenthesis && + !inClass && + (this.nextCodePoint !== QuestionMark || + (this.nextCodePoint2 === LessThanSign && + this.nextCodePoint3 !== EqualsSign && + this.nextCodePoint3 !== ExclamationMark))) { + count += 1; + } + this.advance(); + } + this.rewind(start); + return count; + } + disjunction() { + const start = this.index; + let i = 0; + this.onDisjunctionEnter(start); + this.alternative(i++); + while (this.eat(VerticalLine)) { + this.alternative(i++); + } + if (this.eatQuantifier(true)) { + this.raise("Nothing to repeat"); + } + if (this.eat(LeftCurlyBracket)) { + this.raise("Lone quantifier brackets"); + } + this.onDisjunctionLeave(start, this.index); + } + alternative(i) { + const start = this.index; + this.onAlternativeEnter(start, i); + while (this.currentCodePoint !== -1 && this.eatTerm()) + ; + this.onAlternativeLeave(start, this.index, i); + } + eatTerm() { + if (this.eatAssertion()) { + if (this._lastAssertionIsQuantifiable) { + this.eatQuantifier(); + } + return true; + } + if (this.strict ? this.eatAtom() : this.eatExtendedAtom()) { + this.eatQuantifier(); + return true; + } + return false; + } + eatAssertion() { + const start = this.index; + this._lastAssertionIsQuantifiable = false; + if (this.eat(CircumflexAccent)) { + this.onEdgeAssertion(start, this.index, "start"); + return true; + } + if (this.eat(DollarSign)) { + this.onEdgeAssertion(start, this.index, "end"); + return true; + } + if (this.eat2(ReverseSolidus, LatinCapitalLetterB)) { + this.onWordBoundaryAssertion(start, this.index, "word", true); + return true; + } + if (this.eat2(ReverseSolidus, LatinSmallLetterB)) { + this.onWordBoundaryAssertion(start, this.index, "word", false); + return true; + } + if (this.eat2(LeftParenthesis, QuestionMark)) { + const lookbehind = this.ecmaVersion >= 2018 && this.eat(LessThanSign); + let negate = false; + if (this.eat(EqualsSign) || (negate = this.eat(ExclamationMark))) { + const kind = lookbehind ? "lookbehind" : "lookahead"; + this.onLookaroundAssertionEnter(start, kind, negate); + this.disjunction(); + if (!this.eat(RightParenthesis)) { + this.raise("Unterminated group"); + } + this._lastAssertionIsQuantifiable = !lookbehind && !this.strict; + this.onLookaroundAssertionLeave(start, this.index, kind, negate); + return true; + } + this.rewind(start); + } + return false; + } + eatQuantifier(noError = false) { + const start = this.index; + let min = 0; + let max = 0; + let greedy = false; + if (this.eat(Asterisk)) { + min = 0; + max = Number.POSITIVE_INFINITY; + } + else if (this.eat(PlusSign)) { + min = 1; + max = Number.POSITIVE_INFINITY; + } + else if (this.eat(QuestionMark)) { + min = 0; + max = 1; + } + else if (this.eatBracedQuantifier(noError)) { + min = this._lastMinValue; + max = this._lastMaxValue; + } + else { + return false; + } + greedy = !this.eat(QuestionMark); + if (!noError) { + this.onQuantifier(start, this.index, min, max, greedy); + } + return true; + } + eatBracedQuantifier(noError) { + const start = this.index; + if (this.eat(LeftCurlyBracket)) { + this._lastMinValue = 0; + this._lastMaxValue = Number.POSITIVE_INFINITY; + if (this.eatDecimalDigits()) { + this._lastMinValue = this._lastMaxValue = this._lastIntValue; + if (this.eat(Comma)) { + this._lastMaxValue = this.eatDecimalDigits() + ? this._lastIntValue + : Number.POSITIVE_INFINITY; + } + if (this.eat(RightCurlyBracket)) { + if (!noError && this._lastMaxValue < this._lastMinValue) { + this.raise("numbers out of order in {} quantifier"); + } + return true; + } + } + if (!noError && this.strict) { + this.raise("Incomplete quantifier"); + } + this.rewind(start); + } + return false; + } + eatAtom() { + return (this.eatPatternCharacter() || + this.eatDot() || + this.eatReverseSolidusAtomEscape() || + this.eatCharacterClass() || + this.eatUncapturingGroup() || + this.eatCapturingGroup()); + } + eatDot() { + if (this.eat(FullStop)) { + this.onAnyCharacterSet(this.index - 1, this.index, "any"); + return true; + } + return false; + } + eatReverseSolidusAtomEscape() { + const start = this.index; + if (this.eat(ReverseSolidus)) { + if (this.eatAtomEscape()) { + return true; + } + this.rewind(start); + } + return false; + } + eatUncapturingGroup() { + const start = this.index; + if (this.eat3(LeftParenthesis, QuestionMark, Colon)) { + this.onGroupEnter(start); + this.disjunction(); + if (!this.eat(RightParenthesis)) { + this.raise("Unterminated group"); + } + this.onGroupLeave(start, this.index); + return true; + } + return false; + } + eatCapturingGroup() { + const start = this.index; + if (this.eat(LeftParenthesis)) { + this._lastStrValue = ""; + if (this.ecmaVersion >= 2018) { + this.groupSpecifier(); + } + else if (this.currentCodePoint === QuestionMark) { + this.raise("Invalid group"); + } + const name = this._lastStrValue || null; + this.onCapturingGroupEnter(start, name); + this.disjunction(); + if (!this.eat(RightParenthesis)) { + this.raise("Unterminated group"); + } + this.onCapturingGroupLeave(start, this.index, name); + return true; + } + return false; + } + eatExtendedAtom() { + return (this.eatDot() || + this.eatReverseSolidusAtomEscape() || + this.eatCharacterClass() || + this.eatUncapturingGroup() || + this.eatCapturingGroup() || + this.eatInvalidBracedQuantifier() || + this.eatExtendedPatternCharacter()); + } + eatInvalidBracedQuantifier() { + if (this.eatBracedQuantifier(true)) { + this.raise("Nothing to repeat"); + } + return false; + } + eatSyntaxCharacter() { + if (isSyntaxCharacter(this.currentCodePoint)) { + this._lastIntValue = this.currentCodePoint; + this.advance(); + return true; + } + return false; + } + eatPatternCharacter() { + const start = this.index; + const cp = this.currentCodePoint; + if (cp !== -1 && !isSyntaxCharacter(cp)) { + this.advance(); + this.onCharacter(start, this.index, cp); + return true; + } + return false; + } + eatExtendedPatternCharacter() { + const start = this.index; + const cp = this.currentCodePoint; + if (cp !== -1 && + cp !== CircumflexAccent && + cp !== DollarSign && + cp !== FullStop && + cp !== Asterisk && + cp !== PlusSign && + cp !== QuestionMark && + cp !== LeftParenthesis && + cp !== RightParenthesis && + cp !== LeftSquareBracket && + cp !== VerticalLine) { + this.advance(); + this.onCharacter(start, this.index, cp); + return true; + } + return false; + } + groupSpecifier() { + this._lastStrValue = ""; + if (this.eat(QuestionMark)) { + if (this.eatGroupName()) { + if (!this._groupNames.has(this._lastStrValue)) { + this._groupNames.add(this._lastStrValue); + return; + } + this.raise("Duplicate capture group name"); + } + this.raise("Invalid group"); + } + } + eatGroupName() { + this._lastStrValue = ""; + if (this.eat(LessThanSign)) { + if (this.eatRegExpIdentifierName() && this.eat(GreaterThanSign)) { + return true; + } + this.raise("Invalid capture group name"); + } + return false; + } + eatRegExpIdentifierName() { + this._lastStrValue = ""; + if (this.eatRegExpIdentifierStart()) { + this._lastStrValue += String.fromCodePoint(this._lastIntValue); + while (this.eatRegExpIdentifierPart()) { + this._lastStrValue += String.fromCodePoint(this._lastIntValue); + } + return true; + } + return false; + } + eatRegExpIdentifierStart() { + const start = this.index; + let cp = this.currentCodePoint; + this.advance(); + if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) { + cp = this._lastIntValue; + } + if (isRegExpIdentifierStart(cp)) { + this._lastIntValue = cp; + return true; + } + if (this.index !== start) { + this.rewind(start); + } + return false; + } + eatRegExpIdentifierPart() { + const start = this.index; + let cp = this.currentCodePoint; + this.advance(); + if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) { + cp = this._lastIntValue; + } + if (isRegExpIdentifierPart(cp)) { + this._lastIntValue = cp; + return true; + } + if (this.index !== start) { + this.rewind(start); + } + return false; + } + eatAtomEscape() { + if (this.eatBackreference() || + this.eatCharacterClassEscape() || + this.eatCharacterEscape() || + (this._nFlag && this.eatKGroupName())) { + return true; + } + if (this.strict || this._uFlag) { + this.raise("Invalid escape"); + } + return false; + } + eatBackreference() { + const start = this.index; + if (this.eatDecimalEscape()) { + const n = this._lastIntValue; + if (n <= this._numCapturingParens) { + this.onBackreference(start - 1, this.index, n); + return true; + } + if (this.strict) { + this.raise("Invalid escape"); + } + this.rewind(start); + } + return false; + } + eatKGroupName() { + const start = this.index; + if (this.eat(LatinSmallLetterK)) { + if (this.eatGroupName()) { + const groupName = this._lastStrValue; + this._backreferenceNames.add(groupName); + this.onBackreference(start - 1, this.index, groupName); + return true; + } + this.raise("Invalid named reference"); + } + return false; + } + eatCharacterEscape() { + const start = this.index; + if (this.eatControlEscape() || + this.eatCControlLetter() || + this.eatZero() || + this.eatHexEscapeSequence() || + this.eatRegExpUnicodeEscapeSequence() || + (!this.strict && this.eatLegacyOctalEscapeSequence()) || + this.eatIdentityEscape()) { + this.onCharacter(start - 1, this.index, this._lastIntValue); + return true; + } + return false; + } + eatCControlLetter() { + const start = this.index; + if (this.eat(LatinSmallLetterC)) { + if (this.eatControlLetter()) { + return true; + } + this.rewind(start); + } + return false; + } + eatZero() { + if (this.currentCodePoint === DigitZero && + !isDecimalDigit(this.nextCodePoint)) { + this._lastIntValue = 0; + this.advance(); + return true; + } + return false; + } + eatControlEscape() { + if (this.eat(LatinSmallLetterT)) { + this._lastIntValue = CharacterTabulation; + return true; + } + if (this.eat(LatinSmallLetterN)) { + this._lastIntValue = LineFeed; + return true; + } + if (this.eat(LatinSmallLetterV)) { + this._lastIntValue = LineTabulation; + return true; + } + if (this.eat(LatinSmallLetterF)) { + this._lastIntValue = FormFeed; + return true; + } + if (this.eat(LatinSmallLetterR)) { + this._lastIntValue = CarriageReturn; + return true; + } + return false; + } + eatControlLetter() { + const cp = this.currentCodePoint; + if (isLatinLetter(cp)) { + this.advance(); + this._lastIntValue = cp % 0x20; + return true; + } + return false; + } + eatRegExpUnicodeEscapeSequence() { + const start = this.index; + if (this.eat(LatinSmallLetterU)) { + if (this.eatFixedHexDigits(4)) { + const lead = this._lastIntValue; + if (this._uFlag && lead >= 0xd800 && lead <= 0xdbff) { + const leadSurrogateEnd = this.index; + if (this.eat(ReverseSolidus) && + this.eat(LatinSmallLetterU) && + this.eatFixedHexDigits(4)) { + const trail = this._lastIntValue; + if (trail >= 0xdc00 && trail <= 0xdfff) { + this._lastIntValue = + (lead - 0xd800) * 0x400 + + (trail - 0xdc00) + + 0x10000; + return true; + } + } + this.rewind(leadSurrogateEnd); + this._lastIntValue = lead; + } + return true; + } + if (this._uFlag && + this.eat(LeftCurlyBracket) && + this.eatHexDigits() && + this.eat(RightCurlyBracket) && + isValidUnicode(this._lastIntValue)) { + return true; + } + if (this.strict || this._uFlag) { + this.raise("Invalid unicode escape"); + } + this.rewind(start); + } + return false; + } + eatIdentityEscape() { + if (this._uFlag) { + if (this.eatSyntaxCharacter()) { + return true; + } + if (this.eat(Solidus)) { + this._lastIntValue = Solidus; + return true; + } + return false; + } + if (this.isValidIdentityEscape(this.currentCodePoint)) { + this._lastIntValue = this.currentCodePoint; + this.advance(); + return true; + } + return false; + } + isValidIdentityEscape(cp) { + if (cp === -1) { + return false; + } + if (this.strict) { + return !isIdContinue(cp); + } + return (cp !== LatinSmallLetterC && + (!this._nFlag || cp !== LatinSmallLetterK)); + } + eatDecimalEscape() { + this._lastIntValue = 0; + let cp = this.currentCodePoint; + if (cp >= DigitOne && cp <= DigitNine) { + do { + this._lastIntValue = 10 * this._lastIntValue + (cp - DigitZero); + this.advance(); + } while ((cp = this.currentCodePoint) >= DigitZero && + cp <= DigitNine); + return true; + } + return false; + } + eatCharacterClassEscape() { + const start = this.index; + if (this.eat(LatinSmallLetterD)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "digit", false); + return true; + } + if (this.eat(LatinCapitalLetterD)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "digit", true); + return true; + } + if (this.eat(LatinSmallLetterS)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "space", false); + return true; + } + if (this.eat(LatinCapitalLetterS)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "space", true); + return true; + } + if (this.eat(LatinSmallLetterW)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "word", false); + return true; + } + if (this.eat(LatinCapitalLetterW)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "word", true); + return true; + } + let negate = false; + if (this._uFlag && + this.ecmaVersion >= 2018 && + (this.eat(LatinSmallLetterP) || + (negate = this.eat(LatinCapitalLetterP)))) { + this._lastIntValue = -1; + if (this.eat(LeftCurlyBracket) && + this.eatUnicodePropertyValueExpression() && + this.eat(RightCurlyBracket)) { + this.onUnicodePropertyCharacterSet(start - 1, this.index, "property", this._lastKeyValue, this._lastValValue || null, negate); + return true; + } + this.raise("Invalid property name"); + } + return false; + } + eatUnicodePropertyValueExpression() { + const start = this.index; + if (this.eatUnicodePropertyName() && this.eat(EqualsSign)) { + this._lastKeyValue = this._lastStrValue; + if (this.eatUnicodePropertyValue()) { + this._lastValValue = this._lastStrValue; + if (isValidUnicodeProperty(this._lastKeyValue, this._lastValValue)) { + return true; + } + this.raise("Invalid property name"); + } + } + this.rewind(start); + if (this.eatLoneUnicodePropertyNameOrValue()) { + const nameOrValue = this._lastStrValue; + if (isValidUnicodeProperty("General_Category", nameOrValue)) { + this._lastKeyValue = "General_Category"; + this._lastValValue = nameOrValue; + return true; + } + if (isValidUnicodePropertyName(nameOrValue)) { + this._lastKeyValue = nameOrValue; + this._lastValValue = ""; + return true; + } + this.raise("Invalid property name"); + } + return false; + } + eatUnicodePropertyName() { + this._lastStrValue = ""; + while (isUnicodePropertyNameCharacter(this.currentCodePoint)) { + this._lastStrValue += String.fromCodePoint(this.currentCodePoint); + this.advance(); + } + return this._lastStrValue !== ""; + } + eatUnicodePropertyValue() { + this._lastStrValue = ""; + while (isUnicodePropertyValueCharacter(this.currentCodePoint)) { + this._lastStrValue += String.fromCodePoint(this.currentCodePoint); + this.advance(); + } + return this._lastStrValue !== ""; + } + eatLoneUnicodePropertyNameOrValue() { + return this.eatUnicodePropertyValue(); + } + eatCharacterClass() { + const start = this.index; + if (this.eat(LeftSquareBracket)) { + const negate = this.eat(CircumflexAccent); + this.onCharacterClassEnter(start, negate); + this.classRanges(); + if (!this.eat(RightSquareBracket)) { + this.raise("Unterminated character class"); + } + this.onCharacterClassLeave(start, this.index, negate); + return true; + } + return false; + } + classRanges() { + let start = this.index; + while (this.eatClassAtom()) { + const left = this._lastIntValue; + const hyphenStart = this.index; + if (this.eat(HyphenMinus)) { + this.onCharacter(hyphenStart, this.index, HyphenMinus); + if (this.eatClassAtom()) { + const right = this._lastIntValue; + if (left === -1 || right === -1) { + if (this.strict) { + this.raise("Invalid character class"); + } + } + else if (left > right) { + this.raise("Range out of order in character class"); + } + else { + this.onCharacterClassRange(start, this.index, left, right); + } + } + } + start = this.index; + } + } + eatClassAtom() { + const start = this.index; + if (this.eat(ReverseSolidus)) { + if (this.eatClassEscape()) { + return true; + } + if (this._uFlag) { + this.raise("Invalid escape"); + } + this.rewind(start); + } + const cp = this.currentCodePoint; + if (cp !== -1 && cp !== RightSquareBracket) { + this.advance(); + this._lastIntValue = cp; + this.onCharacter(start, this.index, cp); + return true; + } + return false; + } + eatClassEscape() { + const start = this.index; + if (this.eat(LatinSmallLetterB)) { + this._lastIntValue = Backspace; + this.onCharacter(start - 1, this.index, Backspace); + return true; + } + if (this._uFlag && this.eat(HyphenMinus)) { + this._lastIntValue = HyphenMinus; + this.onCharacter(start - 1, this.index, HyphenMinus); + return true; + } + if (!this._uFlag && this.eat(LatinSmallLetterC)) { + if (this.eatClassControlLetter()) { + this.onCharacter(start - 1, this.index, this._lastIntValue); + return true; + } + this.rewind(start); + } + return this.eatCharacterClassEscape() || this.eatCharacterEscape(); + } + eatClassControlLetter() { + const cp = this.currentCodePoint; + if (isDecimalDigit(cp) || cp === LowLine) { + this.advance(); + this._lastIntValue = cp % 0x20; + return true; + } + return false; + } + eatHexEscapeSequence() { + const start = this.index; + if (this.eat(LatinSmallLetterX)) { + if (this.eatFixedHexDigits(2)) { + return true; + } + if (this._uFlag) { + this.raise("Invalid escape"); + } + this.rewind(start); + } + return false; + } + eatDecimalDigits() { + const start = this.index; + this._lastIntValue = 0; + while (isDecimalDigit(this.currentCodePoint)) { + this._lastIntValue = + 10 * this._lastIntValue + digitToInt(this.currentCodePoint); + this.advance(); + } + return this.index !== start; + } + eatHexDigits() { + const start = this.index; + this._lastIntValue = 0; + while (isHexDigit(this.currentCodePoint)) { + this._lastIntValue = + 16 * this._lastIntValue + digitToInt(this.currentCodePoint); + this.advance(); + } + return this.index !== start; + } + eatLegacyOctalEscapeSequence() { + if (this.eatOctalDigit()) { + const n1 = this._lastIntValue; + if (this.eatOctalDigit()) { + const n2 = this._lastIntValue; + if (n1 <= 3 && this.eatOctalDigit()) { + this._lastIntValue = n1 * 64 + n2 * 8 + this._lastIntValue; + } + else { + this._lastIntValue = n1 * 8 + n2; + } + } + else { + this._lastIntValue = n1; + } + return true; + } + return false; + } + eatOctalDigit() { + const cp = this.currentCodePoint; + if (isOctalDigit(cp)) { + this.advance(); + this._lastIntValue = cp - DigitZero; + return true; + } + this._lastIntValue = 0; + return false; + } + eatFixedHexDigits(length) { + const start = this.index; + this._lastIntValue = 0; + for (let i = 0; i < length; ++i) { + const cp = this.currentCodePoint; + if (!isHexDigit(cp)) { + this.rewind(start); + return false; + } + this._lastIntValue = 16 * this._lastIntValue + digitToInt(cp); + this.advance(); + } + return true; + } +} + +const DummyPattern = {}; +const DummyFlags = {}; +const DummyCapturingGroup = {}; +function elementsToAlternative(elements, parent) { + for (const element of elements) { + assert(element.type !== "Disjunction"); + element.parent = parent; + } + return elements; +} +function addAlternativeElement(parent, node) { + if (parent.type === "Disjunction") { + last(parent.alternatives).push(node); + } + else { + parent.elements.push(node); + } +} +function addCommonElement(parent, node) { + if (parent.type === "Disjunction") { + last(parent.alternatives).push(node); + } + else if (parent.type === "CharacterClass") { + parent.elements.push(node); + } + else { + parent.elements.push(node); + } +} +class RegExpParserState { + constructor(options) { + this._node = DummyPattern; + this._flags = DummyFlags; + this._disjunctionStartStack = []; + this._backreferences = []; + this._capturingGroups = []; + this.source = ""; + this.strict = Boolean(options && options.strict); + this.ecmaVersion = (options && options.ecmaVersion) || 2018; + } + get pattern() { + if (this._node.type !== "Pattern") { + throw new Error("UnknownError"); + } + return this._node; + } + get flags() { + if (this._flags.type !== "Flags") { + throw new Error("UnknownError"); + } + return this._flags; + } + onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll) { + this._flags = { + type: "Flags", + parent: null, + start, + end, + raw: this.source.slice(start, end), + global, + ignoreCase, + multiline, + unicode, + sticky, + dotAll, + }; + } + onPatternEnter(start) { + this._node = { + type: "Pattern", + parent: null, + start, + end: start, + raw: "", + elements: [], + }; + this._backreferences.length = 0; + this._capturingGroups.length = 0; + } + onPatternLeave(start, end) { + this._node.end = end; + this._node.raw = this.source.slice(start, end); + for (const reference of this._backreferences) { + const ref = reference.ref; + const group = typeof ref === "number" + ? this._capturingGroups[ref - 1] + : this._capturingGroups.find(g => g.name === ref); + reference.resolved = group; + group.references.push(reference); + } + } + onDisjunctionEnter(start) { + this._disjunctionStartStack.push(start); + } + onDisjunctionLeave(start, end) { + this._disjunctionStartStack.pop(); + } + onAlternativeEnter(start, index) { + if (index === 0) { + return; + } + const parentNode = this._node; + if (parentNode.type === "Disjunction" || + parentNode.type === "CharacterClass") { + throw new Error("UnknownError"); + } + const prevNode = last(parentNode.elements); + if (prevNode != null && prevNode.type === "Disjunction") { + this._node = prevNode; + prevNode.alternatives.push([]); + } + else { + this._node = { + type: "Disjunction", + parent: parentNode, + start: last(this._disjunctionStartStack), + end: start, + raw: "", + alternatives: [], + }; + const elements = elementsToAlternative(parentNode.elements, this._node); + this._node.alternatives.push(elements, []); + parentNode.elements = [this._node]; + } + } + onAlternativeLeave(start, end, index) { + if (index === 0) { + return; + } + this._node.end = end; + this._node.raw = this.source.slice(this._node.start, end); + this._node = this._node.parent; + } + onGroupEnter(start) { + const parentNode = this._node; + if (parentNode.type === "CharacterClass") { + throw new Error("UnknownError"); + } + this._node = { + type: "Group", + parent: parentNode, + start, + end: start, + raw: "", + elements: [], + }; + addAlternativeElement(parentNode, this._node); + } + onGroupLeave(start, end) { + this._node.end = end; + this._node.raw = this.source.slice(start, end); + this._node = this._node.parent; + } + onCapturingGroupEnter(start, name) { + const parentNode = this._node; + if (parentNode.type === "CharacterClass") { + throw new Error("UnknownError"); + } + this._node = { + type: "CapturingGroup", + parent: parentNode, + start, + end: start, + raw: "", + name, + elements: [], + references: [], + }; + addAlternativeElement(parentNode, this._node); + this._capturingGroups.push(this._node); + } + onCapturingGroupLeave(start, end, name) { + this._node.end = end; + this._node.raw = this.source.slice(start, end); + this._node = this._node.parent; + } + onQuantifier(start, end, min, max, greedy) { + const parentNode = this._node; + if (parentNode.type === "CharacterClass") { + throw new Error("UnknownError"); + } + const elements = parentNode.type === "Disjunction" + ? last(parentNode.alternatives) + : parentNode.elements; + const prevNode = elements.pop(); + const node = { + type: "Quantifier", + parent: parentNode, + start, + end, + raw: this.source.slice(start, end), + min, + max, + greedy, + element: prevNode, + }; + elements.push(node); + prevNode.parent = node; + } + onLookaroundAssertionEnter(start, kind, negate) { + const parentNode = this._node; + if (parentNode.type === "CharacterClass") { + throw new Error("UnknownError"); + } + this._node = { + type: "Assertion", + parent: parentNode, + start, + end: start, + raw: "", + kind, + negate, + elements: [], + }; + addAlternativeElement(parentNode, this._node); + } + onLookaroundAssertionLeave(start, end, kind, negate) { + this._node.end = end; + this._node.raw = this.source.slice(start, end); + this._node = this._node.parent; + } + onEdgeAssertion(start, end, kind) { + const parentNode = this._node; + if (parentNode.type === "CharacterClass") { + throw new Error("UnknownError"); + } + addAlternativeElement(parentNode, { + type: "Assertion", + parent: parentNode, + start, + end, + raw: this.source.slice(start, end), + kind, + }); + } + onWordBoundaryAssertion(start, end, kind, negate) { + const parentNode = this._node; + if (parentNode.type === "CharacterClass") { + throw new Error("UnknownError"); + } + addAlternativeElement(parentNode, { + type: "Assertion", + parent: parentNode, + start, + end, + raw: this.source.slice(start, end), + kind, + negate, + }); + } + onAnyCharacterSet(start, end, kind) { + const parentNode = this._node; + if (parentNode.type === "CharacterClass") { + throw new Error("UnknownError"); + } + addAlternativeElement(parentNode, { + type: "CharacterSet", + parent: parentNode, + start, + end, + raw: this.source.slice(start, end), + kind, + }); + } + onEscapeCharacterSet(start, end, kind, negate) { + addCommonElement(this._node, { + type: "CharacterSet", + parent: this._node, + start, + end, + raw: this.source.slice(start, end), + kind, + negate, + }); + } + onUnicodePropertyCharacterSet(start, end, kind, key, value, negate) { + addCommonElement(this._node, { + type: "CharacterSet", + parent: this._node, + start, + end, + raw: this.source.slice(start, end), + kind, + key, + value, + negate, + }); + } + onCharacter(start, end, value) { + addCommonElement(this._node, { + type: "Character", + parent: this._node, + start, + end, + raw: this.source.slice(start, end), + value, + }); + } + onBackreference(start, end, ref) { + const parentNode = this._node; + if (parentNode.type === "CharacterClass") { + throw new Error("UnknownError"); + } + const node = { + type: "Backreference", + parent: parentNode, + start, + end, + raw: this.source.slice(start, end), + ref, + resolved: DummyCapturingGroup, + }; + addAlternativeElement(parentNode, node); + this._backreferences.push(node); + } + onCharacterClassEnter(start, negate) { + const parentNode = this._node; + if (parentNode.type === "CharacterClass") { + throw new Error("UnknownError"); + } + this._node = { + type: "CharacterClass", + parent: parentNode, + start, + end: start, + raw: "", + negate, + elements: [], + }; + addAlternativeElement(parentNode, this._node); + } + onCharacterClassLeave(start, end, negate) { + this._node.end = end; + this._node.raw = this.source.slice(start, end); + this._node = this._node.parent; + } + onCharacterClassRange(start, end, min, max) { + const parentNode = this._node; + if (parentNode.type !== "CharacterClass") { + throw new Error("UnknownError"); + } + const elements = parentNode.elements; + const rightNode = elements.pop(); + elements.pop(); + const leftNode = elements.pop(); + const node = { + type: "CharacterClassRange", + parent: parentNode, + start, + end, + raw: this.source.slice(start, end), + min: leftNode, + max: rightNode, + }; + assert(leftNode != null && leftNode.type === "Character"); + assert(rightNode != null && rightNode.type === "Character"); + leftNode.parent = node; + rightNode.parent = node; + elements.push(node); + } +} +class RegExpParser { + constructor(options) { + this._state = new RegExpParserState(options); + this._validator = new RegExpValidator(this._state); + } + parseLiteral(source, start = 0, end = source.length) { + this._state.source = source; + this._validator.validateLiteral(source, start, end); + const pattern = this._state.pattern; + const flags = this._state.flags; + const literal = { + type: "RegExpLiteral", + parent: null, + start, + end, + raw: source, + pattern, + flags, + }; + pattern.parent = literal; + flags.parent = literal; + return literal; + } + parseFlags(source, start = 0, end = source.length) { + this._state.source = source; + this._validator.validateFlags(source, start, end); + return this._state.flags; + } + parsePattern(source, start = 0, end = source.length, uFlag = false) { + this._state.source = source; + this._validator.validatePattern(source, start, end, uFlag); + return this._state.pattern; + } +} + +function parseRegExpLiteral(source, options) { + return new RegExpParser(options).parseLiteral(source); +} +function validateRegExpLiteral(source, options) { + return new RegExpValidator(options).validateLiteral(source); +} + +export { ast as AST, RegExpParser, RegExpValidator, parseRegExpLiteral, validateRegExpLiteral }; +//# sourceMappingURL=index.mjs.map diff --git a/tools/node_modules/eslint/node_modules/regexpp/index.mjs.map b/tools/node_modules/eslint/node_modules/regexpp/index.mjs.map new file mode 100644 index 00000000000000..7d09e5b37ff5eb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/regexpp/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index.mjs.map","sources":["src/util.ts","src/reader.ts","src/regexp-syntax-error.ts","src/unicode/ids.ts","src/unicode/property-data.ts","src/unicode/index.ts","src/validator.ts","src/parser.ts","src/index.ts"],"sourcesContent":["export function assert(condition: boolean, message?: string): void {\n if (!condition) {\n throw new Error(message || \"AssertionError\")\n }\n}\n\nexport function last(xs: T[]): T | undefined {\n return xs.length === 0 ? undefined : xs[xs.length - 1]\n}\n","const legacyImpl = {\n at(s: string, end: number, i: number): number {\n return i < end ? s.charCodeAt(i) : -1\n },\n width(c: number): number {\n return 1\n },\n}\nconst unicodeImpl = {\n at(s: string, end: number, i: number): number {\n return i < end ? s.codePointAt(i)! : -1\n },\n width(c: number): number {\n return c > 0xffff ? 2 : 1\n },\n}\n\nexport class Reader {\n private _impl = legacyImpl\n private _s: string = \"\"\n private _i: number = 0\n private _end: number = 0\n private _cp1: number = -1\n private _w1: number = 1\n private _cp2: number = -1\n private _w2: number = 1\n private _cp3: number = -1\n private _w3: number = 1\n private _cp4: number = -1\n\n get source(): string {\n return this._s\n }\n\n get index(): number {\n return this._i\n }\n\n get currentCodePoint(): number {\n return this._cp1\n }\n\n get nextCodePoint(): number {\n return this._cp2\n }\n\n get nextCodePoint2(): number {\n return this._cp3\n }\n\n get nextCodePoint3(): number {\n return this._cp4\n }\n\n reset(source: string, start: number, end: number, uFlag: boolean): void {\n this._impl = uFlag ? unicodeImpl : legacyImpl\n this._s = source\n this._end = end\n this.rewind(start)\n }\n\n rewind(index: number): void {\n const impl = this._impl\n this._i = index\n this._cp1 = impl.at(this._s, this._end, index)\n this._w1 = impl.width(this._cp1)\n this._cp2 = impl.at(this._s, this._end, index + this._w1)\n this._w2 = impl.width(this._cp2)\n this._cp3 = impl.at(this._s, this._end, index + this._w1 + this._w2)\n this._w3 = impl.width(this._cp3)\n this._cp4 = impl.at(\n this._s,\n this._end,\n index + this._w1 + this._w2 + this._w3,\n )\n }\n\n advance(): void {\n if (this._cp1 !== -1) {\n const impl = this._impl\n this._i += this._w1\n this._cp1 = this._cp2\n this._w1 = this._w2\n this._cp2 = this._cp3\n this._w2 = impl.width(this._cp2)\n this._cp3 = this._cp4\n this._w3 = impl.width(this._cp3)\n this._cp4 = impl.at(\n this._s,\n this._end,\n this._i + this._w1 + this._w2 + this._w3,\n )\n }\n }\n\n eat(cp: number): boolean {\n if (this._cp1 === cp) {\n this.advance()\n return true\n }\n return false\n }\n\n eat2(cp1: number, cp2: number): boolean {\n if (this._cp1 === cp1 && this._cp2 === cp2) {\n this.advance()\n this.advance()\n return true\n }\n return false\n }\n\n eat3(cp1: number, cp2: number, cp3: number): boolean {\n if (this._cp1 === cp1 && this._cp2 === cp2 && this._cp3 === cp3) {\n this.advance()\n this.advance()\n this.advance()\n return true\n }\n return false\n }\n}\n","export class RegExpSyntaxError extends SyntaxError {\n public index: number\n constructor(\n source: string,\n uFlag: boolean,\n index: number,\n message: string,\n ) {\n /*eslint-disable no-param-reassign */\n if (source) {\n if (source[0] !== \"/\") {\n source = `/${source}/${uFlag ? \"u\" : \"\"}`\n }\n source = `: ${source}`\n }\n /*eslint-enable no-param-reassign */\n\n super(`Invalid regular expression${source}: ${message}`)\n this.index = index\n }\n}\n","/* Generated from DerivedCoreProperties-10.0.0.txt */\nexport function isIdStart(cp: number): boolean {\n if (cp < 0x41) return false\n if (cp < 0x5b) return true\n if (cp < 0x61) return false\n if (cp < 0x7b) return true\n return isLargeIdStart(cp)\n}\nexport function isIdContinue(cp: number): boolean {\n if (cp < 0x30) return false\n if (cp < 0x3a) return true\n if (cp < 0x41) return false\n if (cp < 0x5b) return true\n if (cp === 0x5f) return true\n if (cp < 0x61) return false\n if (cp < 0x7b) return true\n return isLargeIdStart(cp) || isLargeIdContinue(cp)\n}\n\nfunction isLargeIdStart(cp: number): boolean {\n if (cp < 0x303c) {\n if (cp < 0xeaa) {\n if (cp < 0xa2a) {\n if (cp < 0x6d5) {\n if (cp < 0x37a) {\n if (cp < 0x294) {\n if (cp < 0xf8) {\n if (cp === 0xaa) return true\n if (cp === 0xb5) return true\n if (cp === 0xba) return true\n if (cp < 0xc0) return false\n if (cp < 0xd7) return true\n if (cp < 0xd8) return false\n if (cp < 0xf7) return true\n return false\n }\n if (cp < 0x1bb) return true\n if (cp === 0x1bb) return true\n if (cp < 0x1bc) return false\n if (cp < 0x1c0) return true\n if (cp < 0x1c0) return false\n if (cp < 0x1c4) return true\n if (cp < 0x1c4) return false\n if (cp < 0x294) return true\n return false\n }\n if (cp < 0x2ec) {\n if (cp === 0x294) return true\n if (cp < 0x295) return false\n if (cp < 0x2b0) return true\n if (cp < 0x2b0) return false\n if (cp < 0x2c2) return true\n if (cp < 0x2c6) return false\n if (cp < 0x2d2) return true\n if (cp < 0x2e0) return false\n if (cp < 0x2e5) return true\n return false\n }\n if (cp === 0x2ec) return true\n if (cp === 0x2ee) return true\n if (cp < 0x370) return false\n if (cp < 0x374) return true\n if (cp === 0x374) return true\n if (cp < 0x376) return false\n if (cp < 0x378) return true\n return false\n }\n if (cp < 0x531) {\n if (cp < 0x38c) {\n if (cp === 0x37a) return true\n if (cp < 0x37b) return false\n if (cp < 0x37e) return true\n if (cp === 0x37f) return true\n if (cp === 0x386) return true\n if (cp < 0x388) return false\n if (cp < 0x38b) return true\n return false\n }\n if (cp === 0x38c) return true\n if (cp < 0x38e) return false\n if (cp < 0x3a2) return true\n if (cp < 0x3a3) return false\n if (cp < 0x3f6) return true\n if (cp < 0x3f7) return false\n if (cp < 0x482) return true\n if (cp < 0x48a) return false\n if (cp < 0x530) return true\n return false\n }\n if (cp < 0x620) {\n if (cp < 0x531) return false\n if (cp < 0x557) return true\n if (cp === 0x559) return true\n if (cp < 0x561) return false\n if (cp < 0x588) return true\n if (cp < 0x5d0) return false\n if (cp < 0x5eb) return true\n if (cp < 0x5f0) return false\n if (cp < 0x5f3) return true\n return false\n }\n if (cp < 0x640) return true\n if (cp === 0x640) return true\n if (cp < 0x641) return false\n if (cp < 0x64b) return true\n if (cp < 0x66e) return false\n if (cp < 0x670) return true\n if (cp < 0x671) return false\n if (cp < 0x6d4) return true\n return false\n }\n if (cp < 0x904) {\n if (cp < 0x7f4) {\n if (cp < 0x710) {\n if (cp === 0x6d5) return true\n if (cp < 0x6e5) return false\n if (cp < 0x6e7) return true\n if (cp < 0x6ee) return false\n if (cp < 0x6f0) return true\n if (cp < 0x6fa) return false\n if (cp < 0x6fd) return true\n if (cp === 0x6ff) return true\n return false\n }\n if (cp === 0x710) return true\n if (cp < 0x712) return false\n if (cp < 0x730) return true\n if (cp < 0x74d) return false\n if (cp < 0x7a6) return true\n if (cp === 0x7b1) return true\n if (cp < 0x7ca) return false\n if (cp < 0x7eb) return true\n return false\n }\n if (cp < 0x828) {\n if (cp < 0x7f4) return false\n if (cp < 0x7f6) return true\n if (cp === 0x7fa) return true\n if (cp < 0x800) return false\n if (cp < 0x816) return true\n if (cp === 0x81a) return true\n if (cp === 0x824) return true\n return false\n }\n if (cp === 0x828) return true\n if (cp < 0x840) return false\n if (cp < 0x859) return true\n if (cp < 0x860) return false\n if (cp < 0x86b) return true\n if (cp < 0x8a0) return false\n if (cp < 0x8b5) return true\n if (cp < 0x8b6) return false\n if (cp < 0x8be) return true\n return false\n }\n if (cp < 0x9b2) {\n if (cp < 0x972) {\n if (cp < 0x904) return false\n if (cp < 0x93a) return true\n if (cp === 0x93d) return true\n if (cp === 0x950) return true\n if (cp < 0x958) return false\n if (cp < 0x962) return true\n if (cp === 0x971) return true\n return false\n }\n if (cp < 0x981) return true\n if (cp < 0x985) return false\n if (cp < 0x98d) return true\n if (cp < 0x98f) return false\n if (cp < 0x991) return true\n if (cp < 0x993) return false\n if (cp < 0x9a9) return true\n if (cp < 0x9aa) return false\n if (cp < 0x9b1) return true\n return false\n }\n if (cp < 0x9df) {\n if (cp === 0x9b2) return true\n if (cp < 0x9b6) return false\n if (cp < 0x9ba) return true\n if (cp === 0x9bd) return true\n if (cp === 0x9ce) return true\n if (cp < 0x9dc) return false\n if (cp < 0x9de) return true\n return false\n }\n if (cp < 0x9e2) return true\n if (cp < 0x9f0) return false\n if (cp < 0x9f2) return true\n if (cp === 0x9fc) return true\n if (cp < 0xa05) return false\n if (cp < 0xa0b) return true\n if (cp < 0xa0f) return false\n if (cp < 0xa11) return true\n if (cp < 0xa13) return false\n if (cp < 0xa29) return true\n return false\n }\n if (cp < 0xc2a) {\n if (cp < 0xb2a) {\n if (cp < 0xaaa) {\n if (cp < 0xa5e) {\n if (cp < 0xa2a) return false\n if (cp < 0xa31) return true\n if (cp < 0xa32) return false\n if (cp < 0xa34) return true\n if (cp < 0xa35) return false\n if (cp < 0xa37) return true\n if (cp < 0xa38) return false\n if (cp < 0xa3a) return true\n if (cp < 0xa59) return false\n if (cp < 0xa5d) return true\n return false\n }\n if (cp === 0xa5e) return true\n if (cp < 0xa72) return false\n if (cp < 0xa75) return true\n if (cp < 0xa85) return false\n if (cp < 0xa8e) return true\n if (cp < 0xa8f) return false\n if (cp < 0xa92) return true\n if (cp < 0xa93) return false\n if (cp < 0xaa9) return true\n return false\n }\n if (cp < 0xae0) {\n if (cp < 0xaaa) return false\n if (cp < 0xab1) return true\n if (cp < 0xab2) return false\n if (cp < 0xab4) return true\n if (cp < 0xab5) return false\n if (cp < 0xaba) return true\n if (cp === 0xabd) return true\n if (cp === 0xad0) return true\n return false\n }\n if (cp < 0xae2) return true\n if (cp === 0xaf9) return true\n if (cp < 0xb05) return false\n if (cp < 0xb0d) return true\n if (cp < 0xb0f) return false\n if (cp < 0xb11) return true\n if (cp < 0xb13) return false\n if (cp < 0xb29) return true\n return false\n }\n if (cp < 0xb92) {\n if (cp < 0xb5f) {\n if (cp < 0xb2a) return false\n if (cp < 0xb31) return true\n if (cp < 0xb32) return false\n if (cp < 0xb34) return true\n if (cp < 0xb35) return false\n if (cp < 0xb3a) return true\n if (cp === 0xb3d) return true\n if (cp < 0xb5c) return false\n if (cp < 0xb5e) return true\n return false\n }\n if (cp < 0xb62) return true\n if (cp === 0xb71) return true\n if (cp === 0xb83) return true\n if (cp < 0xb85) return false\n if (cp < 0xb8b) return true\n if (cp < 0xb8e) return false\n if (cp < 0xb91) return true\n return false\n }\n if (cp < 0xba8) {\n if (cp < 0xb92) return false\n if (cp < 0xb96) return true\n if (cp < 0xb99) return false\n if (cp < 0xb9b) return true\n if (cp === 0xb9c) return true\n if (cp < 0xb9e) return false\n if (cp < 0xba0) return true\n if (cp < 0xba3) return false\n if (cp < 0xba5) return true\n return false\n }\n if (cp < 0xbab) return true\n if (cp < 0xbae) return false\n if (cp < 0xbba) return true\n if (cp === 0xbd0) return true\n if (cp < 0xc05) return false\n if (cp < 0xc0d) return true\n if (cp < 0xc0e) return false\n if (cp < 0xc11) return true\n if (cp < 0xc12) return false\n if (cp < 0xc29) return true\n return false\n }\n if (cp < 0xd5f) {\n if (cp < 0xcbd) {\n if (cp < 0xc85) {\n if (cp < 0xc2a) return false\n if (cp < 0xc3a) return true\n if (cp === 0xc3d) return true\n if (cp < 0xc58) return false\n if (cp < 0xc5b) return true\n if (cp < 0xc60) return false\n if (cp < 0xc62) return true\n if (cp === 0xc80) return true\n return false\n }\n if (cp < 0xc8d) return true\n if (cp < 0xc8e) return false\n if (cp < 0xc91) return true\n if (cp < 0xc92) return false\n if (cp < 0xca9) return true\n if (cp < 0xcaa) return false\n if (cp < 0xcb4) return true\n if (cp < 0xcb5) return false\n if (cp < 0xcba) return true\n return false\n }\n if (cp < 0xd0e) {\n if (cp === 0xcbd) return true\n if (cp === 0xcde) return true\n if (cp < 0xce0) return false\n if (cp < 0xce2) return true\n if (cp < 0xcf1) return false\n if (cp < 0xcf3) return true\n if (cp < 0xd05) return false\n if (cp < 0xd0d) return true\n return false\n }\n if (cp < 0xd11) return true\n if (cp < 0xd12) return false\n if (cp < 0xd3b) return true\n if (cp === 0xd3d) return true\n if (cp === 0xd4e) return true\n if (cp < 0xd54) return false\n if (cp < 0xd57) return true\n return false\n }\n if (cp < 0xe46) {\n if (cp < 0xdbd) {\n if (cp < 0xd5f) return false\n if (cp < 0xd62) return true\n if (cp < 0xd7a) return false\n if (cp < 0xd80) return true\n if (cp < 0xd85) return false\n if (cp < 0xd97) return true\n if (cp < 0xd9a) return false\n if (cp < 0xdb2) return true\n if (cp < 0xdb3) return false\n if (cp < 0xdbc) return true\n return false\n }\n if (cp === 0xdbd) return true\n if (cp < 0xdc0) return false\n if (cp < 0xdc7) return true\n if (cp < 0xe01) return false\n if (cp < 0xe31) return true\n if (cp < 0xe32) return false\n if (cp < 0xe34) return true\n if (cp < 0xe40) return false\n if (cp < 0xe46) return true\n return false\n }\n if (cp < 0xe8d) {\n if (cp === 0xe46) return true\n if (cp < 0xe81) return false\n if (cp < 0xe83) return true\n if (cp === 0xe84) return true\n if (cp < 0xe87) return false\n if (cp < 0xe89) return true\n if (cp === 0xe8a) return true\n return false\n }\n if (cp === 0xe8d) return true\n if (cp < 0xe94) return false\n if (cp < 0xe98) return true\n if (cp < 0xe99) return false\n if (cp < 0xea0) return true\n if (cp < 0xea1) return false\n if (cp < 0xea4) return true\n if (cp === 0xea5) return true\n if (cp === 0xea7) return true\n return false\n }\n if (cp < 0x1c5a) {\n if (cp < 0x1380) {\n if (cp < 0x10a0) {\n if (cp < 0xf88) {\n if (cp < 0xec6) {\n if (cp < 0xeaa) return false\n if (cp < 0xeac) return true\n if (cp < 0xead) return false\n if (cp < 0xeb1) return true\n if (cp < 0xeb2) return false\n if (cp < 0xeb4) return true\n if (cp === 0xebd) return true\n if (cp < 0xec0) return false\n if (cp < 0xec5) return true\n return false\n }\n if (cp === 0xec6) return true\n if (cp < 0xedc) return false\n if (cp < 0xee0) return true\n if (cp === 0xf00) return true\n if (cp < 0xf40) return false\n if (cp < 0xf48) return true\n if (cp < 0xf49) return false\n if (cp < 0xf6d) return true\n return false\n }\n if (cp < 0x1061) {\n if (cp < 0xf88) return false\n if (cp < 0xf8d) return true\n if (cp < 0x1000) return false\n if (cp < 0x102b) return true\n if (cp === 0x103f) return true\n if (cp < 0x1050) return false\n if (cp < 0x1056) return true\n if (cp < 0x105a) return false\n if (cp < 0x105e) return true\n return false\n }\n if (cp === 0x1061) return true\n if (cp < 0x1065) return false\n if (cp < 0x1067) return true\n if (cp < 0x106e) return false\n if (cp < 0x1071) return true\n if (cp < 0x1075) return false\n if (cp < 0x1082) return true\n if (cp === 0x108e) return true\n return false\n }\n if (cp < 0x1260) {\n if (cp < 0x10fd) {\n if (cp < 0x10a0) return false\n if (cp < 0x10c6) return true\n if (cp === 0x10c7) return true\n if (cp === 0x10cd) return true\n if (cp < 0x10d0) return false\n if (cp < 0x10fb) return true\n if (cp === 0x10fc) return true\n return false\n }\n if (cp < 0x1249) return true\n if (cp < 0x124a) return false\n if (cp < 0x124e) return true\n if (cp < 0x1250) return false\n if (cp < 0x1257) return true\n if (cp === 0x1258) return true\n if (cp < 0x125a) return false\n if (cp < 0x125e) return true\n return false\n }\n if (cp < 0x12c0) {\n if (cp < 0x1260) return false\n if (cp < 0x1289) return true\n if (cp < 0x128a) return false\n if (cp < 0x128e) return true\n if (cp < 0x1290) return false\n if (cp < 0x12b1) return true\n if (cp < 0x12b2) return false\n if (cp < 0x12b6) return true\n if (cp < 0x12b8) return false\n if (cp < 0x12bf) return true\n return false\n }\n if (cp === 0x12c0) return true\n if (cp < 0x12c2) return false\n if (cp < 0x12c6) return true\n if (cp < 0x12c8) return false\n if (cp < 0x12d7) return true\n if (cp < 0x12d8) return false\n if (cp < 0x1311) return true\n if (cp < 0x1312) return false\n if (cp < 0x1316) return true\n if (cp < 0x1318) return false\n if (cp < 0x135b) return true\n return false\n }\n if (cp < 0x1844) {\n if (cp < 0x170e) {\n if (cp < 0x1681) {\n if (cp < 0x1380) return false\n if (cp < 0x1390) return true\n if (cp < 0x13a0) return false\n if (cp < 0x13f6) return true\n if (cp < 0x13f8) return false\n if (cp < 0x13fe) return true\n if (cp < 0x1401) return false\n if (cp < 0x166d) return true\n if (cp < 0x166f) return false\n if (cp < 0x1680) return true\n return false\n }\n if (cp < 0x169b) return true\n if (cp < 0x16a0) return false\n if (cp < 0x16eb) return true\n if (cp < 0x16ee) return false\n if (cp < 0x16f1) return true\n if (cp < 0x16f1) return false\n if (cp < 0x16f9) return true\n if (cp < 0x1700) return false\n if (cp < 0x170d) return true\n return false\n }\n if (cp < 0x1780) {\n if (cp < 0x170e) return false\n if (cp < 0x1712) return true\n if (cp < 0x1720) return false\n if (cp < 0x1732) return true\n if (cp < 0x1740) return false\n if (cp < 0x1752) return true\n if (cp < 0x1760) return false\n if (cp < 0x176d) return true\n if (cp < 0x176e) return false\n if (cp < 0x1771) return true\n return false\n }\n if (cp < 0x17b4) return true\n if (cp === 0x17d7) return true\n if (cp === 0x17dc) return true\n if (cp < 0x1820) return false\n if (cp < 0x1843) return true\n if (cp === 0x1843) return true\n return false\n }\n if (cp < 0x19b0) {\n if (cp < 0x18b0) {\n if (cp < 0x1844) return false\n if (cp < 0x1878) return true\n if (cp < 0x1880) return false\n if (cp < 0x1885) return true\n if (cp < 0x1885) return false\n if (cp < 0x1887) return true\n if (cp < 0x1887) return false\n if (cp < 0x18a9) return true\n if (cp === 0x18aa) return true\n return false\n }\n if (cp < 0x18f6) return true\n if (cp < 0x1900) return false\n if (cp < 0x191f) return true\n if (cp < 0x1950) return false\n if (cp < 0x196e) return true\n if (cp < 0x1970) return false\n if (cp < 0x1975) return true\n if (cp < 0x1980) return false\n if (cp < 0x19ac) return true\n return false\n }\n if (cp < 0x1b45) {\n if (cp < 0x19b0) return false\n if (cp < 0x19ca) return true\n if (cp < 0x1a00) return false\n if (cp < 0x1a17) return true\n if (cp < 0x1a20) return false\n if (cp < 0x1a55) return true\n if (cp === 0x1aa7) return true\n if (cp < 0x1b05) return false\n if (cp < 0x1b34) return true\n return false\n }\n if (cp < 0x1b4c) return true\n if (cp < 0x1b83) return false\n if (cp < 0x1ba1) return true\n if (cp < 0x1bae) return false\n if (cp < 0x1bb0) return true\n if (cp < 0x1bba) return false\n if (cp < 0x1be6) return true\n if (cp < 0x1c00) return false\n if (cp < 0x1c24) return true\n if (cp < 0x1c4d) return false\n if (cp < 0x1c50) return true\n return false\n }\n if (cp < 0x2126) {\n if (cp < 0x1f5f) {\n if (cp < 0x1d79) {\n if (cp < 0x1cf5) {\n if (cp < 0x1c5a) return false\n if (cp < 0x1c78) return true\n if (cp < 0x1c78) return false\n if (cp < 0x1c7e) return true\n if (cp < 0x1c80) return false\n if (cp < 0x1c89) return true\n if (cp < 0x1ce9) return false\n if (cp < 0x1ced) return true\n if (cp < 0x1cee) return false\n if (cp < 0x1cf2) return true\n return false\n }\n if (cp < 0x1cf7) return true\n if (cp < 0x1d00) return false\n if (cp < 0x1d2c) return true\n if (cp < 0x1d2c) return false\n if (cp < 0x1d6b) return true\n if (cp < 0x1d6b) return false\n if (cp < 0x1d78) return true\n if (cp === 0x1d78) return true\n return false\n }\n if (cp < 0x1f48) {\n if (cp < 0x1d79) return false\n if (cp < 0x1d9b) return true\n if (cp < 0x1d9b) return false\n if (cp < 0x1dc0) return true\n if (cp < 0x1e00) return false\n if (cp < 0x1f16) return true\n if (cp < 0x1f18) return false\n if (cp < 0x1f1e) return true\n if (cp < 0x1f20) return false\n if (cp < 0x1f46) return true\n return false\n }\n if (cp < 0x1f4e) return true\n if (cp < 0x1f50) return false\n if (cp < 0x1f58) return true\n if (cp === 0x1f59) return true\n if (cp === 0x1f5b) return true\n if (cp === 0x1f5d) return true\n return false\n }\n if (cp < 0x1ff6) {\n if (cp < 0x1fc6) {\n if (cp < 0x1f5f) return false\n if (cp < 0x1f7e) return true\n if (cp < 0x1f80) return false\n if (cp < 0x1fb5) return true\n if (cp < 0x1fb6) return false\n if (cp < 0x1fbd) return true\n if (cp === 0x1fbe) return true\n if (cp < 0x1fc2) return false\n if (cp < 0x1fc5) return true\n return false\n }\n if (cp < 0x1fcd) return true\n if (cp < 0x1fd0) return false\n if (cp < 0x1fd4) return true\n if (cp < 0x1fd6) return false\n if (cp < 0x1fdc) return true\n if (cp < 0x1fe0) return false\n if (cp < 0x1fed) return true\n if (cp < 0x1ff2) return false\n if (cp < 0x1ff5) return true\n return false\n }\n if (cp < 0x2107) {\n if (cp < 0x1ff6) return false\n if (cp < 0x1ffd) return true\n if (cp === 0x2071) return true\n if (cp === 0x207f) return true\n if (cp < 0x2090) return false\n if (cp < 0x209d) return true\n if (cp === 0x2102) return true\n return false\n }\n if (cp === 0x2107) return true\n if (cp < 0x210a) return false\n if (cp < 0x2114) return true\n if (cp === 0x2115) return true\n if (cp === 0x2118) return true\n if (cp < 0x2119) return false\n if (cp < 0x211e) return true\n if (cp === 0x2124) return true\n return false\n }\n if (cp < 0x2d00) {\n if (cp < 0x2160) {\n if (cp < 0x2135) {\n if (cp === 0x2126) return true\n if (cp === 0x2128) return true\n if (cp < 0x212a) return false\n if (cp < 0x212e) return true\n if (cp === 0x212e) return true\n if (cp < 0x212f) return false\n if (cp < 0x2135) return true\n return false\n }\n if (cp < 0x2139) return true\n if (cp === 0x2139) return true\n if (cp < 0x213c) return false\n if (cp < 0x2140) return true\n if (cp < 0x2145) return false\n if (cp < 0x214a) return true\n if (cp === 0x214e) return true\n return false\n }\n if (cp < 0x2c60) {\n if (cp < 0x2160) return false\n if (cp < 0x2183) return true\n if (cp < 0x2183) return false\n if (cp < 0x2185) return true\n if (cp < 0x2185) return false\n if (cp < 0x2189) return true\n if (cp < 0x2c00) return false\n if (cp < 0x2c2f) return true\n if (cp < 0x2c30) return false\n if (cp < 0x2c5f) return true\n return false\n }\n if (cp < 0x2c7c) return true\n if (cp < 0x2c7c) return false\n if (cp < 0x2c7e) return true\n if (cp < 0x2c7e) return false\n if (cp < 0x2ce5) return true\n if (cp < 0x2ceb) return false\n if (cp < 0x2cef) return true\n if (cp < 0x2cf2) return false\n if (cp < 0x2cf4) return true\n return false\n }\n if (cp < 0x2dc0) {\n if (cp < 0x2d80) {\n if (cp < 0x2d00) return false\n if (cp < 0x2d26) return true\n if (cp === 0x2d27) return true\n if (cp === 0x2d2d) return true\n if (cp < 0x2d30) return false\n if (cp < 0x2d68) return true\n if (cp === 0x2d6f) return true\n return false\n }\n if (cp < 0x2d97) return true\n if (cp < 0x2da0) return false\n if (cp < 0x2da7) return true\n if (cp < 0x2da8) return false\n if (cp < 0x2daf) return true\n if (cp < 0x2db0) return false\n if (cp < 0x2db7) return true\n if (cp < 0x2db8) return false\n if (cp < 0x2dbf) return true\n return false\n }\n if (cp < 0x3006) {\n if (cp < 0x2dc0) return false\n if (cp < 0x2dc7) return true\n if (cp < 0x2dc8) return false\n if (cp < 0x2dcf) return true\n if (cp < 0x2dd0) return false\n if (cp < 0x2dd7) return true\n if (cp < 0x2dd8) return false\n if (cp < 0x2ddf) return true\n if (cp === 0x3005) return true\n return false\n }\n if (cp === 0x3006) return true\n if (cp === 0x3007) return true\n if (cp < 0x3021) return false\n if (cp < 0x302a) return true\n if (cp < 0x3031) return false\n if (cp < 0x3036) return true\n if (cp < 0x3038) return false\n if (cp < 0x303b) return true\n if (cp === 0x303b) return true\n return false\n }\n if (cp < 0x10a10) {\n if (cp < 0xab28) {\n if (cp < 0xa7fa) {\n if (cp < 0xa60c) {\n if (cp < 0x31a0) {\n if (cp < 0x30a1) {\n if (cp === 0x303c) return true\n if (cp < 0x3041) return false\n if (cp < 0x3097) return true\n if (cp < 0x309b) return false\n if (cp < 0x309d) return true\n if (cp < 0x309d) return false\n if (cp < 0x309f) return true\n if (cp === 0x309f) return true\n return false\n }\n if (cp < 0x30fb) return true\n if (cp < 0x30fc) return false\n if (cp < 0x30ff) return true\n if (cp === 0x30ff) return true\n if (cp < 0x3105) return false\n if (cp < 0x312f) return true\n if (cp < 0x3131) return false\n if (cp < 0x318f) return true\n return false\n }\n if (cp < 0xa015) {\n if (cp < 0x31a0) return false\n if (cp < 0x31bb) return true\n if (cp < 0x31f0) return false\n if (cp < 0x3200) return true\n if (cp < 0x3400) return false\n if (cp < 0x4db6) return true\n if (cp < 0x4e00) return false\n if (cp < 0x9feb) return true\n if (cp < 0xa000) return false\n if (cp < 0xa015) return true\n return false\n }\n if (cp === 0xa015) return true\n if (cp < 0xa016) return false\n if (cp < 0xa48d) return true\n if (cp < 0xa4d0) return false\n if (cp < 0xa4f8) return true\n if (cp < 0xa4f8) return false\n if (cp < 0xa4fe) return true\n if (cp < 0xa500) return false\n if (cp < 0xa60c) return true\n return false\n }\n if (cp < 0xa717) {\n if (cp < 0xa67f) {\n if (cp === 0xa60c) return true\n if (cp < 0xa610) return false\n if (cp < 0xa620) return true\n if (cp < 0xa62a) return false\n if (cp < 0xa62c) return true\n if (cp < 0xa640) return false\n if (cp < 0xa66e) return true\n if (cp === 0xa66e) return true\n return false\n }\n if (cp === 0xa67f) return true\n if (cp < 0xa680) return false\n if (cp < 0xa69c) return true\n if (cp < 0xa69c) return false\n if (cp < 0xa69e) return true\n if (cp < 0xa6a0) return false\n if (cp < 0xa6e6) return true\n if (cp < 0xa6e6) return false\n if (cp < 0xa6f0) return true\n return false\n }\n if (cp < 0xa78b) {\n if (cp < 0xa717) return false\n if (cp < 0xa720) return true\n if (cp < 0xa722) return false\n if (cp < 0xa770) return true\n if (cp === 0xa770) return true\n if (cp < 0xa771) return false\n if (cp < 0xa788) return true\n if (cp === 0xa788) return true\n return false\n }\n if (cp < 0xa78f) return true\n if (cp === 0xa78f) return true\n if (cp < 0xa790) return false\n if (cp < 0xa7af) return true\n if (cp < 0xa7b0) return false\n if (cp < 0xa7b8) return true\n if (cp === 0xa7f7) return true\n if (cp < 0xa7f8) return false\n if (cp < 0xa7fa) return true\n return false\n }\n if (cp < 0xaa40) {\n if (cp < 0xa90a) {\n if (cp < 0xa840) {\n if (cp === 0xa7fa) return true\n if (cp < 0xa7fb) return false\n if (cp < 0xa802) return true\n if (cp < 0xa803) return false\n if (cp < 0xa806) return true\n if (cp < 0xa807) return false\n if (cp < 0xa80b) return true\n if (cp < 0xa80c) return false\n if (cp < 0xa823) return true\n return false\n }\n if (cp < 0xa874) return true\n if (cp < 0xa882) return false\n if (cp < 0xa8b4) return true\n if (cp < 0xa8f2) return false\n if (cp < 0xa8f8) return true\n if (cp === 0xa8fb) return true\n if (cp === 0xa8fd) return true\n return false\n }\n if (cp < 0xa9e0) {\n if (cp < 0xa90a) return false\n if (cp < 0xa926) return true\n if (cp < 0xa930) return false\n if (cp < 0xa947) return true\n if (cp < 0xa960) return false\n if (cp < 0xa97d) return true\n if (cp < 0xa984) return false\n if (cp < 0xa9b3) return true\n if (cp === 0xa9cf) return true\n return false\n }\n if (cp < 0xa9e5) return true\n if (cp === 0xa9e6) return true\n if (cp < 0xa9e7) return false\n if (cp < 0xa9f0) return true\n if (cp < 0xa9fa) return false\n if (cp < 0xa9ff) return true\n if (cp < 0xaa00) return false\n if (cp < 0xaa29) return true\n return false\n }\n if (cp < 0xaac0) {\n if (cp < 0xaa7a) {\n if (cp < 0xaa40) return false\n if (cp < 0xaa43) return true\n if (cp < 0xaa44) return false\n if (cp < 0xaa4c) return true\n if (cp < 0xaa60) return false\n if (cp < 0xaa70) return true\n if (cp === 0xaa70) return true\n if (cp < 0xaa71) return false\n if (cp < 0xaa77) return true\n return false\n }\n if (cp === 0xaa7a) return true\n if (cp < 0xaa7e) return false\n if (cp < 0xaab0) return true\n if (cp === 0xaab1) return true\n if (cp < 0xaab5) return false\n if (cp < 0xaab7) return true\n if (cp < 0xaab9) return false\n if (cp < 0xaabe) return true\n return false\n }\n if (cp < 0xaaf2) {\n if (cp === 0xaac0) return true\n if (cp === 0xaac2) return true\n if (cp < 0xaadb) return false\n if (cp < 0xaadd) return true\n if (cp === 0xaadd) return true\n if (cp < 0xaae0) return false\n if (cp < 0xaaeb) return true\n return false\n }\n if (cp === 0xaaf2) return true\n if (cp < 0xaaf3) return false\n if (cp < 0xaaf5) return true\n if (cp < 0xab01) return false\n if (cp < 0xab07) return true\n if (cp < 0xab09) return false\n if (cp < 0xab0f) return true\n if (cp < 0xab11) return false\n if (cp < 0xab17) return true\n if (cp < 0xab20) return false\n if (cp < 0xab27) return true\n return false\n }\n if (cp < 0x1003c) {\n if (cp < 0xfb46) {\n if (cp < 0xfa70) {\n if (cp < 0xabc0) {\n if (cp < 0xab28) return false\n if (cp < 0xab2f) return true\n if (cp < 0xab30) return false\n if (cp < 0xab5b) return true\n if (cp < 0xab5c) return false\n if (cp < 0xab60) return true\n if (cp < 0xab60) return false\n if (cp < 0xab66) return true\n if (cp < 0xab70) return false\n if (cp < 0xabc0) return true\n return false\n }\n if (cp < 0xabe3) return true\n if (cp < 0xac00) return false\n if (cp < 0xd7a4) return true\n if (cp < 0xd7b0) return false\n if (cp < 0xd7c7) return true\n if (cp < 0xd7cb) return false\n if (cp < 0xd7fc) return true\n if (cp < 0xf900) return false\n if (cp < 0xfa6e) return true\n return false\n }\n if (cp < 0xfb2a) {\n if (cp < 0xfa70) return false\n if (cp < 0xfada) return true\n if (cp < 0xfb00) return false\n if (cp < 0xfb07) return true\n if (cp < 0xfb13) return false\n if (cp < 0xfb18) return true\n if (cp === 0xfb1d) return true\n if (cp < 0xfb1f) return false\n if (cp < 0xfb29) return true\n return false\n }\n if (cp < 0xfb37) return true\n if (cp < 0xfb38) return false\n if (cp < 0xfb3d) return true\n if (cp === 0xfb3e) return true\n if (cp < 0xfb40) return false\n if (cp < 0xfb42) return true\n if (cp < 0xfb43) return false\n if (cp < 0xfb45) return true\n return false\n }\n if (cp < 0xff70) {\n if (cp < 0xfe70) {\n if (cp < 0xfb46) return false\n if (cp < 0xfbb2) return true\n if (cp < 0xfbd3) return false\n if (cp < 0xfd3e) return true\n if (cp < 0xfd50) return false\n if (cp < 0xfd90) return true\n if (cp < 0xfd92) return false\n if (cp < 0xfdc8) return true\n if (cp < 0xfdf0) return false\n if (cp < 0xfdfc) return true\n return false\n }\n if (cp < 0xfe75) return true\n if (cp < 0xfe76) return false\n if (cp < 0xfefd) return true\n if (cp < 0xff21) return false\n if (cp < 0xff3b) return true\n if (cp < 0xff41) return false\n if (cp < 0xff5b) return true\n if (cp < 0xff66) return false\n if (cp < 0xff70) return true\n return false\n }\n if (cp < 0xffca) {\n if (cp === 0xff70) return true\n if (cp < 0xff71) return false\n if (cp < 0xff9e) return true\n if (cp < 0xff9e) return false\n if (cp < 0xffa0) return true\n if (cp < 0xffa0) return false\n if (cp < 0xffbf) return true\n if (cp < 0xffc2) return false\n if (cp < 0xffc8) return true\n return false\n }\n if (cp < 0xffd0) return true\n if (cp < 0xffd2) return false\n if (cp < 0xffd8) return true\n if (cp < 0xffda) return false\n if (cp < 0xffdd) return true\n if (cp < 0x10000) return false\n if (cp < 0x1000c) return true\n if (cp < 0x1000d) return false\n if (cp < 0x10027) return true\n if (cp < 0x10028) return false\n if (cp < 0x1003b) return true\n return false\n }\n if (cp < 0x104d8) {\n if (cp < 0x10342) {\n if (cp < 0x10280) {\n if (cp < 0x1003c) return false\n if (cp < 0x1003e) return true\n if (cp < 0x1003f) return false\n if (cp < 0x1004e) return true\n if (cp < 0x10050) return false\n if (cp < 0x1005e) return true\n if (cp < 0x10080) return false\n if (cp < 0x100fb) return true\n if (cp < 0x10140) return false\n if (cp < 0x10175) return true\n return false\n }\n if (cp < 0x1029d) return true\n if (cp < 0x102a0) return false\n if (cp < 0x102d1) return true\n if (cp < 0x10300) return false\n if (cp < 0x10320) return true\n if (cp < 0x1032d) return false\n if (cp < 0x10341) return true\n if (cp === 0x10341) return true\n return false\n }\n if (cp < 0x103c8) {\n if (cp < 0x10342) return false\n if (cp < 0x1034a) return true\n if (cp === 0x1034a) return true\n if (cp < 0x10350) return false\n if (cp < 0x10376) return true\n if (cp < 0x10380) return false\n if (cp < 0x1039e) return true\n if (cp < 0x103a0) return false\n if (cp < 0x103c4) return true\n return false\n }\n if (cp < 0x103d0) return true\n if (cp < 0x103d1) return false\n if (cp < 0x103d6) return true\n if (cp < 0x10400) return false\n if (cp < 0x10450) return true\n if (cp < 0x10450) return false\n if (cp < 0x1049e) return true\n if (cp < 0x104b0) return false\n if (cp < 0x104d4) return true\n return false\n }\n if (cp < 0x1083c) {\n if (cp < 0x10760) {\n if (cp < 0x104d8) return false\n if (cp < 0x104fc) return true\n if (cp < 0x10500) return false\n if (cp < 0x10528) return true\n if (cp < 0x10530) return false\n if (cp < 0x10564) return true\n if (cp < 0x10600) return false\n if (cp < 0x10737) return true\n if (cp < 0x10740) return false\n if (cp < 0x10756) return true\n return false\n }\n if (cp < 0x10768) return true\n if (cp < 0x10800) return false\n if (cp < 0x10806) return true\n if (cp === 0x10808) return true\n if (cp < 0x1080a) return false\n if (cp < 0x10836) return true\n if (cp < 0x10837) return false\n if (cp < 0x10839) return true\n return false\n }\n if (cp < 0x108f4) {\n if (cp === 0x1083c) return true\n if (cp < 0x1083f) return false\n if (cp < 0x10856) return true\n if (cp < 0x10860) return false\n if (cp < 0x10877) return true\n if (cp < 0x10880) return false\n if (cp < 0x1089f) return true\n if (cp < 0x108e0) return false\n if (cp < 0x108f3) return true\n return false\n }\n if (cp < 0x108f6) return true\n if (cp < 0x10900) return false\n if (cp < 0x10916) return true\n if (cp < 0x10920) return false\n if (cp < 0x1093a) return true\n if (cp < 0x10980) return false\n if (cp < 0x109b8) return true\n if (cp < 0x109be) return false\n if (cp < 0x109c0) return true\n if (cp === 0x10a00) return true\n return false\n }\n if (cp < 0x16f50) {\n if (cp < 0x11400) {\n if (cp < 0x11183) {\n if (cp < 0x10b80) {\n if (cp < 0x10ac0) {\n if (cp < 0x10a10) return false\n if (cp < 0x10a14) return true\n if (cp < 0x10a15) return false\n if (cp < 0x10a18) return true\n if (cp < 0x10a19) return false\n if (cp < 0x10a34) return true\n if (cp < 0x10a60) return false\n if (cp < 0x10a7d) return true\n if (cp < 0x10a80) return false\n if (cp < 0x10a9d) return true\n return false\n }\n if (cp < 0x10ac8) return true\n if (cp < 0x10ac9) return false\n if (cp < 0x10ae5) return true\n if (cp < 0x10b00) return false\n if (cp < 0x10b36) return true\n if (cp < 0x10b40) return false\n if (cp < 0x10b56) return true\n if (cp < 0x10b60) return false\n if (cp < 0x10b73) return true\n return false\n }\n if (cp < 0x11083) {\n if (cp < 0x10b80) return false\n if (cp < 0x10b92) return true\n if (cp < 0x10c00) return false\n if (cp < 0x10c49) return true\n if (cp < 0x10c80) return false\n if (cp < 0x10cb3) return true\n if (cp < 0x10cc0) return false\n if (cp < 0x10cf3) return true\n if (cp < 0x11003) return false\n if (cp < 0x11038) return true\n return false\n }\n if (cp < 0x110b0) return true\n if (cp < 0x110d0) return false\n if (cp < 0x110e9) return true\n if (cp < 0x11103) return false\n if (cp < 0x11127) return true\n if (cp < 0x11150) return false\n if (cp < 0x11173) return true\n if (cp === 0x11176) return true\n return false\n }\n if (cp < 0x1129f) {\n if (cp < 0x11213) {\n if (cp < 0x11183) return false\n if (cp < 0x111b3) return true\n if (cp < 0x111c1) return false\n if (cp < 0x111c5) return true\n if (cp === 0x111da) return true\n if (cp === 0x111dc) return true\n if (cp < 0x11200) return false\n if (cp < 0x11212) return true\n return false\n }\n if (cp < 0x1122c) return true\n if (cp < 0x11280) return false\n if (cp < 0x11287) return true\n if (cp === 0x11288) return true\n if (cp < 0x1128a) return false\n if (cp < 0x1128e) return true\n if (cp < 0x1128f) return false\n if (cp < 0x1129e) return true\n return false\n }\n if (cp < 0x1132a) {\n if (cp < 0x1129f) return false\n if (cp < 0x112a9) return true\n if (cp < 0x112b0) return false\n if (cp < 0x112df) return true\n if (cp < 0x11305) return false\n if (cp < 0x1130d) return true\n if (cp < 0x1130f) return false\n if (cp < 0x11311) return true\n if (cp < 0x11313) return false\n if (cp < 0x11329) return true\n return false\n }\n if (cp < 0x11331) return true\n if (cp < 0x11332) return false\n if (cp < 0x11334) return true\n if (cp < 0x11335) return false\n if (cp < 0x1133a) return true\n if (cp === 0x1133d) return true\n if (cp === 0x11350) return true\n if (cp < 0x1135d) return false\n if (cp < 0x11362) return true\n return false\n }\n if (cp < 0x11c00) {\n if (cp < 0x11700) {\n if (cp < 0x11580) {\n if (cp < 0x11400) return false\n if (cp < 0x11435) return true\n if (cp < 0x11447) return false\n if (cp < 0x1144b) return true\n if (cp < 0x11480) return false\n if (cp < 0x114b0) return true\n if (cp < 0x114c4) return false\n if (cp < 0x114c6) return true\n if (cp === 0x114c7) return true\n return false\n }\n if (cp < 0x115af) return true\n if (cp < 0x115d8) return false\n if (cp < 0x115dc) return true\n if (cp < 0x11600) return false\n if (cp < 0x11630) return true\n if (cp === 0x11644) return true\n if (cp < 0x11680) return false\n if (cp < 0x116ab) return true\n return false\n }\n if (cp < 0x11a3a) {\n if (cp < 0x11700) return false\n if (cp < 0x1171a) return true\n if (cp < 0x118a0) return false\n if (cp < 0x118e0) return true\n if (cp === 0x118ff) return true\n if (cp === 0x11a00) return true\n if (cp < 0x11a0b) return false\n if (cp < 0x11a33) return true\n return false\n }\n if (cp === 0x11a3a) return true\n if (cp === 0x11a50) return true\n if (cp < 0x11a5c) return false\n if (cp < 0x11a84) return true\n if (cp < 0x11a86) return false\n if (cp < 0x11a8a) return true\n if (cp < 0x11ac0) return false\n if (cp < 0x11af9) return true\n return false\n }\n if (cp < 0x12480) {\n if (cp < 0x11d08) {\n if (cp < 0x11c00) return false\n if (cp < 0x11c09) return true\n if (cp < 0x11c0a) return false\n if (cp < 0x11c2f) return true\n if (cp === 0x11c40) return true\n if (cp < 0x11c72) return false\n if (cp < 0x11c90) return true\n if (cp < 0x11d00) return false\n if (cp < 0x11d07) return true\n return false\n }\n if (cp < 0x11d0a) return true\n if (cp < 0x11d0b) return false\n if (cp < 0x11d31) return true\n if (cp === 0x11d46) return true\n if (cp < 0x12000) return false\n if (cp < 0x1239a) return true\n if (cp < 0x12400) return false\n if (cp < 0x1246f) return true\n return false\n }\n if (cp < 0x16ad0) {\n if (cp < 0x12480) return false\n if (cp < 0x12544) return true\n if (cp < 0x13000) return false\n if (cp < 0x1342f) return true\n if (cp < 0x14400) return false\n if (cp < 0x14647) return true\n if (cp < 0x16800) return false\n if (cp < 0x16a39) return true\n if (cp < 0x16a40) return false\n if (cp < 0x16a5f) return true\n return false\n }\n if (cp < 0x16aee) return true\n if (cp < 0x16b00) return false\n if (cp < 0x16b30) return true\n if (cp < 0x16b40) return false\n if (cp < 0x16b44) return true\n if (cp < 0x16b63) return false\n if (cp < 0x16b78) return true\n if (cp < 0x16b7d) return false\n if (cp < 0x16b90) return true\n if (cp < 0x16f00) return false\n if (cp < 0x16f45) return true\n return false\n }\n if (cp < 0x1e800) {\n if (cp < 0x1d4c5) {\n if (cp < 0x1bc90) {\n if (cp < 0x1b000) {\n if (cp === 0x16f50) return true\n if (cp < 0x16f93) return false\n if (cp < 0x16fa0) return true\n if (cp < 0x16fe0) return false\n if (cp < 0x16fe2) return true\n if (cp < 0x17000) return false\n if (cp < 0x187ed) return true\n if (cp < 0x18800) return false\n if (cp < 0x18af3) return true\n return false\n }\n if (cp < 0x1b11f) return true\n if (cp < 0x1b170) return false\n if (cp < 0x1b2fc) return true\n if (cp < 0x1bc00) return false\n if (cp < 0x1bc6b) return true\n if (cp < 0x1bc70) return false\n if (cp < 0x1bc7d) return true\n if (cp < 0x1bc80) return false\n if (cp < 0x1bc89) return true\n return false\n }\n if (cp < 0x1d4a5) {\n if (cp < 0x1bc90) return false\n if (cp < 0x1bc9a) return true\n if (cp < 0x1d400) return false\n if (cp < 0x1d455) return true\n if (cp < 0x1d456) return false\n if (cp < 0x1d49d) return true\n if (cp < 0x1d49e) return false\n if (cp < 0x1d4a0) return true\n if (cp === 0x1d4a2) return true\n return false\n }\n if (cp < 0x1d4a7) return true\n if (cp < 0x1d4a9) return false\n if (cp < 0x1d4ad) return true\n if (cp < 0x1d4ae) return false\n if (cp < 0x1d4ba) return true\n if (cp === 0x1d4bb) return true\n if (cp < 0x1d4bd) return false\n if (cp < 0x1d4c4) return true\n return false\n }\n if (cp < 0x1d6a8) {\n if (cp < 0x1d53b) {\n if (cp < 0x1d4c5) return false\n if (cp < 0x1d506) return true\n if (cp < 0x1d507) return false\n if (cp < 0x1d50b) return true\n if (cp < 0x1d50d) return false\n if (cp < 0x1d515) return true\n if (cp < 0x1d516) return false\n if (cp < 0x1d51d) return true\n if (cp < 0x1d51e) return false\n if (cp < 0x1d53a) return true\n return false\n }\n if (cp < 0x1d53f) return true\n if (cp < 0x1d540) return false\n if (cp < 0x1d545) return true\n if (cp === 0x1d546) return true\n if (cp < 0x1d54a) return false\n if (cp < 0x1d551) return true\n if (cp < 0x1d552) return false\n if (cp < 0x1d6a6) return true\n return false\n }\n if (cp < 0x1d736) {\n if (cp < 0x1d6a8) return false\n if (cp < 0x1d6c1) return true\n if (cp < 0x1d6c2) return false\n if (cp < 0x1d6db) return true\n if (cp < 0x1d6dc) return false\n if (cp < 0x1d6fb) return true\n if (cp < 0x1d6fc) return false\n if (cp < 0x1d715) return true\n if (cp < 0x1d716) return false\n if (cp < 0x1d735) return true\n return false\n }\n if (cp < 0x1d74f) return true\n if (cp < 0x1d750) return false\n if (cp < 0x1d76f) return true\n if (cp < 0x1d770) return false\n if (cp < 0x1d789) return true\n if (cp < 0x1d78a) return false\n if (cp < 0x1d7a9) return true\n if (cp < 0x1d7aa) return false\n if (cp < 0x1d7c3) return true\n if (cp < 0x1d7c4) return false\n if (cp < 0x1d7cc) return true\n return false\n }\n if (cp < 0x1ee5b) {\n if (cp < 0x1ee3b) {\n if (cp < 0x1ee24) {\n if (cp < 0x1e800) return false\n if (cp < 0x1e8c5) return true\n if (cp < 0x1e900) return false\n if (cp < 0x1e944) return true\n if (cp < 0x1ee00) return false\n if (cp < 0x1ee04) return true\n if (cp < 0x1ee05) return false\n if (cp < 0x1ee20) return true\n if (cp < 0x1ee21) return false\n if (cp < 0x1ee23) return true\n return false\n }\n if (cp === 0x1ee24) return true\n if (cp === 0x1ee27) return true\n if (cp < 0x1ee29) return false\n if (cp < 0x1ee33) return true\n if (cp < 0x1ee34) return false\n if (cp < 0x1ee38) return true\n if (cp === 0x1ee39) return true\n return false\n }\n if (cp < 0x1ee4d) {\n if (cp === 0x1ee3b) return true\n if (cp === 0x1ee42) return true\n if (cp === 0x1ee47) return true\n if (cp === 0x1ee49) return true\n if (cp === 0x1ee4b) return true\n return false\n }\n if (cp < 0x1ee50) return true\n if (cp < 0x1ee51) return false\n if (cp < 0x1ee53) return true\n if (cp === 0x1ee54) return true\n if (cp === 0x1ee57) return true\n if (cp === 0x1ee59) return true\n return false\n }\n if (cp < 0x1ee80) {\n if (cp < 0x1ee67) {\n if (cp === 0x1ee5b) return true\n if (cp === 0x1ee5d) return true\n if (cp === 0x1ee5f) return true\n if (cp < 0x1ee61) return false\n if (cp < 0x1ee63) return true\n if (cp === 0x1ee64) return true\n return false\n }\n if (cp < 0x1ee6b) return true\n if (cp < 0x1ee6c) return false\n if (cp < 0x1ee73) return true\n if (cp < 0x1ee74) return false\n if (cp < 0x1ee78) return true\n if (cp < 0x1ee79) return false\n if (cp < 0x1ee7d) return true\n if (cp === 0x1ee7e) return true\n return false\n }\n if (cp < 0x20000) {\n if (cp < 0x1ee80) return false\n if (cp < 0x1ee8a) return true\n if (cp < 0x1ee8b) return false\n if (cp < 0x1ee9c) return true\n if (cp < 0x1eea1) return false\n if (cp < 0x1eea4) return true\n if (cp < 0x1eea5) return false\n if (cp < 0x1eeaa) return true\n if (cp < 0x1eeab) return false\n if (cp < 0x1eebc) return true\n return false\n }\n if (cp < 0x2a6d7) return true\n if (cp < 0x2a700) return false\n if (cp < 0x2b735) return true\n if (cp < 0x2b740) return false\n if (cp < 0x2b81e) return true\n if (cp < 0x2b820) return false\n if (cp < 0x2cea2) return true\n if (cp < 0x2ceb0) return false\n if (cp < 0x2ebe1) return true\n if (cp < 0x2f800) return false\n if (cp < 0x2fa1e) return true\n return false\n}\n\nfunction isLargeIdContinue(cp: number): boolean {\n if (cp < 0x1bf2) {\n if (cp < 0xd62) {\n if (cp < 0xa83) {\n if (cp < 0x93b) {\n if (cp < 0x6ea) {\n if (cp < 0x5c7) {\n if (cp === 0xb7) return true\n if (cp < 0x300) return false\n if (cp < 0x370) return true\n if (cp === 0x387) return true\n if (cp < 0x483) return false\n if (cp < 0x488) return true\n if (cp < 0x591) return false\n if (cp < 0x5be) return true\n if (cp === 0x5bf) return true\n if (cp < 0x5c1) return false\n if (cp < 0x5c3) return true\n if (cp < 0x5c4) return false\n if (cp < 0x5c6) return true\n return false\n }\n if (cp === 0x5c7) return true\n if (cp < 0x610) return false\n if (cp < 0x61b) return true\n if (cp < 0x64b) return false\n if (cp < 0x660) return true\n if (cp < 0x660) return false\n if (cp < 0x66a) return true\n if (cp === 0x670) return true\n if (cp < 0x6d6) return false\n if (cp < 0x6dd) return true\n if (cp < 0x6df) return false\n if (cp < 0x6e5) return true\n if (cp < 0x6e7) return false\n if (cp < 0x6e9) return true\n return false\n }\n if (cp < 0x81b) {\n if (cp < 0x6ea) return false\n if (cp < 0x6ee) return true\n if (cp < 0x6f0) return false\n if (cp < 0x6fa) return true\n if (cp === 0x711) return true\n if (cp < 0x730) return false\n if (cp < 0x74b) return true\n if (cp < 0x7a6) return false\n if (cp < 0x7b1) return true\n if (cp < 0x7c0) return false\n if (cp < 0x7ca) return true\n if (cp < 0x7eb) return false\n if (cp < 0x7f4) return true\n if (cp < 0x816) return false\n if (cp < 0x81a) return true\n return false\n }\n if (cp < 0x824) return true\n if (cp < 0x825) return false\n if (cp < 0x828) return true\n if (cp < 0x829) return false\n if (cp < 0x82e) return true\n if (cp < 0x859) return false\n if (cp < 0x85c) return true\n if (cp < 0x8d4) return false\n if (cp < 0x8e2) return true\n if (cp < 0x8e3) return false\n if (cp < 0x903) return true\n if (cp === 0x903) return true\n if (cp === 0x93a) return true\n return false\n }\n if (cp < 0x9cb) {\n if (cp < 0x962) {\n if (cp === 0x93b) return true\n if (cp === 0x93c) return true\n if (cp < 0x93e) return false\n if (cp < 0x941) return true\n if (cp < 0x941) return false\n if (cp < 0x949) return true\n if (cp < 0x949) return false\n if (cp < 0x94d) return true\n if (cp === 0x94d) return true\n if (cp < 0x94e) return false\n if (cp < 0x950) return true\n if (cp < 0x951) return false\n if (cp < 0x958) return true\n return false\n }\n if (cp < 0x964) return true\n if (cp < 0x966) return false\n if (cp < 0x970) return true\n if (cp === 0x981) return true\n if (cp < 0x982) return false\n if (cp < 0x984) return true\n if (cp === 0x9bc) return true\n if (cp < 0x9be) return false\n if (cp < 0x9c1) return true\n if (cp < 0x9c1) return false\n if (cp < 0x9c5) return true\n if (cp < 0x9c7) return false\n if (cp < 0x9c9) return true\n return false\n }\n if (cp < 0xa3e) {\n if (cp < 0x9cb) return false\n if (cp < 0x9cd) return true\n if (cp === 0x9cd) return true\n if (cp === 0x9d7) return true\n if (cp < 0x9e2) return false\n if (cp < 0x9e4) return true\n if (cp < 0x9e6) return false\n if (cp < 0x9f0) return true\n if (cp < 0xa01) return false\n if (cp < 0xa03) return true\n if (cp === 0xa03) return true\n if (cp === 0xa3c) return true\n return false\n }\n if (cp < 0xa41) return true\n if (cp < 0xa41) return false\n if (cp < 0xa43) return true\n if (cp < 0xa47) return false\n if (cp < 0xa49) return true\n if (cp < 0xa4b) return false\n if (cp < 0xa4e) return true\n if (cp === 0xa51) return true\n if (cp < 0xa66) return false\n if (cp < 0xa70) return true\n if (cp < 0xa70) return false\n if (cp < 0xa72) return true\n if (cp === 0xa75) return true\n if (cp < 0xa81) return false\n if (cp < 0xa83) return true\n return false\n }\n if (cp < 0xbd7) {\n if (cp < 0xb40) {\n if (cp < 0xae2) {\n if (cp === 0xa83) return true\n if (cp === 0xabc) return true\n if (cp < 0xabe) return false\n if (cp < 0xac1) return true\n if (cp < 0xac1) return false\n if (cp < 0xac6) return true\n if (cp < 0xac7) return false\n if (cp < 0xac9) return true\n if (cp === 0xac9) return true\n if (cp < 0xacb) return false\n if (cp < 0xacd) return true\n if (cp === 0xacd) return true\n return false\n }\n if (cp < 0xae4) return true\n if (cp < 0xae6) return false\n if (cp < 0xaf0) return true\n if (cp < 0xafa) return false\n if (cp < 0xb00) return true\n if (cp === 0xb01) return true\n if (cp < 0xb02) return false\n if (cp < 0xb04) return true\n if (cp === 0xb3c) return true\n if (cp === 0xb3e) return true\n if (cp === 0xb3f) return true\n return false\n }\n if (cp < 0xb66) {\n if (cp === 0xb40) return true\n if (cp < 0xb41) return false\n if (cp < 0xb45) return true\n if (cp < 0xb47) return false\n if (cp < 0xb49) return true\n if (cp < 0xb4b) return false\n if (cp < 0xb4d) return true\n if (cp === 0xb4d) return true\n if (cp === 0xb56) return true\n if (cp === 0xb57) return true\n if (cp < 0xb62) return false\n if (cp < 0xb64) return true\n return false\n }\n if (cp < 0xb70) return true\n if (cp === 0xb82) return true\n if (cp < 0xbbe) return false\n if (cp < 0xbc0) return true\n if (cp === 0xbc0) return true\n if (cp < 0xbc1) return false\n if (cp < 0xbc3) return true\n if (cp < 0xbc6) return false\n if (cp < 0xbc9) return true\n if (cp < 0xbca) return false\n if (cp < 0xbcd) return true\n if (cp === 0xbcd) return true\n return false\n }\n if (cp < 0xcc0) {\n if (cp < 0xc55) {\n if (cp === 0xbd7) return true\n if (cp < 0xbe6) return false\n if (cp < 0xbf0) return true\n if (cp === 0xc00) return true\n if (cp < 0xc01) return false\n if (cp < 0xc04) return true\n if (cp < 0xc3e) return false\n if (cp < 0xc41) return true\n if (cp < 0xc41) return false\n if (cp < 0xc45) return true\n if (cp < 0xc46) return false\n if (cp < 0xc49) return true\n if (cp < 0xc4a) return false\n if (cp < 0xc4e) return true\n return false\n }\n if (cp < 0xc57) return true\n if (cp < 0xc62) return false\n if (cp < 0xc64) return true\n if (cp < 0xc66) return false\n if (cp < 0xc70) return true\n if (cp === 0xc81) return true\n if (cp < 0xc82) return false\n if (cp < 0xc84) return true\n if (cp === 0xcbc) return true\n if (cp === 0xcbe) return true\n if (cp === 0xcbf) return true\n return false\n }\n if (cp < 0xd00) {\n if (cp < 0xcc0) return false\n if (cp < 0xcc5) return true\n if (cp === 0xcc6) return true\n if (cp < 0xcc7) return false\n if (cp < 0xcc9) return true\n if (cp < 0xcca) return false\n if (cp < 0xccc) return true\n if (cp < 0xccc) return false\n if (cp < 0xcce) return true\n if (cp < 0xcd5) return false\n if (cp < 0xcd7) return true\n if (cp < 0xce2) return false\n if (cp < 0xce4) return true\n if (cp < 0xce6) return false\n if (cp < 0xcf0) return true\n return false\n }\n if (cp < 0xd02) return true\n if (cp < 0xd02) return false\n if (cp < 0xd04) return true\n if (cp < 0xd3b) return false\n if (cp < 0xd3d) return true\n if (cp < 0xd3e) return false\n if (cp < 0xd41) return true\n if (cp < 0xd41) return false\n if (cp < 0xd45) return true\n if (cp < 0xd46) return false\n if (cp < 0xd49) return true\n if (cp < 0xd4a) return false\n if (cp < 0xd4d) return true\n if (cp === 0xd4d) return true\n if (cp === 0xd57) return true\n return false\n }\n if (cp < 0x17be) {\n if (cp < 0x102b) {\n if (cp < 0xebb) {\n if (cp < 0xde6) {\n if (cp < 0xd62) return false\n if (cp < 0xd64) return true\n if (cp < 0xd66) return false\n if (cp < 0xd70) return true\n if (cp < 0xd82) return false\n if (cp < 0xd84) return true\n if (cp === 0xdca) return true\n if (cp < 0xdcf) return false\n if (cp < 0xdd2) return true\n if (cp < 0xdd2) return false\n if (cp < 0xdd5) return true\n if (cp === 0xdd6) return true\n if (cp < 0xdd8) return false\n if (cp < 0xde0) return true\n return false\n }\n if (cp < 0xdf0) return true\n if (cp < 0xdf2) return false\n if (cp < 0xdf4) return true\n if (cp === 0xe31) return true\n if (cp < 0xe34) return false\n if (cp < 0xe3b) return true\n if (cp < 0xe47) return false\n if (cp < 0xe4f) return true\n if (cp < 0xe50) return false\n if (cp < 0xe5a) return true\n if (cp === 0xeb1) return true\n if (cp < 0xeb4) return false\n if (cp < 0xeba) return true\n return false\n }\n if (cp < 0xf3e) {\n if (cp < 0xebb) return false\n if (cp < 0xebd) return true\n if (cp < 0xec8) return false\n if (cp < 0xece) return true\n if (cp < 0xed0) return false\n if (cp < 0xeda) return true\n if (cp < 0xf18) return false\n if (cp < 0xf1a) return true\n if (cp < 0xf20) return false\n if (cp < 0xf2a) return true\n if (cp === 0xf35) return true\n if (cp === 0xf37) return true\n if (cp === 0xf39) return true\n return false\n }\n if (cp < 0xf40) return true\n if (cp < 0xf71) return false\n if (cp < 0xf7f) return true\n if (cp === 0xf7f) return true\n if (cp < 0xf80) return false\n if (cp < 0xf85) return true\n if (cp < 0xf86) return false\n if (cp < 0xf88) return true\n if (cp < 0xf8d) return false\n if (cp < 0xf98) return true\n if (cp < 0xf99) return false\n if (cp < 0xfbd) return true\n if (cp === 0xfc6) return true\n return false\n }\n if (cp < 0x1083) {\n if (cp < 0x1040) {\n if (cp < 0x102b) return false\n if (cp < 0x102d) return true\n if (cp < 0x102d) return false\n if (cp < 0x1031) return true\n if (cp === 0x1031) return true\n if (cp < 0x1032) return false\n if (cp < 0x1038) return true\n if (cp === 0x1038) return true\n if (cp < 0x1039) return false\n if (cp < 0x103b) return true\n if (cp < 0x103b) return false\n if (cp < 0x103d) return true\n if (cp < 0x103d) return false\n if (cp < 0x103f) return true\n return false\n }\n if (cp < 0x104a) return true\n if (cp < 0x1056) return false\n if (cp < 0x1058) return true\n if (cp < 0x1058) return false\n if (cp < 0x105a) return true\n if (cp < 0x105e) return false\n if (cp < 0x1061) return true\n if (cp < 0x1062) return false\n if (cp < 0x1065) return true\n if (cp < 0x1067) return false\n if (cp < 0x106e) return true\n if (cp < 0x1071) return false\n if (cp < 0x1075) return true\n if (cp === 0x1082) return true\n return false\n }\n if (cp < 0x135d) {\n if (cp < 0x1083) return false\n if (cp < 0x1085) return true\n if (cp < 0x1085) return false\n if (cp < 0x1087) return true\n if (cp < 0x1087) return false\n if (cp < 0x108d) return true\n if (cp === 0x108d) return true\n if (cp === 0x108f) return true\n if (cp < 0x1090) return false\n if (cp < 0x109a) return true\n if (cp < 0x109a) return false\n if (cp < 0x109d) return true\n if (cp === 0x109d) return true\n return false\n }\n if (cp < 0x1360) return true\n if (cp < 0x1369) return false\n if (cp < 0x1372) return true\n if (cp < 0x1712) return false\n if (cp < 0x1715) return true\n if (cp < 0x1732) return false\n if (cp < 0x1735) return true\n if (cp < 0x1752) return false\n if (cp < 0x1754) return true\n if (cp < 0x1772) return false\n if (cp < 0x1774) return true\n if (cp < 0x17b4) return false\n if (cp < 0x17b6) return true\n if (cp === 0x17b6) return true\n if (cp < 0x17b7) return false\n if (cp < 0x17be) return true\n return false\n }\n if (cp < 0x1a73) {\n if (cp < 0x1939) {\n if (cp < 0x18a9) {\n if (cp < 0x17be) return false\n if (cp < 0x17c6) return true\n if (cp === 0x17c6) return true\n if (cp < 0x17c7) return false\n if (cp < 0x17c9) return true\n if (cp < 0x17c9) return false\n if (cp < 0x17d4) return true\n if (cp === 0x17dd) return true\n if (cp < 0x17e0) return false\n if (cp < 0x17ea) return true\n if (cp < 0x180b) return false\n if (cp < 0x180e) return true\n if (cp < 0x1810) return false\n if (cp < 0x181a) return true\n return false\n }\n if (cp === 0x18a9) return true\n if (cp < 0x1920) return false\n if (cp < 0x1923) return true\n if (cp < 0x1923) return false\n if (cp < 0x1927) return true\n if (cp < 0x1927) return false\n if (cp < 0x1929) return true\n if (cp < 0x1929) return false\n if (cp < 0x192c) return true\n if (cp < 0x1930) return false\n if (cp < 0x1932) return true\n if (cp === 0x1932) return true\n if (cp < 0x1933) return false\n if (cp < 0x1939) return true\n return false\n }\n if (cp < 0x1a56) {\n if (cp < 0x1939) return false\n if (cp < 0x193c) return true\n if (cp < 0x1946) return false\n if (cp < 0x1950) return true\n if (cp < 0x19d0) return false\n if (cp < 0x19da) return true\n if (cp === 0x19da) return true\n if (cp < 0x1a17) return false\n if (cp < 0x1a19) return true\n if (cp < 0x1a19) return false\n if (cp < 0x1a1b) return true\n if (cp === 0x1a1b) return true\n if (cp === 0x1a55) return true\n return false\n }\n if (cp === 0x1a56) return true\n if (cp === 0x1a57) return true\n if (cp < 0x1a58) return false\n if (cp < 0x1a5f) return true\n if (cp === 0x1a60) return true\n if (cp === 0x1a61) return true\n if (cp === 0x1a62) return true\n if (cp < 0x1a63) return false\n if (cp < 0x1a65) return true\n if (cp < 0x1a65) return false\n if (cp < 0x1a6d) return true\n if (cp < 0x1a6d) return false\n if (cp < 0x1a73) return true\n return false\n }\n if (cp < 0x1b6b) {\n if (cp < 0x1b35) {\n if (cp < 0x1a73) return false\n if (cp < 0x1a7d) return true\n if (cp === 0x1a7f) return true\n if (cp < 0x1a80) return false\n if (cp < 0x1a8a) return true\n if (cp < 0x1a90) return false\n if (cp < 0x1a9a) return true\n if (cp < 0x1ab0) return false\n if (cp < 0x1abe) return true\n if (cp < 0x1b00) return false\n if (cp < 0x1b04) return true\n if (cp === 0x1b04) return true\n if (cp === 0x1b34) return true\n return false\n }\n if (cp === 0x1b35) return true\n if (cp < 0x1b36) return false\n if (cp < 0x1b3b) return true\n if (cp === 0x1b3b) return true\n if (cp === 0x1b3c) return true\n if (cp < 0x1b3d) return false\n if (cp < 0x1b42) return true\n if (cp === 0x1b42) return true\n if (cp < 0x1b43) return false\n if (cp < 0x1b45) return true\n if (cp < 0x1b50) return false\n if (cp < 0x1b5a) return true\n return false\n }\n if (cp < 0x1bab) {\n if (cp < 0x1b6b) return false\n if (cp < 0x1b74) return true\n if (cp < 0x1b80) return false\n if (cp < 0x1b82) return true\n if (cp === 0x1b82) return true\n if (cp === 0x1ba1) return true\n if (cp < 0x1ba2) return false\n if (cp < 0x1ba6) return true\n if (cp < 0x1ba6) return false\n if (cp < 0x1ba8) return true\n if (cp < 0x1ba8) return false\n if (cp < 0x1baa) return true\n if (cp === 0x1baa) return true\n return false\n }\n if (cp < 0x1bae) return true\n if (cp < 0x1bb0) return false\n if (cp < 0x1bba) return true\n if (cp === 0x1be6) return true\n if (cp === 0x1be7) return true\n if (cp < 0x1be8) return false\n if (cp < 0x1bea) return true\n if (cp < 0x1bea) return false\n if (cp < 0x1bed) return true\n if (cp === 0x1bed) return true\n if (cp === 0x1bee) return true\n if (cp < 0x1bef) return false\n if (cp < 0x1bf2) return true\n return false\n }\n if (cp < 0x111d0) {\n if (cp < 0xaa43) {\n if (cp < 0xa69e) {\n if (cp < 0x1dc0) {\n if (cp < 0x1cd4) {\n if (cp < 0x1bf2) return false\n if (cp < 0x1bf4) return true\n if (cp < 0x1c24) return false\n if (cp < 0x1c2c) return true\n if (cp < 0x1c2c) return false\n if (cp < 0x1c34) return true\n if (cp < 0x1c34) return false\n if (cp < 0x1c36) return true\n if (cp < 0x1c36) return false\n if (cp < 0x1c38) return true\n if (cp < 0x1c40) return false\n if (cp < 0x1c4a) return true\n if (cp < 0x1c50) return false\n if (cp < 0x1c5a) return true\n if (cp < 0x1cd0) return false\n if (cp < 0x1cd3) return true\n return false\n }\n if (cp < 0x1ce1) return true\n if (cp === 0x1ce1) return true\n if (cp < 0x1ce2) return false\n if (cp < 0x1ce9) return true\n if (cp === 0x1ced) return true\n if (cp < 0x1cf2) return false\n if (cp < 0x1cf4) return true\n if (cp === 0x1cf4) return true\n if (cp === 0x1cf7) return true\n if (cp < 0x1cf8) return false\n if (cp < 0x1cfa) return true\n return false\n }\n if (cp < 0x2d7f) {\n if (cp < 0x1dc0) return false\n if (cp < 0x1dfa) return true\n if (cp < 0x1dfb) return false\n if (cp < 0x1e00) return true\n if (cp < 0x203f) return false\n if (cp < 0x2041) return true\n if (cp === 0x2054) return true\n if (cp < 0x20d0) return false\n if (cp < 0x20dd) return true\n if (cp === 0x20e1) return true\n if (cp < 0x20e5) return false\n if (cp < 0x20f1) return true\n if (cp < 0x2cef) return false\n if (cp < 0x2cf2) return true\n return false\n }\n if (cp === 0x2d7f) return true\n if (cp < 0x2de0) return false\n if (cp < 0x2e00) return true\n if (cp < 0x302a) return false\n if (cp < 0x302e) return true\n if (cp < 0x302e) return false\n if (cp < 0x3030) return true\n if (cp < 0x3099) return false\n if (cp < 0x309b) return true\n if (cp < 0xa620) return false\n if (cp < 0xa62a) return true\n if (cp === 0xa66f) return true\n if (cp < 0xa674) return false\n if (cp < 0xa67e) return true\n return false\n }\n if (cp < 0xa952) {\n if (cp < 0xa880) {\n if (cp < 0xa69e) return false\n if (cp < 0xa6a0) return true\n if (cp < 0xa6f0) return false\n if (cp < 0xa6f2) return true\n if (cp === 0xa802) return true\n if (cp === 0xa806) return true\n if (cp === 0xa80b) return true\n if (cp < 0xa823) return false\n if (cp < 0xa825) return true\n if (cp < 0xa825) return false\n if (cp < 0xa827) return true\n if (cp === 0xa827) return true\n return false\n }\n if (cp < 0xa882) return true\n if (cp < 0xa8b4) return false\n if (cp < 0xa8c4) return true\n if (cp < 0xa8c4) return false\n if (cp < 0xa8c6) return true\n if (cp < 0xa8d0) return false\n if (cp < 0xa8da) return true\n if (cp < 0xa8e0) return false\n if (cp < 0xa8f2) return true\n if (cp < 0xa900) return false\n if (cp < 0xa90a) return true\n if (cp < 0xa926) return false\n if (cp < 0xa92e) return true\n if (cp < 0xa947) return false\n if (cp < 0xa952) return true\n return false\n }\n if (cp < 0xa9bd) {\n if (cp < 0xa952) return false\n if (cp < 0xa954) return true\n if (cp < 0xa980) return false\n if (cp < 0xa983) return true\n if (cp === 0xa983) return true\n if (cp === 0xa9b3) return true\n if (cp < 0xa9b4) return false\n if (cp < 0xa9b6) return true\n if (cp < 0xa9b6) return false\n if (cp < 0xa9ba) return true\n if (cp < 0xa9ba) return false\n if (cp < 0xa9bc) return true\n if (cp === 0xa9bc) return true\n return false\n }\n if (cp < 0xa9c1) return true\n if (cp < 0xa9d0) return false\n if (cp < 0xa9da) return true\n if (cp === 0xa9e5) return true\n if (cp < 0xa9f0) return false\n if (cp < 0xa9fa) return true\n if (cp < 0xaa29) return false\n if (cp < 0xaa2f) return true\n if (cp < 0xaa2f) return false\n if (cp < 0xaa31) return true\n if (cp < 0xaa31) return false\n if (cp < 0xaa33) return true\n if (cp < 0xaa33) return false\n if (cp < 0xaa35) return true\n if (cp < 0xaa35) return false\n if (cp < 0xaa37) return true\n return false\n }\n if (cp < 0x102e0) {\n if (cp < 0xaaf6) {\n if (cp < 0xaab2) {\n if (cp === 0xaa43) return true\n if (cp === 0xaa4c) return true\n if (cp === 0xaa4d) return true\n if (cp < 0xaa50) return false\n if (cp < 0xaa5a) return true\n if (cp === 0xaa7b) return true\n if (cp === 0xaa7c) return true\n if (cp === 0xaa7d) return true\n if (cp === 0xaab0) return true\n return false\n }\n if (cp < 0xaab5) return true\n if (cp < 0xaab7) return false\n if (cp < 0xaab9) return true\n if (cp < 0xaabe) return false\n if (cp < 0xaac0) return true\n if (cp === 0xaac1) return true\n if (cp === 0xaaeb) return true\n if (cp < 0xaaec) return false\n if (cp < 0xaaee) return true\n if (cp < 0xaaee) return false\n if (cp < 0xaaf0) return true\n if (cp === 0xaaf5) return true\n return false\n }\n if (cp < 0xabf0) {\n if (cp === 0xaaf6) return true\n if (cp < 0xabe3) return false\n if (cp < 0xabe5) return true\n if (cp === 0xabe5) return true\n if (cp < 0xabe6) return false\n if (cp < 0xabe8) return true\n if (cp === 0xabe8) return true\n if (cp < 0xabe9) return false\n if (cp < 0xabeb) return true\n if (cp === 0xabec) return true\n if (cp === 0xabed) return true\n return false\n }\n if (cp < 0xabfa) return true\n if (cp === 0xfb1e) return true\n if (cp < 0xfe00) return false\n if (cp < 0xfe10) return true\n if (cp < 0xfe20) return false\n if (cp < 0xfe30) return true\n if (cp < 0xfe33) return false\n if (cp < 0xfe35) return true\n if (cp < 0xfe4d) return false\n if (cp < 0xfe50) return true\n if (cp < 0xff10) return false\n if (cp < 0xff1a) return true\n if (cp === 0xff3f) return true\n if (cp === 0x101fd) return true\n return false\n }\n if (cp < 0x110b0) {\n if (cp < 0x10ae5) {\n if (cp === 0x102e0) return true\n if (cp < 0x10376) return false\n if (cp < 0x1037b) return true\n if (cp < 0x104a0) return false\n if (cp < 0x104aa) return true\n if (cp < 0x10a01) return false\n if (cp < 0x10a04) return true\n if (cp < 0x10a05) return false\n if (cp < 0x10a07) return true\n if (cp < 0x10a0c) return false\n if (cp < 0x10a10) return true\n if (cp < 0x10a38) return false\n if (cp < 0x10a3b) return true\n if (cp === 0x10a3f) return true\n return false\n }\n if (cp < 0x10ae7) return true\n if (cp === 0x11000) return true\n if (cp === 0x11001) return true\n if (cp === 0x11002) return true\n if (cp < 0x11038) return false\n if (cp < 0x11047) return true\n if (cp < 0x11066) return false\n if (cp < 0x11070) return true\n if (cp < 0x1107f) return false\n if (cp < 0x11082) return true\n if (cp === 0x11082) return true\n return false\n }\n if (cp < 0x1112d) {\n if (cp < 0x110b0) return false\n if (cp < 0x110b3) return true\n if (cp < 0x110b3) return false\n if (cp < 0x110b7) return true\n if (cp < 0x110b7) return false\n if (cp < 0x110b9) return true\n if (cp < 0x110b9) return false\n if (cp < 0x110bb) return true\n if (cp < 0x110f0) return false\n if (cp < 0x110fa) return true\n if (cp < 0x11100) return false\n if (cp < 0x11103) return true\n if (cp < 0x11127) return false\n if (cp < 0x1112c) return true\n if (cp === 0x1112c) return true\n return false\n }\n if (cp < 0x11135) return true\n if (cp < 0x11136) return false\n if (cp < 0x11140) return true\n if (cp === 0x11173) return true\n if (cp < 0x11180) return false\n if (cp < 0x11182) return true\n if (cp === 0x11182) return true\n if (cp < 0x111b3) return false\n if (cp < 0x111b6) return true\n if (cp < 0x111b6) return false\n if (cp < 0x111bf) return true\n if (cp < 0x111bf) return false\n if (cp < 0x111c1) return true\n if (cp < 0x111ca) return false\n if (cp < 0x111cd) return true\n return false\n }\n if (cp < 0x11726) {\n if (cp < 0x114b3) {\n if (cp < 0x11340) {\n if (cp < 0x112df) {\n if (cp < 0x111d0) return false\n if (cp < 0x111da) return true\n if (cp < 0x1122c) return false\n if (cp < 0x1122f) return true\n if (cp < 0x1122f) return false\n if (cp < 0x11232) return true\n if (cp < 0x11232) return false\n if (cp < 0x11234) return true\n if (cp === 0x11234) return true\n if (cp === 0x11235) return true\n if (cp < 0x11236) return false\n if (cp < 0x11238) return true\n if (cp === 0x1123e) return true\n return false\n }\n if (cp === 0x112df) return true\n if (cp < 0x112e0) return false\n if (cp < 0x112e3) return true\n if (cp < 0x112e3) return false\n if (cp < 0x112eb) return true\n if (cp < 0x112f0) return false\n if (cp < 0x112fa) return true\n if (cp < 0x11300) return false\n if (cp < 0x11302) return true\n if (cp < 0x11302) return false\n if (cp < 0x11304) return true\n if (cp === 0x1133c) return true\n if (cp < 0x1133e) return false\n if (cp < 0x11340) return true\n return false\n }\n if (cp < 0x11435) {\n if (cp === 0x11340) return true\n if (cp < 0x11341) return false\n if (cp < 0x11345) return true\n if (cp < 0x11347) return false\n if (cp < 0x11349) return true\n if (cp < 0x1134b) return false\n if (cp < 0x1134e) return true\n if (cp === 0x11357) return true\n if (cp < 0x11362) return false\n if (cp < 0x11364) return true\n if (cp < 0x11366) return false\n if (cp < 0x1136d) return true\n if (cp < 0x11370) return false\n if (cp < 0x11375) return true\n return false\n }\n if (cp < 0x11438) return true\n if (cp < 0x11438) return false\n if (cp < 0x11440) return true\n if (cp < 0x11440) return false\n if (cp < 0x11442) return true\n if (cp < 0x11442) return false\n if (cp < 0x11445) return true\n if (cp === 0x11445) return true\n if (cp === 0x11446) return true\n if (cp < 0x11450) return false\n if (cp < 0x1145a) return true\n if (cp < 0x114b0) return false\n if (cp < 0x114b3) return true\n return false\n }\n if (cp < 0x11633) {\n if (cp < 0x115af) {\n if (cp < 0x114b3) return false\n if (cp < 0x114b9) return true\n if (cp === 0x114b9) return true\n if (cp === 0x114ba) return true\n if (cp < 0x114bb) return false\n if (cp < 0x114bf) return true\n if (cp < 0x114bf) return false\n if (cp < 0x114c1) return true\n if (cp === 0x114c1) return true\n if (cp < 0x114c2) return false\n if (cp < 0x114c4) return true\n if (cp < 0x114d0) return false\n if (cp < 0x114da) return true\n return false\n }\n if (cp < 0x115b2) return true\n if (cp < 0x115b2) return false\n if (cp < 0x115b6) return true\n if (cp < 0x115b8) return false\n if (cp < 0x115bc) return true\n if (cp < 0x115bc) return false\n if (cp < 0x115be) return true\n if (cp === 0x115be) return true\n if (cp < 0x115bf) return false\n if (cp < 0x115c1) return true\n if (cp < 0x115dc) return false\n if (cp < 0x115de) return true\n if (cp < 0x11630) return false\n if (cp < 0x11633) return true\n return false\n }\n if (cp < 0x116ad) {\n if (cp < 0x11633) return false\n if (cp < 0x1163b) return true\n if (cp < 0x1163b) return false\n if (cp < 0x1163d) return true\n if (cp === 0x1163d) return true\n if (cp === 0x1163e) return true\n if (cp < 0x1163f) return false\n if (cp < 0x11641) return true\n if (cp < 0x11650) return false\n if (cp < 0x1165a) return true\n if (cp === 0x116ab) return true\n if (cp === 0x116ac) return true\n return false\n }\n if (cp === 0x116ad) return true\n if (cp < 0x116ae) return false\n if (cp < 0x116b0) return true\n if (cp < 0x116b0) return false\n if (cp < 0x116b6) return true\n if (cp === 0x116b6) return true\n if (cp === 0x116b7) return true\n if (cp < 0x116c0) return false\n if (cp < 0x116ca) return true\n if (cp < 0x1171d) return false\n if (cp < 0x11720) return true\n if (cp < 0x11720) return false\n if (cp < 0x11722) return true\n if (cp < 0x11722) return false\n if (cp < 0x11726) return true\n return false\n }\n if (cp < 0x11d3f) {\n if (cp < 0x11a98) {\n if (cp < 0x11a39) {\n if (cp === 0x11726) return true\n if (cp < 0x11727) return false\n if (cp < 0x1172c) return true\n if (cp < 0x11730) return false\n if (cp < 0x1173a) return true\n if (cp < 0x118e0) return false\n if (cp < 0x118ea) return true\n if (cp < 0x11a01) return false\n if (cp < 0x11a07) return true\n if (cp < 0x11a07) return false\n if (cp < 0x11a09) return true\n if (cp < 0x11a09) return false\n if (cp < 0x11a0b) return true\n if (cp < 0x11a33) return false\n if (cp < 0x11a39) return true\n return false\n }\n if (cp === 0x11a39) return true\n if (cp < 0x11a3b) return false\n if (cp < 0x11a3f) return true\n if (cp === 0x11a47) return true\n if (cp < 0x11a51) return false\n if (cp < 0x11a57) return true\n if (cp < 0x11a57) return false\n if (cp < 0x11a59) return true\n if (cp < 0x11a59) return false\n if (cp < 0x11a5c) return true\n if (cp < 0x11a8a) return false\n if (cp < 0x11a97) return true\n if (cp === 0x11a97) return true\n return false\n }\n if (cp < 0x11ca9) {\n if (cp < 0x11a98) return false\n if (cp < 0x11a9a) return true\n if (cp === 0x11c2f) return true\n if (cp < 0x11c30) return false\n if (cp < 0x11c37) return true\n if (cp < 0x11c38) return false\n if (cp < 0x11c3e) return true\n if (cp === 0x11c3e) return true\n if (cp === 0x11c3f) return true\n if (cp < 0x11c50) return false\n if (cp < 0x11c5a) return true\n if (cp < 0x11c92) return false\n if (cp < 0x11ca8) return true\n return false\n }\n if (cp === 0x11ca9) return true\n if (cp < 0x11caa) return false\n if (cp < 0x11cb1) return true\n if (cp === 0x11cb1) return true\n if (cp < 0x11cb2) return false\n if (cp < 0x11cb4) return true\n if (cp === 0x11cb4) return true\n if (cp < 0x11cb5) return false\n if (cp < 0x11cb7) return true\n if (cp < 0x11d31) return false\n if (cp < 0x11d37) return true\n if (cp === 0x11d3a) return true\n if (cp < 0x11d3c) return false\n if (cp < 0x11d3e) return true\n return false\n }\n if (cp < 0x1d242) {\n if (cp < 0x16f8f) {\n if (cp < 0x11d3f) return false\n if (cp < 0x11d46) return true\n if (cp === 0x11d47) return true\n if (cp < 0x11d50) return false\n if (cp < 0x11d5a) return true\n if (cp < 0x16a60) return false\n if (cp < 0x16a6a) return true\n if (cp < 0x16af0) return false\n if (cp < 0x16af5) return true\n if (cp < 0x16b30) return false\n if (cp < 0x16b37) return true\n if (cp < 0x16b50) return false\n if (cp < 0x16b5a) return true\n if (cp < 0x16f51) return false\n if (cp < 0x16f7f) return true\n return false\n }\n if (cp < 0x16f93) return true\n if (cp < 0x1bc9d) return false\n if (cp < 0x1bc9f) return true\n if (cp < 0x1d165) return false\n if (cp < 0x1d167) return true\n if (cp < 0x1d167) return false\n if (cp < 0x1d16a) return true\n if (cp < 0x1d16d) return false\n if (cp < 0x1d173) return true\n if (cp < 0x1d17b) return false\n if (cp < 0x1d183) return true\n if (cp < 0x1d185) return false\n if (cp < 0x1d18c) return true\n if (cp < 0x1d1aa) return false\n if (cp < 0x1d1ae) return true\n return false\n }\n if (cp < 0x1e000) {\n if (cp < 0x1d242) return false\n if (cp < 0x1d245) return true\n if (cp < 0x1d7ce) return false\n if (cp < 0x1d800) return true\n if (cp < 0x1da00) return false\n if (cp < 0x1da37) return true\n if (cp < 0x1da3b) return false\n if (cp < 0x1da6d) return true\n if (cp === 0x1da75) return true\n if (cp === 0x1da84) return true\n if (cp < 0x1da9b) return false\n if (cp < 0x1daa0) return true\n if (cp < 0x1daa1) return false\n if (cp < 0x1dab0) return true\n return false\n }\n if (cp < 0x1e007) return true\n if (cp < 0x1e008) return false\n if (cp < 0x1e019) return true\n if (cp < 0x1e01b) return false\n if (cp < 0x1e022) return true\n if (cp < 0x1e023) return false\n if (cp < 0x1e025) return true\n if (cp < 0x1e026) return false\n if (cp < 0x1e02b) return true\n if (cp < 0x1e8d0) return false\n if (cp < 0x1e8d7) return true\n if (cp < 0x1e944) return false\n if (cp < 0x1e94b) return true\n if (cp < 0x1e950) return false\n if (cp < 0x1e95a) return true\n if (cp < 0xe0100) return false\n if (cp < 0xe01f0) return true\n return false\n}\n","const PropertyData: Object & { [key: string]: Set } = {\n $LONE: new Set([\n \"ASCII\",\n \"ASCII_Hex_Digit\",\n \"AHex\",\n \"Alphabetic\",\n \"Alpha\",\n \"Any\",\n \"Assigned\",\n \"Bidi_Control\",\n \"Bidi_C\",\n \"Bidi_Mirrored\",\n \"Bidi_M\",\n \"Case_Ignorable\",\n \"CI\",\n \"Cased\",\n \"Changes_When_Casefolded\",\n \"CWCF\",\n \"Changes_When_Casemapped\",\n \"CWCM\",\n \"Changes_When_Lowercased\",\n \"CWL\",\n \"Changes_When_NFKC_Casefolded\",\n \"CWKCF\",\n \"Changes_When_Titlecased\",\n \"CWT\",\n \"Changes_When_Uppercased\",\n \"CWU\",\n \"Dash\",\n \"Default_Ignorable_Code_Point\",\n \"DI\",\n \"Deprecated\",\n \"Dep\",\n \"Diacritic\",\n \"Dia\",\n \"Emoji\",\n \"Emoji_Component\",\n \"Emoji_Modifier\",\n \"Emoji_Modifier_Base\",\n \"Emoji_Presentation\",\n \"Extender\",\n \"Ext\",\n \"Grapheme_Base\",\n \"Gr_Base\",\n \"Grapheme_Extend\",\n \"Gr_Ext\",\n \"Hex_Digit\",\n \"Hex\",\n \"IDS_Binary_Operator\",\n \"IDSB\",\n \"IDS_Trinary_Operator\",\n \"IDST\",\n \"ID_Continue\",\n \"IDC\",\n \"ID_Start\",\n \"IDS\",\n \"Ideographic\",\n \"Ideo\",\n \"Join_Control\",\n \"Join_C\",\n \"Logical_Order_Exception\",\n \"LOE\",\n \"Lowercase\",\n \"Lower\",\n \"Math\",\n \"Noncharacter_Code_Point\",\n \"NChar\",\n \"Pattern_Syntax\",\n \"Pat_Syn\",\n \"Pattern_White_Space\",\n \"Pat_WS\",\n \"Quotation_Mark\",\n \"QMark\",\n \"Radical\",\n \"Regional_Indicator\",\n \"RI\",\n \"Sentence_Terminal\",\n \"STerm\",\n \"Soft_Dotted\",\n \"SD\",\n \"Terminal_Punctuation\",\n \"Term\",\n \"Unified_Ideograph\",\n \"UIdeo\",\n \"Uppercase\",\n \"Upper\",\n \"Variation_Selector\",\n \"VS\",\n \"White_Space\",\n \"space\",\n \"XID_Continue\",\n \"XIDC\",\n \"XID_Start\",\n \"XIDS\",\n ]),\n General_Category: new Set([\n \"Cased_Letter\",\n \"LC\",\n \"Close_Punctuation\",\n \"Pe\",\n \"Connector_Punctuation\",\n \"Pc\",\n \"Control\",\n \"Cc\",\n \"cntrl\",\n \"Currency_Symbol\",\n \"Sc\",\n \"Dash_Punctuation\",\n \"Pd\",\n \"Decimal_Number\",\n \"Nd\",\n \"digit\",\n \"Enclosing_Mark\",\n \"Me\",\n \"Final_Punctuation\",\n \"Pf\",\n \"Format\",\n \"Cf\",\n \"Initial_Punctuation\",\n \"Pi\",\n \"Letter\",\n \"L\",\n \"Letter_Number\",\n \"Nl\",\n \"Line_Separator\",\n \"Zl\",\n \"Lowercase_Letter\",\n \"Ll\",\n \"Mark\",\n \"M\",\n \"Combining_Mark\",\n \"Math_Symbol\",\n \"Sm\",\n \"Modifier_Letter\",\n \"Lm\",\n \"Modifier_Symbol\",\n \"Sk\",\n \"Nonspacing_Mark\",\n \"Mn\",\n \"Number\",\n \"N\",\n \"Open_Punctuation\",\n \"Ps\",\n \"Other\",\n \"C\",\n \"Other_Letter\",\n \"Lo\",\n \"Other_Number\",\n \"No\",\n \"Other_Punctuation\",\n \"Po\",\n \"Other_Symbol\",\n \"So\",\n \"Paragraph_Separator\",\n \"Zp\",\n \"Private_Use\",\n \"Co\",\n \"Punctuation\",\n \"P\",\n \"punct\",\n \"Separator\",\n \"Z\",\n \"Space_Separator\",\n \"Zs\",\n \"Spacing_Mark\",\n \"Mc\",\n \"Surrogate\",\n \"Cs\",\n \"Symbol\",\n \"S\",\n \"Titlecase_Letter\",\n \"Lt\",\n \"Unassigned\",\n \"Cn\",\n \"Uppercase_Letter\",\n \"Lu\",\n ]),\n Script: new Set([\n \"Adlam\",\n \"Adlm\",\n \"Ahom\",\n \"Anatolian_Hieroglyphs\",\n \"Hluw\",\n \"Arabic\",\n \"Arab\",\n \"Armenian\",\n \"Armn\",\n \"Avestan\",\n \"Avst\",\n \"Balinese\",\n \"Bali\",\n \"Bamum\",\n \"Bamu\",\n \"Bassa_Vah\",\n \"Bass\",\n \"Batak\",\n \"Batk\",\n \"Bengali\",\n \"Beng\",\n \"Bhaiksuki\",\n \"Bhks\",\n \"Bopomofo\",\n \"Bopo\",\n \"Brahmi\",\n \"Brah\",\n \"Braille\",\n \"Brai\",\n \"Buginese\",\n \"Bugi\",\n \"Buhid\",\n \"Buhd\",\n \"Canadian_Aboriginal\",\n \"Cans\",\n \"Carian\",\n \"Cari\",\n \"Caucasian_Albanian\",\n \"Aghb\",\n \"Chakma\",\n \"Cakm\",\n \"Cham\",\n \"Cherokee\",\n \"Cher\",\n \"Common\",\n \"Zyyy\",\n \"Coptic\",\n \"Copt\",\n \"Qaac\",\n \"Cuneiform\",\n \"Xsux\",\n \"Cypriot\",\n \"Cprt\",\n \"Cyrillic\",\n \"Cyrl\",\n \"Deseret\",\n \"Dsrt\",\n \"Devanagari\",\n \"Deva\",\n \"Duployan\",\n \"Dupl\",\n \"Egyptian_Hieroglyphs\",\n \"Egyp\",\n \"Elbasan\",\n \"Elba\",\n \"Ethiopic\",\n \"Ethi\",\n \"Georgian\",\n \"Geor\",\n \"Glagolitic\",\n \"Glag\",\n \"Gothic\",\n \"Goth\",\n \"Grantha\",\n \"Gran\",\n \"Greek\",\n \"Grek\",\n \"Gujarati\",\n \"Gujr\",\n \"Gurmukhi\",\n \"Guru\",\n \"Han\",\n \"Hani\",\n \"Hangul\",\n \"Hang\",\n \"Hanunoo\",\n \"Hano\",\n \"Hatran\",\n \"Hatr\",\n \"Hebrew\",\n \"Hebr\",\n \"Hiragana\",\n \"Hira\",\n \"Imperial_Aramaic\",\n \"Armi\",\n \"Inherited\",\n \"Zinh\",\n \"Qaai\",\n \"Inscriptional_Pahlavi\",\n \"Phli\",\n \"Inscriptional_Parthian\",\n \"Prti\",\n \"Javanese\",\n \"Java\",\n \"Kaithi\",\n \"Kthi\",\n \"Kannada\",\n \"Knda\",\n \"Katakana\",\n \"Kana\",\n \"Kayah_Li\",\n \"Kali\",\n \"Kharoshthi\",\n \"Khar\",\n \"Khmer\",\n \"Khmr\",\n \"Khojki\",\n \"Khoj\",\n \"Khudawadi\",\n \"Sind\",\n \"Lao\",\n \"Laoo\",\n \"Latin\",\n \"Latn\",\n \"Lepcha\",\n \"Lepc\",\n \"Limbu\",\n \"Limb\",\n \"Linear_A\",\n \"Lina\",\n \"Linear_B\",\n \"Linb\",\n \"Lisu\",\n \"Lycian\",\n \"Lyci\",\n \"Lydian\",\n \"Lydi\",\n \"Mahajani\",\n \"Mahj\",\n \"Malayalam\",\n \"Mlym\",\n \"Mandaic\",\n \"Mand\",\n \"Manichaean\",\n \"Mani\",\n \"Marchen\",\n \"Marc\",\n \"Masaram_Gondi\",\n \"Gonm\",\n \"Meetei_Mayek\",\n \"Mtei\",\n \"Mende_Kikakui\",\n \"Mend\",\n \"Meroitic_Cursive\",\n \"Merc\",\n \"Meroitic_Hieroglyphs\",\n \"Mero\",\n \"Miao\",\n \"Plrd\",\n \"Modi\",\n \"Mongolian\",\n \"Mong\",\n \"Mro\",\n \"Mroo\",\n \"Multani\",\n \"Mult\",\n \"Myanmar\",\n \"Mymr\",\n \"Nabataean\",\n \"Nbat\",\n \"New_Tai_Lue\",\n \"Talu\",\n \"Newa\",\n \"Nko\",\n \"Nkoo\",\n \"Nushu\",\n \"Nshu\",\n \"Ogham\",\n \"Ogam\",\n \"Ol_Chiki\",\n \"Olck\",\n \"Old_Hungarian\",\n \"Hung\",\n \"Old_Italic\",\n \"Ital\",\n \"Old_North_Arabian\",\n \"Narb\",\n \"Old_Permic\",\n \"Perm\",\n \"Old_Persian\",\n \"Xpeo\",\n \"Old_South_Arabian\",\n \"Sarb\",\n \"Old_Turkic\",\n \"Orkh\",\n \"Oriya\",\n \"Orya\",\n \"Osage\",\n \"Osge\",\n \"Osmanya\",\n \"Osma\",\n \"Pahawh_Hmong\",\n \"Hmng\",\n \"Palmyrene\",\n \"Palm\",\n \"Pau_Cin_Hau\",\n \"Pauc\",\n \"Phags_Pa\",\n \"Phag\",\n \"Phoenician\",\n \"Phnx\",\n \"Psalter_Pahlavi\",\n \"Phlp\",\n \"Rejang\",\n \"Rjng\",\n \"Runic\",\n \"Runr\",\n \"Samaritan\",\n \"Samr\",\n \"Saurashtra\",\n \"Saur\",\n \"Sharada\",\n \"Shrd\",\n \"Shavian\",\n \"Shaw\",\n \"Siddham\",\n \"Sidd\",\n \"SignWriting\",\n \"Sgnw\",\n \"Sinhala\",\n \"Sinh\",\n \"Sora_Sompeng\",\n \"Sora\",\n \"Soyombo\",\n \"Soyo\",\n \"Sundanese\",\n \"Sund\",\n \"Syloti_Nagri\",\n \"Sylo\",\n \"Syriac\",\n \"Syrc\",\n \"Tagalog\",\n \"Tglg\",\n \"Tagbanwa\",\n \"Tagb\",\n \"Tai_Le\",\n \"Tale\",\n \"Tai_Tham\",\n \"Lana\",\n \"Tai_Viet\",\n \"Tavt\",\n \"Takri\",\n \"Takr\",\n \"Tamil\",\n \"Taml\",\n \"Tangut\",\n \"Tang\",\n \"Telugu\",\n \"Telu\",\n \"Thaana\",\n \"Thaa\",\n \"Thai\",\n \"Tibetan\",\n \"Tibt\",\n \"Tifinagh\",\n \"Tfng\",\n \"Tirhuta\",\n \"Tirh\",\n \"Ugaritic\",\n \"Ugar\",\n \"Vai\",\n \"Vaii\",\n \"Warang_Citi\",\n \"Wara\",\n \"Yi\",\n \"Yiii\",\n \"Zanabazar_Square\",\n \"Zanb\",\n ]),\n}\n\nPropertyData.gc = PropertyData.General_Category\nPropertyData.sc = PropertyData.Script_Extensions = PropertyData.scx =\n PropertyData.Script\n\nexport { PropertyData }\n","export { isIdContinue, isIdStart } from \"./ids\"\nexport { PropertyData } from \"./property-data\"\n\nexport const Null = 0x00\nexport const Backspace = 0x08\nexport const CharacterTabulation = 0x09\nexport const LineFeed = 0x0a\nexport const LineTabulation = 0x0b\nexport const FormFeed = 0x0c\nexport const CarriageReturn = 0x0d\nexport const ExclamationMark = 0x21\nexport const DollarSign = 0x24\nexport const LeftParenthesis = 0x28\nexport const RightParenthesis = 0x29\nexport const Asterisk = 0x2a\nexport const PlusSign = 0x2b\nexport const Comma = 0x2c\nexport const HyphenMinus = 0x2d\nexport const FullStop = 0x2e\nexport const Solidus = 0x2f\nexport const DigitZero = 0x30\nexport const DigitOne = 0x31\nexport const DigitSeven = 0x37\nexport const DigitNine = 0x39\nexport const Colon = 0x3a\nexport const LessThanSign = 0x3c\nexport const EqualsSign = 0x3d\nexport const GreaterThanSign = 0x3e\nexport const QuestionMark = 0x3f\nexport const LatinCapitalLetterA = 0x41\nexport const LatinCapitalLetterB = 0x42\nexport const LatinCapitalLetterD = 0x44\nexport const LatinCapitalLetterF = 0x46\nexport const LatinCapitalLetterP = 0x50\nexport const LatinCapitalLetterS = 0x53\nexport const LatinCapitalLetterW = 0x57\nexport const LatinCapitalLetterZ = 0x5a\nexport const LowLine = 0x5f\nexport const LatinSmallLetterA = 0x61\nexport const LatinSmallLetterB = 0x62\nexport const LatinSmallLetterC = 0x63\nexport const LatinSmallLetterD = 0x64\nexport const LatinSmallLetterF = 0x66\nexport const LatinSmallLetterG = 0x67\nexport const LatinSmallLetterI = 0x69\nexport const LatinSmallLetterK = 0x6b\nexport const LatinSmallLetterM = 0x6d\nexport const LatinSmallLetterN = 0x6e\nexport const LatinSmallLetterP = 0x70\nexport const LatinSmallLetterR = 0x72\nexport const LatinSmallLetterS = 0x73\nexport const LatinSmallLetterT = 0x74\nexport const LatinSmallLetterU = 0x75\nexport const LatinSmallLetterV = 0x76\nexport const LatinSmallLetterW = 0x77\nexport const LatinSmallLetterX = 0x78\nexport const LatinSmallLetterY = 0x79\nexport const LatinSmallLetterZ = 0x7a\nexport const LeftSquareBracket = 0x5b\nexport const ReverseSolidus = 0x5c\nexport const RightSquareBracket = 0x5d\nexport const CircumflexAccent = 0x5e\nexport const LeftCurlyBracket = 0x7b\nexport const VerticalLine = 0x7c\nexport const RightCurlyBracket = 0x7d\nexport const ZeroWidthNonJoiner = 0x200c\nexport const ZeroWidthJoiner = 0x200d\nexport const LineSeparator = 0x2028\nexport const ParagraphSeparator = 0x2029\n\nexport const MinCodePoint = 0x00\nexport const MaxCodePoint = 0x10ffff\n\nexport function isLatinLetter(code: number): boolean {\n return (\n (code >= LatinCapitalLetterA && code <= LatinCapitalLetterZ) ||\n (code >= LatinSmallLetterA && code <= LatinSmallLetterZ)\n )\n}\n\nexport function isDecimalDigit(code: number): boolean {\n return code >= DigitZero && code <= DigitNine\n}\n\nexport function isOctalDigit(code: number): boolean {\n return code >= DigitZero && code <= DigitSeven\n}\n\nexport function isHexDigit(code: number): boolean {\n return (\n (code >= DigitZero && code <= DigitNine) ||\n (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) ||\n (code >= LatinSmallLetterA && code <= LatinSmallLetterF)\n )\n}\n\nexport function isLineTerminator(code: number): boolean {\n return (\n code === LineFeed ||\n code === CarriageReturn ||\n code === LineSeparator ||\n code === ParagraphSeparator\n )\n}\n\nexport function isValidUnicode(code: number): boolean {\n return code >= MinCodePoint && code <= MaxCodePoint\n}\n\nexport function digitToInt(code: number): number {\n if (code >= LatinSmallLetterA && code <= LatinSmallLetterF) {\n return code - LatinSmallLetterA + 10\n }\n if (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) {\n return code - LatinCapitalLetterA + 10\n }\n return code - DigitZero\n}\n","import { Reader } from \"./reader\"\nimport { RegExpSyntaxError } from \"./regexp-syntax-error\"\nimport {\n Asterisk,\n Backspace,\n CarriageReturn,\n CharacterTabulation,\n CircumflexAccent,\n Colon,\n Comma,\n DigitNine,\n DigitOne,\n digitToInt,\n DigitZero,\n DollarSign,\n EqualsSign,\n ExclamationMark,\n FormFeed,\n FullStop,\n GreaterThanSign,\n HyphenMinus,\n isDecimalDigit,\n isHexDigit,\n isIdContinue,\n isIdStart,\n isLatinLetter,\n isLineTerminator,\n isOctalDigit,\n isValidUnicode,\n LatinCapitalLetterB,\n LatinCapitalLetterD,\n LatinCapitalLetterP,\n LatinCapitalLetterS,\n LatinCapitalLetterW,\n LatinSmallLetterB,\n LatinSmallLetterC,\n LatinSmallLetterD,\n LatinSmallLetterF,\n LatinSmallLetterG,\n LatinSmallLetterI,\n LatinSmallLetterK,\n LatinSmallLetterM,\n LatinSmallLetterN,\n LatinSmallLetterP,\n LatinSmallLetterR,\n LatinSmallLetterS,\n LatinSmallLetterT,\n LatinSmallLetterU,\n LatinSmallLetterV,\n LatinSmallLetterW,\n LatinSmallLetterX,\n LatinSmallLetterY,\n LeftCurlyBracket,\n LeftParenthesis,\n LeftSquareBracket,\n LessThanSign,\n LineFeed,\n LineTabulation,\n LowLine,\n PlusSign,\n PropertyData,\n QuestionMark,\n ReverseSolidus,\n RightCurlyBracket,\n RightParenthesis,\n RightSquareBracket,\n Solidus,\n VerticalLine,\n ZeroWidthJoiner,\n ZeroWidthNonJoiner,\n} from \"./unicode\"\n\nfunction isSyntaxCharacter(cp: number): boolean {\n return (\n cp === CircumflexAccent ||\n cp === DollarSign ||\n cp === ReverseSolidus ||\n cp === FullStop ||\n cp === Asterisk ||\n cp === PlusSign ||\n cp === QuestionMark ||\n cp === LeftParenthesis ||\n cp === RightParenthesis ||\n cp === LeftSquareBracket ||\n cp === RightSquareBracket ||\n cp === LeftCurlyBracket ||\n cp === RightCurlyBracket ||\n cp === VerticalLine\n )\n}\n\nfunction isRegExpIdentifierStart(cp: number): boolean {\n return isIdStart(cp) || cp === DollarSign || cp === LowLine\n}\n\nfunction isRegExpIdentifierPart(cp: number): boolean {\n return (\n isIdContinue(cp) ||\n cp === DollarSign ||\n cp === LowLine ||\n cp === ZeroWidthNonJoiner ||\n cp === ZeroWidthJoiner\n )\n}\n\nfunction isUnicodePropertyNameCharacter(cp: number): boolean {\n return isLatinLetter(cp) || cp === LowLine\n}\n\nfunction isUnicodePropertyValueCharacter(cp: number): boolean {\n return isUnicodePropertyNameCharacter(cp) || isDecimalDigit(cp)\n}\n\nfunction isValidUnicodeProperty(name: string, value: string): boolean {\n //eslint-disable-next-line no-prototype-builtins\n return PropertyData.hasOwnProperty(name) && PropertyData[name].has(value)\n}\n\nfunction isValidUnicodePropertyName(name: string): boolean {\n return PropertyData.$LONE.has(name)\n}\n\nexport namespace RegExpValidator {\n /**\n * The options for RegExpValidator construction.\n */\n export interface Options {\n /**\n * The flag to disable Annex B syntax. Default is `false`.\n */\n strict?: boolean\n\n /**\n * ECMAScript version. Default is `2018`.\n * - `2015` added `u` and `y` flags.\n * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,\n * and Unicode Property Escape.\n */\n ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018\n\n /**\n * A function that is called when the validator entered a RegExp literal.\n * @param start The 0-based index of the first character.\n */\n onLiteralEnter?(start: number): void\n\n /**\n * A function that is called when the validator left a RegExp literal.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n */\n onLiteralLeave?(start: number, end: number): void\n\n /**\n * A function that is called when the validator found flags.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param global `g` flag.\n * @param ignoreCase `i` flag.\n * @param multiline `m` flag.\n * @param unicode `u` flag.\n * @param sticky `y` flag.\n * @param dotAll `s` flag.\n */\n onFlags?(\n start: number,\n end: number,\n global: boolean,\n ignoreCase: boolean,\n multiline: boolean,\n unicode: boolean,\n sticky: boolean,\n dotAll: boolean,\n ): void\n\n /**\n * A function that is called when the validator entered a pattern.\n * @param start The 0-based index of the first character.\n */\n onPatternEnter?(start: number): void\n\n /**\n * A function that is called when the validator left a pattern.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n */\n onPatternLeave?(start: number, end: number): void\n\n /**\n * A function that is called when the validator entered a disjunction.\n * @param start The 0-based index of the first character.\n */\n onDisjunctionEnter?(start: number): void\n\n /**\n * A function that is called when the validator left a disjunction.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n */\n onDisjunctionLeave?(start: number, end: number): void\n\n /**\n * A function that is called when the validator entered an alternative.\n * @param start The 0-based index of the first character.\n * @param index The 0-based index of alternatives in a disjunction.\n */\n onAlternativeEnter?(start: number, index: number): void\n\n /**\n * A function that is called when the validator left an alternative.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param index The 0-based index of alternatives in a disjunction.\n */\n onAlternativeLeave?(start: number, end: number, index: number): void\n\n /**\n * A function that is called when the validator entered an uncapturing group.\n * @param start The 0-based index of the first character.\n */\n onGroupEnter?(start: number): void\n\n /**\n * A function that is called when the validator left an uncapturing group.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n */\n onGroupLeave?(start: number, end: number): void\n\n /**\n * A function that is called when the validator entered a capturing group.\n * @param start The 0-based index of the first character.\n * @param name The group name.\n */\n onCapturingGroupEnter?(start: number, name: string | null): void\n\n /**\n * A function that is called when the validator left a capturing group.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param name The group name.\n */\n onCapturingGroupLeave?(\n start: number,\n end: number,\n name: string | null,\n ): void\n\n /**\n * A function that is called when the validator found a quantifier.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param min The minimum number of repeating.\n * @param max The maximum number of repeating.\n * @param greedy The flag to choose the longest matching.\n */\n onQuantifier?(\n start: number,\n end: number,\n min: number,\n max: number,\n greedy: boolean,\n ): void\n\n /**\n * A function that is called when the validator entered a lookahead/lookbehind assertion.\n * @param start The 0-based index of the first character.\n * @param kind The kind of the assertion.\n * @param negate The flag which represents that the assertion is negative.\n */\n onLookaroundAssertionEnter?(\n start: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator left a lookahead/lookbehind assertion.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the assertion.\n * @param negate The flag which represents that the assertion is negative.\n */\n onLookaroundAssertionLeave?(\n start: number,\n end: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found an edge boundary assertion.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the assertion.\n */\n onEdgeAssertion?(\n start: number,\n end: number,\n kind: \"start\" | \"end\",\n ): void\n\n /**\n * A function that is called when the validator found a word boundary assertion.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the assertion.\n * @param negate The flag which represents that the assertion is negative.\n */\n onWordBoundaryAssertion?(\n start: number,\n end: number,\n kind: \"word\",\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found a dot.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the character set.\n */\n onAnyCharacterSet?(start: number, end: number, kind: \"any\"): void\n\n /**\n * A function that is called when the validator found a character set escape.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the character set.\n * @param negate The flag which represents that the character set is negative.\n */\n onEscapeCharacterSet?(\n start: number,\n end: number,\n kind: \"digit\" | \"space\" | \"word\",\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found a Unicode proerty escape.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param kind The kind of the character set.\n * @param key The property name.\n * @param value The property value.\n * @param negate The flag which represents that the character set is negative.\n */\n onUnicodePropertyCharacterSet?(\n start: number,\n end: number,\n kind: \"property\",\n key: string,\n value: string | null,\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found a character.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param value The code point of the character.\n */\n onCharacter?(start: number, end: number, value: number): void\n\n /**\n * A function that is called when the validator found a backreference.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param ref The key of the referred capturing group.\n */\n onBackreference?(start: number, end: number, ref: number | string): void\n\n /**\n * A function that is called when the validator entered a character class.\n * @param start The 0-based index of the first character.\n * @param negate The flag which represents that the character class is negative.\n */\n onCharacterClassEnter?(start: number, negate: boolean): void\n\n /**\n * A function that is called when the validator left a character class.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param negate The flag which represents that the character class is negative.\n */\n onCharacterClassLeave?(\n start: number,\n end: number,\n negate: boolean,\n ): void\n\n /**\n * A function that is called when the validator found a character class range.\n * @param start The 0-based index of the first character.\n * @param end The next 0-based index of the last character.\n * @param min The minimum code point of the range.\n * @param max The maximum code point of the range.\n */\n onCharacterClassRange?(\n start: number,\n end: number,\n min: number,\n max: number,\n ): void\n }\n}\n\n/**\n * The regular expression validator.\n */\nexport class RegExpValidator {\n private readonly _options: RegExpValidator.Options\n private readonly _reader = new Reader()\n private _uFlag = false\n private _nFlag = false\n private _lastIntValue = 0\n private _lastMinValue = 0\n private _lastMaxValue = 0\n private _lastStrValue = \"\"\n private _lastKeyValue = \"\"\n private _lastValValue = \"\"\n private _lastAssertionIsQuantifiable = false\n private _numCapturingParens = 0\n private _groupNames = new Set()\n private _backreferenceNames = new Set()\n\n /**\n * Initialize this validator.\n * @param options The options of validator.\n */\n constructor(options?: RegExpValidator.Options) {\n this._options = options || {}\n }\n\n /**\n * Validate a regular expression literal. E.g. \"/abc/g\"\n * @param source The source code to validate.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n */\n validateLiteral(\n source: string,\n start: number = 0,\n end: number = source.length,\n ): void {\n this._uFlag = this._nFlag = false\n this.reset(source, start, end)\n\n this.onLiteralEnter(start)\n if (this.eat(Solidus) && this.eatRegExpBody() && this.eat(Solidus)) {\n const flagStart = this.index\n const uFlag = source.indexOf(\"u\", flagStart) !== -1\n this.validateFlags(source, flagStart, end)\n this.validatePattern(source, start + 1, flagStart - 1, uFlag)\n } else if (start >= end) {\n this.raise(\"Empty\")\n } else {\n const c = String.fromCodePoint(this.currentCodePoint)\n this.raise(`Unexpected character '${c}'`)\n }\n this.onLiteralLeave(start, end)\n }\n\n /**\n * Validate a regular expression flags. E.g. \"gim\"\n * @param source The source code to validate.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n */\n validateFlags(\n source: string,\n start: number = 0,\n end: number = source.length,\n ): void {\n const existingFlags = new Set()\n let global = false\n let ignoreCase = false\n let multiline = false\n let sticky = false\n let unicode = false\n let dotAll = false\n for (let i = start; i < end; ++i) {\n const flag = source.charCodeAt(i)\n\n if (existingFlags.has(flag)) {\n this.raise(`Duplicated flag '${source[i]}'`)\n }\n existingFlags.add(flag)\n\n if (flag === LatinSmallLetterG) {\n global = true\n } else if (flag === LatinSmallLetterI) {\n ignoreCase = true\n } else if (flag === LatinSmallLetterM) {\n multiline = true\n } else if (flag === LatinSmallLetterU && this.ecmaVersion >= 2015) {\n unicode = true\n } else if (flag === LatinSmallLetterY && this.ecmaVersion >= 2015) {\n sticky = true\n } else if (flag === LatinSmallLetterS && this.ecmaVersion >= 2018) {\n dotAll = true\n } else {\n this.raise(`Invalid flag '${source[i]}'`)\n }\n }\n this.onFlags(\n start,\n end,\n global,\n ignoreCase,\n multiline,\n unicode,\n sticky,\n dotAll,\n )\n }\n\n /**\n * Validate a regular expression pattern. E.g. \"abc\"\n * @param source The source code to validate.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n * @param uFlag The flag to set unicode mode.\n */\n validatePattern(\n source: string,\n start: number = 0,\n end: number = source.length,\n uFlag: boolean = false,\n ): void {\n this._uFlag = uFlag && this.ecmaVersion >= 2015\n this._nFlag = uFlag && this.ecmaVersion >= 2018\n this.reset(source, start, end)\n this.pattern()\n\n if (\n !this._nFlag &&\n this.ecmaVersion >= 2018 &&\n this._groupNames.size > 0\n ) {\n this._nFlag = true\n this.rewind(start)\n this.pattern()\n }\n }\n\n // #region Delegate for Options\n\n private get strict() {\n return Boolean(this._options.strict || this._uFlag)\n }\n\n private get ecmaVersion() {\n return this._options.ecmaVersion || 2018\n }\n\n private onLiteralEnter(start: number): void {\n if (this._options.onLiteralEnter) {\n this._options.onLiteralEnter(start)\n }\n }\n\n private onLiteralLeave(start: number, end: number): void {\n if (this._options.onLiteralLeave) {\n this._options.onLiteralLeave(start, end)\n }\n }\n\n private onFlags(\n start: number,\n end: number,\n global: boolean,\n ignoreCase: boolean,\n multiline: boolean,\n unicode: boolean,\n sticky: boolean,\n dotAll: boolean,\n ): void {\n if (this._options.onFlags) {\n this._options.onFlags(\n start,\n end,\n global,\n ignoreCase,\n multiline,\n unicode,\n sticky,\n dotAll,\n )\n }\n }\n\n private onPatternEnter(start: number): void {\n if (this._options.onPatternEnter) {\n this._options.onPatternEnter(start)\n }\n }\n\n private onPatternLeave(start: number, end: number): void {\n if (this._options.onPatternLeave) {\n this._options.onPatternLeave(start, end)\n }\n }\n\n private onDisjunctionEnter(start: number): void {\n if (this._options.onDisjunctionEnter) {\n this._options.onDisjunctionEnter(start)\n }\n }\n\n private onDisjunctionLeave(start: number, end: number): void {\n if (this._options.onDisjunctionLeave) {\n this._options.onDisjunctionLeave(start, end)\n }\n }\n\n private onAlternativeEnter(start: number, index: number): void {\n if (this._options.onAlternativeEnter) {\n this._options.onAlternativeEnter(start, index)\n }\n }\n\n private onAlternativeLeave(\n start: number,\n end: number,\n index: number,\n ): void {\n if (this._options.onAlternativeLeave) {\n this._options.onAlternativeLeave(start, end, index)\n }\n }\n\n private onGroupEnter(start: number): void {\n if (this._options.onGroupEnter) {\n this._options.onGroupEnter(start)\n }\n }\n\n private onGroupLeave(start: number, end: number): void {\n if (this._options.onGroupLeave) {\n this._options.onGroupLeave(start, end)\n }\n }\n\n private onCapturingGroupEnter(start: number, name: string | null): void {\n if (this._options.onCapturingGroupEnter) {\n this._options.onCapturingGroupEnter(start, name)\n }\n }\n\n private onCapturingGroupLeave(\n start: number,\n end: number,\n name: string | null,\n ): void {\n if (this._options.onCapturingGroupLeave) {\n this._options.onCapturingGroupLeave(start, end, name)\n }\n }\n\n private onQuantifier(\n start: number,\n end: number,\n min: number,\n max: number,\n greedy: boolean,\n ): void {\n if (this._options.onQuantifier) {\n this._options.onQuantifier(start, end, min, max, greedy)\n }\n }\n\n private onLookaroundAssertionEnter(\n start: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void {\n if (this._options.onLookaroundAssertionEnter) {\n this._options.onLookaroundAssertionEnter(start, kind, negate)\n }\n }\n\n private onLookaroundAssertionLeave(\n start: number,\n end: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void {\n if (this._options.onLookaroundAssertionLeave) {\n this._options.onLookaroundAssertionLeave(start, end, kind, negate)\n }\n }\n\n private onEdgeAssertion(\n start: number,\n end: number,\n kind: \"start\" | \"end\",\n ): void {\n if (this._options.onEdgeAssertion) {\n this._options.onEdgeAssertion(start, end, kind)\n }\n }\n\n private onWordBoundaryAssertion(\n start: number,\n end: number,\n kind: \"word\",\n negate: boolean,\n ): void {\n if (this._options.onWordBoundaryAssertion) {\n this._options.onWordBoundaryAssertion(start, end, kind, negate)\n }\n }\n\n private onAnyCharacterSet(start: number, end: number, kind: \"any\"): void {\n if (this._options.onAnyCharacterSet) {\n this._options.onAnyCharacterSet(start, end, kind)\n }\n }\n\n private onEscapeCharacterSet(\n start: number,\n end: number,\n kind: \"digit\" | \"space\" | \"word\",\n negate: boolean,\n ): void {\n if (this._options.onEscapeCharacterSet) {\n this._options.onEscapeCharacterSet(start, end, kind, negate)\n }\n }\n\n private onUnicodePropertyCharacterSet(\n start: number,\n end: number,\n kind: \"property\",\n key: string,\n value: string | null,\n negate: boolean,\n ): void {\n if (this._options.onUnicodePropertyCharacterSet) {\n this._options.onUnicodePropertyCharacterSet(\n start,\n end,\n kind,\n key,\n value,\n negate,\n )\n }\n }\n\n private onCharacter(start: number, end: number, value: number): void {\n if (this._options.onCharacter) {\n this._options.onCharacter(start, end, value)\n }\n }\n\n private onBackreference(\n start: number,\n end: number,\n ref: number | string,\n ): void {\n if (this._options.onBackreference) {\n this._options.onBackreference(start, end, ref)\n }\n }\n\n private onCharacterClassEnter(start: number, negate: boolean): void {\n if (this._options.onCharacterClassEnter) {\n this._options.onCharacterClassEnter(start, negate)\n }\n }\n\n private onCharacterClassLeave(\n start: number,\n end: number,\n negate: boolean,\n ): void {\n if (this._options.onCharacterClassLeave) {\n this._options.onCharacterClassLeave(start, end, negate)\n }\n }\n\n private onCharacterClassRange(\n start: number,\n end: number,\n min: number,\n max: number,\n ): void {\n if (this._options.onCharacterClassRange) {\n this._options.onCharacterClassRange(start, end, min, max)\n }\n }\n\n // #endregion\n\n // #region Delegate for Reader\n\n private get source(): string {\n return this._reader.source\n }\n\n private get index(): number {\n return this._reader.index\n }\n\n private get currentCodePoint(): number {\n return this._reader.currentCodePoint\n }\n\n private get nextCodePoint(): number {\n return this._reader.nextCodePoint\n }\n\n private get nextCodePoint2(): number {\n return this._reader.nextCodePoint2\n }\n\n private get nextCodePoint3(): number {\n return this._reader.nextCodePoint3\n }\n\n private reset(source: string, start: number, end: number): void {\n this._reader.reset(source, start, end, this._uFlag)\n }\n\n private rewind(index: number): void {\n this._reader.rewind(index)\n }\n\n private advance(): void {\n this._reader.advance()\n }\n\n private eat(cp: number): boolean {\n return this._reader.eat(cp)\n }\n\n private eat2(cp1: number, cp2: number): boolean {\n return this._reader.eat2(cp1, cp2)\n }\n\n private eat3(cp1: number, cp2: number, cp3: number): boolean {\n return this._reader.eat3(cp1, cp2, cp3)\n }\n\n // #endregion\n\n private raise(message: string): never {\n throw new RegExpSyntaxError(\n this.source,\n this._uFlag,\n this.index,\n message,\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-RegularExpressionBody\n private eatRegExpBody(): boolean {\n const start = this.index\n let inClass = false\n let escaped = false\n\n for (;;) {\n const cp = this.currentCodePoint\n if (cp === -1 || isLineTerminator(cp)) {\n const kind = inClass ? \"character class\" : \"regular expression\"\n this.raise(`Unterminated ${kind}`)\n }\n if (escaped) {\n escaped = false\n } else if (cp === ReverseSolidus) {\n escaped = true\n } else if (cp === LeftSquareBracket) {\n inClass = true\n } else if (cp === RightSquareBracket) {\n inClass = false\n } else if (\n (cp === Solidus && !inClass) ||\n (cp === Asterisk && this.index === start)\n ) {\n break\n }\n this.advance()\n }\n\n return this.index !== start\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\n private pattern(): void {\n const start = this.index\n this._numCapturingParens = this.countCapturingParens()\n this._groupNames.clear()\n this._backreferenceNames.clear()\n\n this.onPatternEnter(start)\n this.disjunction()\n\n const cp = this.currentCodePoint\n if (this.currentCodePoint !== -1) {\n if (cp === RightParenthesis) {\n this.raise(\"Unmatched ')'\")\n }\n if (cp === RightSquareBracket || cp === RightCurlyBracket) {\n this.raise(\"Lone quantifier brackets\")\n }\n const c = String.fromCodePoint(cp)\n this.raise(`Unexpected character '${c}'`)\n }\n this._backreferenceNames.forEach(name => {\n if (!this._groupNames.has(name)) {\n this.raise(\"Invalid named capture referenced\")\n }\n })\n this.onPatternLeave(start, this.index)\n }\n\n private countCapturingParens(): number {\n const start = this.index\n let inClass = false\n let escaped = false\n let count = 0\n let cp = 0\n\n while ((cp = this.currentCodePoint) !== -1) {\n if (escaped) {\n escaped = false\n } else if (cp === ReverseSolidus) {\n escaped = true\n } else if (cp === LeftSquareBracket) {\n inClass = true\n } else if (cp === RightSquareBracket) {\n inClass = false\n } else if (\n cp === LeftParenthesis &&\n !inClass &&\n (this.nextCodePoint !== QuestionMark ||\n (this.nextCodePoint2 === LessThanSign &&\n this.nextCodePoint3 !== EqualsSign &&\n this.nextCodePoint3 !== ExclamationMark))\n ) {\n count += 1\n }\n this.advance()\n }\n\n this.rewind(start)\n return count\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\n private disjunction(): void {\n const start = this.index\n let i = 0\n\n this.onDisjunctionEnter(start)\n this.alternative(i++)\n while (this.eat(VerticalLine)) {\n this.alternative(i++)\n }\n\n if (this.eatQuantifier(true)) {\n this.raise(\"Nothing to repeat\")\n }\n if (this.eat(LeftCurlyBracket)) {\n this.raise(\"Lone quantifier brackets\")\n }\n this.onDisjunctionLeave(start, this.index)\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\n private alternative(i: number): void {\n const start = this.index\n\n this.onAlternativeEnter(start, i)\n while (this.currentCodePoint !== -1 && this.eatTerm());\n this.onAlternativeLeave(start, this.index, i)\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-Term\n private eatTerm(): boolean {\n if (this.eatAssertion()) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `this.lastAssertionIsQuantifiable` is true if the last eaten\n // Assertion is a QuantifiableAssertion.\n if (this._lastAssertionIsQuantifiable) {\n this.eatQuantifier()\n }\n return true\n }\n\n if (this.strict ? this.eatAtom() : this.eatExtendedAtom()) {\n this.eatQuantifier()\n return true\n }\n\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-Assertion\n private eatAssertion(): boolean {\n const start = this.index\n this._lastAssertionIsQuantifiable = false\n\n // ^, $, \\B \\b\n if (this.eat(CircumflexAccent)) {\n this.onEdgeAssertion(start, this.index, \"start\")\n return true\n }\n if (this.eat(DollarSign)) {\n this.onEdgeAssertion(start, this.index, \"end\")\n return true\n }\n if (this.eat2(ReverseSolidus, LatinCapitalLetterB)) {\n this.onWordBoundaryAssertion(start, this.index, \"word\", true)\n return true\n }\n if (this.eat2(ReverseSolidus, LatinSmallLetterB)) {\n this.onWordBoundaryAssertion(start, this.index, \"word\", false)\n return true\n }\n\n // Lookahead / Lookbehind\n if (this.eat2(LeftParenthesis, QuestionMark)) {\n const lookbehind =\n this.ecmaVersion >= 2018 && this.eat(LessThanSign)\n let negate = false\n if (this.eat(EqualsSign) || (negate = this.eat(ExclamationMark))) {\n const kind = lookbehind ? \"lookbehind\" : \"lookahead\"\n this.onLookaroundAssertionEnter(start, kind, negate)\n this.disjunction()\n if (!this.eat(RightParenthesis)) {\n this.raise(\"Unterminated group\")\n }\n this._lastAssertionIsQuantifiable = !lookbehind && !this.strict\n this.onLookaroundAssertionLeave(start, this.index, kind, negate)\n return true\n }\n this.rewind(start)\n }\n\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\n // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\n private eatQuantifier(noError = false): boolean {\n const start = this.index\n let min = 0\n let max = 0\n let greedy = false\n\n if (this.eat(Asterisk)) {\n min = 0\n max = Number.POSITIVE_INFINITY\n } else if (this.eat(PlusSign)) {\n min = 1\n max = Number.POSITIVE_INFINITY\n } else if (this.eat(QuestionMark)) {\n min = 0\n max = 1\n } else if (this.eatBracedQuantifier(noError)) {\n min = this._lastMinValue\n max = this._lastMaxValue\n } else {\n return false\n }\n greedy = !this.eat(QuestionMark)\n\n if (!noError) {\n this.onQuantifier(start, this.index, min, max, greedy)\n }\n return true\n }\n\n private eatBracedQuantifier(noError: boolean): boolean {\n const start = this.index\n if (this.eat(LeftCurlyBracket)) {\n this._lastMinValue = 0\n this._lastMaxValue = Number.POSITIVE_INFINITY\n if (this.eatDecimalDigits()) {\n this._lastMinValue = this._lastMaxValue = this._lastIntValue\n if (this.eat(Comma)) {\n this._lastMaxValue = this.eatDecimalDigits()\n ? this._lastIntValue\n : Number.POSITIVE_INFINITY\n }\n if (this.eat(RightCurlyBracket)) {\n if (!noError && this._lastMaxValue < this._lastMinValue) {\n this.raise(\"numbers out of order in {} quantifier\")\n }\n return true\n }\n }\n if (!noError && this.strict) {\n this.raise(\"Incomplete quantifier\")\n }\n this.rewind(start)\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\n private eatAtom(): boolean {\n return (\n this.eatPatternCharacter() ||\n this.eatDot() ||\n this.eatReverseSolidusAtomEscape() ||\n this.eatCharacterClass() ||\n this.eatUncapturingGroup() ||\n this.eatCapturingGroup()\n )\n }\n\n private eatDot(): boolean {\n if (this.eat(FullStop)) {\n this.onAnyCharacterSet(this.index - 1, this.index, \"any\")\n return true\n }\n return false\n }\n\n private eatReverseSolidusAtomEscape(): boolean {\n const start = this.index\n if (this.eat(ReverseSolidus)) {\n if (this.eatAtomEscape()) {\n return true\n }\n this.rewind(start)\n }\n return false\n }\n\n private eatUncapturingGroup(): boolean {\n const start = this.index\n if (this.eat3(LeftParenthesis, QuestionMark, Colon)) {\n this.onGroupEnter(start)\n this.disjunction()\n if (!this.eat(RightParenthesis)) {\n this.raise(\"Unterminated group\")\n }\n this.onGroupLeave(start, this.index)\n return true\n }\n return false\n }\n\n private eatCapturingGroup(): boolean {\n const start = this.index\n if (this.eat(LeftParenthesis)) {\n this._lastStrValue = \"\"\n if (this.ecmaVersion >= 2018) {\n this.groupSpecifier()\n } else if (this.currentCodePoint === QuestionMark) {\n this.raise(\"Invalid group\")\n }\n const name = this._lastStrValue || null\n\n this.onCapturingGroupEnter(start, name)\n this.disjunction()\n if (!this.eat(RightParenthesis)) {\n this.raise(\"Unterminated group\")\n }\n this.onCapturingGroupLeave(start, this.index, name)\n\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ExtendedAtom\n private eatExtendedAtom(): boolean {\n return (\n this.eatDot() ||\n this.eatReverseSolidusAtomEscape() ||\n this.eatCharacterClass() ||\n this.eatUncapturingGroup() ||\n this.eatCapturingGroup() ||\n this.eatInvalidBracedQuantifier() ||\n this.eatExtendedPatternCharacter()\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-InvalidBracedQuantifier\n private eatInvalidBracedQuantifier(): boolean {\n if (this.eatBracedQuantifier(true)) {\n this.raise(\"Nothing to repeat\")\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\n private eatSyntaxCharacter(): boolean {\n if (isSyntaxCharacter(this.currentCodePoint)) {\n this._lastIntValue = this.currentCodePoint\n this.advance()\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n private eatPatternCharacter(): boolean {\n const start = this.index\n const cp = this.currentCodePoint\n if (cp !== -1 && !isSyntaxCharacter(cp)) {\n this.advance()\n this.onCharacter(start, this.index, cp)\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ExtendedPatternCharacter\n private eatExtendedPatternCharacter(): boolean {\n const start = this.index\n const cp = this.currentCodePoint\n if (\n cp !== -1 &&\n cp !== CircumflexAccent &&\n cp !== DollarSign &&\n cp !== FullStop &&\n cp !== Asterisk &&\n cp !== PlusSign &&\n cp !== QuestionMark &&\n cp !== LeftParenthesis &&\n cp !== RightParenthesis &&\n cp !== LeftSquareBracket &&\n cp !== VerticalLine\n ) {\n this.advance()\n this.onCharacter(start, this.index, cp)\n return true\n }\n return false\n }\n\n // GroupSpecifier[U] ::\n // [empty]\n // `?` GroupName[?U]\n private groupSpecifier(): void {\n this._lastStrValue = \"\"\n if (this.eat(QuestionMark)) {\n if (this.eatGroupName()) {\n if (!this._groupNames.has(this._lastStrValue)) {\n this._groupNames.add(this._lastStrValue)\n return\n }\n this.raise(\"Duplicate capture group name\")\n }\n this.raise(\"Invalid group\")\n }\n }\n\n // GroupName[U] ::\n // `<` RegExpIdentifierName[?U] `>`\n private eatGroupName(): boolean {\n this._lastStrValue = \"\"\n if (this.eat(LessThanSign)) {\n if (this.eatRegExpIdentifierName() && this.eat(GreaterThanSign)) {\n return true\n }\n this.raise(\"Invalid capture group name\")\n }\n return false\n }\n\n // RegExpIdentifierName[U] ::\n // RegExpIdentifierStart[?U]\n // RegExpIdentifierName[?U] RegExpIdentifierPart[?U]\n private eatRegExpIdentifierName(): boolean {\n this._lastStrValue = \"\"\n if (this.eatRegExpIdentifierStart()) {\n this._lastStrValue += String.fromCodePoint(this._lastIntValue)\n while (this.eatRegExpIdentifierPart()) {\n this._lastStrValue += String.fromCodePoint(this._lastIntValue)\n }\n return true\n }\n return false\n }\n\n // RegExpIdentifierStart[U] ::\n // UnicodeIDStart\n // `$`\n // `_`\n // `\\` RegExpUnicodeEscapeSequence[?U]\n private eatRegExpIdentifierStart(): boolean {\n const start = this.index\n let cp = this.currentCodePoint\n this.advance()\n\n if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) {\n cp = this._lastIntValue\n }\n if (isRegExpIdentifierStart(cp)) {\n this._lastIntValue = cp\n return true\n }\n\n if (this.index !== start) {\n this.rewind(start)\n }\n return false\n }\n\n // RegExpIdentifierPart[U] ::\n // UnicodeIDContinue\n // `$`\n // `_`\n // `\\` RegExpUnicodeEscapeSequence[?U]\n // \n // \n private eatRegExpIdentifierPart(): boolean {\n const start = this.index\n let cp = this.currentCodePoint\n this.advance()\n\n if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) {\n cp = this._lastIntValue\n }\n if (isRegExpIdentifierPart(cp)) {\n this._lastIntValue = cp\n return true\n }\n\n if (this.index !== start) {\n this.rewind(start)\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-AtomEscape\n private eatAtomEscape(): boolean {\n if (\n this.eatBackreference() ||\n this.eatCharacterClassEscape() ||\n this.eatCharacterEscape() ||\n (this._nFlag && this.eatKGroupName())\n ) {\n return true\n }\n if (this.strict || this._uFlag) {\n this.raise(\"Invalid escape\")\n }\n return false\n }\n\n private eatBackreference(): boolean {\n const start = this.index\n if (this.eatDecimalEscape()) {\n const n = this._lastIntValue\n if (n <= this._numCapturingParens) {\n this.onBackreference(start - 1, this.index, n)\n return true\n }\n if (this.strict) {\n this.raise(\"Invalid escape\")\n }\n this.rewind(start)\n }\n return false\n }\n\n private eatKGroupName(): boolean {\n const start = this.index\n if (this.eat(LatinSmallLetterK)) {\n if (this.eatGroupName()) {\n const groupName = this._lastStrValue\n this._backreferenceNames.add(groupName)\n this.onBackreference(start - 1, this.index, groupName)\n return true\n }\n this.raise(\"Invalid named reference\")\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-CharacterEscape\n private eatCharacterEscape(): boolean {\n const start = this.index\n if (\n this.eatControlEscape() ||\n this.eatCControlLetter() ||\n this.eatZero() ||\n this.eatHexEscapeSequence() ||\n this.eatRegExpUnicodeEscapeSequence() ||\n (!this.strict && this.eatLegacyOctalEscapeSequence()) ||\n this.eatIdentityEscape()\n ) {\n this.onCharacter(start - 1, this.index, this._lastIntValue)\n return true\n }\n return false\n }\n\n private eatCControlLetter(): boolean {\n const start = this.index\n if (this.eat(LatinSmallLetterC)) {\n if (this.eatControlLetter()) {\n return true\n }\n this.rewind(start)\n }\n return false\n }\n\n private eatZero(): boolean {\n if (\n this.currentCodePoint === DigitZero &&\n !isDecimalDigit(this.nextCodePoint)\n ) {\n this._lastIntValue = 0\n this.advance()\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\n private eatControlEscape(): boolean {\n if (this.eat(LatinSmallLetterT)) {\n this._lastIntValue = CharacterTabulation\n return true\n }\n if (this.eat(LatinSmallLetterN)) {\n this._lastIntValue = LineFeed\n return true\n }\n if (this.eat(LatinSmallLetterV)) {\n this._lastIntValue = LineTabulation\n return true\n }\n if (this.eat(LatinSmallLetterF)) {\n this._lastIntValue = FormFeed\n return true\n }\n if (this.eat(LatinSmallLetterR)) {\n this._lastIntValue = CarriageReturn\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\n private eatControlLetter(): boolean {\n const cp = this.currentCodePoint\n if (isLatinLetter(cp)) {\n this.advance()\n this._lastIntValue = cp % 0x20\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\n private eatRegExpUnicodeEscapeSequence(): boolean {\n const start = this.index\n\n if (this.eat(LatinSmallLetterU)) {\n if (this.eatFixedHexDigits(4)) {\n const lead = this._lastIntValue\n if (this._uFlag && lead >= 0xd800 && lead <= 0xdbff) {\n const leadSurrogateEnd = this.index\n if (\n this.eat(ReverseSolidus) &&\n this.eat(LatinSmallLetterU) &&\n this.eatFixedHexDigits(4)\n ) {\n const trail = this._lastIntValue\n if (trail >= 0xdc00 && trail <= 0xdfff) {\n this._lastIntValue =\n (lead - 0xd800) * 0x400 +\n (trail - 0xdc00) +\n 0x10000\n return true\n }\n }\n this.rewind(leadSurrogateEnd)\n this._lastIntValue = lead\n }\n return true\n }\n if (\n this._uFlag &&\n this.eat(LeftCurlyBracket) &&\n this.eatHexDigits() &&\n this.eat(RightCurlyBracket) &&\n isValidUnicode(this._lastIntValue)\n ) {\n return true\n }\n if (this.strict || this._uFlag) {\n this.raise(\"Invalid unicode escape\")\n }\n this.rewind(start)\n }\n\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-IdentityEscape\n private eatIdentityEscape(): boolean {\n if (this._uFlag) {\n if (this.eatSyntaxCharacter()) {\n return true\n }\n if (this.eat(Solidus)) {\n this._lastIntValue = Solidus\n return true\n }\n return false\n }\n\n if (this.isValidIdentityEscape(this.currentCodePoint)) {\n this._lastIntValue = this.currentCodePoint\n this.advance()\n return true\n }\n\n return false\n }\n private isValidIdentityEscape(cp: number): boolean {\n if (cp === -1) {\n return false\n }\n if (this.strict) {\n return !isIdContinue(cp)\n }\n return (\n cp !== LatinSmallLetterC &&\n (!this._nFlag || cp !== LatinSmallLetterK)\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\n private eatDecimalEscape(): boolean {\n this._lastIntValue = 0\n let cp = this.currentCodePoint\n if (cp >= DigitOne && cp <= DigitNine) {\n do {\n this._lastIntValue = 10 * this._lastIntValue + (cp - DigitZero)\n this.advance()\n } while (\n (cp = this.currentCodePoint) >= DigitZero &&\n cp <= DigitNine\n )\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\n private eatCharacterClassEscape(): boolean {\n const start = this.index\n\n if (this.eat(LatinSmallLetterD)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"digit\", false)\n return true\n }\n if (this.eat(LatinCapitalLetterD)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"digit\", true)\n return true\n }\n if (this.eat(LatinSmallLetterS)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"space\", false)\n return true\n }\n if (this.eat(LatinCapitalLetterS)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"space\", true)\n return true\n }\n if (this.eat(LatinSmallLetterW)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"word\", false)\n return true\n }\n if (this.eat(LatinCapitalLetterW)) {\n this._lastIntValue = -1\n this.onEscapeCharacterSet(start - 1, this.index, \"word\", true)\n return true\n }\n\n let negate = false\n if (\n this._uFlag &&\n this.ecmaVersion >= 2018 &&\n (this.eat(LatinSmallLetterP) ||\n (negate = this.eat(LatinCapitalLetterP)))\n ) {\n this._lastIntValue = -1\n if (\n this.eat(LeftCurlyBracket) &&\n this.eatUnicodePropertyValueExpression() &&\n this.eat(RightCurlyBracket)\n ) {\n this.onUnicodePropertyCharacterSet(\n start - 1,\n this.index,\n \"property\",\n this._lastKeyValue,\n this._lastValValue || null,\n negate,\n )\n return true\n }\n this.raise(\"Invalid property name\")\n }\n\n return false\n }\n\n // UnicodePropertyValueExpression ::\n // UnicodePropertyName `=` UnicodePropertyValue\n // LoneUnicodePropertyNameOrValue\n private eatUnicodePropertyValueExpression(): boolean {\n const start = this.index\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.eatUnicodePropertyName() && this.eat(EqualsSign)) {\n this._lastKeyValue = this._lastStrValue\n if (this.eatUnicodePropertyValue()) {\n this._lastValValue = this._lastStrValue\n if (\n isValidUnicodeProperty(\n this._lastKeyValue,\n this._lastValValue,\n )\n ) {\n return true\n }\n this.raise(\"Invalid property name\")\n }\n }\n this.rewind(start)\n\n // LoneUnicodePropertyNameOrValue\n if (this.eatLoneUnicodePropertyNameOrValue()) {\n const nameOrValue = this._lastStrValue\n if (isValidUnicodeProperty(\"General_Category\", nameOrValue)) {\n this._lastKeyValue = \"General_Category\"\n this._lastValValue = nameOrValue\n return true\n }\n if (isValidUnicodePropertyName(nameOrValue)) {\n this._lastKeyValue = nameOrValue\n this._lastValValue = \"\"\n return true\n }\n this.raise(\"Invalid property name\")\n }\n return false\n }\n\n // UnicodePropertyName ::\n // UnicodePropertyNameCharacters\n private eatUnicodePropertyName(): boolean {\n this._lastStrValue = \"\"\n while (isUnicodePropertyNameCharacter(this.currentCodePoint)) {\n this._lastStrValue += String.fromCodePoint(this.currentCodePoint)\n this.advance()\n }\n return this._lastStrValue !== \"\"\n }\n\n // UnicodePropertyValue ::\n // UnicodePropertyValueCharacters\n private eatUnicodePropertyValue(): boolean {\n this._lastStrValue = \"\"\n while (isUnicodePropertyValueCharacter(this.currentCodePoint)) {\n this._lastStrValue += String.fromCodePoint(this.currentCodePoint)\n this.advance()\n }\n return this._lastStrValue !== \"\"\n }\n\n // LoneUnicodePropertyNameOrValue ::\n // UnicodePropertyValueCharacters\n private eatLoneUnicodePropertyNameOrValue(): boolean {\n return this.eatUnicodePropertyValue()\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\n private eatCharacterClass(): boolean {\n const start = this.index\n if (this.eat(LeftSquareBracket)) {\n const negate = this.eat(CircumflexAccent)\n this.onCharacterClassEnter(start, negate)\n this.classRanges()\n if (!this.eat(RightSquareBracket)) {\n this.raise(\"Unterminated character class\")\n }\n this.onCharacterClassLeave(start, this.index, negate)\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\n private classRanges(): void {\n let start = this.index\n while (this.eatClassAtom()) {\n const left = this._lastIntValue\n const hyphenStart = this.index\n if (this.eat(HyphenMinus)) {\n this.onCharacter(hyphenStart, this.index, HyphenMinus)\n\n if (this.eatClassAtom()) {\n const right = this._lastIntValue\n\n if (left === -1 || right === -1) {\n if (this.strict) {\n this.raise(\"Invalid character class\")\n }\n } else if (left > right) {\n this.raise(\"Range out of order in character class\")\n } else {\n this.onCharacterClassRange(\n start,\n this.index,\n left,\n right,\n )\n }\n }\n }\n\n start = this.index\n }\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\n private eatClassAtom(): boolean {\n const start = this.index\n\n if (this.eat(ReverseSolidus)) {\n if (this.eatClassEscape()) {\n return true\n }\n if (this._uFlag) {\n this.raise(\"Invalid escape\")\n }\n this.rewind(start)\n }\n\n const cp = this.currentCodePoint\n if (cp !== -1 && cp !== RightSquareBracket) {\n this.advance()\n this._lastIntValue = cp\n this.onCharacter(start, this.index, cp)\n return true\n }\n\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ClassEscape\n private eatClassEscape(): boolean {\n const start = this.index\n\n if (this.eat(LatinSmallLetterB)) {\n this._lastIntValue = Backspace\n this.onCharacter(start - 1, this.index, Backspace)\n return true\n }\n\n if (this._uFlag && this.eat(HyphenMinus)) {\n this._lastIntValue = HyphenMinus\n this.onCharacter(start - 1, this.index, HyphenMinus)\n return true\n }\n\n if (!this._uFlag && this.eat(LatinSmallLetterC)) {\n if (this.eatClassControlLetter()) {\n this.onCharacter(start - 1, this.index, this._lastIntValue)\n return true\n }\n this.rewind(start)\n }\n\n return this.eatCharacterClassEscape() || this.eatCharacterEscape()\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ClassControlLetter\n private eatClassControlLetter(): boolean {\n const cp = this.currentCodePoint\n if (isDecimalDigit(cp) || cp === LowLine) {\n this.advance()\n this._lastIntValue = cp % 0x20\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n private eatHexEscapeSequence(): boolean {\n const start = this.index\n if (this.eat(LatinSmallLetterX)) {\n if (this.eatFixedHexDigits(2)) {\n return true\n }\n if (this._uFlag) {\n this.raise(\"Invalid escape\")\n }\n this.rewind(start)\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\n private eatDecimalDigits(): boolean {\n const start = this.index\n\n this._lastIntValue = 0\n while (isDecimalDigit(this.currentCodePoint)) {\n this._lastIntValue =\n 10 * this._lastIntValue + digitToInt(this.currentCodePoint)\n this.advance()\n }\n\n return this.index !== start\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\n private eatHexDigits(): boolean {\n const start = this.index\n this._lastIntValue = 0\n while (isHexDigit(this.currentCodePoint)) {\n this._lastIntValue =\n 16 * this._lastIntValue + digitToInt(this.currentCodePoint)\n this.advance()\n }\n return this.index !== start\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-LegacyOctalEscapeSequence\n // Allows only 0-377(octal) i.e. 0-255(decimal).\n private eatLegacyOctalEscapeSequence(): boolean {\n if (this.eatOctalDigit()) {\n const n1 = this._lastIntValue\n if (this.eatOctalDigit()) {\n const n2 = this._lastIntValue\n if (n1 <= 3 && this.eatOctalDigit()) {\n this._lastIntValue = n1 * 64 + n2 * 8 + this._lastIntValue\n } else {\n this._lastIntValue = n1 * 8 + n2\n }\n } else {\n this._lastIntValue = n1\n }\n return true\n }\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\n private eatOctalDigit(): boolean {\n const cp = this.currentCodePoint\n if (isOctalDigit(cp)) {\n this.advance()\n this._lastIntValue = cp - DigitZero\n return true\n }\n this._lastIntValue = 0\n return false\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n private eatFixedHexDigits(length: number): boolean {\n const start = this.index\n this._lastIntValue = 0\n for (let i = 0; i < length; ++i) {\n const cp = this.currentCodePoint\n if (!isHexDigit(cp)) {\n this.rewind(start)\n return false\n }\n this._lastIntValue = 16 * this._lastIntValue + digitToInt(cp)\n this.advance()\n }\n return true\n }\n}\n","import {\n AlternativeElement,\n AnyCharacterSet,\n Assertion,\n Backreference,\n CapturingGroup,\n Character,\n CharacterClass,\n CharacterClassRange,\n Disjunction,\n Element,\n EscapeCharacterSet,\n Flags,\n Group,\n RegExpLiteral,\n LookaroundAssertion,\n Pattern,\n QuantifiableElement,\n Quantifier,\n UnicodePropertyCharacterSet,\n} from \"./ast\"\nimport { assert, last } from \"./util\"\nimport { RegExpValidator } from \"./validator\"\n\ntype AppendableNode =\n | Pattern\n | Disjunction\n | Group\n | CapturingGroup\n | CharacterClass\n | LookaroundAssertion\n\nconst DummyPattern = {} as Pattern\nconst DummyFlags = {} as Flags\nconst DummyCapturingGroup = {} as CapturingGroup\n\n/**\n * Convert given elements to an alternative.\n * This doesn't clone the array, so the return value is `elements` itself.\n * @param elements Elements to convert.\n */\nfunction elementsToAlternative(\n elements: Element[],\n parent: Disjunction,\n): AlternativeElement[] {\n for (const element of elements) {\n assert(element.type !== \"Disjunction\")\n element.parent = parent\n }\n return elements as AlternativeElement[]\n}\n\nfunction addAlternativeElement(\n parent:\n | Pattern\n | Disjunction\n | Group\n | CapturingGroup\n | LookaroundAssertion,\n node:\n | Group\n | CapturingGroup\n | Quantifier\n | CharacterClass\n | Assertion\n | AnyCharacterSet\n | Backreference,\n): void {\n if (parent.type === \"Disjunction\") {\n last(parent.alternatives)!.push(node)\n } else {\n parent.elements.push(node)\n }\n}\n\nfunction addCommonElement(\n parent: AppendableNode,\n node: EscapeCharacterSet | UnicodePropertyCharacterSet | Character,\n): void {\n if (parent.type === \"Disjunction\") {\n last(parent.alternatives)!.push(node)\n } else if (parent.type === \"CharacterClass\") {\n parent.elements.push(node)\n } else {\n parent.elements.push(node)\n }\n}\n\nclass RegExpParserState {\n readonly strict: boolean\n readonly ecmaVersion: 5 | 2015 | 2016 | 2017 | 2018\n private _node: AppendableNode = DummyPattern\n private _flags: Flags = DummyFlags\n private _disjunctionStartStack: number[] = []\n private _backreferences: Backreference[] = []\n private _capturingGroups: CapturingGroup[] = []\n\n source: string = \"\"\n\n constructor(options?: RegExpParser.Options) {\n this.strict = Boolean(options && options.strict)\n this.ecmaVersion = (options && options.ecmaVersion) || 2018\n }\n\n get pattern(): Pattern {\n if (this._node.type !== \"Pattern\") {\n throw new Error(\"UnknownError\")\n }\n return this._node\n }\n\n get flags(): Flags {\n if (this._flags.type !== \"Flags\") {\n throw new Error(\"UnknownError\")\n }\n return this._flags\n }\n\n onFlags(\n start: number,\n end: number,\n global: boolean,\n ignoreCase: boolean,\n multiline: boolean,\n unicode: boolean,\n sticky: boolean,\n dotAll: boolean,\n ): void {\n this._flags = {\n type: \"Flags\",\n parent: null,\n start,\n end,\n raw: this.source.slice(start, end),\n global,\n ignoreCase,\n multiline,\n unicode,\n sticky,\n dotAll,\n }\n }\n\n onPatternEnter(start: number): void {\n this._node = {\n type: \"Pattern\",\n parent: null,\n start,\n end: start,\n raw: \"\",\n elements: [],\n }\n this._backreferences.length = 0\n this._capturingGroups.length = 0\n }\n\n onPatternLeave(start: number, end: number): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n\n for (const reference of this._backreferences) {\n const ref = reference.ref\n const group =\n typeof ref === \"number\"\n ? this._capturingGroups[ref - 1]\n : this._capturingGroups.find(g => g.name === ref)!\n reference.resolved = group\n group.references.push(reference)\n }\n }\n\n onDisjunctionEnter(start: number): void {\n this._disjunctionStartStack.push(start)\n }\n\n onDisjunctionLeave(start: number, end: number): void {\n this._disjunctionStartStack.pop()\n }\n\n onAlternativeEnter(start: number, index: number): void {\n if (index === 0) {\n return\n }\n\n const parentNode = this._node\n if (\n parentNode.type === \"Disjunction\" ||\n parentNode.type === \"CharacterClass\"\n ) {\n throw new Error(\"UnknownError\")\n }\n\n const prevNode = last(parentNode.elements)\n if (prevNode != null && prevNode.type === \"Disjunction\") {\n this._node = prevNode\n prevNode.alternatives.push([])\n } else {\n this._node = {\n type: \"Disjunction\",\n parent: parentNode,\n start: last(this._disjunctionStartStack)!,\n end: start,\n raw: \"\",\n alternatives: [],\n }\n const elements = elementsToAlternative(\n parentNode.elements,\n this._node,\n )\n this._node.alternatives.push(elements, [])\n parentNode.elements = [this._node]\n }\n }\n\n onAlternativeLeave(start: number, end: number, index: number): void {\n if (index === 0) {\n return\n }\n this._node.end = end\n this._node.raw = this.source.slice(this._node.start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onGroupEnter(start: number): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n this._node = {\n type: \"Group\",\n parent: parentNode,\n start,\n end: start,\n raw: \"\",\n elements: [],\n }\n addAlternativeElement(parentNode, this._node)\n }\n\n onGroupLeave(start: number, end: number): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onCapturingGroupEnter(start: number, name: string | null): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n this._node = {\n type: \"CapturingGroup\",\n parent: parentNode,\n start,\n end: start,\n raw: \"\",\n name,\n elements: [],\n references: [],\n }\n addAlternativeElement(parentNode, this._node)\n this._capturingGroups.push(this._node)\n }\n\n onCapturingGroupLeave(\n start: number,\n end: number,\n name: string | null,\n ): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onQuantifier(\n start: number,\n end: number,\n min: number,\n max: number,\n greedy: boolean,\n ): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n // Replace the last element.\n const elements =\n parentNode.type === \"Disjunction\"\n ? last(parentNode.alternatives)!\n : parentNode.elements\n const prevNode = elements.pop()!\n const node: Quantifier = {\n type: \"Quantifier\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n min,\n max,\n greedy,\n element: prevNode as QuantifiableElement,\n }\n elements.push(node)\n prevNode.parent = node\n }\n\n onLookaroundAssertionEnter(\n start: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n this._node = {\n type: \"Assertion\",\n parent: parentNode,\n start,\n end: start,\n raw: \"\",\n kind,\n negate,\n elements: [],\n } as LookaroundAssertion\n addAlternativeElement(parentNode, this._node)\n }\n\n onLookaroundAssertionLeave(\n start: number,\n end: number,\n kind: \"lookahead\" | \"lookbehind\",\n negate: boolean,\n ): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onEdgeAssertion(start: number, end: number, kind: \"start\" | \"end\"): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n addAlternativeElement(parentNode, {\n type: \"Assertion\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n })\n }\n\n onWordBoundaryAssertion(\n start: number,\n end: number,\n kind: \"word\",\n negate: boolean,\n ): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n addAlternativeElement(parentNode, {\n type: \"Assertion\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n negate,\n })\n }\n\n onAnyCharacterSet(start: number, end: number, kind: \"any\"): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n addAlternativeElement(parentNode, {\n type: \"CharacterSet\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n })\n }\n\n onEscapeCharacterSet(\n start: number,\n end: number,\n kind: \"digit\" | \"space\" | \"word\",\n negate: boolean,\n ): void {\n addCommonElement(this._node, {\n type: \"CharacterSet\",\n parent: this._node,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n negate,\n })\n }\n\n onUnicodePropertyCharacterSet(\n start: number,\n end: number,\n kind: \"property\",\n key: string,\n value: string | null,\n negate: boolean,\n ): void {\n addCommonElement(this._node, {\n type: \"CharacterSet\",\n parent: this._node,\n start,\n end,\n raw: this.source.slice(start, end),\n kind,\n key,\n value,\n negate,\n })\n }\n\n onCharacter(start: number, end: number, value: number): void {\n addCommonElement(this._node, {\n type: \"Character\",\n parent: this._node,\n start,\n end,\n raw: this.source.slice(start, end),\n value,\n })\n }\n\n onBackreference(start: number, end: number, ref: number | string): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n const node: Backreference = {\n type: \"Backreference\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n ref,\n resolved: DummyCapturingGroup,\n }\n addAlternativeElement(parentNode, node)\n this._backreferences.push(node)\n }\n\n onCharacterClassEnter(start: number, negate: boolean): void {\n const parentNode = this._node\n if (parentNode.type === \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n this._node = {\n type: \"CharacterClass\",\n parent: parentNode,\n start,\n end: start,\n raw: \"\",\n negate,\n elements: [],\n }\n addAlternativeElement(parentNode, this._node)\n }\n\n onCharacterClassLeave(start: number, end: number, negate: boolean): void {\n this._node.end = end\n this._node.raw = this.source.slice(start, end)\n this._node = this._node.parent as AppendableNode\n }\n\n onCharacterClassRange(\n start: number,\n end: number,\n min: number,\n max: number,\n ): void {\n const parentNode = this._node\n if (parentNode.type !== \"CharacterClass\") {\n throw new Error(\"UnknownError\")\n }\n\n // Replace the last three elements.\n const elements = parentNode.elements\n const rightNode = elements.pop() as Character\n elements.pop() // hyphen\n const leftNode = elements.pop() as Character\n const node: CharacterClassRange = {\n type: \"CharacterClassRange\",\n parent: parentNode,\n start,\n end,\n raw: this.source.slice(start, end),\n min: leftNode,\n max: rightNode,\n }\n assert(leftNode != null && leftNode.type === \"Character\")\n assert(rightNode != null && rightNode.type === \"Character\")\n leftNode.parent = node\n rightNode.parent = node\n elements.push(node)\n }\n}\n\nexport namespace RegExpParser {\n /**\n * The options for RegExpParser construction.\n */\n export interface Options {\n /**\n * The flag to disable Annex B syntax. Default is `false`.\n */\n strict?: boolean\n\n /**\n * ECMAScript version. Default is `2018`.\n * - `2015` added `u` and `y` flags.\n * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,\n * and Unicode Property Escape.\n */\n ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018\n }\n}\n\nexport class RegExpParser {\n private _state: RegExpParserState\n private _validator: RegExpValidator\n\n /**\n * Initialize this parser.\n * @param options The options of parser.\n */\n constructor(options?: RegExpParser.Options) {\n this._state = new RegExpParserState(options)\n this._validator = new RegExpValidator(this._state)\n }\n\n /**\n * Parse a regular expression literal. E.g. \"/abc/g\"\n * @param source The source code to parse.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n * @returns The AST of the given regular expression.\n */\n parseLiteral(\n source: string,\n start: number = 0,\n end: number = source.length,\n ): RegExpLiteral {\n this._state.source = source\n this._validator.validateLiteral(source, start, end)\n const pattern = this._state.pattern\n const flags = this._state.flags\n const literal: RegExpLiteral = {\n type: \"RegExpLiteral\",\n parent: null,\n start,\n end,\n raw: source,\n pattern,\n flags,\n }\n pattern.parent = literal\n flags.parent = literal\n return literal\n }\n\n /**\n * Parse a regular expression flags. E.g. \"gim\"\n * @param source The source code to parse.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n * @returns The AST of the given flags.\n */\n parseFlags(\n source: string,\n start: number = 0,\n end: number = source.length,\n ): Flags {\n this._state.source = source\n this._validator.validateFlags(source, start, end)\n return this._state.flags\n }\n\n /**\n * Parse a regular expression pattern. E.g. \"abc\"\n * @param source The source code to parse.\n * @param start The start index in the source code.\n * @param end The end index in the source code.\n * @param uFlag The flag to set unicode mode.\n * @returns The AST of the given pattern.\n */\n parsePattern(\n source: string,\n start: number = 0,\n end: number = source.length,\n uFlag: boolean = false,\n ): Pattern {\n this._state.source = source\n this._validator.validatePattern(source, start, end, uFlag)\n return this._state.pattern\n }\n}\n","import * as AST from \"./ast\"\nimport { RegExpParser } from \"./parser\"\nimport { RegExpValidator } from \"./validator\"\n\nexport { AST, RegExpParser, RegExpValidator }\n\n/**\n * Parse a given regular expression literal then make AST object.\n * @param source The source code to parse.\n * @param options The options to parse.\n * @returns The AST of the regular expression.\n */\nexport function parseRegExpLiteral(\n source: string,\n options?: RegExpParser.Options,\n): AST.RegExpLiteral {\n return new RegExpParser(options).parseLiteral(source)\n}\n\n/**\n * Validate a given regular expression literal.\n * @param source The source code to validate.\n * @param options The options to validate.\n */\nexport function validateRegExpLiteral(\n source: string,\n options?: RegExpValidator.Options,\n): void {\n return new RegExpValidator(options).validateLiteral(source)\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/regexpp/package.json b/tools/node_modules/eslint/node_modules/regexpp/package.json index 3974824ed4e89c..5a6e6a96c9c5ed 100644 --- a/tools/node_modules/eslint/node_modules/regexpp/package.json +++ b/tools/node_modules/eslint/node_modules/regexpp/package.json @@ -1,27 +1,27 @@ { - "_from": "regexpp@^1.0.1", - "_id": "regexpp@1.0.1", + "_from": "regexpp@^1.1.0", + "_id": "regexpp@1.1.0", "_inBundle": false, - "_integrity": "sha512-8Ph721maXiOYSLtaDGKVmDn5wdsNaF6Px85qFNeMPQq0r8K5Y10tgP6YuR65Ws35n4DvzFcCxEnRNBIXQunzLw==", + "_integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", "_location": "/eslint/regexpp", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "regexpp@^1.0.1", + "raw": "regexpp@^1.1.0", "name": "regexpp", "escapedName": "regexpp", - "rawSpec": "^1.0.1", + "rawSpec": "^1.1.0", "saveSpec": null, - "fetchSpec": "^1.0.1" + "fetchSpec": "^1.1.0" }, "_requiredBy": [ "/eslint" ], - "_resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.0.1.tgz", - "_shasum": "d857c3a741dce075c2848dcb019a0a975b190d43", - "_spec": "regexpp@^1.0.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "_shasum": "0e3516dd0b7904f413d2d4193dce4618c3a689ab", + "_spec": "regexpp@^1.1.0", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Toru Nagashima", "url": "https://github.com/mysticatea" @@ -30,12 +30,17 @@ "url": "https://github.com/mysticatea/regexpp/issues" }, "bundleDependencies": false, + "dependencies": {}, "deprecated": false, "description": "Regular expression parser for ECMAScript 2018.", "devDependencies": { "@types/eslint": "^4.16.0", "@types/mocha": "^2.2.48", "@types/node": "^9.4.6", + "babel-core": "^6.26.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", "dts-bundle": "^0.7.3", "eslint": "^4.18.0", "eslint-config-mysticatea": "^13.0.2", @@ -46,6 +51,7 @@ "prettier": "^1.9.2", "rimraf": "^2.6.2", "rollup": "^0.56.1", + "rollup-plugin-babel": "^3.0.3", "rollup-plugin-node-resolve": "^3.0.3", "rollup-plugin-sourcemaps": "^0.4.2", "rollup-watch": "^4.3.1", @@ -57,8 +63,7 @@ "node": ">=4.0.0" }, "files": [ - "index.d.ts", - "index.js.map" + "index.*" ], "homepage": "https://github.com/mysticatea/regexpp#readme", "keywords": [ @@ -79,14 +84,18 @@ "annexB" ], "license": "MIT", - "main": "index.js", + "main": "index", "name": "regexpp", "repository": { "type": "git", "url": "git+https://github.com/mysticatea/regexpp.git" }, "scripts": { - "build": "tsc --project tsconfig.prod.json && rollup -c -o index.js && dts-bundle --name regexpp --main .temp/index.d.ts --out ../index.d.ts", + "build": "run-s build:*", + "build:dts": "dts-bundle --name regexpp --main .temp/index.d.ts --out ../index.d.ts", + "build:js": "rollup -c rollup-js.config.js", + "build:mjs": "rollup -c rollup-mjs.config.js", + "build:tsc": "tsc --module es2015 --target es2015", "clean": "rimraf .temp index.*", "lint": "eslint src test tools --ext .ts", "postversion": "git push && git push --tags", @@ -100,5 +109,5 @@ "version": "npm run -s build", "watch": "npm run -s test -- --watch-extensions .ts --watch --growl" }, - "version": "1.0.1" + "version": "1.1.0" } diff --git a/tools/node_modules/eslint/node_modules/remark-parse/package.json b/tools/node_modules/eslint/node_modules/remark-parse/package.json index 9f604fd5b3bd43..a2d48dbdeeddd2 100644 --- a/tools/node_modules/eslint/node_modules/remark-parse/package.json +++ b/tools/node_modules/eslint/node_modules/remark-parse/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-3.0.1.tgz", "_shasum": "1b9f841a44d8f4fbf2246850265459a4eb354c80", "_spec": "remark-parse@^3.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/eslint-plugin-markdown", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/eslint-plugin-markdown", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/repeat-string/package.json b/tools/node_modules/eslint/node_modules/repeat-string/package.json index b51288729327f0..0e558a8707f2ef 100644 --- a/tools/node_modules/eslint/node_modules/repeat-string/package.json +++ b/tools/node_modules/eslint/node_modules/repeat-string/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "_shasum": "8dcae470e1c88abc2d600fff4a776286da75e637", "_spec": "repeat-string@^1.5.4", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Jon Schlinkert", "url": "http://github.com/jonschlinkert" diff --git a/tools/node_modules/eslint/node_modules/replace-ext/package.json b/tools/node_modules/eslint/node_modules/replace-ext/package.json index c91ddea88c0787..f3508c9b94e0bf 100644 --- a/tools/node_modules/eslint/node_modules/replace-ext/package.json +++ b/tools/node_modules/eslint/node_modules/replace-ext/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", "_shasum": "de63128373fcbf7c3ccfa4de5a480c45a67958eb", "_spec": "replace-ext@1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/vfile", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/vfile", "author": { "name": "Gulp Team", "email": "team@gulpjs.com", diff --git a/tools/node_modules/eslint/node_modules/require-uncached/package.json b/tools/node_modules/eslint/node_modules/require-uncached/package.json index d2c2ae8abca4b8..ea49c4321d0087 100644 --- a/tools/node_modules/eslint/node_modules/require-uncached/package.json +++ b/tools/node_modules/eslint/node_modules/require-uncached/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "_shasum": "4e0d56d6c9662fd31e43011c4b95aa49955421d3", "_spec": "require-uncached@^1.0.3", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/resolve-from/package.json b/tools/node_modules/eslint/node_modules/resolve-from/package.json index 43ed73fc26f610..d6c0bbea900a98 100644 --- a/tools/node_modules/eslint/node_modules/resolve-from/package.json +++ b/tools/node_modules/eslint/node_modules/resolve-from/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", "_shasum": "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226", "_spec": "resolve-from@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/require-uncached", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/require-uncached", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/restore-cursor/package.json b/tools/node_modules/eslint/node_modules/restore-cursor/package.json index 083dd1de3a7ccd..c894cc3e684359 100644 --- a/tools/node_modules/eslint/node_modules/restore-cursor/package.json +++ b/tools/node_modules/eslint/node_modules/restore-cursor/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "_shasum": "9f7ee287f82fd326d4fd162923d62129eee0dfaf", "_spec": "restore-cursor@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/cli-cursor", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/cli-cursor", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/rimraf/package.json b/tools/node_modules/eslint/node_modules/rimraf/package.json index b6e4224e0251dd..65e50e0f572a0e 100644 --- a/tools/node_modules/eslint/node_modules/rimraf/package.json +++ b/tools/node_modules/eslint/node_modules/rimraf/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "_shasum": "2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36", "_spec": "rimraf@^2.2.8", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/del", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/del", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", diff --git a/tools/node_modules/eslint/node_modules/run-async/package.json b/tools/node_modules/eslint/node_modules/run-async/package.json index bcb38d8de7d780..5396174ddb5e28 100644 --- a/tools/node_modules/eslint/node_modules/run-async/package.json +++ b/tools/node_modules/eslint/node_modules/run-async/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "_shasum": "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0", "_spec": "run-async@^2.2.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", "author": { "name": "Simon Boudrias", "email": "admin@simonboudrias.com" diff --git a/tools/node_modules/eslint/node_modules/rx-lite-aggregates/package.json b/tools/node_modules/eslint/node_modules/rx-lite-aggregates/package.json deleted file mode 100644 index c9447ae588d85a..00000000000000 --- a/tools/node_modules/eslint/node_modules/rx-lite-aggregates/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "_from": "rx-lite-aggregates@^4.0.8", - "_id": "rx-lite-aggregates@4.0.8", - "_inBundle": false, - "_integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "_location": "/eslint/rx-lite-aggregates", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "rx-lite-aggregates@^4.0.8", - "name": "rx-lite-aggregates", - "escapedName": "rx-lite-aggregates", - "rawSpec": "^4.0.8", - "saveSpec": null, - "fetchSpec": "^4.0.8" - }, - "_requiredBy": [ - "/eslint/inquirer" - ], - "_resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "_shasum": "753b87a89a11c95467c4ac1626c4efc4e05c67be", - "_spec": "rx-lite-aggregates@^4.0.8", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", - "author": { - "name": "Cloud Programmability Team", - "url": "https://github.com/Reactive-Extensions/RxJS/blob/master/authors.txt" - }, - "browser": { - "index.js": "rx.lite.aggregates.js" - }, - "bugs": { - "url": "https://github.com/Reactive-Extensions/RxJS/issues" - }, - "bundleDependencies": false, - "dependencies": { - "rx-lite": "*" - }, - "deprecated": false, - "description": "Lightweight library with aggregate functions for composing asynchronous and event-based operations in JavaScript", - "devDependencies": {}, - "homepage": "https://github.com/Reactive-Extensions/RxJS", - "jam": { - "main": "rx.lite.aggregates.js" - }, - "keywords": [ - "React", - "Reactive", - "Events", - "Rx", - "RxJS" - ], - "licenses": [ - { - "type": "Apache License, Version 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0.html" - } - ], - "main": "rx.lite.aggregates.js", - "name": "rx-lite-aggregates", - "repository": { - "type": "git", - "url": "git+https://github.com/Reactive-Extensions/RxJS.git" - }, - "title": "Reactive Extensions for JavaScript (RxJS) Aggregates", - "version": "4.0.8" -} diff --git a/tools/node_modules/eslint/node_modules/rx-lite-aggregates/readme.md b/tools/node_modules/eslint/node_modules/rx-lite-aggregates/readme.md deleted file mode 100644 index ed55c924e4aa5d..00000000000000 --- a/tools/node_modules/eslint/node_modules/rx-lite-aggregates/readme.md +++ /dev/null @@ -1,85 +0,0 @@ -# RxJS Aggregates Module # - -The Reactive Extensions for JavaScript has a number of aggregation operators including those you might already know from the Array#extras and the upcoming ES6 standard such as `reduce`, `find` and `findIndex`. This module is used exclusively for aggregation operations used on finite observable sequences. In addition to the aforementioned operators, there are many useful operators such as `count`, `sum`, `average` and determining whether two sequences are equal via the `sequenceEqual` method. This requires `rx.lite.js` from the [`rx-lite`](https://www.npmjs.com/package/rx-lite) NPM module. - -## Getting Started - -There are a number of ways to get started with RxJS. - -### Installing with [NPM](https://npmjs.org/) - -```bash` -$ npm install rx-lite-aggregates -$ npm install -g rx-lite-aggregates -``` - -### Using with Node.js and Ringo.js - -```js -var Rx = require('rx-lite-aggregates'); -``` - -### In a Browser: - -```html - - - -``` - -## Included Observable Operators ## - -### `Observable Instance Methods` -- [`aggregate`](../../doc/api/core/operators/reduce.md) -- [`all`](../../doc/api/core/operators/every.md) -- [`any`](../../doc/api/core/operators/some.md) -- [`average`](../../doc/api/core/operators/average.md) -- [`includes`](../../doc/api/core/operators/includes.md) -- [`count`](../../doc/api/core/operators/count.md) -- [`elementAt`](../../doc/api/core/operators/elementat.md) -- [`elementAtOrDefault`](../../doc/api/core/operators/elementatordefault.md) -- [`every`](../../doc/api/core/operators/every.md) -- [`find`](../../doc/api/core/operators/find.md) -- [`findIndex`](../../doc/api/core/operators/findindex.md) -- [`first`](../../doc/api/core/operators/first.md) -- [`firstOrDefault`](../../doc/api/core/operators/firstordefault.md) -- [`indexOf`](../../doc/api/core/operators/indexof.md) -- [`isEmpty`](../../doc/api/core/operators/isempty.md) -- [`last`](../../doc/api/core/operators/last.md) -- [`lastOrDefault`](../../doc/api/core/operators/lastordefault.md) -- [`max`](../../doc/api/core/operators/max.md) -- [`maxBy`](../../doc/api/core/operators/maxby.md) -- [`min`](../../doc/api/core/operators/min.md) -- [`minBy`](../../doc/api/core/operators/minby.md) -- [`reduce`](../../doc/api/core/operators/reduce.md) -- [`sequenceEqual`](../../doc/api/core/operators/sequenceequal.md) -- [`single`](../../doc/api/core/operators/single.md) -- [`singleOrDefault`](../../doc/api/core/operators/singleordefault.md) -- [`some`](../../doc/api/core/operators/some.md) -- [`sum`](../../doc/api/core/operators/sum.md) -- [`toMap`](../../doc/api/core/operators/tomap.md) -- [`toSet`](../../doc/api/core/operators/toset.md) - -## 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. - -## 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/tools/node_modules/eslint/node_modules/rx-lite-aggregates/rx.lite.aggregates.js b/tools/node_modules/eslint/node_modules/rx-lite-aggregates/rx.lite.aggregates.js deleted file mode 100644 index 7deba2201737db..00000000000000 --- a/tools/node_modules/eslint/node_modules/rx-lite-aggregates/rx.lite.aggregates.js +++ /dev/null @@ -1,1365 +0,0 @@ -// Copyright (c) Microsoft, All rights reserved. See License.txt in the project root for license information. - -;(function (factory) { - var objectTypes = { - 'function': true, - 'object': true - }; - - function checkGlobal(value) { - return (value && value.Object === Object) ? value : null; - } - - var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) ? exports : null; - var freeModule = (objectTypes[typeof module] && module && !module.nodeType) ? module : null; - var freeGlobal = checkGlobal(freeExports && freeModule && typeof global === 'object' && global); - var freeSelf = checkGlobal(objectTypes[typeof self] && self); - var freeWindow = checkGlobal(objectTypes[typeof window] && window); - var moduleExports = (freeModule && freeModule.exports === freeExports) ? freeExports : null; - var thisGlobal = checkGlobal(objectTypes[typeof this] && this); - var root = freeGlobal || ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || freeSelf || thisGlobal || Function('return this')(); - - // Because of build optimizers - if (typeof define === 'function' && define.amd) { - define(['./rx.lite'], function (Rx, exports) { - return factory(root, exports, Rx); - }); - } else if (typeof module === 'object' && module && module.exports === freeExports) { - module.exports = factory(root, module.exports, require('rx-lite')); - } else { - root.Rx = factory(root, {}, root.Rx); - } -}.call(this, function (root, exp, Rx, undefined) { - - // References - var Observable = Rx.Observable, - observableProto = Observable.prototype, - BinaryDisposable = Rx.BinaryDisposable, - AnonymousObservable = Rx.AnonymousObservable, - AbstractObserver = Rx.internals.AbstractObserver, - disposableEmpty = Rx.Disposable.empty, - helpers = Rx.helpers, - defaultComparer = helpers.defaultComparer, - identity = helpers.identity, - defaultSubComparer = helpers.defaultSubComparer, - isFunction = helpers.isFunction, - isPromise = helpers.isPromise, - isArrayLike = helpers.isArrayLike, - isIterable = helpers.isIterable, - inherits = Rx.internals.inherits, - observableFromPromise = Observable.fromPromise, - observableFrom = Observable.from, - bindCallback = Rx.internals.bindCallback, - EmptyError = Rx.EmptyError, - ObservableBase = Rx.ObservableBase, - ArgumentOutOfRangeError = Rx.ArgumentOutOfRangeError; - - var errorObj = {e: {}}; - - function tryCatcherGen(tryCatchTarget) { - return function tryCatcher() { - try { - return tryCatchTarget.apply(this, arguments); - } catch (e) { - errorObj.e = e; - return errorObj; - } - }; - } - - var tryCatch = Rx.internals.tryCatch = function tryCatch(fn) { - if (!isFunction(fn)) { throw new TypeError('fn must be a function'); } - return tryCatcherGen(fn); - }; - - function thrower(e) { - throw e; - } - - var ExtremaByObservable = (function (__super__) { - inherits(ExtremaByObservable, __super__); - function ExtremaByObservable(source, k, c) { - this.source = source; - this._k = k; - this._c = c; - __super__.call(this); - } - - ExtremaByObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new ExtremaByObserver(o, this._k, this._c)); - }; - - return ExtremaByObservable; - }(ObservableBase)); - - var ExtremaByObserver = (function (__super__) { - inherits(ExtremaByObserver, __super__); - function ExtremaByObserver(o, k, c) { - this._o = o; - this._k = k; - this._c = c; - this._v = null; - this._hv = false; - this._l = []; - __super__.call(this); - } - - ExtremaByObserver.prototype.next = function (x) { - var key = tryCatch(this._k)(x); - if (key === errorObj) { return this._o.onError(key.e); } - var comparison = 0; - if (!this._hv) { - this._hv = true; - this._v = key; - } else { - comparison = tryCatch(this._c)(key, this._v); - if (comparison === errorObj) { return this._o.onError(comparison.e); } - } - if (comparison > 0) { - this._v = key; - this._l = []; - } - if (comparison >= 0) { this._l.push(x); } - }; - - ExtremaByObserver.prototype.error = function (e) { - this._o.onError(e); - }; - - ExtremaByObserver.prototype.completed = function () { - this._o.onNext(this._l); - this._o.onCompleted(); - }; - - return ExtremaByObserver; - }(AbstractObserver)); - - function firstOnly(x) { - if (x.length === 0) { throw new EmptyError(); } - return x[0]; - } - - var ReduceObservable = (function(__super__) { - inherits(ReduceObservable, __super__); - function ReduceObservable(source, accumulator, hasSeed, seed) { - this.source = source; - this.accumulator = accumulator; - this.hasSeed = hasSeed; - this.seed = seed; - __super__.call(this); - } - - ReduceObservable.prototype.subscribeCore = function(observer) { - return this.source.subscribe(new ReduceObserver(observer,this)); - }; - - return ReduceObservable; - }(ObservableBase)); - - var ReduceObserver = (function (__super__) { - inherits(ReduceObserver, __super__); - function ReduceObserver(o, parent) { - this._o = o; - this._p = parent; - this._fn = parent.accumulator; - this._hs = parent.hasSeed; - this._s = parent.seed; - this._ha = false; - this._a = null; - this._hv = false; - this._i = 0; - __super__.call(this); - } - - ReduceObserver.prototype.next = function (x) { - !this._hv && (this._hv = true); - if (this._ha) { - this._a = tryCatch(this._fn)(this._a, x, this._i, this._p); - } else { - this._a = this._hs ? tryCatch(this._fn)(this._s, x, this._i, this._p) : x; - this._ha = true; - } - if (this._a === errorObj) { return this._o.onError(this._a.e); } - this._i++; - }; - - ReduceObserver.prototype.error = function (e) { - this._o.onError(e); - }; - - ReduceObserver.prototype.completed = function () { - this._hv && this._o.onNext(this._a); - !this._hv && this._hs && this._o.onNext(this._s); - !this._hv && !this._hs && this._o.onError(new EmptyError()); - this._o.onCompleted(); - }; - - return ReduceObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.reduce = function () { - var hasSeed = false, seed, accumulator = arguments[0]; - if (arguments.length === 2) { - hasSeed = true; - seed = arguments[1]; - } - return new ReduceObservable(this, accumulator, hasSeed, seed); - }; - - var SomeObservable = (function (__super__) { - inherits(SomeObservable, __super__); - function SomeObservable(source, fn) { - this.source = source; - this._fn = fn; - __super__.call(this); - } - - SomeObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new SomeObserver(o, this._fn, this.source)); - }; - - return SomeObservable; - }(ObservableBase)); - - var SomeObserver = (function (__super__) { - inherits(SomeObserver, __super__); - - function SomeObserver(o, fn, s) { - this._o = o; - this._fn = fn; - this._s = s; - this._i = 0; - __super__.call(this); - } - - SomeObserver.prototype.next = function (x) { - var result = tryCatch(this._fn)(x, this._i++, this._s); - if (result === errorObj) { return this._o.onError(result.e); } - if (Boolean(result)) { - this._o.onNext(true); - this._o.onCompleted(); - } - }; - SomeObserver.prototype.error = function (e) { this._o.onError(e); }; - SomeObserver.prototype.completed = function () { - this._o.onNext(false); - this._o.onCompleted(); - }; - - return SomeObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.some = function (predicate, thisArg) { - var fn = bindCallback(predicate, thisArg, 3); - return new SomeObservable(this, fn); - }; - - var IsEmptyObservable = (function (__super__) { - inherits(IsEmptyObservable, __super__); - function IsEmptyObservable(source) { - this.source = source; - __super__.call(this); - } - - IsEmptyObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new IsEmptyObserver(o)); - }; - - return IsEmptyObservable; - }(ObservableBase)); - - var IsEmptyObserver = (function(__super__) { - inherits(IsEmptyObserver, __super__); - function IsEmptyObserver(o) { - this._o = o; - __super__.call(this); - } - - IsEmptyObserver.prototype.next = function () { - this._o.onNext(false); - this._o.onCompleted(); - }; - IsEmptyObserver.prototype.error = function (e) { this._o.onError(e); }; - IsEmptyObserver.prototype.completed = function () { - this._o.onNext(true); - this._o.onCompleted(); - }; - - return IsEmptyObserver; - }(AbstractObserver)); - - /** - * Determines whether an observable sequence is empty. - * @returns {Observable} An observable sequence containing a single element determining whether the source sequence is empty. - */ - observableProto.isEmpty = function () { - return new IsEmptyObservable(this); - }; - - var EveryObservable = (function (__super__) { - inherits(EveryObservable, __super__); - function EveryObservable(source, fn) { - this.source = source; - this._fn = fn; - __super__.call(this); - } - - EveryObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new EveryObserver(o, this._fn, this.source)); - }; - - return EveryObservable; - }(ObservableBase)); - - var EveryObserver = (function (__super__) { - inherits(EveryObserver, __super__); - - function EveryObserver(o, fn, s) { - this._o = o; - this._fn = fn; - this._s = s; - this._i = 0; - __super__.call(this); - } - - EveryObserver.prototype.next = function (x) { - var result = tryCatch(this._fn)(x, this._i++, this._s); - if (result === errorObj) { return this._o.onError(result.e); } - if (!Boolean(result)) { - this._o.onNext(false); - this._o.onCompleted(); - } - }; - EveryObserver.prototype.error = function (e) { this._o.onError(e); }; - EveryObserver.prototype.completed = function () { - this._o.onNext(true); - this._o.onCompleted(); - }; - - return EveryObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.every = function (predicate, thisArg) { - var fn = bindCallback(predicate, thisArg, 3); - return new EveryObservable(this, fn); - }; - - var IncludesObservable = (function (__super__) { - inherits(IncludesObservable, __super__); - function IncludesObservable(source, elem, idx) { - var n = +idx || 0; - Math.abs(n) === Infinity && (n = 0); - - this.source = source; - this._elem = elem; - this._n = n; - __super__.call(this); - } - - IncludesObservable.prototype.subscribeCore = function (o) { - if (this._n < 0) { - o.onNext(false); - o.onCompleted(); - return disposableEmpty; - } - - return this.source.subscribe(new IncludesObserver(o, this._elem, this._n)); - }; - - return IncludesObservable; - }(ObservableBase)); - - var IncludesObserver = (function (__super__) { - inherits(IncludesObserver, __super__); - function IncludesObserver(o, elem, n) { - this._o = o; - this._elem = elem; - this._n = n; - this._i = 0; - __super__.call(this); - } - - function comparer(a, b) { - return (a === 0 && b === 0) || (a === b || (isNaN(a) && isNaN(b))); - } - - IncludesObserver.prototype.next = function (x) { - if (this._i++ >= this._n && comparer(x, this._elem)) { - this._o.onNext(true); - this._o.onCompleted(); - } - }; - IncludesObserver.prototype.error = function (e) { this._o.onError(e); }; - IncludesObserver.prototype.completed = function () { this._o.onNext(false); this._o.onCompleted(); }; - - return IncludesObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.includes = function (searchElement, fromIndex) { - return new IncludesObservable(this, searchElement, fromIndex); - }; - - var CountObservable = (function (__super__) { - inherits(CountObservable, __super__); - function CountObservable(source, fn) { - this.source = source; - this._fn = fn; - __super__.call(this); - } - - CountObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new CountObserver(o, this._fn, this.source)); - }; - - return CountObservable; - }(ObservableBase)); - - var CountObserver = (function (__super__) { - inherits(CountObserver, __super__); - - function CountObserver(o, fn, s) { - this._o = o; - this._fn = fn; - this._s = s; - this._i = 0; - this._c = 0; - __super__.call(this); - } - - CountObserver.prototype.next = function (x) { - if (this._fn) { - var result = tryCatch(this._fn)(x, this._i++, this._s); - if (result === errorObj) { return this._o.onError(result.e); } - Boolean(result) && (this._c++); - } else { - this._c++; - } - }; - CountObserver.prototype.error = function (e) { this._o.onError(e); }; - CountObserver.prototype.completed = function () { - this._o.onNext(this._c); - this._o.onCompleted(); - }; - - return CountObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.count = function (predicate, thisArg) { - var fn = bindCallback(predicate, thisArg, 3); - return new CountObservable(this, fn); - }; - - var IndexOfObservable = (function (__super__) { - inherits(IndexOfObservable, __super__); - function IndexOfObservable(source, e, n) { - this.source = source; - this._e = e; - this._n = n; - __super__.call(this); - } - - IndexOfObservable.prototype.subscribeCore = function (o) { - if (this._n < 0) { - o.onNext(-1); - o.onCompleted(); - return disposableEmpty; - } - - return this.source.subscribe(new IndexOfObserver(o, this._e, this._n)); - }; - - return IndexOfObservable; - }(ObservableBase)); - - var IndexOfObserver = (function (__super__) { - inherits(IndexOfObserver, __super__); - function IndexOfObserver(o, e, n) { - this._o = o; - this._e = e; - this._n = n; - this._i = 0; - __super__.call(this); - } - - IndexOfObserver.prototype.next = function (x) { - if (this._i >= this._n && x === this._e) { - this._o.onNext(this._i); - this._o.onCompleted(); - } - this._i++; - }; - IndexOfObserver.prototype.error = function (e) { this._o.onError(e); }; - IndexOfObserver.prototype.completed = function () { this._o.onNext(-1); this._o.onCompleted(); }; - - return IndexOfObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.indexOf = function(searchElement, fromIndex) { - var n = +fromIndex || 0; - Math.abs(n) === Infinity && (n = 0); - return new IndexOfObservable(this, searchElement, n); - }; - - var SumObservable = (function (__super__) { - inherits(SumObservable, __super__); - function SumObservable(source, fn) { - this.source = source; - this._fn = fn; - __super__.call(this); - } - - SumObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new SumObserver(o, this._fn, this.source)); - }; - - return SumObservable; - }(ObservableBase)); - - var SumObserver = (function (__super__) { - inherits(SumObserver, __super__); - - function SumObserver(o, fn, s) { - this._o = o; - this._fn = fn; - this._s = s; - this._i = 0; - this._c = 0; - __super__.call(this); - } - - SumObserver.prototype.next = function (x) { - if (this._fn) { - var result = tryCatch(this._fn)(x, this._i++, this._s); - if (result === errorObj) { return this._o.onError(result.e); } - this._c += result; - } else { - this._c += x; - } - }; - SumObserver.prototype.error = function (e) { this._o.onError(e); }; - SumObserver.prototype.completed = function () { - this._o.onNext(this._c); - this._o.onCompleted(); - }; - - return SumObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.sum = function (keySelector, thisArg) { - var fn = bindCallback(keySelector, thisArg, 3); - return new SumObservable(this, fn); - }; - - /** - * 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. - */ - observableProto.minBy = function (keySelector, comparer) { - comparer || (comparer = defaultSubComparer); - return new ExtremaByObservable(this, keySelector, function (x, y) { return comparer(x, y) * -1; }); - }; - - /** - * 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. - */ - observableProto.min = function (comparer) { - return this.minBy(identity, comparer).map(firstOnly); - }; - - /** - * 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. - */ - observableProto.maxBy = function (keySelector, comparer) { - comparer || (comparer = defaultSubComparer); - return new ExtremaByObservable(this, keySelector, comparer); - }; - - /** - * 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. - */ - observableProto.max = function (comparer) { - return this.maxBy(identity, comparer).map(firstOnly); - }; - - var AverageObservable = (function (__super__) { - inherits(AverageObservable, __super__); - function AverageObservable(source, fn) { - this.source = source; - this._fn = fn; - __super__.call(this); - } - - AverageObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new AverageObserver(o, this._fn, this.source)); - }; - - return AverageObservable; - }(ObservableBase)); - - var AverageObserver = (function(__super__) { - inherits(AverageObserver, __super__); - function AverageObserver(o, fn, s) { - this._o = o; - this._fn = fn; - this._s = s; - this._c = 0; - this._t = 0; - __super__.call(this); - } - - AverageObserver.prototype.next = function (x) { - if(this._fn) { - var r = tryCatch(this._fn)(x, this._c++, this._s); - if (r === errorObj) { return this._o.onError(r.e); } - this._t += r; - } else { - this._c++; - this._t += x; - } - }; - AverageObserver.prototype.error = function (e) { this._o.onError(e); }; - AverageObserver.prototype.completed = function () { - if (this._c === 0) { return this._o.onError(new EmptyError()); } - this._o.onNext(this._t / this._c); - this._o.onCompleted(); - }; - - return AverageObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.average = function (keySelector, thisArg) { - var source = this, fn; - if (isFunction(keySelector)) { - fn = bindCallback(keySelector, thisArg, 3); - } - return new AverageObservable(source, fn); - }; - - /** - * 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. - */ - observableProto.sequenceEqual = function (second, comparer) { - var first = this; - comparer || (comparer = defaultComparer); - return new AnonymousObservable(function (o) { - var donel = false, doner = false, ql = [], qr = []; - var subscription1 = first.subscribe(function (x) { - if (qr.length > 0) { - var v = qr.shift(); - var equal = tryCatch(comparer)(v, x); - if (equal === errorObj) { return o.onError(equal.e); } - if (!equal) { - o.onNext(false); - o.onCompleted(); - } - } else if (doner) { - o.onNext(false); - o.onCompleted(); - } else { - ql.push(x); - } - }, function(e) { o.onError(e); }, function () { - donel = true; - if (ql.length === 0) { - if (qr.length > 0) { - o.onNext(false); - o.onCompleted(); - } else if (doner) { - o.onNext(true); - o.onCompleted(); - } - } - }); - - (isArrayLike(second) || isIterable(second)) && (second = observableFrom(second)); - isPromise(second) && (second = observableFromPromise(second)); - var subscription2 = second.subscribe(function (x) { - if (ql.length > 0) { - var v = ql.shift(); - var equal = tryCatch(comparer)(v, x); - if (equal === errorObj) { return o.onError(equal.e); } - if (!equal) { - o.onNext(false); - o.onCompleted(); - } - } else if (donel) { - o.onNext(false); - o.onCompleted(); - } else { - qr.push(x); - } - }, function(e) { o.onError(e); }, function () { - doner = true; - if (qr.length === 0) { - if (ql.length > 0) { - o.onNext(false); - o.onCompleted(); - } else if (donel) { - o.onNext(true); - o.onCompleted(); - } - } - }); - return new BinaryDisposable(subscription1, subscription2); - }, first); - }; - - var ElementAtObservable = (function (__super__) { - inherits(ElementAtObservable, __super__); - function ElementAtObservable(source, i, d) { - this.source = source; - this._i = i; - this._d = d; - __super__.call(this); - } - - ElementAtObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new ElementAtObserver(o, this._i, this._d)); - }; - - return ElementAtObservable; - }(ObservableBase)); - - var ElementAtObserver = (function (__super__) { - inherits(ElementAtObserver, __super__); - - function ElementAtObserver(o, i, d) { - this._o = o; - this._i = i; - this._d = d; - __super__.call(this); - } - - ElementAtObserver.prototype.next = function (x) { - if (this._i-- === 0) { - this._o.onNext(x); - this._o.onCompleted(); - } - }; - ElementAtObserver.prototype.error = function (e) { this._o.onError(e); }; - ElementAtObserver.prototype.completed = function () { - if (this._d === undefined) { - this._o.onError(new ArgumentOutOfRangeError()); - } else { - this._o.onNext(this._d); - this._o.onCompleted(); - } - }; - - return ElementAtObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.elementAt = function (index, defaultValue) { - if (index < 0) { throw new ArgumentOutOfRangeError(); } - return new ElementAtObservable(this, index, defaultValue); - }; - - var SingleObserver = (function(__super__) { - inherits(SingleObserver, __super__); - function SingleObserver(o, obj, s) { - this._o = o; - this._obj = obj; - this._s = s; - this._i = 0; - this._hv = false; - this._v = null; - __super__.call(this); - } - - SingleObserver.prototype.next = function (x) { - var shouldYield = false; - if (this._obj.predicate) { - var res = tryCatch(this._obj.predicate)(x, this._i++, this._s); - if (res === errorObj) { return this._o.onError(res.e); } - Boolean(res) && (shouldYield = true); - } else if (!this._obj.predicate) { - shouldYield = true; - } - if (shouldYield) { - if (this._hv) { - return this._o.onError(new Error('Sequence contains more than one matching element')); - } - this._hv = true; - this._v = x; - } - }; - SingleObserver.prototype.error = function (e) { this._o.onError(e); }; - SingleObserver.prototype.completed = function () { - if (this._hv) { - this._o.onNext(this._v); - this._o.onCompleted(); - } - else if (this._obj.defaultValue === undefined) { - this._o.onError(new EmptyError()); - } else { - this._o.onNext(this._obj.defaultValue); - this._o.onCompleted(); - } - }; - - return SingleObserver; - }(AbstractObserver)); - - - /** - * 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. - * @returns {Observable} Sequence containing the single element in the observable sequence that satisfies the condition in the predicate. - */ - observableProto.single = function (predicate, thisArg) { - var obj = {}, source = this; - if (typeof arguments[0] === 'object') { - obj = arguments[0]; - } else { - obj = { - predicate: arguments[0], - thisArg: arguments[1], - defaultValue: arguments[2] - }; - } - if (isFunction (obj.predicate)) { - var fn = obj.predicate; - obj.predicate = bindCallback(fn, obj.thisArg, 3); - } - return new AnonymousObservable(function (o) { - return source.subscribe(new SingleObserver(o, obj, source)); - }, source); - }; - - var FirstObservable = (function (__super__) { - inherits(FirstObservable, __super__); - function FirstObservable(source, obj) { - this.source = source; - this._obj = obj; - __super__.call(this); - } - - FirstObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new FirstObserver(o, this._obj, this.source)); - }; - - return FirstObservable; - }(ObservableBase)); - - var FirstObserver = (function(__super__) { - inherits(FirstObserver, __super__); - function FirstObserver(o, obj, s) { - this._o = o; - this._obj = obj; - this._s = s; - this._i = 0; - __super__.call(this); - } - - FirstObserver.prototype.next = function (x) { - if (this._obj.predicate) { - var res = tryCatch(this._obj.predicate)(x, this._i++, this._s); - if (res === errorObj) { return this._o.onError(res.e); } - if (Boolean(res)) { - this._o.onNext(x); - this._o.onCompleted(); - } - } else if (!this._obj.predicate) { - this._o.onNext(x); - this._o.onCompleted(); - } - }; - FirstObserver.prototype.error = function (e) { this._o.onError(e); }; - FirstObserver.prototype.completed = function () { - if (this._obj.defaultValue === undefined) { - this._o.onError(new EmptyError()); - } else { - this._o.onNext(this._obj.defaultValue); - this._o.onCompleted(); - } - }; - - return FirstObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.first = function () { - var obj = {}, source = this; - if (typeof arguments[0] === 'object') { - obj = arguments[0]; - } else { - obj = { - predicate: arguments[0], - thisArg: arguments[1], - defaultValue: arguments[2] - }; - } - if (isFunction (obj.predicate)) { - var fn = obj.predicate; - obj.predicate = bindCallback(fn, obj.thisArg, 3); - } - return new FirstObservable(this, obj); - }; - - var LastObservable = (function (__super__) { - inherits(LastObservable, __super__); - function LastObservable(source, obj) { - this.source = source; - this._obj = obj; - __super__.call(this); - } - - LastObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new LastObserver(o, this._obj, this.source)); - }; - - return LastObservable; - }(ObservableBase)); - - var LastObserver = (function(__super__) { - inherits(LastObserver, __super__); - function LastObserver(o, obj, s) { - this._o = o; - this._obj = obj; - this._s = s; - this._i = 0; - this._hv = false; - this._v = null; - __super__.call(this); - } - - LastObserver.prototype.next = function (x) { - var shouldYield = false; - if (this._obj.predicate) { - var res = tryCatch(this._obj.predicate)(x, this._i++, this._s); - if (res === errorObj) { return this._o.onError(res.e); } - Boolean(res) && (shouldYield = true); - } else if (!this._obj.predicate) { - shouldYield = true; - } - if (shouldYield) { - this._hv = true; - this._v = x; - } - }; - LastObserver.prototype.error = function (e) { this._o.onError(e); }; - LastObserver.prototype.completed = function () { - if (this._hv) { - this._o.onNext(this._v); - this._o.onCompleted(); - } - else if (this._obj.defaultValue === undefined) { - this._o.onError(new EmptyError()); - } else { - this._o.onNext(this._obj.defaultValue); - this._o.onCompleted(); - } - }; - - return LastObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.last = function () { - var obj = {}, source = this; - if (typeof arguments[0] === 'object') { - obj = arguments[0]; - } else { - obj = { - predicate: arguments[0], - thisArg: arguments[1], - defaultValue: arguments[2] - }; - } - if (isFunction (obj.predicate)) { - var fn = obj.predicate; - obj.predicate = bindCallback(fn, obj.thisArg, 3); - } - return new LastObservable(this, obj); - }; - - var FindValueObserver = (function(__super__) { - inherits(FindValueObserver, __super__); - function FindValueObserver(observer, source, callback, yieldIndex) { - this._o = observer; - this._s = source; - this._cb = callback; - this._y = yieldIndex; - this._i = 0; - __super__.call(this); - } - - FindValueObserver.prototype.next = function (x) { - var shouldRun = tryCatch(this._cb)(x, this._i, this._s); - if (shouldRun === errorObj) { return this._o.onError(shouldRun.e); } - if (shouldRun) { - this._o.onNext(this._y ? this._i : x); - this._o.onCompleted(); - } else { - this._i++; - } - }; - - FindValueObserver.prototype.error = function (e) { - this._o.onError(e); - }; - - FindValueObserver.prototype.completed = function () { - this._y && this._o.onNext(-1); - this._o.onCompleted(); - }; - - return FindValueObserver; - }(AbstractObserver)); - - function findValue (source, predicate, thisArg, yieldIndex) { - var callback = bindCallback(predicate, thisArg, 3); - return new AnonymousObservable(function (o) { - return source.subscribe(new FindValueObserver(o, source, callback, yieldIndex)); - }, source); - } - - /** - * 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. - */ - observableProto.find = function (predicate, thisArg) { - return findValue(this, predicate, thisArg, false); - }; - - /** - * 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. - */ - observableProto.findIndex = function (predicate, thisArg) { - return findValue(this, predicate, thisArg, true); - }; - - var ToSetObservable = (function (__super__) { - inherits(ToSetObservable, __super__); - function ToSetObservable(source) { - this.source = source; - __super__.call(this); - } - - ToSetObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new ToSetObserver(o)); - }; - - return ToSetObservable; - }(ObservableBase)); - - var ToSetObserver = (function (__super__) { - inherits(ToSetObserver, __super__); - function ToSetObserver(o) { - this._o = o; - this._s = new root.Set(); - __super__.call(this); - } - - ToSetObserver.prototype.next = function (x) { - this._s.add(x); - }; - - ToSetObserver.prototype.error = function (e) { - this._o.onError(e); - }; - - ToSetObserver.prototype.completed = function () { - this._o.onNext(this._s); - this._o.onCompleted(); - }; - - return ToSetObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.toSet = function () { - if (typeof root.Set === 'undefined') { throw new TypeError(); } - return new ToSetObservable(this); - }; - - var ToMapObservable = (function (__super__) { - inherits(ToMapObservable, __super__); - function ToMapObservable(source, k, e) { - this.source = source; - this._k = k; - this._e = e; - __super__.call(this); - } - - ToMapObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new ToMapObserver(o, this._k, this._e)); - }; - - return ToMapObservable; - }(ObservableBase)); - - var ToMapObserver = (function (__super__) { - inherits(ToMapObserver, __super__); - function ToMapObserver(o, k, e) { - this._o = o; - this._k = k; - this._e = e; - this._m = new root.Map(); - __super__.call(this); - } - - ToMapObserver.prototype.next = function (x) { - var key = tryCatch(this._k)(x); - if (key === errorObj) { return this._o.onError(key.e); } - var elem = x; - if (this._e) { - elem = tryCatch(this._e)(x); - if (elem === errorObj) { return this._o.onError(elem.e); } - } - - this._m.set(key, elem); - }; - - ToMapObserver.prototype.error = function (e) { - this._o.onError(e); - }; - - ToMapObserver.prototype.completed = function () { - this._o.onNext(this._m); - this._o.onCompleted(); - }; - - return ToMapObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.toMap = function (keySelector, elementSelector) { - if (typeof root.Map === 'undefined') { throw new TypeError(); } - return new ToMapObservable(this, keySelector, elementSelector); - }; - - var SliceObservable = (function (__super__) { - inherits(SliceObservable, __super__); - function SliceObservable(source, b, e) { - this.source = source; - this._b = b; - this._e = e; - __super__.call(this); - } - - SliceObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new SliceObserver(o, this._b, this._e)); - }; - - return SliceObservable; - }(ObservableBase)); - - var SliceObserver = (function (__super__) { - inherits(SliceObserver, __super__); - - function SliceObserver(o, b, e) { - this._o = o; - this._b = b; - this._e = e; - this._i = 0; - __super__.call(this); - } - - SliceObserver.prototype.next = function (x) { - if (this._i >= this._b) { - if (this._e === this._i) { - this._o.onCompleted(); - } else { - this._o.onNext(x); - } - } - this._i++; - }; - SliceObserver.prototype.error = function (e) { this._o.onError(e); }; - SliceObserver.prototype.completed = function () { this._o.onCompleted(); }; - - return SliceObserver; - }(AbstractObserver)); - - /* - * The slice() method returns a shallow copy of a portion of an Observable into a new Observable object. - * Unlike the array version, this does not support negative numbers for being or end. - * @param {Number} [begin] Zero-based index at which to begin extraction. If omitted, this will default to zero. - * @param {Number} [end] Zero-based index at which to end extraction. slice extracts up to but not including end. - * If omitted, this will emit the rest of the Observable object. - * @returns {Observable} A shallow copy of a portion of an Observable into a new Observable object. - */ - observableProto.slice = function (begin, end) { - var start = begin || 0; - if (start < 0) { throw new Rx.ArgumentOutOfRangeError(); } - if (typeof end === 'number' && end < start) { - throw new Rx.ArgumentOutOfRangeError(); - } - return new SliceObservable(this, start, end); - }; - - var LastIndexOfObservable = (function (__super__) { - inherits(LastIndexOfObservable, __super__); - function LastIndexOfObservable(source, e, n) { - this.source = source; - this._e = e; - this._n = n; - __super__.call(this); - } - - LastIndexOfObservable.prototype.subscribeCore = function (o) { - if (this._n < 0) { - o.onNext(-1); - o.onCompleted(); - return disposableEmpty; - } - - return this.source.subscribe(new LastIndexOfObserver(o, this._e, this._n)); - }; - - return LastIndexOfObservable; - }(ObservableBase)); - - var LastIndexOfObserver = (function (__super__) { - inherits(LastIndexOfObserver, __super__); - function LastIndexOfObserver(o, e, n) { - this._o = o; - this._e = e; - this._n = n; - this._v = 0; - this._hv = false; - this._i = 0; - __super__.call(this); - } - - LastIndexOfObserver.prototype.next = function (x) { - if (this._i >= this._n && x === this._e) { - this._hv = true; - this._v = this._i; - } - this._i++; - }; - LastIndexOfObserver.prototype.error = function (e) { this._o.onError(e); }; - LastIndexOfObserver.prototype.completed = function () { - if (this._hv) { - this._o.onNext(this._v); - } else { - this._o.onNext(-1); - } - this._o.onCompleted(); - }; - - return LastIndexOfObserver; - }(AbstractObserver)); - - /** - * Returns the last 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 last index at which a given element can be found in the observable sequence, or -1 if it is not present. - */ - observableProto.lastIndexOf = function(searchElement, fromIndex) { - var n = +fromIndex || 0; - Math.abs(n) === Infinity && (n = 0); - return new LastIndexOfObservable(this, searchElement, n); - }; - - return Rx; -})); diff --git a/tools/node_modules/eslint/node_modules/rx-lite-aggregates/rx.lite.aggregates.map b/tools/node_modules/eslint/node_modules/rx-lite-aggregates/rx.lite.aggregates.map deleted file mode 100644 index 11fbf10e4b76d4..00000000000000 --- a/tools/node_modules/eslint/node_modules/rx-lite-aggregates/rx.lite.aggregates.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"rx.lite.aggregates.min.js","sources":["rx.lite.aggregates.js"],"names":["factory","checkGlobal","value","Object","objectTypes","function","object","freeExports","exports","nodeType","freeModule","module","freeGlobal","global","freeSelf","self","freeWindow","window","thisGlobal","this","root","Function","define","amd","Rx","require","call","exp","undefined","tryCatcherGen","tryCatchTarget","apply","arguments","e","errorObj","firstOnly","x","length","EmptyError","findValue","source","predicate","thisArg","yieldIndex","callback","bindCallback","AnonymousObservable","o","subscribe","FindValueObserver","Observable","observableProto","prototype","BinaryDisposable","AbstractObserver","internals","disposableEmpty","Disposable","empty","helpers","defaultComparer","identity","defaultSubComparer","isFunction","isPromise","isArrayLike","isIterable","inherits","observableFromPromise","fromPromise","observableFrom","from","ObservableBase","ArgumentOutOfRangeError","tryCatch","fn","TypeError","ExtremaByObservable","__super__","k","c","_k","_c","subscribeCore","ExtremaByObserver","_o","_v","_hv","_l","next","key","onError","comparison","push","error","completed","onNext","onCompleted","ReduceObservable","accumulator","hasSeed","seed","observer","ReduceObserver","parent","_p","_fn","_hs","_s","_ha","_a","_i","reduce","SomeObservable","SomeObserver","s","result","Boolean","some","IsEmptyObservable","IsEmptyObserver","isEmpty","EveryObservable","EveryObserver","every","IncludesObservable","elem","idx","n","Math","abs","Infinity","_elem","_n","IncludesObserver","comparer","a","b","isNaN","includes","searchElement","fromIndex","CountObservable","CountObserver","count","IndexOfObservable","_e","IndexOfObserver","indexOf","SumObservable","SumObserver","sum","keySelector","minBy","y","min","map","maxBy","max","AverageObservable","AverageObserver","_t","r","average","sequenceEqual","second","first","donel","doner","ql","qr","subscription1","v","shift","equal","subscription2","ElementAtObservable","i","d","_d","ElementAtObserver","elementAt","index","defaultValue","SingleObserver","obj","_obj","shouldYield","res","Error","single","FirstObservable","FirstObserver","LastObservable","LastObserver","last","_cb","_y","shouldRun","find","findIndex","ToSetObservable","ToSetObserver","Set","add","toSet","ToMapObservable","ToMapObserver","_m","Map","set","toMap","elementSelector","SliceObservable","_b","SliceObserver","slice","begin","end","start","LastIndexOfObservable","LastIndexOfObserver","lastIndexOf"],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rx-lite-aggregates/rx.lite.aggregates.min.js b/tools/node_modules/eslint/node_modules/rx-lite-aggregates/rx.lite.aggregates.min.js deleted file mode 100644 index 649e28972d3a61..00000000000000 --- a/tools/node_modules/eslint/node_modules/rx-lite-aggregates/rx.lite.aggregates.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/ -(function(a){function b(a){return a&&a.Object===Object?a:null}var c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType?exports:null,e=c[typeof module]&&module&&!module.nodeType?module:null,f=b(d&&e&&"object"==typeof global&&global),g=b(c[typeof self]&&self),h=b(c[typeof window]&&window),i=(e&&e.exports===d?d:null,b(c[typeof this]&&this)),j=f||h!==(i&&i.window)&&h||g||i||Function("return this")();"function"==typeof define&&define.amd?define(["./rx.lite"],function(b,c){return a(j,c,b)}):"object"==typeof module&&module&&module.exports===d?module.exports=a(j,module.exports,require("rx-lite")):j.Rx=a(j,{},j.Rx)}).call(this,function(a,b,c,d){function e(a){return function(){try{return a.apply(this,arguments)}catch(b){return C.e=b,C}}}function f(a){if(0===a.length)throw new z;return a[0]}function g(a,b,c,d){var e=y(b,c,3);return new k(function(b){return a.subscribe(new da(b,a,e,d))},a)}var h=c.Observable,i=h.prototype,j=c.BinaryDisposable,k=c.AnonymousObservable,l=c.internals.AbstractObserver,m=c.Disposable.empty,n=c.helpers,o=n.defaultComparer,p=n.identity,q=n.defaultSubComparer,r=n.isFunction,s=n.isPromise,t=n.isArrayLike,u=n.isIterable,v=c.internals.inherits,w=h.fromPromise,x=h.from,y=c.internals.bindCallback,z=c.EmptyError,A=c.ObservableBase,B=c.ArgumentOutOfRangeError,C={e:{}},D=c.internals.tryCatch=function(a){if(!r(a))throw new TypeError("fn must be a function");return e(a)},E=function(a){function b(b,c,d){this.source=b,this._k=c,this._c=d,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new F(a,this._k,this._c))},b}(A),F=function(a){function b(b,c,d){this._o=b,this._k=c,this._c=d,this._v=null,this._hv=!1,this._l=[],a.call(this)}return v(b,a),b.prototype.next=function(a){var b=D(this._k)(a);if(b===C)return this._o.onError(b.e);var c=0;if(this._hv){if(c=D(this._c)(b,this._v),c===C)return this._o.onError(c.e)}else this._hv=!0,this._v=b;c>0&&(this._v=b,this._l=[]),c>=0&&this._l.push(a)},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onNext(this._l),this._o.onCompleted()},b}(l),G=function(a){function b(b,c,d,e){this.source=b,this.accumulator=c,this.hasSeed=d,this.seed=e,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new H(a,this))},b}(A),H=function(a){function b(b,c){this._o=b,this._p=c,this._fn=c.accumulator,this._hs=c.hasSeed,this._s=c.seed,this._ha=!1,this._a=null,this._hv=!1,this._i=0,a.call(this)}return v(b,a),b.prototype.next=function(a){return!this._hv&&(this._hv=!0),this._ha?this._a=D(this._fn)(this._a,a,this._i,this._p):(this._a=this._hs?D(this._fn)(this._s,a,this._i,this._p):a,this._ha=!0),this._a===C?this._o.onError(this._a.e):void this._i++},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._hv&&this._o.onNext(this._a),!this._hv&&this._hs&&this._o.onNext(this._s),!this._hv&&!this._hs&&this._o.onError(new z),this._o.onCompleted()},b}(l);i.reduce=function(){var a,b=!1,c=arguments[0];return 2===arguments.length&&(b=!0,a=arguments[1]),new G(this,c,b,a)};var I=function(a){function b(b,c){this.source=b,this._fn=c,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new J(a,this._fn,this.source))},b}(A),J=function(a){function b(b,c,d){this._o=b,this._fn=c,this._s=d,this._i=0,a.call(this)}return v(b,a),b.prototype.next=function(a){var b=D(this._fn)(a,this._i++,this._s);return b===C?this._o.onError(b.e):void(Boolean(b)&&(this._o.onNext(!0),this._o.onCompleted()))},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onNext(!1),this._o.onCompleted()},b}(l);i.some=function(a,b){var c=y(a,b,3);return new I(this,c)};var K=function(a){function b(b){this.source=b,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new L(a))},b}(A),L=function(a){function b(b){this._o=b,a.call(this)}return v(b,a),b.prototype.next=function(){this._o.onNext(!1),this._o.onCompleted()},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onNext(!0),this._o.onCompleted()},b}(l);i.isEmpty=function(){return new K(this)};var M=function(a){function b(b,c){this.source=b,this._fn=c,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new N(a,this._fn,this.source))},b}(A),N=function(a){function b(b,c,d){this._o=b,this._fn=c,this._s=d,this._i=0,a.call(this)}return v(b,a),b.prototype.next=function(a){var b=D(this._fn)(a,this._i++,this._s);return b===C?this._o.onError(b.e):void(Boolean(b)||(this._o.onNext(!1),this._o.onCompleted()))},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onNext(!0),this._o.onCompleted()},b}(l);i.every=function(a,b){var c=y(a,b,3);return new M(this,c)};var O=function(a){function b(b,c,d){var e=+d||0;Math.abs(e)===1/0&&(e=0),this.source=b,this._elem=c,this._n=e,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this._n<0?(a.onNext(!1),a.onCompleted(),m):this.source.subscribe(new P(a,this._elem,this._n))},b}(A),P=function(a){function b(b,c,d){this._o=b,this._elem=c,this._n=d,this._i=0,a.call(this)}function c(a,b){return 0===a&&0===b||a===b||isNaN(a)&&isNaN(b)}return v(b,a),b.prototype.next=function(a){this._i++>=this._n&&c(a,this._elem)&&(this._o.onNext(!0),this._o.onCompleted())},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onNext(!1),this._o.onCompleted()},b}(l);i.includes=function(a,b){return new O(this,a,b)};var Q=function(a){function b(b,c){this.source=b,this._fn=c,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new R(a,this._fn,this.source))},b}(A),R=function(a){function b(b,c,d){this._o=b,this._fn=c,this._s=d,this._i=0,this._c=0,a.call(this)}return v(b,a),b.prototype.next=function(a){if(this._fn){var b=D(this._fn)(a,this._i++,this._s);if(b===C)return this._o.onError(b.e);Boolean(b)&&this._c++}else this._c++},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onNext(this._c),this._o.onCompleted()},b}(l);i.count=function(a,b){var c=y(a,b,3);return new Q(this,c)};var S=function(a){function b(b,c,d){this.source=b,this._e=c,this._n=d,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this._n<0?(a.onNext(-1),a.onCompleted(),m):this.source.subscribe(new T(a,this._e,this._n))},b}(A),T=function(a){function b(b,c,d){this._o=b,this._e=c,this._n=d,this._i=0,a.call(this)}return v(b,a),b.prototype.next=function(a){this._i>=this._n&&a===this._e&&(this._o.onNext(this._i),this._o.onCompleted()),this._i++},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onNext(-1),this._o.onCompleted()},b}(l);i.indexOf=function(a,b){var c=+b||0;return Math.abs(c)===1/0&&(c=0),new S(this,a,c)};var U=function(a){function b(b,c){this.source=b,this._fn=c,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new V(a,this._fn,this.source))},b}(A),V=function(a){function b(b,c,d){this._o=b,this._fn=c,this._s=d,this._i=0,this._c=0,a.call(this)}return v(b,a),b.prototype.next=function(a){if(this._fn){var b=D(this._fn)(a,this._i++,this._s);if(b===C)return this._o.onError(b.e);this._c+=b}else this._c+=a},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onNext(this._c),this._o.onCompleted()},b}(l);i.sum=function(a,b){var c=y(a,b,3);return new U(this,c)},i.minBy=function(a,b){return b||(b=q),new E(this,a,function(a,c){return-1*b(a,c)})},i.min=function(a){return this.minBy(p,a).map(f)},i.maxBy=function(a,b){return b||(b=q),new E(this,a,b)},i.max=function(a){return this.maxBy(p,a).map(f)};var W=function(a){function b(b,c){this.source=b,this._fn=c,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new X(a,this._fn,this.source))},b}(A),X=function(a){function b(b,c,d){this._o=b,this._fn=c,this._s=d,this._c=0,this._t=0,a.call(this)}return v(b,a),b.prototype.next=function(a){if(this._fn){var b=D(this._fn)(a,this._c++,this._s);if(b===C)return this._o.onError(b.e);this._t+=b}else this._c++,this._t+=a},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){return 0===this._c?this._o.onError(new z):(this._o.onNext(this._t/this._c),void this._o.onCompleted())},b}(l);i.average=function(a,b){var c,d=this;return r(a)&&(c=y(a,b,3)),new W(d,c)},i.sequenceEqual=function(a,b){var c=this;return b||(b=o),new k(function(d){var e=!1,f=!1,g=[],h=[],i=c.subscribe(function(a){if(h.length>0){var c=h.shift(),e=D(b)(c,a);if(e===C)return d.onError(e.e);e||(d.onNext(!1),d.onCompleted())}else f?(d.onNext(!1),d.onCompleted()):g.push(a)},function(a){d.onError(a)},function(){e=!0,0===g.length&&(h.length>0?(d.onNext(!1),d.onCompleted()):f&&(d.onNext(!0),d.onCompleted()))});(t(a)||u(a))&&(a=x(a)),s(a)&&(a=w(a));var k=a.subscribe(function(a){if(g.length>0){var c=g.shift(),f=D(b)(c,a);if(f===C)return d.onError(f.e);f||(d.onNext(!1),d.onCompleted())}else e?(d.onNext(!1),d.onCompleted()):h.push(a)},function(a){d.onError(a)},function(){f=!0,0===h.length&&(g.length>0?(d.onNext(!1),d.onCompleted()):e&&(d.onNext(!0),d.onCompleted()))});return new j(i,k)},c)};var Y=function(a){function b(b,c,d){this.source=b,this._i=c,this._d=d,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new Z(a,this._i,this._d))},b}(A),Z=function(a){function b(b,c,d){this._o=b,this._i=c,this._d=d,a.call(this)}return v(b,a),b.prototype.next=function(a){0===this._i--&&(this._o.onNext(a),this._o.onCompleted())},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._d===d?this._o.onError(new B):(this._o.onNext(this._d),this._o.onCompleted())},b}(l);i.elementAt=function(a,b){if(0>a)throw new B;return new Y(this,a,b)};var $=function(a){function b(b,c,d){this._o=b,this._obj=c,this._s=d,this._i=0,this._hv=!1,this._v=null,a.call(this)}return v(b,a),b.prototype.next=function(a){var b=!1;if(this._obj.predicate){var c=D(this._obj.predicate)(a,this._i++,this._s);if(c===C)return this._o.onError(c.e);Boolean(c)&&(b=!0)}else this._obj.predicate||(b=!0);if(b){if(this._hv)return this._o.onError(new Error("Sequence contains more than one matching element"));this._hv=!0,this._v=a}},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._hv?(this._o.onNext(this._v),this._o.onCompleted()):this._obj.defaultValue===d?this._o.onError(new z):(this._o.onNext(this._obj.defaultValue),this._o.onCompleted())},b}(l);i.single=function(a,b){var c={},d=this;if(c="object"==typeof arguments[0]?arguments[0]:{predicate:arguments[0],thisArg:arguments[1],defaultValue:arguments[2]},r(c.predicate)){var e=c.predicate;c.predicate=y(e,c.thisArg,3)}return new k(function(a){return d.subscribe(new $(a,c,d))},d)};var _=function(a){function b(b,c){this.source=b,this._obj=c,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new aa(a,this._obj,this.source))},b}(A),aa=function(a){function b(b,c,d){this._o=b,this._obj=c,this._s=d,this._i=0,a.call(this)}return v(b,a),b.prototype.next=function(a){if(this._obj.predicate){var b=D(this._obj.predicate)(a,this._i++,this._s);if(b===C)return this._o.onError(b.e);Boolean(b)&&(this._o.onNext(a),this._o.onCompleted())}else this._obj.predicate||(this._o.onNext(a),this._o.onCompleted())},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._obj.defaultValue===d?this._o.onError(new z):(this._o.onNext(this._obj.defaultValue),this._o.onCompleted())},b}(l);i.first=function(){var a={};if(a="object"==typeof arguments[0]?arguments[0]:{predicate:arguments[0],thisArg:arguments[1],defaultValue:arguments[2]},r(a.predicate)){var b=a.predicate;a.predicate=y(b,a.thisArg,3)}return new _(this,a)};var ba=function(a){function b(b,c){this.source=b,this._obj=c,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new ca(a,this._obj,this.source))},b}(A),ca=function(a){function b(b,c,d){this._o=b,this._obj=c,this._s=d,this._i=0,this._hv=!1,this._v=null,a.call(this)}return v(b,a),b.prototype.next=function(a){var b=!1;if(this._obj.predicate){var c=D(this._obj.predicate)(a,this._i++,this._s);if(c===C)return this._o.onError(c.e);Boolean(c)&&(b=!0)}else this._obj.predicate||(b=!0);b&&(this._hv=!0,this._v=a)},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._hv?(this._o.onNext(this._v),this._o.onCompleted()):this._obj.defaultValue===d?this._o.onError(new z):(this._o.onNext(this._obj.defaultValue),this._o.onCompleted())},b}(l);i.last=function(){var a={};if(a="object"==typeof arguments[0]?arguments[0]:{predicate:arguments[0],thisArg:arguments[1],defaultValue:arguments[2]},r(a.predicate)){var b=a.predicate;a.predicate=y(b,a.thisArg,3)}return new ba(this,a)};var da=function(a){function b(b,c,d,e){this._o=b,this._s=c,this._cb=d,this._y=e,this._i=0,a.call(this)}return v(b,a),b.prototype.next=function(a){var b=D(this._cb)(a,this._i,this._s);return b===C?this._o.onError(b.e):void(b?(this._o.onNext(this._y?this._i:a),this._o.onCompleted()):this._i++)},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._y&&this._o.onNext(-1),this._o.onCompleted()},b}(l);i.find=function(a,b){return g(this,a,b,!1)},i.findIndex=function(a,b){return g(this,a,b,!0)};var ea=function(a){function b(b){this.source=b,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new fa(a))},b}(A),fa=function(b){function c(c){this._o=c,this._s=new a.Set,b.call(this)}return v(c,b),c.prototype.next=function(a){this._s.add(a)},c.prototype.error=function(a){this._o.onError(a)},c.prototype.completed=function(){this._o.onNext(this._s),this._o.onCompleted()},c}(l);i.toSet=function(){if("undefined"==typeof a.Set)throw new TypeError;return new ea(this)};var ga=function(a){function b(b,c,d){this.source=b,this._k=c,this._e=d,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new ha(a,this._k,this._e))},b}(A),ha=function(b){function c(c,d,e){this._o=c,this._k=d,this._e=e,this._m=new a.Map,b.call(this)}return v(c,b),c.prototype.next=function(a){var b=D(this._k)(a);if(b===C)return this._o.onError(b.e);var c=a;return this._e&&(c=D(this._e)(a),c===C)?this._o.onError(c.e):void this._m.set(b,c)},c.prototype.error=function(a){this._o.onError(a)},c.prototype.completed=function(){this._o.onNext(this._m),this._o.onCompleted()},c}(l);i.toMap=function(b,c){if("undefined"==typeof a.Map)throw new TypeError;return new ga(this,b,c)};var ia=function(a){function b(b,c,d){this.source=b,this._b=c,this._e=d,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new ja(a,this._b,this._e))},b}(A),ja=function(a){function b(b,c,d){this._o=b,this._b=c,this._e=d,this._i=0,a.call(this)}return v(b,a),b.prototype.next=function(a){this._i>=this._b&&(this._e===this._i?this._o.onCompleted():this._o.onNext(a)),this._i++},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onCompleted()},b}(l);i.slice=function(a,b){var d=a||0;if(0>d)throw new c.ArgumentOutOfRangeError;if("number"==typeof b&&d>b)throw new c.ArgumentOutOfRangeError;return new ia(this,d,b)};var ka=function(a){function b(b,c,d){this.source=b,this._e=c,this._n=d,a.call(this)}return v(b,a),b.prototype.subscribeCore=function(a){return this._n<0?(a.onNext(-1),a.onCompleted(),m):this.source.subscribe(new la(a,this._e,this._n))},b}(A),la=function(a){function b(b,c,d){this._o=b,this._e=c,this._n=d,this._v=0,this._hv=!1,this._i=0,a.call(this)}return v(b,a),b.prototype.next=function(a){this._i>=this._n&&a===this._e&&(this._hv=!0,this._v=this._i),this._i++},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._hv?this._o.onNext(this._v):this._o.onNext(-1),this._o.onCompleted()},b}(l);return i.lastIndexOf=function(a,b){var c=+b||0;return Math.abs(c)===1/0&&(c=0),new ka(this,a,c)},c}); -//# sourceMappingURL=rx.lite.aggregates.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rx-lite/package.json b/tools/node_modules/eslint/node_modules/rx-lite/package.json deleted file mode 100644 index dc9feadb00cca0..00000000000000 --- a/tools/node_modules/eslint/node_modules/rx-lite/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "_from": "rx-lite@^4.0.8", - "_id": "rx-lite@4.0.8", - "_inBundle": false, - "_integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "_location": "/eslint/rx-lite", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "rx-lite@^4.0.8", - "name": "rx-lite", - "escapedName": "rx-lite", - "rawSpec": "^4.0.8", - "saveSpec": null, - "fetchSpec": "^4.0.8" - }, - "_requiredBy": [ - "/eslint/inquirer", - "/eslint/rx-lite-aggregates" - ], - "_resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "_shasum": "0b1e11af8bc44836f04a6407e92da42467b79444", - "_spec": "rx-lite@^4.0.8", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", - "author": { - "name": "Cloud Programmability Team", - "url": "https://github.com/Reactive-Extensions/RxJS/blob/master/authors.txt" - }, - "browser": { - "index.js": "rx.lite.js" - }, - "bugs": { - "url": "https://github.com/Reactive-Extensions/RxJS/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "Lightweight library for composing asynchronous and event-based operations in JavaScript", - "devDependencies": {}, - "homepage": "https://github.com/Reactive-Extensions/RxJS", - "jam": { - "main": "rx.lite.js" - }, - "keywords": [ - "React", - "Reactive", - "Events", - "Rx", - "RxJS" - ], - "licenses": [ - { - "type": "Apache License, Version 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0.html" - } - ], - "main": "rx.lite.js", - "name": "rx-lite", - "repository": { - "type": "git", - "url": "git+https://github.com/Reactive-Extensions/RxJS.git" - }, - "title": "Reactive Extensions for JavaScript (RxJS) Lite", - "version": "4.0.8" -} diff --git a/tools/node_modules/eslint/node_modules/rx-lite/readme.md b/tools/node_modules/eslint/node_modules/rx-lite/readme.md deleted file mode 100644 index 441154574870dc..00000000000000 --- a/tools/node_modules/eslint/node_modules/rx-lite/readme.md +++ /dev/null @@ -1,173 +0,0 @@ -# RxJS Lite Module # - -The Reactive Extensions for JavaScript Lite version is a lightweight version of the Reactive Extensions for JavaScript which covers most of the day to day operators you might use all in a single library. Functionality such as bridging to events, promises, callbacks, Node.js-style callbacks, time-based operations and more are built right in. This comes with `rx.lite.js` which is for use in modern development environments such as > IE9 and server-side environments such as Node.js. - -## Getting Started - -There are a number of ways to get started with RxJS. - -### Installing with [NPM](https://npmjs.org/) - -```bash` -$ npm install rx-lite -$ npm install -g rx-lite -``` - -### Using with Node.js and Ringo.js - -```js -var Rx = require('rx-lite'); -``` - -### In a Browser: - -```html - - -``` - -## Included Observable Operators ## - -### `Observable Methods` -- [`catch | catchException`](../../doc/api/core/operators/catch.md) -- [`concat`](../../doc/api/core/operators/concat.md) -- [`create | createWithDisposable`](../../doc/api/core/operators/create.md) -- [`defer`](../../doc/api/core/operators/defer.md) -- [`empty`](../../doc/api/core/operators/empty.md) -- [`from`](../../doc/api/core/operators/from.md) -- [`fromArray`](../../doc/api/core/operators/fromarray.md) -- [`fromCallback`](../../doc/api/core/operators/fromcallback.md) -- [`fromEvent`](../../doc/api/core/operators/fromevent.md) -- [`fromEventPattern`](../../doc/api/core/operators/fromeventpattern.md) -- [`fromNodeCallback`](../../doc/api/core/operators/fromnodecallback.md) -- [`fromPromise`](../../doc/api/core/operators/frompromise.md) -- [`interval`](../../doc/api/core/operators/interval.md) -- [`just`](../../doc/api/core/operators/return.md) -- [`merge`](../../doc/api/core/operators/merge.md) -- [`mergeDelayError`](../../doc/api/core/operators/mergedelayerror.md) -- [`never`](../../doc/api/core/operators/never.md) -- [`of`](../../doc/api/core/operators/of.md) -- [`ofWithScheduler`](../../doc/api/core/operators/ofwithscheduler.md) -- [`range`](../../doc/api/core/operators/range.md) -- [`repeat`](../../doc/api/core/operators/repeat.md) -- [`return | returnValue`](../../doc/api/core/operators/return.md) -- [`throw | throwError | throwException`](../../doc/api/core/operators/throw.md) -- [`timer`](../../doc/api/core/operators/timer.md) -- [`zip`](../../doc/api/core/operators/zip.md) -- [`zipArray`](../../doc/api/core/operators/ziparray.md) - -### `Observable Instance Methods` -- [`asObservable`](../../doc/api/core/operators/asobservable.md) -- [`catch | catchException`](../../doc/api/core/operators/catchproto.md) -- [`combineLatest`](../../doc/api/core/operators/combinelatest.md) -- [`concat`](../../doc/api/core/operators/concatproto.md) -- [`concatMap`](../../doc/api/core/operators/concatmap.md) -- [`connect`](../../doc/api/core/operators/connect.md) -- [`debounce`](../../doc/api/core/operators/debounce.md) -- [`defaultIfEmpty`](../../doc/api/core/operators/defaultifempty.md) -- [`delay`](../../doc/api/core/operators/delay.md) -- [`dematerialize`](../../doc/api/core/operators/dematerialize.md) -- [`distinctUntilChanged`](../../doc/api/core/operators/distinctuntilchanged.md) -- [`do | doAction`](../../doc/api/core/operators/do.md) -- [`doOnNext`](../../doc/api/core/operators/doonnext.md) -- [`doOnError`](../../doc/api/core/operators/doonerror.md) -- [`doOnCompleted`](../../doc/api/core/operators/dooncompleted.md) -- [`filter`](../../doc/api/core/operators/where.md) -- [`finally | finallyAction`](../../doc/api/core/operators/finally.md) -- [`flatMap`](../../doc/api/core/operators/selectmany.md) -- [`flatMapLatest`](../../doc/api/core/operators/flatmaplatest.md) -- [`ignoreElements`](../../doc/api/core/operators/ignoreelements.md) -- [`map`](../../doc/api/core/operators/select.md) -- [`merge`](../../doc/api/core/operators/mergeproto.md) -- [`mergeObservable | mergeAll`](../../doc/api/core/operators/mergeall.md) -- [`multicast`](../../doc/api/core/operators/multicast.md) -- [`publish`](../../doc/api/core/operators/publish.md) -- [`publishLast`](../../doc/api/core/operators/publishlast.md) -- [`publishValue`](../../doc/api/core/operators/publishvalue.md) -- [`refCount`](../../doc/api/core/operators/refcount.md) -- [`repeat`](../../doc/api/core/operators/repeat.md) -- [`replay`](../../doc/api/core/operators/replay.md) -- [`retry`](../../doc/api/core/operators/retry.md) -- [`retryWhen`](../../doc/api/core/operators/retrywhen.md) -- [`sample`](../../doc/api/core/operators/sample.md) -- [`scan`](../../doc/api/core/operators/scan.md) -- [`select`](../../doc/api/core/operators/select.md) -- [`selectConcat`](../../doc/api/core/operators/concatmap.md) -- [`selectMany`](../../doc/api/core/operators/selectmany.md) -- [`selectSwitch`](../../doc/api/core/operators/flatmaplatest.md) -- [`singleInstance`](../../doc/api/core/operators/singleinstance.md) -- [`skip`](../../doc/api/core/operators/skip.md) -- [`skipLast`](../../doc/api/core/operators/skiplast.md) -- [`skipUntil`](../../doc/api/core/operators/skipuntil.md) -- [`skipWhile`](../../doc/api/core/operators/skipwhile.md) -- [`startWith`](../../doc/api/core/operators/startwith.md) -- [`subscribe | forEach`](../../doc/api/core/operators/subscribe.md) -- [`subscribeOnNext`](../../doc/api/core/operators/subscribeonnext.md) -- [`subscribeOnError`](../../doc/api/core/operators/subscribeonerror.md) -- [`subscribeOnCompleted`](../../doc/api/core/operators/subscribeoncompleted.md) -- [`switch | switchLatest`](../../doc/api/core/operators/switch.md) -- [`take`](../../doc/api/core/operators/take.md) -- [`takeLast`](../../doc/api/core/operators/takelast.md) -- [`takeUntil`](../../doc/api/core/operators/takeuntil.md) -- [`takeWhile`](../../doc/api/core/operators/takewhile.md) -- [`tap`](../../doc/api/core/operators/do.md) -- [`tapOnNext`](../../doc/api/core/operators/doonnext.md) -- [`tapOnError`](../../doc/api/core/operators/doonerror.md) -- [`tapOnCompleted`](../../doc/api/core/operators/dooncompleted.md) -- [`throttle`](../../doc/api/core/operators/throttle.md) -- [`timeout`](../../doc/api/core/operators/timeout.md) -- [`timestamp`](../../doc/api/core/operators/timestamp.md) -- [`toArray`](../../doc/api/core/operators/toarray.md) -- [`transduce`](../../doc/api/core/operators/transduce.md) -- [`where`](../../doc/api/core/operators/where.md) -- [`withLatestFrom`](../../doc/api/core/operators/withlatestfrom.md) -- [`zip`](../../doc/api/core/operators/zipproto.md) - -## Included Classes ## - -### Core Objects -- [`Rx.Observer`](../../doc/api/core/observer.md) -- [`Rx.Notification`](../../doc/api/core/notification.md) - -### Subjects - -- [`Rx.AsyncSubject`](../../doc/api/subjects/asyncsubject.md) -- [`Rx.BehaviorSubject`](../../doc/api/subjects/behaviorsubject.md) -- [`Rx.ReplaySubject`](../../doc/api/subjects/replaysubject.md) -- [`Rx.Subject`](../../doc/api/subjects/subject.md) - -### Schedulers - -- [`Rx.Scheduler`](../../doc/api/schedulers/scheduler.md) - -### Disposables - -- [`Rx.CompositeDisposable`](../../doc/api/disposables/compositedisposable.md) -- [`Rx.Disposable`](../../doc/api/disposables/disposable.md) -- [`Rx.RefCountDisposable`](../../doc/api/disposables/refcountdisposable.md) -- [`Rx.SerialDisposable`](../../doc/api/disposables/serialdisposable.md) -- [`Rx.SingleAssignmentDisposable`](../../doc/api/disposables/singleassignmentdisposable.md) - -## 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. - -## 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/tools/node_modules/eslint/node_modules/rx-lite/rx.lite.js b/tools/node_modules/eslint/node_modules/rx-lite/rx.lite.js deleted file mode 100644 index 0603c30e2f551c..00000000000000 --- a/tools/node_modules/eslint/node_modules/rx-lite/rx.lite.js +++ /dev/null @@ -1,7054 +0,0 @@ -// Copyright (c) Microsoft, All rights reserved. See License.txt in the project root for license information. - -;(function (undefined) { - - var objectTypes = { - 'function': true, - 'object': true - }; - - function checkGlobal(value) { - return (value && value.Object === Object) ? value : null; - } - - var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) ? exports : null; - var freeModule = (objectTypes[typeof module] && module && !module.nodeType) ? module : null; - var freeGlobal = checkGlobal(freeExports && freeModule && typeof global === 'object' && global); - var freeSelf = checkGlobal(objectTypes[typeof self] && self); - var freeWindow = checkGlobal(objectTypes[typeof window] && window); - var moduleExports = (freeModule && freeModule.exports === freeExports) ? freeExports : null; - var thisGlobal = checkGlobal(objectTypes[typeof this] && this); - var root = freeGlobal || ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || freeSelf || thisGlobal || Function('return this')(); - - var Rx = { - internals: {}, - config: { - Promise: root.Promise - }, - helpers: { } - }; - - // Defaults - var noop = Rx.helpers.noop = function () { }, - identity = Rx.helpers.identity = function (x) { return x; }, - defaultNow = Rx.helpers.defaultNow = Date.now, - defaultComparer = Rx.helpers.defaultComparer = function (x, y) { return isEqual(x, y); }, - defaultSubComparer = Rx.helpers.defaultSubComparer = function (x, y) { return x > y ? 1 : (x < y ? -1 : 0); }, - defaultKeySerializer = Rx.helpers.defaultKeySerializer = function (x) { return x.toString(); }, - defaultError = Rx.helpers.defaultError = function (err) { throw err; }, - isPromise = Rx.helpers.isPromise = function (p) { return !!p && typeof p.subscribe !== 'function' && typeof p.then === 'function'; }, - isFunction = Rx.helpers.isFunction = (function () { - - var isFn = function (value) { - return typeof value == 'function' || false; - }; - - // fallback for older versions of Chrome and Safari - if (isFn(/x/)) { - isFn = function(value) { - return typeof value == 'function' && toString.call(value) == '[object Function]'; - }; - } - - return isFn; - }()); - - function cloneArray(arr) { - var len = arr.length, a = new Array(len); - for(var i = 0; i < len; i++) { a[i] = arr[i]; } - return a; - } - - var errorObj = {e: {}}; - - function tryCatcherGen(tryCatchTarget) { - return function tryCatcher() { - try { - return tryCatchTarget.apply(this, arguments); - } catch (e) { - errorObj.e = e; - return errorObj; - } - }; - } - - var tryCatch = Rx.internals.tryCatch = function tryCatch(fn) { - if (!isFunction(fn)) { throw new TypeError('fn must be a function'); } - return tryCatcherGen(fn); - }; - - function thrower(e) { - throw e; - } - - Rx.config.longStackSupport = false; - var hasStacks = false, stacks = tryCatch(function () { throw new Error(); })(); - hasStacks = !!stacks.e && !!stacks.e.stack; - - // All code after this point will be filtered from stack traces reported by RxJS - var rStartingLine = captureLine(), rFileName; - - var STACK_JUMP_SEPARATOR = 'From previous event:'; - - function makeStackTraceLong(error, observable) { - // If possible, transform the error stack trace by removing Node and RxJS - // cruft, then concatenating with the stack trace of `observable`. - if (hasStacks && - observable.stack && - typeof error === 'object' && - error !== null && - error.stack && - error.stack.indexOf(STACK_JUMP_SEPARATOR) === -1 - ) { - var stacks = []; - for (var o = observable; !!o; o = o.source) { - if (o.stack) { - stacks.unshift(o.stack); - } - } - stacks.unshift(error.stack); - - var concatedStacks = stacks.join('\n' + STACK_JUMP_SEPARATOR + '\n'); - error.stack = filterStackString(concatedStacks); - } - } - - function filterStackString(stackString) { - var lines = stackString.split('\n'), desiredLines = []; - for (var i = 0, len = lines.length; i < len; i++) { - var line = lines[i]; - - if (!isInternalFrame(line) && !isNodeFrame(line) && line) { - desiredLines.push(line); - } - } - return desiredLines.join('\n'); - } - - function isInternalFrame(stackLine) { - var fileNameAndLineNumber = getFileNameAndLineNumber(stackLine); - if (!fileNameAndLineNumber) { - return false; - } - var fileName = fileNameAndLineNumber[0], lineNumber = fileNameAndLineNumber[1]; - - return fileName === rFileName && - lineNumber >= rStartingLine && - lineNumber <= rEndingLine; - } - - function isNodeFrame(stackLine) { - return stackLine.indexOf('(module.js:') !== -1 || - stackLine.indexOf('(node.js:') !== -1; - } - - function captureLine() { - if (!hasStacks) { return; } - - try { - throw new Error(); - } catch (e) { - var lines = e.stack.split('\n'); - var firstLine = lines[0].indexOf('@') > 0 ? lines[1] : lines[2]; - var fileNameAndLineNumber = getFileNameAndLineNumber(firstLine); - if (!fileNameAndLineNumber) { return; } - - rFileName = fileNameAndLineNumber[0]; - return fileNameAndLineNumber[1]; - } - } - - function getFileNameAndLineNumber(stackLine) { - // Named functions: 'at functionName (filename:lineNumber:columnNumber)' - var attempt1 = /at .+ \((.+):(\d+):(?:\d+)\)$/.exec(stackLine); - if (attempt1) { return [attempt1[1], Number(attempt1[2])]; } - - // Anonymous functions: 'at filename:lineNumber:columnNumber' - var attempt2 = /at ([^ ]+):(\d+):(?:\d+)$/.exec(stackLine); - if (attempt2) { return [attempt2[1], Number(attempt2[2])]; } - - // Firefox style: 'function@filename:lineNumber or @filename:lineNumber' - var attempt3 = /.*@(.+):(\d+)$/.exec(stackLine); - if (attempt3) { return [attempt3[1], Number(attempt3[2])]; } - } - - var EmptyError = Rx.EmptyError = function() { - this.message = 'Sequence contains no elements.'; - Error.call(this); - }; - EmptyError.prototype = Object.create(Error.prototype); - EmptyError.prototype.name = 'EmptyError'; - - var ObjectDisposedError = Rx.ObjectDisposedError = function() { - this.message = 'Object has been disposed'; - Error.call(this); - }; - ObjectDisposedError.prototype = Object.create(Error.prototype); - ObjectDisposedError.prototype.name = 'ObjectDisposedError'; - - var ArgumentOutOfRangeError = Rx.ArgumentOutOfRangeError = function () { - this.message = 'Argument out of range'; - Error.call(this); - }; - ArgumentOutOfRangeError.prototype = Object.create(Error.prototype); - ArgumentOutOfRangeError.prototype.name = 'ArgumentOutOfRangeError'; - - var NotSupportedError = Rx.NotSupportedError = function (message) { - this.message = message || 'This operation is not supported'; - Error.call(this); - }; - NotSupportedError.prototype = Object.create(Error.prototype); - NotSupportedError.prototype.name = 'NotSupportedError'; - - var NotImplementedError = Rx.NotImplementedError = function (message) { - this.message = message || 'This operation is not implemented'; - Error.call(this); - }; - NotImplementedError.prototype = Object.create(Error.prototype); - NotImplementedError.prototype.name = 'NotImplementedError'; - - var notImplemented = Rx.helpers.notImplemented = function () { - throw new NotImplementedError(); - }; - - var notSupported = Rx.helpers.notSupported = function () { - throw new NotSupportedError(); - }; - - // Shim in iterator support - var $iterator$ = (typeof Symbol === 'function' && Symbol.iterator) || - '_es6shim_iterator_'; - // Bug for mozilla version - if (root.Set && typeof new root.Set()['@@iterator'] === 'function') { - $iterator$ = '@@iterator'; - } - - var doneEnumerator = Rx.doneEnumerator = { done: true, value: undefined }; - - var isIterable = Rx.helpers.isIterable = function (o) { - return o && o[$iterator$] !== undefined; - }; - - var isArrayLike = Rx.helpers.isArrayLike = function (o) { - return o && o.length !== undefined; - }; - - Rx.helpers.iterator = $iterator$; - - var bindCallback = Rx.internals.bindCallback = function (func, thisArg, argCount) { - if (typeof thisArg === 'undefined') { return func; } - switch(argCount) { - case 0: - return function() { - return func.call(thisArg) - }; - case 1: - return function(arg) { - return func.call(thisArg, arg); - }; - case 2: - return function(value, index) { - return func.call(thisArg, value, index); - }; - case 3: - return function(value, index, collection) { - return func.call(thisArg, value, index, collection); - }; - } - - return function() { - return func.apply(thisArg, arguments); - }; - }; - - /** Used to determine if values are of the language type Object */ - var dontEnums = ['toString', - 'toLocaleString', - 'valueOf', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'constructor'], - dontEnumsLength = dontEnums.length; - -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]', - 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]'; - -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[dateTag] = typedArrayTags[errorTag] = -typedArrayTags[funcTag] = typedArrayTags[mapTag] = -typedArrayTags[numberTag] = typedArrayTags[objectTag] = -typedArrayTags[regexpTag] = typedArrayTags[setTag] = -typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; - -var objectProto = Object.prototype, - hasOwnProperty = objectProto.hasOwnProperty, - objToString = objectProto.toString, - MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; - -var keys = Object.keys || (function() { - var hasOwnProperty = Object.prototype.hasOwnProperty, - hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'), - dontEnums = [ - 'toString', - 'toLocaleString', - 'valueOf', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'constructor' - ], - dontEnumsLength = dontEnums.length; - - return function(obj) { - if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) { - throw new TypeError('Object.keys called on non-object'); - } - - var result = [], prop, i; - - for (prop in obj) { - if (hasOwnProperty.call(obj, prop)) { - result.push(prop); - } - } - - if (hasDontEnumBug) { - for (i = 0; i < dontEnumsLength; i++) { - if (hasOwnProperty.call(obj, dontEnums[i])) { - result.push(dontEnums[i]); - } - } - } - return result; - }; - }()); - -function equalObjects(object, other, equalFunc, isLoose, stackA, stackB) { - var objProps = keys(object), - objLength = objProps.length, - othProps = keys(other), - othLength = othProps.length; - - if (objLength !== othLength && !isLoose) { - return false; - } - var index = objLength, key; - while (index--) { - key = objProps[index]; - if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) { - return false; - } - } - var skipCtor = isLoose; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key], - result; - - if (!(result === undefined ? equalFunc(objValue, othValue, isLoose, stackA, stackB) : result)) { - return false; - } - skipCtor || (skipCtor = key === 'constructor'); - } - if (!skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; - - if (objCtor !== othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor === 'function' && objCtor instanceof objCtor && - typeof othCtor === 'function' && othCtor instanceof othCtor)) { - return false; - } - } - return true; -} - -function equalByTag(object, other, tag) { - switch (tag) { - case boolTag: - case dateTag: - return +object === +other; - - case errorTag: - return object.name === other.name && object.message === other.message; - - case numberTag: - return (object !== +object) ? - other !== +other : - object === +other; - - case regexpTag: - case stringTag: - return object === (other + ''); - } - return false; -} - -var isObject = Rx.internals.isObject = function(value) { - var type = typeof value; - return !!value && (type === 'object' || type === 'function'); -}; - -function isObjectLike(value) { - return !!value && typeof value === 'object'; -} - -function isLength(value) { - return typeof value === 'number' && value > -1 && value % 1 === 0 && value <= MAX_SAFE_INTEGER; -} - -var isHostObject = (function() { - try { - Object({ 'toString': 0 } + ''); - } catch(e) { - return function() { return false; }; - } - return function(value) { - return typeof value.toString !== 'function' && typeof (value + '') === 'string'; - }; -}()); - -function isTypedArray(value) { - return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)]; -} - -var isArray = Array.isArray || function(value) { - return isObjectLike(value) && isLength(value.length) && objToString.call(value) === arrayTag; -}; - -function arraySome (array, predicate) { - var index = -1, - length = array.length; - - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; -} - -function equalArrays(array, other, equalFunc, isLoose, stackA, stackB) { - var index = -1, - arrLength = array.length, - othLength = other.length; - - if (arrLength !== othLength && !(isLoose && othLength > arrLength)) { - return false; - } - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index], - result; - - if (result !== undefined) { - if (result) { - continue; - } - return false; - } - // Recursively compare arrays (susceptible to call stack limits). - if (isLoose) { - if (!arraySome(other, function(othValue) { - return arrValue === othValue || equalFunc(arrValue, othValue, isLoose, stackA, stackB); - })) { - return false; - } - } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, isLoose, stackA, stackB))) { - return false; - } - } - return true; -} - -function baseIsEqualDeep(object, other, equalFunc, isLoose, stackA, stackB) { - var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = arrayTag, - othTag = arrayTag; - - if (!objIsArr) { - objTag = objToString.call(object); - if (objTag === argsTag) { - objTag = objectTag; - } else if (objTag !== objectTag) { - objIsArr = isTypedArray(object); - } - } - if (!othIsArr) { - othTag = objToString.call(other); - if (othTag === argsTag) { - othTag = objectTag; - } - } - var objIsObj = objTag === objectTag && !isHostObject(object), - othIsObj = othTag === objectTag && !isHostObject(other), - isSameTag = objTag === othTag; - - if (isSameTag && !(objIsArr || objIsObj)) { - return equalByTag(object, other, objTag); - } - if (!isLoose) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); - - if (objIsWrapped || othIsWrapped) { - return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, isLoose, stackA, stackB); - } - } - if (!isSameTag) { - return false; - } - // Assume cyclic values are equal. - // For more information on detecting circular references see https://es5.github.io/#JO. - stackA || (stackA = []); - stackB || (stackB = []); - - var length = stackA.length; - while (length--) { - if (stackA[length] === object) { - return stackB[length] === other; - } - } - // Add `object` and `other` to the stack of traversed objects. - stackA.push(object); - stackB.push(other); - - var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, isLoose, stackA, stackB); - - stackA.pop(); - stackB.pop(); - - return result; -} - -function baseIsEqual(value, other, isLoose, stackA, stackB) { - if (value === other) { - return true; - } - if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, baseIsEqual, isLoose, stackA, stackB); -} - -var isEqual = Rx.internals.isEqual = function (value, other) { - return baseIsEqual(value, other); -}; - - var hasProp = {}.hasOwnProperty, - slice = Array.prototype.slice; - - var inherits = Rx.internals.inherits = function (child, parent) { - function __() { this.constructor = child; } - __.prototype = parent.prototype; - child.prototype = new __(); - }; - - var addProperties = Rx.internals.addProperties = function (obj) { - for(var sources = [], i = 1, len = arguments.length; i < len; i++) { sources.push(arguments[i]); } - for (var idx = 0, ln = sources.length; idx < ln; idx++) { - var source = sources[idx]; - for (var prop in source) { - obj[prop] = source[prop]; - } - } - }; - - // Rx Utils - var addRef = Rx.internals.addRef = function (xs, r) { - return new AnonymousObservable(function (observer) { - return new BinaryDisposable(r.getDisposable(), xs.subscribe(observer)); - }); - }; - - function arrayInitialize(count, factory) { - var a = new Array(count); - for (var i = 0; i < count; i++) { - a[i] = factory(); - } - return a; - } - - /** - * Represents a group of disposable resources that are disposed together. - * @constructor - */ - var CompositeDisposable = Rx.CompositeDisposable = function () { - var args = [], i, len; - if (Array.isArray(arguments[0])) { - args = arguments[0]; - } else { - len = arguments.length; - args = new Array(len); - for(i = 0; i < len; i++) { args[i] = arguments[i]; } - } - this.disposables = args; - this.isDisposed = false; - this.length = args.length; - }; - - var CompositeDisposablePrototype = CompositeDisposable.prototype; - - /** - * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. - * @param {Mixed} item Disposable to add. - */ - CompositeDisposablePrototype.add = function (item) { - if (this.isDisposed) { - item.dispose(); - } else { - this.disposables.push(item); - this.length++; - } - }; - - /** - * 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. - */ - CompositeDisposablePrototype.remove = function (item) { - var shouldDispose = false; - if (!this.isDisposed) { - var idx = this.disposables.indexOf(item); - if (idx !== -1) { - shouldDispose = true; - this.disposables.splice(idx, 1); - this.length--; - item.dispose(); - } - } - return shouldDispose; - }; - - /** - * Disposes all disposables in the group and removes them from the group. - */ - CompositeDisposablePrototype.dispose = function () { - if (!this.isDisposed) { - this.isDisposed = true; - var len = this.disposables.length, currentDisposables = new Array(len); - for(var i = 0; i < len; i++) { currentDisposables[i] = this.disposables[i]; } - this.disposables = []; - this.length = 0; - - for (i = 0; i < len; i++) { - currentDisposables[i].dispose(); - } - } - }; - - /** - * 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. - */ - var Disposable = Rx.Disposable = function (action) { - this.isDisposed = false; - this.action = action || noop; - }; - - /** Performs the task of cleaning up resources. */ - Disposable.prototype.dispose = function () { - if (!this.isDisposed) { - this.action(); - this.isDisposed = true; - } - }; - - /** - * 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. - */ - var disposableCreate = Disposable.create = function (action) { return new Disposable(action); }; - - /** - * Gets the disposable that does nothing when disposed. - */ - var disposableEmpty = Disposable.empty = { dispose: noop }; - - /** - * 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. - */ - var isDisposable = Disposable.isDisposable = function (d) { - return d && isFunction(d.dispose); - }; - - var checkDisposed = Disposable.checkDisposed = function (disposable) { - if (disposable.isDisposed) { throw new ObjectDisposedError(); } - }; - - var disposableFixup = Disposable._fixup = function (result) { - return isDisposable(result) ? result : disposableEmpty; - }; - - // Single assignment - var SingleAssignmentDisposable = Rx.SingleAssignmentDisposable = function () { - this.isDisposed = false; - this.current = null; - }; - SingleAssignmentDisposable.prototype.getDisposable = function () { - return this.current; - }; - SingleAssignmentDisposable.prototype.setDisposable = function (value) { - if (this.current) { throw new Error('Disposable has already been assigned'); } - var shouldDispose = this.isDisposed; - !shouldDispose && (this.current = value); - shouldDispose && value && value.dispose(); - }; - SingleAssignmentDisposable.prototype.dispose = function () { - if (!this.isDisposed) { - this.isDisposed = true; - var old = this.current; - this.current = null; - old && old.dispose(); - } - }; - - // Multiple assignment disposable - var SerialDisposable = Rx.SerialDisposable = function () { - this.isDisposed = false; - this.current = null; - }; - SerialDisposable.prototype.getDisposable = function () { - return this.current; - }; - SerialDisposable.prototype.setDisposable = function (value) { - var shouldDispose = this.isDisposed; - if (!shouldDispose) { - var old = this.current; - this.current = value; - } - old && old.dispose(); - shouldDispose && value && value.dispose(); - }; - SerialDisposable.prototype.dispose = function () { - if (!this.isDisposed) { - this.isDisposed = true; - var old = this.current; - this.current = null; - } - old && old.dispose(); - }; - - var BinaryDisposable = Rx.BinaryDisposable = function (first, second) { - this._first = first; - this._second = second; - this.isDisposed = false; - }; - - BinaryDisposable.prototype.dispose = function () { - if (!this.isDisposed) { - this.isDisposed = true; - var old1 = this._first; - this._first = null; - old1 && old1.dispose(); - var old2 = this._second; - this._second = null; - old2 && old2.dispose(); - } - }; - - var NAryDisposable = Rx.NAryDisposable = function (disposables) { - this._disposables = disposables; - this.isDisposed = false; - }; - - NAryDisposable.prototype.dispose = function () { - if (!this.isDisposed) { - this.isDisposed = true; - for (var i = 0, len = this._disposables.length; i < len; i++) { - this._disposables[i].dispose(); - } - this._disposables.length = 0; - } - }; - - /** - * Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. - */ - var RefCountDisposable = Rx.RefCountDisposable = (function () { - - function InnerDisposable(disposable) { - this.disposable = disposable; - this.disposable.count++; - this.isInnerDisposed = false; - } - - InnerDisposable.prototype.dispose = function () { - if (!this.disposable.isDisposed && !this.isInnerDisposed) { - this.isInnerDisposed = true; - this.disposable.count--; - if (this.disposable.count === 0 && this.disposable.isPrimaryDisposed) { - this.disposable.isDisposed = true; - this.disposable.underlyingDisposable.dispose(); - } - } - }; - - /** - * Initializes a new instance of the RefCountDisposable with the specified disposable. - * @constructor - * @param {Disposable} disposable Underlying disposable. - */ - function RefCountDisposable(disposable) { - this.underlyingDisposable = disposable; - this.isDisposed = false; - this.isPrimaryDisposed = false; - this.count = 0; - } - - /** - * Disposes the underlying disposable only when all dependent disposables have been disposed - */ - RefCountDisposable.prototype.dispose = function () { - if (!this.isDisposed && !this.isPrimaryDisposed) { - this.isPrimaryDisposed = true; - if (this.count === 0) { - this.isDisposed = true; - this.underlyingDisposable.dispose(); - } - } - }; - - /** - * 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. - */ - RefCountDisposable.prototype.getDisposable = function () { - return this.isDisposed ? disposableEmpty : new InnerDisposable(this); - }; - - return RefCountDisposable; - })(); - - var ScheduledItem = Rx.internals.ScheduledItem = function (scheduler, state, action, dueTime, comparer) { - this.scheduler = scheduler; - this.state = state; - this.action = action; - this.dueTime = dueTime; - this.comparer = comparer || defaultSubComparer; - this.disposable = new SingleAssignmentDisposable(); - }; - - ScheduledItem.prototype.invoke = function () { - this.disposable.setDisposable(this.invokeCore()); - }; - - ScheduledItem.prototype.compareTo = function (other) { - return this.comparer(this.dueTime, other.dueTime); - }; - - ScheduledItem.prototype.isCancelled = function () { - return this.disposable.isDisposed; - }; - - ScheduledItem.prototype.invokeCore = function () { - return disposableFixup(this.action(this.scheduler, this.state)); - }; - - /** Provides a set of static properties to access commonly used schedulers. */ - var Scheduler = Rx.Scheduler = (function () { - - function Scheduler() { } - - /** Determines whether the given object is a scheduler */ - Scheduler.isScheduler = function (s) { - return s instanceof Scheduler; - }; - - var schedulerProto = Scheduler.prototype; - - /** - * 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). - */ - schedulerProto.schedule = function (state, action) { - throw new NotImplementedError(); - }; - - /** - * 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). - */ - schedulerProto.scheduleFuture = function (state, dueTime, action) { - var dt = dueTime; - dt instanceof Date && (dt = dt - this.now()); - dt = Scheduler.normalize(dt); - - if (dt === 0) { return this.schedule(state, action); } - - return this._scheduleFuture(state, dt, action); - }; - - schedulerProto._scheduleFuture = function (state, dueTime, action) { - throw new NotImplementedError(); - }; - - /** Gets the current time according to the local machine's system clock. */ - Scheduler.now = defaultNow; - - /** Gets the current time according to the local machine's system clock. */ - Scheduler.prototype.now = defaultNow; - - /** - * 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 - */ - Scheduler.normalize = function (timeSpan) { - timeSpan < 0 && (timeSpan = 0); - return timeSpan; - }; - - return Scheduler; - }()); - - var normalizeTime = Scheduler.normalize, isScheduler = Scheduler.isScheduler; - - (function (schedulerProto) { - - function invokeRecImmediate(scheduler, pair) { - var state = pair[0], action = pair[1], group = new CompositeDisposable(); - action(state, innerAction); - return group; - - function innerAction(state2) { - var isAdded = false, isDone = false; - - var d = scheduler.schedule(state2, scheduleWork); - if (!isDone) { - group.add(d); - isAdded = true; - } - - function scheduleWork(_, state3) { - if (isAdded) { - group.remove(d); - } else { - isDone = true; - } - action(state3, innerAction); - return disposableEmpty; - } - } - } - - function invokeRecDate(scheduler, pair) { - var state = pair[0], action = pair[1], group = new CompositeDisposable(); - action(state, innerAction); - return group; - - function innerAction(state2, dueTime1) { - var isAdded = false, isDone = false; - - var d = scheduler.scheduleFuture(state2, dueTime1, scheduleWork); - if (!isDone) { - group.add(d); - isAdded = true; - } - - function scheduleWork(_, state3) { - if (isAdded) { - group.remove(d); - } else { - isDone = true; - } - action(state3, innerAction); - return disposableEmpty; - } - } - } - - /** - * 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). - */ - schedulerProto.scheduleRecursive = function (state, action) { - return this.schedule([state, action], invokeRecImmediate); - }; - - /** - * Schedules an action to be executed recursively after a specified relative or absolute 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 | Date} dueTime Relative or absolute time after which to execute the action for the first time. - * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort). - */ - schedulerProto.scheduleRecursiveFuture = function (state, dueTime, action) { - return this.scheduleFuture([state, action], dueTime, invokeRecDate); - }; - - }(Scheduler.prototype)); - - (function (schedulerProto) { - - /** - * 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). - */ - schedulerProto.schedulePeriodic = function(state, period, action) { - if (typeof root.setInterval === 'undefined') { throw new NotSupportedError(); } - period = normalizeTime(period); - var s = state, id = root.setInterval(function () { s = action(s); }, period); - return disposableCreate(function () { root.clearInterval(id); }); - }; - - }(Scheduler.prototype)); - - /** Gets a scheduler that schedules work immediately on the current thread. */ - var ImmediateScheduler = (function (__super__) { - inherits(ImmediateScheduler, __super__); - function ImmediateScheduler() { - __super__.call(this); - } - - ImmediateScheduler.prototype.schedule = function (state, action) { - return disposableFixup(action(this, state)); - }; - - return ImmediateScheduler; - }(Scheduler)); - - var immediateScheduler = Scheduler.immediate = new ImmediateScheduler(); - - /** - * Gets a scheduler that schedules work as soon as possible on the current thread. - */ - var CurrentThreadScheduler = (function (__super__) { - var queue; - - function runTrampoline () { - while (queue.length > 0) { - var item = queue.dequeue(); - !item.isCancelled() && item.invoke(); - } - } - - inherits(CurrentThreadScheduler, __super__); - function CurrentThreadScheduler() { - __super__.call(this); - } - - CurrentThreadScheduler.prototype.schedule = function (state, action) { - var si = new ScheduledItem(this, state, action, this.now()); - - if (!queue) { - queue = new PriorityQueue(4); - queue.enqueue(si); - - var result = tryCatch(runTrampoline)(); - queue = null; - if (result === errorObj) { thrower(result.e); } - } else { - queue.enqueue(si); - } - return si.disposable; - }; - - CurrentThreadScheduler.prototype.scheduleRequired = function () { return !queue; }; - - return CurrentThreadScheduler; - }(Scheduler)); - - var currentThreadScheduler = Scheduler.currentThread = new CurrentThreadScheduler(); - - var SchedulePeriodicRecursive = Rx.internals.SchedulePeriodicRecursive = (function () { - function createTick(self) { - return function tick(command, recurse) { - recurse(0, self._period); - var state = tryCatch(self._action)(self._state); - if (state === errorObj) { - self._cancel.dispose(); - thrower(state.e); - } - self._state = state; - }; - } - - function SchedulePeriodicRecursive(scheduler, state, period, action) { - this._scheduler = scheduler; - this._state = state; - this._period = period; - this._action = action; - } - - SchedulePeriodicRecursive.prototype.start = function () { - var d = new SingleAssignmentDisposable(); - this._cancel = d; - d.setDisposable(this._scheduler.scheduleRecursiveFuture(0, this._period, createTick(this))); - - return d; - }; - - return SchedulePeriodicRecursive; - }()); - - var scheduleMethod, clearMethod; - - var localTimer = (function () { - var localSetTimeout, localClearTimeout = noop; - if (!!root.setTimeout) { - localSetTimeout = root.setTimeout; - localClearTimeout = root.clearTimeout; - } else if (!!root.WScript) { - localSetTimeout = function (fn, time) { - root.WScript.Sleep(time); - fn(); - }; - } else { - throw new NotSupportedError(); - } - - return { - setTimeout: localSetTimeout, - clearTimeout: localClearTimeout - }; - }()); - var localSetTimeout = localTimer.setTimeout, - localClearTimeout = localTimer.clearTimeout; - - (function () { - - var nextHandle = 1, tasksByHandle = {}, currentlyRunning = false; - - clearMethod = function (handle) { - delete tasksByHandle[handle]; - }; - - function runTask(handle) { - if (currentlyRunning) { - localSetTimeout(function () { runTask(handle); }, 0); - } else { - var task = tasksByHandle[handle]; - if (task) { - currentlyRunning = true; - var result = tryCatch(task)(); - clearMethod(handle); - currentlyRunning = false; - if (result === errorObj) { thrower(result.e); } - } - } - } - - var reNative = new RegExp('^' + - String(toString) - .replace(/[.*+?^${}()|[\]\\]/g, '\\$&') - .replace(/toString| for [^\]]+/g, '.*?') + '$' - ); - - var setImmediate = typeof (setImmediate = freeGlobal && moduleExports && freeGlobal.setImmediate) == 'function' && - !reNative.test(setImmediate) && setImmediate; - - function postMessageSupported () { - // Ensure not in a worker - if (!root.postMessage || root.importScripts) { return false; } - var isAsync = false, oldHandler = root.onmessage; - // Test for async - root.onmessage = function () { isAsync = true; }; - root.postMessage('', '*'); - root.onmessage = oldHandler; - - return isAsync; - } - - // Use in order, setImmediate, nextTick, postMessage, MessageChannel, script readystatechanged, setTimeout - if (isFunction(setImmediate)) { - scheduleMethod = function (action) { - var id = nextHandle++; - tasksByHandle[id] = action; - setImmediate(function () { runTask(id); }); - - return id; - }; - } else if (typeof process !== 'undefined' && {}.toString.call(process) === '[object process]') { - scheduleMethod = function (action) { - var id = nextHandle++; - tasksByHandle[id] = action; - process.nextTick(function () { runTask(id); }); - - return id; - }; - } else if (postMessageSupported()) { - var MSG_PREFIX = 'ms.rx.schedule' + Math.random(); - - var onGlobalPostMessage = function (event) { - // Only if we're a match to avoid any other global events - if (typeof event.data === 'string' && event.data.substring(0, MSG_PREFIX.length) === MSG_PREFIX) { - runTask(event.data.substring(MSG_PREFIX.length)); - } - }; - - root.addEventListener('message', onGlobalPostMessage, false); - - scheduleMethod = function (action) { - var id = nextHandle++; - tasksByHandle[id] = action; - root.postMessage(MSG_PREFIX + id, '*'); - return id; - }; - } else if (!!root.MessageChannel) { - var channel = new root.MessageChannel(); - - channel.port1.onmessage = function (e) { runTask(e.data); }; - - scheduleMethod = function (action) { - var id = nextHandle++; - tasksByHandle[id] = action; - channel.port2.postMessage(id); - return id; - }; - } else if ('document' in root && 'onreadystatechange' in root.document.createElement('script')) { - - scheduleMethod = function (action) { - var scriptElement = root.document.createElement('script'); - var id = nextHandle++; - tasksByHandle[id] = action; - - scriptElement.onreadystatechange = function () { - runTask(id); - scriptElement.onreadystatechange = null; - scriptElement.parentNode.removeChild(scriptElement); - scriptElement = null; - }; - root.document.documentElement.appendChild(scriptElement); - return id; - }; - - } else { - scheduleMethod = function (action) { - var id = nextHandle++; - tasksByHandle[id] = action; - localSetTimeout(function () { - runTask(id); - }, 0); - - return id; - }; - } - }()); - - /** - * Gets a scheduler that schedules work via a timed callback based upon platform. - */ - var DefaultScheduler = (function (__super__) { - inherits(DefaultScheduler, __super__); - function DefaultScheduler() { - __super__.call(this); - } - - function scheduleAction(disposable, action, scheduler, state) { - return function schedule() { - disposable.setDisposable(Disposable._fixup(action(scheduler, state))); - }; - } - - function ClearDisposable(id) { - this._id = id; - this.isDisposed = false; - } - - ClearDisposable.prototype.dispose = function () { - if (!this.isDisposed) { - this.isDisposed = true; - clearMethod(this._id); - } - }; - - function LocalClearDisposable(id) { - this._id = id; - this.isDisposed = false; - } - - LocalClearDisposable.prototype.dispose = function () { - if (!this.isDisposed) { - this.isDisposed = true; - localClearTimeout(this._id); - } - }; - - DefaultScheduler.prototype.schedule = function (state, action) { - var disposable = new SingleAssignmentDisposable(), - id = scheduleMethod(scheduleAction(disposable, action, this, state)); - return new BinaryDisposable(disposable, new ClearDisposable(id)); - }; - - DefaultScheduler.prototype._scheduleFuture = function (state, dueTime, action) { - if (dueTime === 0) { return this.schedule(state, action); } - var disposable = new SingleAssignmentDisposable(), - id = localSetTimeout(scheduleAction(disposable, action, this, state), dueTime); - return new BinaryDisposable(disposable, new LocalClearDisposable(id)); - }; - - return DefaultScheduler; - }(Scheduler)); - - var defaultScheduler = Scheduler['default'] = Scheduler.async = new DefaultScheduler(); - - function IndexedItem(id, value) { - this.id = id; - this.value = value; - } - - IndexedItem.prototype.compareTo = function (other) { - var c = this.value.compareTo(other.value); - c === 0 && (c = this.id - other.id); - return c; - }; - - var PriorityQueue = Rx.internals.PriorityQueue = function (capacity) { - this.items = new Array(capacity); - this.length = 0; - }; - - var priorityProto = PriorityQueue.prototype; - priorityProto.isHigherPriority = function (left, right) { - return this.items[left].compareTo(this.items[right]) < 0; - }; - - priorityProto.percolate = function (index) { - if (index >= this.length || index < 0) { return; } - var parent = index - 1 >> 1; - if (parent < 0 || parent === index) { return; } - if (this.isHigherPriority(index, parent)) { - var temp = this.items[index]; - this.items[index] = this.items[parent]; - this.items[parent] = temp; - this.percolate(parent); - } - }; - - priorityProto.heapify = function (index) { - +index || (index = 0); - if (index >= this.length || index < 0) { return; } - var left = 2 * index + 1, - right = 2 * index + 2, - first = index; - if (left < this.length && this.isHigherPriority(left, first)) { - first = left; - } - if (right < this.length && this.isHigherPriority(right, first)) { - first = right; - } - if (first !== index) { - var temp = this.items[index]; - this.items[index] = this.items[first]; - this.items[first] = temp; - this.heapify(first); - } - }; - - priorityProto.peek = function () { return this.items[0].value; }; - - priorityProto.removeAt = function (index) { - this.items[index] = this.items[--this.length]; - this.items[this.length] = undefined; - this.heapify(); - }; - - priorityProto.dequeue = function () { - var result = this.peek(); - this.removeAt(0); - return result; - }; - - priorityProto.enqueue = function (item) { - var index = this.length++; - this.items[index] = new IndexedItem(PriorityQueue.count++, item); - this.percolate(index); - }; - - priorityProto.remove = function (item) { - for (var i = 0; i < this.length; i++) { - if (this.items[i].value === item) { - this.removeAt(i); - return true; - } - } - return false; - }; - PriorityQueue.count = 0; - - /** - * Represents a notification to an observer. - */ - var Notification = Rx.Notification = (function () { - function Notification() { - - } - - Notification.prototype._accept = function (onNext, onError, onCompleted) { - throw new NotImplementedError(); - }; - - Notification.prototype._acceptObserver = function (onNext, onError, onCompleted) { - throw new NotImplementedError(); - }; - - /** - * Invokes the delegate corresponding to the notification or the observer's method corresponding to the notification and returns the produced result. - * @param {Function | Observer} observerOrOnNext Function to invoke for an OnNext notification or Observer to invoke the notification on.. - * @param {Function} onError Function to invoke for an OnError notification. - * @param {Function} onCompleted Function to invoke for an OnCompleted notification. - * @returns {Any} Result produced by the observation. - */ - Notification.prototype.accept = function (observerOrOnNext, onError, onCompleted) { - return observerOrOnNext && typeof observerOrOnNext === 'object' ? - this._acceptObserver(observerOrOnNext) : - this._accept(observerOrOnNext, onError, onCompleted); - }; - - /** - * 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. - */ - Notification.prototype.toObservable = function (scheduler) { - var self = this; - isScheduler(scheduler) || (scheduler = immediateScheduler); - return new AnonymousObservable(function (o) { - return scheduler.schedule(self, function (_, notification) { - notification._acceptObserver(o); - notification.kind === 'N' && o.onCompleted(); - }); - }); - }; - - return Notification; - })(); - - var OnNextNotification = (function (__super__) { - inherits(OnNextNotification, __super__); - function OnNextNotification(value) { - this.value = value; - this.kind = 'N'; - } - - OnNextNotification.prototype._accept = function (onNext) { - return onNext(this.value); - }; - - OnNextNotification.prototype._acceptObserver = function (o) { - return o.onNext(this.value); - }; - - OnNextNotification.prototype.toString = function () { - return 'OnNext(' + this.value + ')'; - }; - - return OnNextNotification; - }(Notification)); - - var OnErrorNotification = (function (__super__) { - inherits(OnErrorNotification, __super__); - function OnErrorNotification(error) { - this.error = error; - this.kind = 'E'; - } - - OnErrorNotification.prototype._accept = function (onNext, onError) { - return onError(this.error); - }; - - OnErrorNotification.prototype._acceptObserver = function (o) { - return o.onError(this.error); - }; - - OnErrorNotification.prototype.toString = function () { - return 'OnError(' + this.error + ')'; - }; - - return OnErrorNotification; - }(Notification)); - - var OnCompletedNotification = (function (__super__) { - inherits(OnCompletedNotification, __super__); - function OnCompletedNotification() { - this.kind = 'C'; - } - - OnCompletedNotification.prototype._accept = function (onNext, onError, onCompleted) { - return onCompleted(); - }; - - OnCompletedNotification.prototype._acceptObserver = function (o) { - return o.onCompleted(); - }; - - OnCompletedNotification.prototype.toString = function () { - return 'OnCompleted()'; - }; - - return OnCompletedNotification; - }(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. - */ - var notificationCreateOnNext = Notification.createOnNext = function (value) { - return new OnNextNotification(value); - }; - - /** - * 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. - */ - var notificationCreateOnError = Notification.createOnError = function (error) { - return new OnErrorNotification(error); - }; - - /** - * Creates an object that represents an OnCompleted notification to an observer. - * @returns {Notification} The OnCompleted notification. - */ - var notificationCreateOnCompleted = Notification.createOnCompleted = function () { - return new OnCompletedNotification(); - }; - - /** - * Supports push-style iteration over an observable sequence. - */ - var Observer = Rx.Observer = function () { }; - - /** - * 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. - */ - var observerCreate = Observer.create = function (onNext, onError, onCompleted) { - onNext || (onNext = noop); - onError || (onError = defaultError); - onCompleted || (onCompleted = noop); - return new AnonymousObserver(onNext, onError, onCompleted); - }; - - /** - * Abstract base class for implementations of the Observer class. - * This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages. - */ - var AbstractObserver = Rx.internals.AbstractObserver = (function (__super__) { - inherits(AbstractObserver, __super__); - - /** - * Creates a new observer in a non-stopped state. - */ - function AbstractObserver() { - this.isStopped = false; - } - - // Must be implemented by other observers - AbstractObserver.prototype.next = notImplemented; - AbstractObserver.prototype.error = notImplemented; - AbstractObserver.prototype.completed = notImplemented; - - /** - * Notifies the observer of a new element in the sequence. - * @param {Any} value Next element in the sequence. - */ - AbstractObserver.prototype.onNext = function (value) { - !this.isStopped && this.next(value); - }; - - /** - * Notifies the observer that an exception has occurred. - * @param {Any} error The error that has occurred. - */ - AbstractObserver.prototype.onError = function (error) { - if (!this.isStopped) { - this.isStopped = true; - this.error(error); - } - }; - - /** - * Notifies the observer of the end of the sequence. - */ - AbstractObserver.prototype.onCompleted = function () { - if (!this.isStopped) { - this.isStopped = true; - this.completed(); - } - }; - - /** - * Disposes the observer, causing it to transition to the stopped state. - */ - AbstractObserver.prototype.dispose = function () { this.isStopped = true; }; - - AbstractObserver.prototype.fail = function (e) { - if (!this.isStopped) { - this.isStopped = true; - this.error(e); - return true; - } - - return false; - }; - - return AbstractObserver; - }(Observer)); - - /** - * Class to create an Observer instance from delegate-based implementations of the on* methods. - */ - var AnonymousObserver = Rx.AnonymousObserver = (function (__super__) { - inherits(AnonymousObserver, __super__); - - /** - * 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. - */ - function AnonymousObserver(onNext, onError, onCompleted) { - __super__.call(this); - this._onNext = onNext; - this._onError = onError; - this._onCompleted = onCompleted; - } - - /** - * Calls the onNext action. - * @param {Any} value Next element in the sequence. - */ - AnonymousObserver.prototype.next = function (value) { - this._onNext(value); - }; - - /** - * Calls the onError action. - * @param {Any} error The error that has occurred. - */ - AnonymousObserver.prototype.error = function (error) { - this._onError(error); - }; - - /** - * Calls the onCompleted action. - */ - AnonymousObserver.prototype.completed = function () { - this._onCompleted(); - }; - - return AnonymousObserver; - }(AbstractObserver)); - - var observableProto; - - /** - * Represents a push-style collection. - */ - var Observable = Rx.Observable = (function () { - - function makeSubscribe(self, subscribe) { - return function (o) { - var oldOnError = o.onError; - o.onError = function (e) { - makeStackTraceLong(e, self); - oldOnError.call(o, e); - }; - - return subscribe.call(self, o); - }; - } - - function Observable() { - if (Rx.config.longStackSupport && hasStacks) { - var oldSubscribe = this._subscribe; - var e = tryCatch(thrower)(new Error()).e; - this.stack = e.stack.substring(e.stack.indexOf('\n') + 1); - this._subscribe = makeSubscribe(this, oldSubscribe); - } - } - - observableProto = Observable.prototype; - - /** - * 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. - */ - Observable.isObservable = function (o) { - return o && isFunction(o.subscribe); - }; - - /** - * 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. - */ - observableProto.subscribe = observableProto.forEach = function (oOrOnNext, onError, onCompleted) { - return this._subscribe(typeof oOrOnNext === 'object' ? - oOrOnNext : - observerCreate(oOrOnNext, onError, onCompleted)); - }; - - /** - * 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. - */ - observableProto.subscribeOnNext = function (onNext, thisArg) { - return this._subscribe(observerCreate(typeof thisArg !== 'undefined' ? function(x) { onNext.call(thisArg, x); } : onNext)); - }; - - /** - * 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. - */ - observableProto.subscribeOnError = function (onError, thisArg) { - return this._subscribe(observerCreate(null, typeof thisArg !== 'undefined' ? function(e) { onError.call(thisArg, e); } : onError)); - }; - - /** - * 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. - */ - observableProto.subscribeOnCompleted = function (onCompleted, thisArg) { - return this._subscribe(observerCreate(null, null, typeof thisArg !== 'undefined' ? function() { onCompleted.call(thisArg); } : onCompleted)); - }; - - return Observable; - })(); - - var ScheduledObserver = Rx.internals.ScheduledObserver = (function (__super__) { - inherits(ScheduledObserver, __super__); - - function ScheduledObserver(scheduler, observer) { - __super__.call(this); - this.scheduler = scheduler; - this.observer = observer; - this.isAcquired = false; - this.hasFaulted = false; - this.queue = []; - this.disposable = new SerialDisposable(); - } - - function enqueueNext(observer, x) { return function () { observer.onNext(x); }; } - function enqueueError(observer, e) { return function () { observer.onError(e); }; } - function enqueueCompleted(observer) { return function () { observer.onCompleted(); }; } - - ScheduledObserver.prototype.next = function (x) { - this.queue.push(enqueueNext(this.observer, x)); - }; - - ScheduledObserver.prototype.error = function (e) { - this.queue.push(enqueueError(this.observer, e)); - }; - - ScheduledObserver.prototype.completed = function () { - this.queue.push(enqueueCompleted(this.observer)); - }; - - - function scheduleMethod(state, recurse) { - var work; - if (state.queue.length > 0) { - work = state.queue.shift(); - } else { - state.isAcquired = false; - return; - } - var res = tryCatch(work)(); - if (res === errorObj) { - state.queue = []; - state.hasFaulted = true; - return thrower(res.e); - } - recurse(state); - } - - ScheduledObserver.prototype.ensureActive = function () { - var isOwner = false; - if (!this.hasFaulted && this.queue.length > 0) { - isOwner = !this.isAcquired; - this.isAcquired = true; - } - isOwner && - this.disposable.setDisposable(this.scheduler.scheduleRecursive(this, scheduleMethod)); - }; - - ScheduledObserver.prototype.dispose = function () { - __super__.prototype.dispose.call(this); - this.disposable.dispose(); - }; - - return ScheduledObserver; - }(AbstractObserver)); - - var ObservableBase = Rx.ObservableBase = (function (__super__) { - inherits(ObservableBase, __super__); - - function fixSubscriber(subscriber) { - return subscriber && isFunction(subscriber.dispose) ? subscriber : - isFunction(subscriber) ? disposableCreate(subscriber) : disposableEmpty; - } - - function setDisposable(s, state) { - var ado = state[0], self = state[1]; - var sub = tryCatch(self.subscribeCore).call(self, ado); - if (sub === errorObj && !ado.fail(errorObj.e)) { thrower(errorObj.e); } - ado.setDisposable(fixSubscriber(sub)); - } - - function ObservableBase() { - __super__.call(this); - } - - ObservableBase.prototype._subscribe = function (o) { - var ado = new AutoDetachObserver(o), state = [ado, this]; - - if (currentThreadScheduler.scheduleRequired()) { - currentThreadScheduler.schedule(state, setDisposable); - } else { - setDisposable(null, state); - } - return ado; - }; - - ObservableBase.prototype.subscribeCore = notImplemented; - - return ObservableBase; - }(Observable)); - -var FlatMapObservable = Rx.FlatMapObservable = (function(__super__) { - - inherits(FlatMapObservable, __super__); - - function FlatMapObservable(source, selector, resultSelector, thisArg) { - this.resultSelector = isFunction(resultSelector) ? resultSelector : null; - this.selector = bindCallback(isFunction(selector) ? selector : function() { return selector; }, thisArg, 3); - this.source = source; - __super__.call(this); - } - - FlatMapObservable.prototype.subscribeCore = function(o) { - return this.source.subscribe(new InnerObserver(o, this.selector, this.resultSelector, this)); - }; - - inherits(InnerObserver, AbstractObserver); - function InnerObserver(observer, selector, resultSelector, source) { - this.i = 0; - this.selector = selector; - this.resultSelector = resultSelector; - this.source = source; - this.o = observer; - AbstractObserver.call(this); - } - - InnerObserver.prototype._wrapResult = function(result, x, i) { - return this.resultSelector ? - result.map(function(y, i2) { return this.resultSelector(x, y, i, i2); }, this) : - result; - }; - - InnerObserver.prototype.next = function(x) { - var i = this.i++; - var result = tryCatch(this.selector)(x, i, this.source); - if (result === errorObj) { return this.o.onError(result.e); } - - isPromise(result) && (result = observableFromPromise(result)); - (isArrayLike(result) || isIterable(result)) && (result = Observable.from(result)); - this.o.onNext(this._wrapResult(result, x, i)); - }; - - InnerObserver.prototype.error = function(e) { this.o.onError(e); }; - - InnerObserver.prototype.completed = function() { this.o.onCompleted(); }; - - return FlatMapObservable; - -}(ObservableBase)); - - var Enumerable = Rx.internals.Enumerable = function () { }; - - function IsDisposedDisposable(state) { - this._s = state; - this.isDisposed = false; - } - - IsDisposedDisposable.prototype.dispose = function () { - if (!this.isDisposed) { - this.isDisposed = true; - this._s.isDisposed = true; - } - }; - - var ConcatEnumerableObservable = (function(__super__) { - inherits(ConcatEnumerableObservable, __super__); - function ConcatEnumerableObservable(sources) { - this.sources = sources; - __super__.call(this); - } - - function scheduleMethod(state, recurse) { - if (state.isDisposed) { return; } - var currentItem = tryCatch(state.e.next).call(state.e); - if (currentItem === errorObj) { return state.o.onError(currentItem.e); } - if (currentItem.done) { return state.o.onCompleted(); } - - // Check if promise - var currentValue = currentItem.value; - isPromise(currentValue) && (currentValue = observableFromPromise(currentValue)); - - var d = new SingleAssignmentDisposable(); - state.subscription.setDisposable(d); - d.setDisposable(currentValue.subscribe(new InnerObserver(state, recurse))); - } - - ConcatEnumerableObservable.prototype.subscribeCore = function (o) { - var subscription = new SerialDisposable(); - var state = { - isDisposed: false, - o: o, - subscription: subscription, - e: this.sources[$iterator$]() - }; - - var cancelable = currentThreadScheduler.scheduleRecursive(state, scheduleMethod); - return new NAryDisposable([subscription, cancelable, new IsDisposedDisposable(state)]); - }; - - function InnerObserver(state, recurse) { - this._state = state; - this._recurse = recurse; - AbstractObserver.call(this); - } - - inherits(InnerObserver, AbstractObserver); - - InnerObserver.prototype.next = function (x) { this._state.o.onNext(x); }; - InnerObserver.prototype.error = function (e) { this._state.o.onError(e); }; - InnerObserver.prototype.completed = function () { this._recurse(this._state); }; - - return ConcatEnumerableObservable; - }(ObservableBase)); - - Enumerable.prototype.concat = function () { - return new ConcatEnumerableObservable(this); - }; - - var CatchErrorObservable = (function(__super__) { - function CatchErrorObservable(sources) { - this.sources = sources; - __super__.call(this); - } - - inherits(CatchErrorObservable, __super__); - - function scheduleMethod(state, recurse) { - if (state.isDisposed) { return; } - var currentItem = tryCatch(state.e.next).call(state.e); - if (currentItem === errorObj) { return state.o.onError(currentItem.e); } - if (currentItem.done) { return state.lastError !== null ? state.o.onError(state.lastError) : state.o.onCompleted(); } - - var currentValue = currentItem.value; - isPromise(currentValue) && (currentValue = observableFromPromise(currentValue)); - - var d = new SingleAssignmentDisposable(); - state.subscription.setDisposable(d); - d.setDisposable(currentValue.subscribe(new InnerObserver(state, recurse))); - } - - CatchErrorObservable.prototype.subscribeCore = function (o) { - var subscription = new SerialDisposable(); - var state = { - isDisposed: false, - e: this.sources[$iterator$](), - subscription: subscription, - lastError: null, - o: o - }; - - var cancelable = currentThreadScheduler.scheduleRecursive(state, scheduleMethod); - return new NAryDisposable([subscription, cancelable, new IsDisposedDisposable(state)]); - }; - - function InnerObserver(state, recurse) { - this._state = state; - this._recurse = recurse; - AbstractObserver.call(this); - } - - inherits(InnerObserver, AbstractObserver); - - InnerObserver.prototype.next = function (x) { this._state.o.onNext(x); }; - InnerObserver.prototype.error = function (e) { this._state.lastError = e; this._recurse(this._state); }; - InnerObserver.prototype.completed = function () { this._state.o.onCompleted(); }; - - return CatchErrorObservable; - }(ObservableBase)); - - Enumerable.prototype.catchError = function () { - return new CatchErrorObservable(this); - }; - - var RepeatEnumerable = (function (__super__) { - inherits(RepeatEnumerable, __super__); - function RepeatEnumerable(v, c) { - this.v = v; - this.c = c == null ? -1 : c; - } - - RepeatEnumerable.prototype[$iterator$] = function () { - return new RepeatEnumerator(this); - }; - - function RepeatEnumerator(p) { - this.v = p.v; - this.l = p.c; - } - - RepeatEnumerator.prototype.next = function () { - if (this.l === 0) { return doneEnumerator; } - if (this.l > 0) { this.l--; } - return { done: false, value: this.v }; - }; - - return RepeatEnumerable; - }(Enumerable)); - - var enumerableRepeat = Enumerable.repeat = function (value, repeatCount) { - return new RepeatEnumerable(value, repeatCount); - }; - - var OfEnumerable = (function(__super__) { - inherits(OfEnumerable, __super__); - function OfEnumerable(s, fn, thisArg) { - this.s = s; - this.fn = fn ? bindCallback(fn, thisArg, 3) : null; - } - OfEnumerable.prototype[$iterator$] = function () { - return new OfEnumerator(this); - }; - - function OfEnumerator(p) { - this.i = -1; - this.s = p.s; - this.l = this.s.length; - this.fn = p.fn; - } - - OfEnumerator.prototype.next = function () { - return ++this.i < this.l ? - { done: false, value: !this.fn ? this.s[this.i] : this.fn(this.s[this.i], this.i, this.s) } : - doneEnumerator; - }; - - return OfEnumerable; - }(Enumerable)); - - var enumerableOf = Enumerable.of = function (source, selector, thisArg) { - return new OfEnumerable(source, selector, thisArg); - }; - - var ToArrayObservable = (function(__super__) { - inherits(ToArrayObservable, __super__); - function ToArrayObservable(source) { - this.source = source; - __super__.call(this); - } - - ToArrayObservable.prototype.subscribeCore = function(o) { - return this.source.subscribe(new InnerObserver(o)); - }; - - inherits(InnerObserver, AbstractObserver); - function InnerObserver(o) { - this.o = o; - this.a = []; - AbstractObserver.call(this); - } - - InnerObserver.prototype.next = function (x) { this.a.push(x); }; - InnerObserver.prototype.error = function (e) { this.o.onError(e); }; - InnerObserver.prototype.completed = function () { this.o.onNext(this.a); this.o.onCompleted(); }; - - return ToArrayObservable; - }(ObservableBase)); - - /** - * 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. - */ - observableProto.toArray = function () { - return new ToArrayObservable(this); - }; - - /** - * 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. - */ - Observable.create = function (subscribe, parent) { - return new AnonymousObservable(subscribe, parent); - }; - - var Defer = (function(__super__) { - inherits(Defer, __super__); - function Defer(factory) { - this._f = factory; - __super__.call(this); - } - - Defer.prototype.subscribeCore = function (o) { - var result = tryCatch(this._f)(); - if (result === errorObj) { return observableThrow(result.e).subscribe(o);} - isPromise(result) && (result = observableFromPromise(result)); - return result.subscribe(o); - }; - - return Defer; - }(ObservableBase)); - - /** - * 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. - */ - var observableDefer = Observable.defer = function (observableFactory) { - return new Defer(observableFactory); - }; - - var EmptyObservable = (function(__super__) { - inherits(EmptyObservable, __super__); - function EmptyObservable(scheduler) { - this.scheduler = scheduler; - __super__.call(this); - } - - EmptyObservable.prototype.subscribeCore = function (observer) { - var sink = new EmptySink(observer, this.scheduler); - return sink.run(); - }; - - function EmptySink(observer, scheduler) { - this.observer = observer; - this.scheduler = scheduler; - } - - function scheduleItem(s, state) { - state.onCompleted(); - return disposableEmpty; - } - - EmptySink.prototype.run = function () { - var state = this.observer; - return this.scheduler === immediateScheduler ? - scheduleItem(null, state) : - this.scheduler.schedule(state, scheduleItem); - }; - - return EmptyObservable; - }(ObservableBase)); - - var EMPTY_OBSERVABLE = new EmptyObservable(immediateScheduler); - - /** - * 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. - */ - var observableEmpty = Observable.empty = function (scheduler) { - isScheduler(scheduler) || (scheduler = immediateScheduler); - return scheduler === immediateScheduler ? EMPTY_OBSERVABLE : new EmptyObservable(scheduler); - }; - - var FromObservable = (function(__super__) { - inherits(FromObservable, __super__); - function FromObservable(iterable, fn, scheduler) { - this._iterable = iterable; - this._fn = fn; - this._scheduler = scheduler; - __super__.call(this); - } - - function createScheduleMethod(o, it, fn) { - return function loopRecursive(i, recurse) { - var next = tryCatch(it.next).call(it); - if (next === errorObj) { return o.onError(next.e); } - if (next.done) { return o.onCompleted(); } - - var result = next.value; - - if (isFunction(fn)) { - result = tryCatch(fn)(result, i); - if (result === errorObj) { return o.onError(result.e); } - } - - o.onNext(result); - recurse(i + 1); - }; - } - - FromObservable.prototype.subscribeCore = function (o) { - var list = Object(this._iterable), - it = getIterable(list); - - return this._scheduler.scheduleRecursive(0, createScheduleMethod(o, it, this._fn)); - }; - - return FromObservable; - }(ObservableBase)); - - var maxSafeInteger = Math.pow(2, 53) - 1; - - function StringIterable(s) { - this._s = s; - } - - StringIterable.prototype[$iterator$] = function () { - return new StringIterator(this._s); - }; - - function StringIterator(s) { - this._s = s; - this._l = s.length; - this._i = 0; - } - - StringIterator.prototype[$iterator$] = function () { - return this; - }; - - StringIterator.prototype.next = function () { - return this._i < this._l ? { done: false, value: this._s.charAt(this._i++) } : doneEnumerator; - }; - - function ArrayIterable(a) { - this._a = a; - } - - ArrayIterable.prototype[$iterator$] = function () { - return new ArrayIterator(this._a); - }; - - function ArrayIterator(a) { - this._a = a; - this._l = toLength(a); - this._i = 0; - } - - ArrayIterator.prototype[$iterator$] = function () { - return this; - }; - - ArrayIterator.prototype.next = function () { - return this._i < this._l ? { done: false, value: this._a[this._i++] } : doneEnumerator; - }; - - function numberIsFinite(value) { - return typeof value === 'number' && root.isFinite(value); - } - - function isNan(n) { - return n !== n; - } - - function getIterable(o) { - var i = o[$iterator$], it; - if (!i && typeof o === 'string') { - it = new StringIterable(o); - return it[$iterator$](); - } - if (!i && o.length !== undefined) { - it = new ArrayIterable(o); - return it[$iterator$](); - } - if (!i) { throw new TypeError('Object is not iterable'); } - return o[$iterator$](); - } - - function sign(value) { - var number = +value; - if (number === 0) { return number; } - if (isNaN(number)) { return number; } - return number < 0 ? -1 : 1; - } - - function toLength(o) { - var len = +o.length; - if (isNaN(len)) { return 0; } - if (len === 0 || !numberIsFinite(len)) { return len; } - len = sign(len) * Math.floor(Math.abs(len)); - if (len <= 0) { return 0; } - if (len > maxSafeInteger) { return maxSafeInteger; } - return len; - } - - /** - * 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. - */ - var observableFrom = Observable.from = function (iterable, mapFn, thisArg, scheduler) { - if (iterable == null) { - throw new Error('iterable cannot be null.') - } - if (mapFn && !isFunction(mapFn)) { - throw new Error('mapFn when provided must be a function'); - } - if (mapFn) { - var mapper = bindCallback(mapFn, thisArg, 2); - } - isScheduler(scheduler) || (scheduler = currentThreadScheduler); - return new FromObservable(iterable, mapper, scheduler); - } - - var FromArrayObservable = (function(__super__) { - inherits(FromArrayObservable, __super__); - function FromArrayObservable(args, scheduler) { - this._args = args; - this._scheduler = scheduler; - __super__.call(this); - } - - function scheduleMethod(o, args) { - var len = args.length; - return function loopRecursive (i, recurse) { - if (i < len) { - o.onNext(args[i]); - recurse(i + 1); - } else { - o.onCompleted(); - } - }; - } - - FromArrayObservable.prototype.subscribeCore = function (o) { - return this._scheduler.scheduleRecursive(0, scheduleMethod(o, this._args)); - }; - - return FromArrayObservable; - }(ObservableBase)); - - /** - * 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. - */ - var observableFromArray = Observable.fromArray = function (array, scheduler) { - isScheduler(scheduler) || (scheduler = currentThreadScheduler); - return new FromArrayObservable(array, scheduler) - }; - - var NeverObservable = (function(__super__) { - inherits(NeverObservable, __super__); - function NeverObservable() { - __super__.call(this); - } - - NeverObservable.prototype.subscribeCore = function (observer) { - return disposableEmpty; - }; - - return NeverObservable; - }(ObservableBase)); - - var NEVER_OBSERVABLE = new NeverObservable(); - - /** - * 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. - */ - var observableNever = Observable.never = function () { - return NEVER_OBSERVABLE; - }; - - function observableOf (scheduler, array) { - isScheduler(scheduler) || (scheduler = currentThreadScheduler); - return new FromArrayObservable(array, scheduler); - } - - /** - * 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. - */ - Observable.of = function () { - var len = arguments.length, args = new Array(len); - for(var i = 0; i < len; i++) { args[i] = arguments[i]; } - return new FromArrayObservable(args, currentThreadScheduler); - }; - - /** - * 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. - */ - Observable.ofWithScheduler = function (scheduler) { - var len = arguments.length, args = new Array(len - 1); - for(var i = 1; i < len; i++) { args[i - 1] = arguments[i]; } - return new FromArrayObservable(args, scheduler); - }; - - var PairsObservable = (function(__super__) { - inherits(PairsObservable, __super__); - function PairsObservable(o, scheduler) { - this._o = o; - this._keys = Object.keys(o); - this._scheduler = scheduler; - __super__.call(this); - } - - function scheduleMethod(o, obj, keys) { - return function loopRecursive(i, recurse) { - if (i < keys.length) { - var key = keys[i]; - o.onNext([key, obj[key]]); - recurse(i + 1); - } else { - o.onCompleted(); - } - }; - } - - PairsObservable.prototype.subscribeCore = function (o) { - return this._scheduler.scheduleRecursive(0, scheduleMethod(o, this._o, this._keys)); - }; - - return PairsObservable; - }(ObservableBase)); - - /** - * 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. - */ - Observable.pairs = function (obj, scheduler) { - scheduler || (scheduler = currentThreadScheduler); - return new PairsObservable(obj, scheduler); - }; - - var RangeObservable = (function(__super__) { - inherits(RangeObservable, __super__); - function RangeObservable(start, count, scheduler) { - this.start = start; - this.rangeCount = count; - this.scheduler = scheduler; - __super__.call(this); - } - - function loopRecursive(start, count, o) { - return function loop (i, recurse) { - if (i < count) { - o.onNext(start + i); - recurse(i + 1); - } else { - o.onCompleted(); - } - }; - } - - RangeObservable.prototype.subscribeCore = function (o) { - return this.scheduler.scheduleRecursive( - 0, - loopRecursive(this.start, this.rangeCount, o) - ); - }; - - return RangeObservable; - }(ObservableBase)); - - /** - * Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages. - * @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. - */ - Observable.range = function (start, count, scheduler) { - isScheduler(scheduler) || (scheduler = currentThreadScheduler); - return new RangeObservable(start, count, scheduler); - }; - - var RepeatObservable = (function(__super__) { - inherits(RepeatObservable, __super__); - function RepeatObservable(value, repeatCount, scheduler) { - this.value = value; - this.repeatCount = repeatCount == null ? -1 : repeatCount; - this.scheduler = scheduler; - __super__.call(this); - } - - RepeatObservable.prototype.subscribeCore = function (observer) { - var sink = new RepeatSink(observer, this); - return sink.run(); - }; - - return RepeatObservable; - }(ObservableBase)); - - function RepeatSink(observer, parent) { - this.observer = observer; - this.parent = parent; - } - - RepeatSink.prototype.run = function () { - var observer = this.observer, value = this.parent.value; - function loopRecursive(i, recurse) { - if (i === -1 || i > 0) { - observer.onNext(value); - i > 0 && i--; - } - if (i === 0) { return observer.onCompleted(); } - recurse(i); - } - - return this.parent.scheduler.scheduleRecursive(this.parent.repeatCount, loopRecursive); - }; - - /** - * Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages. - * @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. - */ - Observable.repeat = function (value, repeatCount, scheduler) { - isScheduler(scheduler) || (scheduler = currentThreadScheduler); - return new RepeatObservable(value, repeatCount, scheduler); - }; - - var JustObservable = (function(__super__) { - inherits(JustObservable, __super__); - function JustObservable(value, scheduler) { - this._value = value; - this._scheduler = scheduler; - __super__.call(this); - } - - JustObservable.prototype.subscribeCore = function (o) { - var state = [this._value, o]; - return this._scheduler === immediateScheduler ? - scheduleItem(null, state) : - this._scheduler.schedule(state, scheduleItem); - }; - - function scheduleItem(s, state) { - var value = state[0], observer = state[1]; - observer.onNext(value); - observer.onCompleted(); - return disposableEmpty; - } - - return JustObservable; - }(ObservableBase)); - - /** - * 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 0) { - this.parent.handleSubscribe(this.parent.q.shift()); - } else { - this.parent.activeCount--; - this.parent.done && this.parent.activeCount === 0 && this.parent.o.onCompleted(); - } - }; - - return MergeObserver; - }(AbstractObserver)); - - /** - * 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. - * @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. - */ - observableProto.merge = function (maxConcurrentOrOther) { - return typeof maxConcurrentOrOther !== 'number' ? - observableMerge(this, maxConcurrentOrOther) : - new MergeObservable(this, maxConcurrentOrOther); - }; - - /** - * 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. - */ - var observableMerge = Observable.merge = function () { - var scheduler, sources = [], i, len = arguments.length; - if (!arguments[0]) { - scheduler = immediateScheduler; - for(i = 1; i < len; i++) { sources.push(arguments[i]); } - } else if (isScheduler(arguments[0])) { - scheduler = arguments[0]; - for(i = 1; i < len; i++) { sources.push(arguments[i]); } - } else { - scheduler = immediateScheduler; - for(i = 0; i < len; i++) { sources.push(arguments[i]); } - } - if (Array.isArray(sources[0])) { - sources = sources[0]; - } - return observableOf(scheduler, sources).mergeAll(); - }; - - var CompositeError = Rx.CompositeError = function(errors) { - this.innerErrors = errors; - this.message = 'This contains multiple errors. Check the innerErrors'; - Error.call(this); - }; - CompositeError.prototype = Object.create(Error.prototype); - CompositeError.prototype.name = 'CompositeError'; - - var MergeDelayErrorObservable = (function(__super__) { - inherits(MergeDelayErrorObservable, __super__); - function MergeDelayErrorObservable(source) { - this.source = source; - __super__.call(this); - } - - MergeDelayErrorObservable.prototype.subscribeCore = function (o) { - var group = new CompositeDisposable(), - m = new SingleAssignmentDisposable(), - state = { isStopped: false, errors: [], o: o }; - - group.add(m); - m.setDisposable(this.source.subscribe(new MergeDelayErrorObserver(group, state))); - - return group; - }; - - return MergeDelayErrorObservable; - }(ObservableBase)); - - var MergeDelayErrorObserver = (function(__super__) { - inherits(MergeDelayErrorObserver, __super__); - function MergeDelayErrorObserver(group, state) { - this._group = group; - this._state = state; - __super__.call(this); - } - - function setCompletion(o, errors) { - if (errors.length === 0) { - o.onCompleted(); - } else if (errors.length === 1) { - o.onError(errors[0]); - } else { - o.onError(new CompositeError(errors)); - } - } - - MergeDelayErrorObserver.prototype.next = function (x) { - var inner = new SingleAssignmentDisposable(); - this._group.add(inner); - - // Check for promises support - isPromise(x) && (x = observableFromPromise(x)); - inner.setDisposable(x.subscribe(new InnerObserver(inner, this._group, this._state))); - }; - - MergeDelayErrorObserver.prototype.error = function (e) { - this._state.errors.push(e); - this._state.isStopped = true; - this._group.length === 1 && setCompletion(this._state.o, this._state.errors); - }; - - MergeDelayErrorObserver.prototype.completed = function () { - this._state.isStopped = true; - this._group.length === 1 && setCompletion(this._state.o, this._state.errors); - }; - - inherits(InnerObserver, __super__); - function InnerObserver(inner, group, state) { - this._inner = inner; - this._group = group; - this._state = state; - __super__.call(this); - } - - InnerObserver.prototype.next = function (x) { this._state.o.onNext(x); }; - InnerObserver.prototype.error = function (e) { - this._state.errors.push(e); - this._group.remove(this._inner); - this._state.isStopped && this._group.length === 1 && setCompletion(this._state.o, this._state.errors); - }; - InnerObserver.prototype.completed = function () { - this._group.remove(this._inner); - this._state.isStopped && this._group.length === 1 && setCompletion(this._state.o, this._state.errors); - }; - - return MergeDelayErrorObserver; - }(AbstractObserver)); - - /** - * 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 - */ - Observable.mergeDelayError = function() { - var args; - if (Array.isArray(arguments[0])) { - args = arguments[0]; - } else { - var len = arguments.length; - args = new Array(len); - for(var i = 0; i < len; i++) { args[i] = arguments[i]; } - } - var source = observableOf(null, args); - return new MergeDelayErrorObservable(source); - }; - - var MergeAllObservable = (function (__super__) { - inherits(MergeAllObservable, __super__); - - function MergeAllObservable(source) { - this.source = source; - __super__.call(this); - } - - MergeAllObservable.prototype.subscribeCore = function (o) { - var g = new CompositeDisposable(), m = new SingleAssignmentDisposable(); - g.add(m); - m.setDisposable(this.source.subscribe(new MergeAllObserver(o, g))); - return g; - }; - - return MergeAllObservable; - }(ObservableBase)); - - var MergeAllObserver = (function (__super__) { - function MergeAllObserver(o, g) { - this.o = o; - this.g = g; - this.done = false; - __super__.call(this); - } - - inherits(MergeAllObserver, __super__); - - MergeAllObserver.prototype.next = function(innerSource) { - var sad = new SingleAssignmentDisposable(); - this.g.add(sad); - isPromise(innerSource) && (innerSource = observableFromPromise(innerSource)); - sad.setDisposable(innerSource.subscribe(new InnerObserver(this, sad))); - }; - - MergeAllObserver.prototype.error = function (e) { - this.o.onError(e); - }; - - MergeAllObserver.prototype.completed = function () { - this.done = true; - this.g.length === 1 && this.o.onCompleted(); - }; - - function InnerObserver(parent, sad) { - this.parent = parent; - this.sad = sad; - __super__.call(this); - } - - inherits(InnerObserver, __super__); - - InnerObserver.prototype.next = function (x) { - this.parent.o.onNext(x); - }; - InnerObserver.prototype.error = function (e) { - this.parent.o.onError(e); - }; - InnerObserver.prototype.completed = function () { - this.parent.g.remove(this.sad); - this.parent.done && this.parent.g.length === 1 && this.parent.o.onCompleted(); - }; - - return MergeAllObserver; - }(AbstractObserver)); - - /** - * Merges an observable sequence of observable sequences into an observable sequence. - * @returns {Observable} The observable sequence that merges the elements of the inner sequences. - */ - observableProto.mergeAll = function () { - return new MergeAllObservable(this); - }; - - var SkipUntilObservable = (function(__super__) { - inherits(SkipUntilObservable, __super__); - - function SkipUntilObservable(source, other) { - this._s = source; - this._o = isPromise(other) ? observableFromPromise(other) : other; - this._open = false; - __super__.call(this); - } - - SkipUntilObservable.prototype.subscribeCore = function(o) { - var leftSubscription = new SingleAssignmentDisposable(); - leftSubscription.setDisposable(this._s.subscribe(new SkipUntilSourceObserver(o, this))); - - isPromise(this._o) && (this._o = observableFromPromise(this._o)); - - var rightSubscription = new SingleAssignmentDisposable(); - rightSubscription.setDisposable(this._o.subscribe(new SkipUntilOtherObserver(o, this, rightSubscription))); - - return new BinaryDisposable(leftSubscription, rightSubscription); - }; - - return SkipUntilObservable; - }(ObservableBase)); - - var SkipUntilSourceObserver = (function(__super__) { - inherits(SkipUntilSourceObserver, __super__); - function SkipUntilSourceObserver(o, p) { - this._o = o; - this._p = p; - __super__.call(this); - } - - SkipUntilSourceObserver.prototype.next = function (x) { - this._p._open && this._o.onNext(x); - }; - - SkipUntilSourceObserver.prototype.error = function (err) { - this._o.onError(err); - }; - - SkipUntilSourceObserver.prototype.onCompleted = function () { - this._p._open && this._o.onCompleted(); - }; - - return SkipUntilSourceObserver; - }(AbstractObserver)); - - var SkipUntilOtherObserver = (function(__super__) { - inherits(SkipUntilOtherObserver, __super__); - function SkipUntilOtherObserver(o, p, r) { - this._o = o; - this._p = p; - this._r = r; - __super__.call(this); - } - - SkipUntilOtherObserver.prototype.next = function () { - this._p._open = true; - this._r.dispose(); - }; - - SkipUntilOtherObserver.prototype.error = function (err) { - this._o.onError(err); - }; - - SkipUntilOtherObserver.prototype.onCompleted = function () { - this._r.dispose(); - }; - - return SkipUntilOtherObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.skipUntil = function (other) { - return new SkipUntilObservable(this, other); - }; - - var SwitchObservable = (function(__super__) { - inherits(SwitchObservable, __super__); - function SwitchObservable(source) { - this.source = source; - __super__.call(this); - } - - SwitchObservable.prototype.subscribeCore = function (o) { - var inner = new SerialDisposable(), s = this.source.subscribe(new SwitchObserver(o, inner)); - return new BinaryDisposable(s, inner); - }; - - inherits(SwitchObserver, AbstractObserver); - function SwitchObserver(o, inner) { - this.o = o; - this.inner = inner; - this.stopped = false; - this.latest = 0; - this.hasLatest = false; - AbstractObserver.call(this); - } - - SwitchObserver.prototype.next = function (innerSource) { - var d = new SingleAssignmentDisposable(), id = ++this.latest; - this.hasLatest = true; - this.inner.setDisposable(d); - isPromise(innerSource) && (innerSource = observableFromPromise(innerSource)); - d.setDisposable(innerSource.subscribe(new InnerObserver(this, id))); - }; - - SwitchObserver.prototype.error = function (e) { - this.o.onError(e); - }; - - SwitchObserver.prototype.completed = function () { - this.stopped = true; - !this.hasLatest && this.o.onCompleted(); - }; - - inherits(InnerObserver, AbstractObserver); - function InnerObserver(parent, id) { - this.parent = parent; - this.id = id; - AbstractObserver.call(this); - } - InnerObserver.prototype.next = function (x) { - this.parent.latest === this.id && this.parent.o.onNext(x); - }; - - InnerObserver.prototype.error = function (e) { - this.parent.latest === this.id && this.parent.o.onError(e); - }; - - InnerObserver.prototype.completed = function () { - if (this.parent.latest === this.id) { - this.parent.hasLatest = false; - this.parent.stopped && this.parent.o.onCompleted(); - } - }; - - return SwitchObservable; - }(ObservableBase)); - - /** - * 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. - */ - observableProto['switch'] = observableProto.switchLatest = function () { - return new SwitchObservable(this); - }; - - var TakeUntilObservable = (function(__super__) { - inherits(TakeUntilObservable, __super__); - - function TakeUntilObservable(source, other) { - this.source = source; - this.other = isPromise(other) ? observableFromPromise(other) : other; - __super__.call(this); - } - - TakeUntilObservable.prototype.subscribeCore = function(o) { - return new BinaryDisposable( - this.source.subscribe(o), - this.other.subscribe(new TakeUntilObserver(o)) - ); - }; - - return TakeUntilObservable; - }(ObservableBase)); - - var TakeUntilObserver = (function(__super__) { - inherits(TakeUntilObserver, __super__); - function TakeUntilObserver(o) { - this._o = o; - __super__.call(this); - } - - TakeUntilObserver.prototype.next = function () { - this._o.onCompleted(); - }; - - TakeUntilObserver.prototype.error = function (err) { - this._o.onError(err); - }; - - TakeUntilObserver.prototype.onCompleted = noop; - - return TakeUntilObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.takeUntil = function (other) { - return new TakeUntilObservable(this, other); - }; - - function falseFactory() { return false; } - function argumentsToArray() { - var len = arguments.length, args = new Array(len); - for(var i = 0; i < len; i++) { args[i] = arguments[i]; } - return args; - } - - var WithLatestFromObservable = (function(__super__) { - inherits(WithLatestFromObservable, __super__); - function WithLatestFromObservable(source, sources, resultSelector) { - this._s = source; - this._ss = sources; - this._cb = resultSelector; - __super__.call(this); - } - - WithLatestFromObservable.prototype.subscribeCore = function (o) { - var len = this._ss.length; - var state = { - hasValue: arrayInitialize(len, falseFactory), - hasValueAll: false, - values: new Array(len) - }; - - var n = this._ss.length, subscriptions = new Array(n + 1); - for (var i = 0; i < n; i++) { - var other = this._ss[i], sad = new SingleAssignmentDisposable(); - isPromise(other) && (other = observableFromPromise(other)); - sad.setDisposable(other.subscribe(new WithLatestFromOtherObserver(o, i, state))); - subscriptions[i] = sad; - } - - var outerSad = new SingleAssignmentDisposable(); - outerSad.setDisposable(this._s.subscribe(new WithLatestFromSourceObserver(o, this._cb, state))); - subscriptions[n] = outerSad; - - return new NAryDisposable(subscriptions); - }; - - return WithLatestFromObservable; - }(ObservableBase)); - - var WithLatestFromOtherObserver = (function (__super__) { - inherits(WithLatestFromOtherObserver, __super__); - function WithLatestFromOtherObserver(o, i, state) { - this._o = o; - this._i = i; - this._state = state; - __super__.call(this); - } - - WithLatestFromOtherObserver.prototype.next = function (x) { - this._state.values[this._i] = x; - this._state.hasValue[this._i] = true; - this._state.hasValueAll = this._state.hasValue.every(identity); - }; - - WithLatestFromOtherObserver.prototype.error = function (e) { - this._o.onError(e); - }; - - WithLatestFromOtherObserver.prototype.completed = noop; - - return WithLatestFromOtherObserver; - }(AbstractObserver)); - - var WithLatestFromSourceObserver = (function (__super__) { - inherits(WithLatestFromSourceObserver, __super__); - function WithLatestFromSourceObserver(o, cb, state) { - this._o = o; - this._cb = cb; - this._state = state; - __super__.call(this); - } - - WithLatestFromSourceObserver.prototype.next = function (x) { - var allValues = [x].concat(this._state.values); - if (!this._state.hasValueAll) { return; } - var res = tryCatch(this._cb).apply(null, allValues); - if (res === errorObj) { return this._o.onError(res.e); } - this._o.onNext(res); - }; - - WithLatestFromSourceObserver.prototype.error = function (e) { - this._o.onError(e); - }; - - WithLatestFromSourceObserver.prototype.completed = function () { - this._o.onCompleted(); - }; - - return WithLatestFromSourceObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.withLatestFrom = function () { - if (arguments.length === 0) { throw new Error('invalid arguments'); } - - var len = arguments.length, args = new Array(len); - for(var i = 0; i < len; i++) { args[i] = arguments[i]; } - var resultSelector = isFunction(args[len - 1]) ? args.pop() : argumentsToArray; - Array.isArray(args[0]) && (args = args[0]); - - return new WithLatestFromObservable(this, args, resultSelector); - }; - - function falseFactory() { return false; } - function emptyArrayFactory() { return []; } - - var ZipObservable = (function(__super__) { - inherits(ZipObservable, __super__); - function ZipObservable(sources, resultSelector) { - this._s = sources; - this._cb = resultSelector; - __super__.call(this); - } - - ZipObservable.prototype.subscribeCore = function(observer) { - var n = this._s.length, - subscriptions = new Array(n), - done = arrayInitialize(n, falseFactory), - q = arrayInitialize(n, emptyArrayFactory); - - for (var i = 0; i < n; i++) { - var source = this._s[i], sad = new SingleAssignmentDisposable(); - subscriptions[i] = sad; - isPromise(source) && (source = observableFromPromise(source)); - sad.setDisposable(source.subscribe(new ZipObserver(observer, i, this, q, done))); - } - - return new NAryDisposable(subscriptions); - }; - - return ZipObservable; - }(ObservableBase)); - - var ZipObserver = (function (__super__) { - inherits(ZipObserver, __super__); - function ZipObserver(o, i, p, q, d) { - this._o = o; - this._i = i; - this._p = p; - this._q = q; - this._d = d; - __super__.call(this); - } - - function notEmpty(x) { return x.length > 0; } - function shiftEach(x) { return x.shift(); } - function notTheSame(i) { - return function (x, j) { - return j !== i; - }; - } - - ZipObserver.prototype.next = function (x) { - this._q[this._i].push(x); - if (this._q.every(notEmpty)) { - var queuedValues = this._q.map(shiftEach); - var res = tryCatch(this._p._cb).apply(null, queuedValues); - if (res === errorObj) { return this._o.onError(res.e); } - this._o.onNext(res); - } else if (this._d.filter(notTheSame(this._i)).every(identity)) { - this._o.onCompleted(); - } - }; - - ZipObserver.prototype.error = function (e) { - this._o.onError(e); - }; - - ZipObserver.prototype.completed = function () { - this._d[this._i] = true; - this._d.every(identity) && this._o.onCompleted(); - }; - - return ZipObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.zip = function () { - if (arguments.length === 0) { throw new Error('invalid arguments'); } - - var len = arguments.length, args = new Array(len); - for(var i = 0; i < len; i++) { args[i] = arguments[i]; } - var resultSelector = isFunction(args[len - 1]) ? args.pop() : argumentsToArray; - Array.isArray(args[0]) && (args = args[0]); - - var parent = this; - args.unshift(parent); - - return new ZipObservable(args, resultSelector); - }; - - /** - * 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. - */ - Observable.zip = function () { - var len = arguments.length, args = new Array(len); - for(var i = 0; i < len; i++) { args[i] = arguments[i]; } - if (Array.isArray(args[0])) { - args = isFunction(args[1]) ? args[0].concat(args[1]) : args[0]; - } - var first = args.shift(); - return first.zip.apply(first, args); - }; - -function falseFactory() { return false; } -function emptyArrayFactory() { return []; } -function argumentsToArray() { - var len = arguments.length, args = new Array(len); - for(var i = 0; i < len; i++) { args[i] = arguments[i]; } - return args; -} - -var ZipIterableObservable = (function(__super__) { - inherits(ZipIterableObservable, __super__); - function ZipIterableObservable(sources, cb) { - this.sources = sources; - this._cb = cb; - __super__.call(this); - } - - ZipIterableObservable.prototype.subscribeCore = function (o) { - var sources = this.sources, len = sources.length, subscriptions = new Array(len); - - var state = { - q: arrayInitialize(len, emptyArrayFactory), - done: arrayInitialize(len, falseFactory), - cb: this._cb, - o: o - }; - - for (var i = 0; i < len; i++) { - (function (i) { - var source = sources[i], sad = new SingleAssignmentDisposable(); - (isArrayLike(source) || isIterable(source)) && (source = observableFrom(source)); - - subscriptions[i] = sad; - sad.setDisposable(source.subscribe(new ZipIterableObserver(state, i))); - }(i)); - } - - return new NAryDisposable(subscriptions); - }; - - return ZipIterableObservable; -}(ObservableBase)); - -var ZipIterableObserver = (function (__super__) { - inherits(ZipIterableObserver, __super__); - function ZipIterableObserver(s, i) { - this._s = s; - this._i = i; - __super__.call(this); - } - - function notEmpty(x) { return x.length > 0; } - function shiftEach(x) { return x.shift(); } - function notTheSame(i) { - return function (x, j) { - return j !== i; - }; - } - - ZipIterableObserver.prototype.next = function (x) { - this._s.q[this._i].push(x); - if (this._s.q.every(notEmpty)) { - var queuedValues = this._s.q.map(shiftEach), - res = tryCatch(this._s.cb).apply(null, queuedValues); - if (res === errorObj) { return this._s.o.onError(res.e); } - this._s.o.onNext(res); - } else if (this._s.done.filter(notTheSame(this._i)).every(identity)) { - this._s.o.onCompleted(); - } - }; - - ZipIterableObserver.prototype.error = function (e) { this._s.o.onError(e); }; - - ZipIterableObserver.prototype.completed = function () { - this._s.done[this._i] = true; - this._s.done.every(identity) && this._s.o.onCompleted(); - }; - - return ZipIterableObserver; -}(AbstractObserver)); - -/** - * 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. - */ -observableProto.zipIterable = function () { - if (arguments.length === 0) { throw new Error('invalid arguments'); } - - var len = arguments.length, args = new Array(len); - for(var i = 0; i < len; i++) { args[i] = arguments[i]; } - var resultSelector = isFunction(args[len - 1]) ? args.pop() : argumentsToArray; - - var parent = this; - args.unshift(parent); - return new ZipIterableObservable(args, resultSelector); -}; - - function asObservable(source) { - return function subscribe(o) { return source.subscribe(o); }; - } - - /** - * Hides the identity of an observable sequence. - * @returns {Observable} An observable sequence that hides the identity of the source sequence. - */ - observableProto.asObservable = function () { - return new AnonymousObservable(asObservable(this), this); - }; - - var DematerializeObservable = (function (__super__) { - inherits(DematerializeObservable, __super__); - function DematerializeObservable(source) { - this.source = source; - __super__.call(this); - } - - DematerializeObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new DematerializeObserver(o)); - }; - - return DematerializeObservable; - }(ObservableBase)); - - var DematerializeObserver = (function (__super__) { - inherits(DematerializeObserver, __super__); - - function DematerializeObserver(o) { - this._o = o; - __super__.call(this); - } - - DematerializeObserver.prototype.next = function (x) { x.accept(this._o); }; - DematerializeObserver.prototype.error = function (e) { this._o.onError(e); }; - DematerializeObserver.prototype.completed = function () { this._o.onCompleted(); }; - - return DematerializeObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.dematerialize = function () { - return new DematerializeObservable(this); - }; - - var DistinctUntilChangedObservable = (function(__super__) { - inherits(DistinctUntilChangedObservable, __super__); - function DistinctUntilChangedObservable(source, keyFn, comparer) { - this.source = source; - this.keyFn = keyFn; - this.comparer = comparer; - __super__.call(this); - } - - DistinctUntilChangedObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new DistinctUntilChangedObserver(o, this.keyFn, this.comparer)); - }; - - return DistinctUntilChangedObservable; - }(ObservableBase)); - - var DistinctUntilChangedObserver = (function(__super__) { - inherits(DistinctUntilChangedObserver, __super__); - function DistinctUntilChangedObserver(o, keyFn, comparer) { - this.o = o; - this.keyFn = keyFn; - this.comparer = comparer; - this.hasCurrentKey = false; - this.currentKey = null; - __super__.call(this); - } - - DistinctUntilChangedObserver.prototype.next = function (x) { - var key = x, comparerEquals; - if (isFunction(this.keyFn)) { - key = tryCatch(this.keyFn)(x); - if (key === errorObj) { return this.o.onError(key.e); } - } - if (this.hasCurrentKey) { - comparerEquals = tryCatch(this.comparer)(this.currentKey, key); - if (comparerEquals === errorObj) { return this.o.onError(comparerEquals.e); } - } - if (!this.hasCurrentKey || !comparerEquals) { - this.hasCurrentKey = true; - this.currentKey = key; - this.o.onNext(x); - } - }; - DistinctUntilChangedObserver.prototype.error = function(e) { - this.o.onError(e); - }; - DistinctUntilChangedObserver.prototype.completed = function () { - this.o.onCompleted(); - }; - - return DistinctUntilChangedObserver; - }(AbstractObserver)); - - /** - * Returns an observable sequence that contains only distinct contiguous elements according to the keyFn and the comparer. - * @param {Function} [keyFn] 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. - */ - observableProto.distinctUntilChanged = function (keyFn, comparer) { - comparer || (comparer = defaultComparer); - return new DistinctUntilChangedObservable(this, keyFn, comparer); - }; - - var TapObservable = (function(__super__) { - inherits(TapObservable,__super__); - function TapObservable(source, observerOrOnNext, onError, onCompleted) { - this.source = source; - this._oN = observerOrOnNext; - this._oE = onError; - this._oC = onCompleted; - __super__.call(this); - } - - TapObservable.prototype.subscribeCore = function(o) { - return this.source.subscribe(new InnerObserver(o, this)); - }; - - inherits(InnerObserver, AbstractObserver); - function InnerObserver(o, p) { - this.o = o; - this.t = !p._oN || isFunction(p._oN) ? - observerCreate(p._oN || noop, p._oE || noop, p._oC || noop) : - p._oN; - this.isStopped = false; - AbstractObserver.call(this); - } - InnerObserver.prototype.next = function(x) { - var res = tryCatch(this.t.onNext).call(this.t, x); - if (res === errorObj) { this.o.onError(res.e); } - this.o.onNext(x); - }; - InnerObserver.prototype.error = function(err) { - var res = tryCatch(this.t.onError).call(this.t, err); - if (res === errorObj) { return this.o.onError(res.e); } - this.o.onError(err); - }; - InnerObserver.prototype.completed = function() { - var res = tryCatch(this.t.onCompleted).call(this.t); - if (res === errorObj) { return this.o.onError(res.e); } - this.o.onCompleted(); - }; - - return TapObservable; - }(ObservableBase)); - - /** - * 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 o. - * @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. - */ - observableProto['do'] = observableProto.tap = observableProto.doAction = function (observerOrOnNext, onError, onCompleted) { - return new TapObservable(this, observerOrOnNext, onError, onCompleted); - }; - - /** - * 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. - */ - observableProto.doOnNext = observableProto.tapOnNext = function (onNext, thisArg) { - return this.tap(typeof thisArg !== 'undefined' ? function (x) { onNext.call(thisArg, x); } : onNext); - }; - - /** - * 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. - */ - observableProto.doOnError = observableProto.tapOnError = function (onError, thisArg) { - return this.tap(noop, typeof thisArg !== 'undefined' ? function (e) { onError.call(thisArg, e); } : onError); - }; - - /** - * 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. - */ - observableProto.doOnCompleted = observableProto.tapOnCompleted = function (onCompleted, thisArg) { - return this.tap(noop, null, typeof thisArg !== 'undefined' ? function () { onCompleted.call(thisArg); } : onCompleted); - }; - - var FinallyObservable = (function (__super__) { - inherits(FinallyObservable, __super__); - function FinallyObservable(source, fn, thisArg) { - this.source = source; - this._fn = bindCallback(fn, thisArg, 0); - __super__.call(this); - } - - FinallyObservable.prototype.subscribeCore = function (o) { - var d = tryCatch(this.source.subscribe).call(this.source, o); - if (d === errorObj) { - this._fn(); - thrower(d.e); - } - - return new FinallyDisposable(d, this._fn); - }; - - function FinallyDisposable(s, fn) { - this.isDisposed = false; - this._s = s; - this._fn = fn; - } - FinallyDisposable.prototype.dispose = function () { - if (!this.isDisposed) { - var res = tryCatch(this._s.dispose).call(this._s); - this._fn(); - res === errorObj && thrower(res.e); - } - }; - - return FinallyObservable; - - }(ObservableBase)); - - /** - * 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. - */ - observableProto['finally'] = function (action, thisArg) { - return new FinallyObservable(this, action, thisArg); - }; - - var IgnoreElementsObservable = (function(__super__) { - inherits(IgnoreElementsObservable, __super__); - - function IgnoreElementsObservable(source) { - this.source = source; - __super__.call(this); - } - - IgnoreElementsObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new InnerObserver(o)); - }; - - function InnerObserver(o) { - this.o = o; - this.isStopped = false; - } - InnerObserver.prototype.onNext = noop; - InnerObserver.prototype.onError = function (err) { - if(!this.isStopped) { - this.isStopped = true; - this.o.onError(err); - } - }; - InnerObserver.prototype.onCompleted = function () { - if(!this.isStopped) { - this.isStopped = true; - this.o.onCompleted(); - } - }; - InnerObserver.prototype.dispose = function() { this.isStopped = true; }; - InnerObserver.prototype.fail = function (e) { - if (!this.isStopped) { - this.isStopped = true; - this.observer.onError(e); - return true; - } - - return false; - }; - - return IgnoreElementsObservable; - }(ObservableBase)); - - /** - * 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. - */ - observableProto.ignoreElements = function () { - return new IgnoreElementsObservable(this); - }; - - var MaterializeObservable = (function (__super__) { - inherits(MaterializeObservable, __super__); - function MaterializeObservable(source, fn) { - this.source = source; - __super__.call(this); - } - - MaterializeObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new MaterializeObserver(o)); - }; - - return MaterializeObservable; - }(ObservableBase)); - - var MaterializeObserver = (function (__super__) { - inherits(MaterializeObserver, __super__); - - function MaterializeObserver(o) { - this._o = o; - __super__.call(this); - } - - MaterializeObserver.prototype.next = function (x) { this._o.onNext(notificationCreateOnNext(x)) }; - MaterializeObserver.prototype.error = function (e) { this._o.onNext(notificationCreateOnError(e)); this._o.onCompleted(); }; - MaterializeObserver.prototype.completed = function () { this._o.onNext(notificationCreateOnCompleted()); this._o.onCompleted(); }; - - return MaterializeObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.materialize = function () { - return new MaterializeObservable(this); - }; - - /** - * 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. - */ - observableProto.repeat = function (repeatCount) { - return enumerableRepeat(this, repeatCount).concat(); - }; - - /** - * 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. - */ - observableProto.retry = function (retryCount) { - return enumerableRepeat(this, retryCount).catchError(); - }; - - function repeat(value) { - return { - '@@iterator': function () { - return { - next: function () { - return { done: false, value: value }; - } - }; - } - }; - } - - var RetryWhenObservable = (function(__super__) { - function createDisposable(state) { - return { - isDisposed: false, - dispose: function () { - if (!this.isDisposed) { - this.isDisposed = true; - state.isDisposed = true; - } - } - }; - } - - function RetryWhenObservable(source, notifier) { - this.source = source; - this._notifier = notifier; - __super__.call(this); - } - - inherits(RetryWhenObservable, __super__); - - RetryWhenObservable.prototype.subscribeCore = function (o) { - var exceptions = new Subject(), - notifier = new Subject(), - handled = this._notifier(exceptions), - notificationDisposable = handled.subscribe(notifier); - - var e = this.source['@@iterator'](); - - var state = { isDisposed: false }, - lastError, - subscription = new SerialDisposable(); - var cancelable = currentThreadScheduler.scheduleRecursive(null, function (_, recurse) { - if (state.isDisposed) { return; } - var currentItem = e.next(); - - if (currentItem.done) { - if (lastError) { - o.onError(lastError); - } else { - o.onCompleted(); - } - return; - } - - // Check if promise - var currentValue = currentItem.value; - isPromise(currentValue) && (currentValue = observableFromPromise(currentValue)); - - var outer = new SingleAssignmentDisposable(); - var inner = new SingleAssignmentDisposable(); - subscription.setDisposable(new BinaryDisposable(inner, outer)); - outer.setDisposable(currentValue.subscribe( - function(x) { o.onNext(x); }, - function (exn) { - inner.setDisposable(notifier.subscribe(recurse, function(ex) { - o.onError(ex); - }, function() { - o.onCompleted(); - })); - - exceptions.onNext(exn); - outer.dispose(); - }, - function() { o.onCompleted(); })); - }); - - return new NAryDisposable([notificationDisposable, subscription, cancelable, createDisposable(state)]); - }; - - return RetryWhenObservable; - }(ObservableBase)); - - observableProto.retryWhen = function (notifier) { - return new RetryWhenObservable(repeat(this), notifier); - }; - - function repeat(value) { - return { - '@@iterator': function () { - return { - next: function () { - return { done: false, value: value }; - } - }; - } - }; - } - - var RepeatWhenObservable = (function(__super__) { - function createDisposable(state) { - return { - isDisposed: false, - dispose: function () { - if (!this.isDisposed) { - this.isDisposed = true; - state.isDisposed = true; - } - } - }; - } - - function RepeatWhenObservable(source, notifier) { - this.source = source; - this._notifier = notifier; - __super__.call(this); - } - - inherits(RepeatWhenObservable, __super__); - - RepeatWhenObservable.prototype.subscribeCore = function (o) { - var completions = new Subject(), - notifier = new Subject(), - handled = this._notifier(completions), - notificationDisposable = handled.subscribe(notifier); - - var e = this.source['@@iterator'](); - - var state = { isDisposed: false }, - lastError, - subscription = new SerialDisposable(); - var cancelable = currentThreadScheduler.scheduleRecursive(null, function (_, recurse) { - if (state.isDisposed) { return; } - var currentItem = e.next(); - - if (currentItem.done) { - if (lastError) { - o.onError(lastError); - } else { - o.onCompleted(); - } - return; - } - - // Check if promise - var currentValue = currentItem.value; - isPromise(currentValue) && (currentValue = observableFromPromise(currentValue)); - - var outer = new SingleAssignmentDisposable(); - var inner = new SingleAssignmentDisposable(); - subscription.setDisposable(new BinaryDisposable(inner, outer)); - outer.setDisposable(currentValue.subscribe( - function(x) { o.onNext(x); }, - function (exn) { o.onError(exn); }, - function() { - inner.setDisposable(notifier.subscribe(recurse, function(ex) { - o.onError(ex); - }, function() { - o.onCompleted(); - })); - - completions.onNext(null); - outer.dispose(); - })); - }); - - return new NAryDisposable([notificationDisposable, subscription, cancelable, createDisposable(state)]); - }; - - return RepeatWhenObservable; - }(ObservableBase)); - - observableProto.repeatWhen = function (notifier) { - return new RepeatWhenObservable(repeat(this), notifier); - }; - - var ScanObservable = (function(__super__) { - inherits(ScanObservable, __super__); - function ScanObservable(source, accumulator, hasSeed, seed) { - this.source = source; - this.accumulator = accumulator; - this.hasSeed = hasSeed; - this.seed = seed; - __super__.call(this); - } - - ScanObservable.prototype.subscribeCore = function(o) { - return this.source.subscribe(new ScanObserver(o,this)); - }; - - return ScanObservable; - }(ObservableBase)); - - var ScanObserver = (function (__super__) { - inherits(ScanObserver, __super__); - function ScanObserver(o, parent) { - this._o = o; - this._p = parent; - this._fn = parent.accumulator; - this._hs = parent.hasSeed; - this._s = parent.seed; - this._ha = false; - this._a = null; - this._hv = false; - this._i = 0; - __super__.call(this); - } - - ScanObserver.prototype.next = function (x) { - !this._hv && (this._hv = true); - if (this._ha) { - this._a = tryCatch(this._fn)(this._a, x, this._i, this._p); - } else { - this._a = this._hs ? tryCatch(this._fn)(this._s, x, this._i, this._p) : x; - this._ha = true; - } - if (this._a === errorObj) { return this._o.onError(this._a.e); } - this._o.onNext(this._a); - this._i++; - }; - - ScanObserver.prototype.error = function (e) { - this._o.onError(e); - }; - - ScanObserver.prototype.completed = function () { - !this._hv && this._hs && this._o.onNext(this._s); - this._o.onCompleted(); - }; - - return ScanObserver; - }(AbstractObserver)); - - /** - * 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. - * @param {Mixed} [seed] The initial accumulator value. - * @param {Function} accumulator An accumulator function to be invoked on each element. - * @returns {Observable} An observable sequence containing the accumulated values. - */ - observableProto.scan = function () { - var hasSeed = false, seed, accumulator = arguments[0]; - if (arguments.length === 2) { - hasSeed = true; - seed = arguments[1]; - } - return new ScanObservable(this, accumulator, hasSeed, seed); - }; - - var SkipLastObservable = (function (__super__) { - inherits(SkipLastObservable, __super__); - function SkipLastObservable(source, c) { - this.source = source; - this._c = c; - __super__.call(this); - } - - SkipLastObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new SkipLastObserver(o, this._c)); - }; - - return SkipLastObservable; - }(ObservableBase)); - - var SkipLastObserver = (function (__super__) { - inherits(SkipLastObserver, __super__); - function SkipLastObserver(o, c) { - this._o = o; - this._c = c; - this._q = []; - __super__.call(this); - } - - SkipLastObserver.prototype.next = function (x) { - this._q.push(x); - this._q.length > this._c && this._o.onNext(this._q.shift()); - }; - - SkipLastObserver.prototype.error = function (e) { - this._o.onError(e); - }; - - SkipLastObserver.prototype.completed = function () { - this._o.onCompleted(); - }; - - return SkipLastObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.skipLast = function (count) { - if (count < 0) { throw new ArgumentOutOfRangeError(); } - return new SkipLastObservable(this, count); - }; - - /** - * 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. - */ - observableProto.startWith = function () { - var values, scheduler, start = 0; - if (!!arguments.length && isScheduler(arguments[0])) { - scheduler = arguments[0]; - start = 1; - } else { - scheduler = immediateScheduler; - } - for(var args = [], i = start, len = arguments.length; i < len; i++) { args.push(arguments[i]); } - return enumerableOf([observableFromArray(args, scheduler), this]).concat(); - }; - - var TakeLastObserver = (function (__super__) { - inherits(TakeLastObserver, __super__); - function TakeLastObserver(o, c) { - this._o = o; - this._c = c; - this._q = []; - __super__.call(this); - } - - TakeLastObserver.prototype.next = function (x) { - this._q.push(x); - this._q.length > this._c && this._q.shift(); - }; - - TakeLastObserver.prototype.error = function (e) { - this._o.onError(e); - }; - - TakeLastObserver.prototype.completed = function () { - while (this._q.length > 0) { this._o.onNext(this._q.shift()); } - this._o.onCompleted(); - }; - - return TakeLastObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.takeLast = function (count) { - if (count < 0) { throw new ArgumentOutOfRangeError(); } - var source = this; - return new AnonymousObservable(function (o) { - return source.subscribe(new TakeLastObserver(o, count)); - }, source); - }; - -observableProto.flatMapConcat = observableProto.concatMap = function(selector, resultSelector, thisArg) { - return new FlatMapObservable(this, selector, resultSelector, thisArg).merge(1); -}; - var MapObservable = (function (__super__) { - inherits(MapObservable, __super__); - - function MapObservable(source, selector, thisArg) { - this.source = source; - this.selector = bindCallback(selector, thisArg, 3); - __super__.call(this); - } - - function innerMap(selector, self) { - return function (x, i, o) { return selector.call(this, self.selector(x, i, o), i, o); }; - } - - MapObservable.prototype.internalMap = function (selector, thisArg) { - return new MapObservable(this.source, innerMap(selector, this), thisArg); - }; - - MapObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new InnerObserver(o, this.selector, this)); - }; - - inherits(InnerObserver, AbstractObserver); - function InnerObserver(o, selector, source) { - this.o = o; - this.selector = selector; - this.source = source; - this.i = 0; - AbstractObserver.call(this); - } - - InnerObserver.prototype.next = function(x) { - var result = tryCatch(this.selector)(x, this.i++, this.source); - if (result === errorObj) { return this.o.onError(result.e); } - this.o.onNext(result); - }; - - InnerObserver.prototype.error = function (e) { - this.o.onError(e); - }; - - InnerObserver.prototype.completed = function () { - this.o.onCompleted(); - }; - - return MapObservable; - - }(ObservableBase)); - - /** - * 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. - */ - observableProto.map = observableProto.select = function (selector, thisArg) { - var selectorFn = typeof selector === 'function' ? selector : function () { return selector; }; - return this instanceof MapObservable ? - this.internalMap(selectorFn, thisArg) : - new MapObservable(this, selectorFn, thisArg); - }; - - function plucker(args, len) { - return function mapper(x) { - var currentProp = x; - for (var i = 0; i < len; i++) { - var p = currentProp[args[i]]; - if (typeof p !== 'undefined') { - currentProp = p; - } else { - return undefined; - } - } - return currentProp; - }; - } - - /** - * 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. - */ - observableProto.pluck = function () { - var len = arguments.length, args = new Array(len); - if (len === 0) { throw new Error('List of properties cannot be empty.'); } - for(var i = 0; i < len; i++) { args[i] = arguments[i]; } - return this.map(plucker(args, len)); - }; - -observableProto.flatMap = observableProto.selectMany = function(selector, resultSelector, thisArg) { - return new FlatMapObservable(this, selector, resultSelector, thisArg).mergeAll(); -}; - -Rx.Observable.prototype.flatMapLatest = function(selector, resultSelector, thisArg) { - return new FlatMapObservable(this, selector, resultSelector, thisArg).switchLatest(); -}; - var SkipObservable = (function(__super__) { - inherits(SkipObservable, __super__); - function SkipObservable(source, count) { - this.source = source; - this._count = count; - __super__.call(this); - } - - SkipObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new SkipObserver(o, this._count)); - }; - - function SkipObserver(o, c) { - this._o = o; - this._r = c; - AbstractObserver.call(this); - } - - inherits(SkipObserver, AbstractObserver); - - SkipObserver.prototype.next = function (x) { - if (this._r <= 0) { - this._o.onNext(x); - } else { - this._r--; - } - }; - SkipObserver.prototype.error = function(e) { this._o.onError(e); }; - SkipObserver.prototype.completed = function() { this._o.onCompleted(); }; - - return SkipObservable; - }(ObservableBase)); - - /** - * 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. - */ - observableProto.skip = function (count) { - if (count < 0) { throw new ArgumentOutOfRangeError(); } - return new SkipObservable(this, count); - }; - - var SkipWhileObservable = (function (__super__) { - inherits(SkipWhileObservable, __super__); - function SkipWhileObservable(source, fn) { - this.source = source; - this._fn = fn; - __super__.call(this); - } - - SkipWhileObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new SkipWhileObserver(o, this)); - }; - - return SkipWhileObservable; - }(ObservableBase)); - - var SkipWhileObserver = (function (__super__) { - inherits(SkipWhileObserver, __super__); - - function SkipWhileObserver(o, p) { - this._o = o; - this._p = p; - this._i = 0; - this._r = false; - __super__.call(this); - } - - SkipWhileObserver.prototype.next = function (x) { - if (!this._r) { - var res = tryCatch(this._p._fn)(x, this._i++, this._p); - if (res === errorObj) { return this._o.onError(res.e); } - this._r = !res; - } - this._r && this._o.onNext(x); - }; - SkipWhileObserver.prototype.error = function (e) { this._o.onError(e); }; - SkipWhileObserver.prototype.completed = function () { this._o.onCompleted(); }; - - return SkipWhileObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.skipWhile = function (predicate, thisArg) { - var fn = bindCallback(predicate, thisArg, 3); - return new SkipWhileObservable(this, fn); - }; - - var TakeObservable = (function(__super__) { - inherits(TakeObservable, __super__); - function TakeObservable(source, count) { - this.source = source; - this._count = count; - __super__.call(this); - } - - TakeObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new TakeObserver(o, this._count)); - }; - - function TakeObserver(o, c) { - this._o = o; - this._c = c; - this._r = c; - AbstractObserver.call(this); - } - - inherits(TakeObserver, AbstractObserver); - - TakeObserver.prototype.next = function (x) { - if (this._r-- > 0) { - this._o.onNext(x); - this._r <= 0 && this._o.onCompleted(); - } - }; - - TakeObserver.prototype.error = function (e) { this._o.onError(e); }; - TakeObserver.prototype.completed = function () { this._o.onCompleted(); }; - - return TakeObservable; - }(ObservableBase)); - - /** - * 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). - * @param {Number} count The number of elements to return. - * @param {Scheduler} [scheduler] Scheduler used to produce an OnCompleted message in case 0) { - var now = scheduler.now(); - d = new Date(d.getTime() + p); - d.getTime() <= now && (d = new Date(now + p)); - } - observer.onNext(count); - self(count + 1, new Date(d)); - }); - }); - } - - function observableTimerTimeSpanAndPeriod(dueTime, period, scheduler) { - return dueTime === period ? - new AnonymousObservable(function (observer) { - return scheduler.schedulePeriodic(0, period, function (count) { - observer.onNext(count); - return count + 1; - }); - }) : - observableDefer(function () { - return observableTimerDateAndPeriod(new Date(scheduler.now() + dueTime), period, scheduler); - }); - } - - /** - * 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. - */ - var observableinterval = Observable.interval = function (period, scheduler) { - return observableTimerTimeSpanAndPeriod(period, period, isScheduler(scheduler) ? scheduler : defaultScheduler); - }; - - /** - * 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. - */ - var observableTimer = Observable.timer = function (dueTime, periodOrScheduler, scheduler) { - var period; - isScheduler(scheduler) || (scheduler = defaultScheduler); - if (periodOrScheduler != null && typeof periodOrScheduler === 'number') { - period = periodOrScheduler; - } else if (isScheduler(periodOrScheduler)) { - scheduler = periodOrScheduler; - } - if ((dueTime instanceof Date || typeof dueTime === 'number') && period === undefined) { - return _observableTimer(dueTime, scheduler); - } - if (dueTime instanceof Date && period !== undefined) { - return observableTimerDateAndPeriod(dueTime, periodOrScheduler, scheduler); - } - return observableTimerTimeSpanAndPeriod(dueTime, period, scheduler); - }; - - function observableDelayRelative(source, dueTime, scheduler) { - return new AnonymousObservable(function (o) { - var active = false, - cancelable = new SerialDisposable(), - exception = null, - q = [], - running = false, - subscription; - subscription = source.materialize().timestamp(scheduler).subscribe(function (notification) { - var d, shouldRun; - if (notification.value.kind === 'E') { - q = []; - q.push(notification); - exception = notification.value.error; - shouldRun = !running; - } else { - q.push({ value: notification.value, timestamp: notification.timestamp + dueTime }); - shouldRun = !active; - active = true; - } - if (shouldRun) { - if (exception !== null) { - o.onError(exception); - } else { - d = new SingleAssignmentDisposable(); - cancelable.setDisposable(d); - d.setDisposable(scheduler.scheduleRecursiveFuture(null, dueTime, function (_, self) { - var e, recurseDueTime, result, shouldRecurse; - if (exception !== null) { - return; - } - running = true; - do { - result = null; - if (q.length > 0 && q[0].timestamp - scheduler.now() <= 0) { - result = q.shift().value; - } - if (result !== null) { - result.accept(o); - } - } while (result !== null); - shouldRecurse = false; - recurseDueTime = 0; - if (q.length > 0) { - shouldRecurse = true; - recurseDueTime = Math.max(0, q[0].timestamp - scheduler.now()); - } else { - active = false; - } - e = exception; - running = false; - if (e !== null) { - o.onError(e); - } else if (shouldRecurse) { - self(null, recurseDueTime); - } - })); - } - } - }); - return new BinaryDisposable(subscription, cancelable); - }, source); - } - - function observableDelayAbsolute(source, dueTime, scheduler) { - return observableDefer(function () { - return observableDelayRelative(source, dueTime - scheduler.now(), scheduler); - }); - } - - function delayWithSelector(source, subscriptionDelay, delayDurationSelector) { - var subDelay, selector; - if (isFunction(subscriptionDelay)) { - selector = subscriptionDelay; - } else { - subDelay = subscriptionDelay; - selector = delayDurationSelector; - } - return new AnonymousObservable(function (o) { - var delays = new CompositeDisposable(), atEnd = false, subscription = new SerialDisposable(); - - function start() { - subscription.setDisposable(source.subscribe( - function (x) { - var delay = tryCatch(selector)(x); - if (delay === errorObj) { return o.onError(delay.e); } - var d = new SingleAssignmentDisposable(); - delays.add(d); - d.setDisposable(delay.subscribe( - function () { - o.onNext(x); - delays.remove(d); - done(); - }, - function (e) { o.onError(e); }, - function () { - o.onNext(x); - delays.remove(d); - done(); - } - )); - }, - function (e) { o.onError(e); }, - function () { - atEnd = true; - subscription.dispose(); - done(); - } - )); - } - - function done () { - atEnd && delays.length === 0 && o.onCompleted(); - } - - if (!subDelay) { - start(); - } else { - subscription.setDisposable(subDelay.subscribe(start, function (e) { o.onError(e); }, start)); - } - - return new BinaryDisposable(subscription, delays); - }, source); - } - - /** - * Time shifts the observable sequence by dueTime. - * The relative time intervals between the values are preserved. - * - * @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. - */ - observableProto.delay = function () { - var firstArg = arguments[0]; - if (typeof firstArg === 'number' || firstArg instanceof Date) { - var dueTime = firstArg, scheduler = arguments[1]; - isScheduler(scheduler) || (scheduler = defaultScheduler); - return dueTime instanceof Date ? - observableDelayAbsolute(this, dueTime, scheduler) : - observableDelayRelative(this, dueTime, scheduler); - } else if (Observable.isObservable(firstArg) || isFunction(firstArg)) { - return delayWithSelector(this, firstArg, arguments[1]); - } else { - throw new Error('Invalid arguments'); - } - }; - - var DebounceObservable = (function (__super__) { - inherits(DebounceObservable, __super__); - function DebounceObservable(source, dt, s) { - isScheduler(s) || (s = defaultScheduler); - this.source = source; - this._dt = dt; - this._s = s; - __super__.call(this); - } - - DebounceObservable.prototype.subscribeCore = function (o) { - var cancelable = new SerialDisposable(); - return new BinaryDisposable( - this.source.subscribe(new DebounceObserver(o, this._dt, this._s, cancelable)), - cancelable); - }; - - return DebounceObservable; - }(ObservableBase)); - - var DebounceObserver = (function (__super__) { - inherits(DebounceObserver, __super__); - function DebounceObserver(observer, dueTime, scheduler, cancelable) { - this._o = observer; - this._d = dueTime; - this._scheduler = scheduler; - this._c = cancelable; - this._v = null; - this._hv = false; - this._id = 0; - __super__.call(this); - } - - function scheduleFuture(s, state) { - state.self._hv && state.self._id === state.currentId && state.self._o.onNext(state.x); - state.self._hv = false; - } - - DebounceObserver.prototype.next = function (x) { - this._hv = true; - this._v = x; - var currentId = ++this._id, d = new SingleAssignmentDisposable(); - this._c.setDisposable(d); - d.setDisposable(this._scheduler.scheduleFuture(this, this._d, function (_, self) { - self._hv && self._id === currentId && self._o.onNext(x); - self._hv = false; - })); - }; - - DebounceObserver.prototype.error = function (e) { - this._c.dispose(); - this._o.onError(e); - this._hv = false; - this._id++; - }; - - DebounceObserver.prototype.completed = function () { - this._c.dispose(); - this._hv && this._o.onNext(this._v); - this._o.onCompleted(); - this._hv = false; - this._id++; - }; - - return DebounceObserver; - }(AbstractObserver)); - - function debounceWithSelector(source, durationSelector) { - return new AnonymousObservable(function (o) { - var value, hasValue = false, cancelable = new SerialDisposable(), id = 0; - var subscription = source.subscribe( - function (x) { - var throttle = tryCatch(durationSelector)(x); - if (throttle === errorObj) { return o.onError(throttle.e); } - - isPromise(throttle) && (throttle = observableFromPromise(throttle)); - - hasValue = true; - value = x; - id++; - var currentid = id, d = new SingleAssignmentDisposable(); - cancelable.setDisposable(d); - d.setDisposable(throttle.subscribe( - function () { - hasValue && id === currentid && o.onNext(value); - hasValue = false; - d.dispose(); - }, - function (e) { o.onError(e); }, - function () { - hasValue && id === currentid && o.onNext(value); - hasValue = false; - d.dispose(); - } - )); - }, - function (e) { - cancelable.dispose(); - o.onError(e); - hasValue = false; - id++; - }, - function () { - cancelable.dispose(); - hasValue && o.onNext(value); - o.onCompleted(); - hasValue = false; - id++; - } - ); - return new BinaryDisposable(subscription, cancelable); - }, source); - } - - observableProto.debounce = function () { - if (isFunction (arguments[0])) { - return debounceWithSelector(this, arguments[0]); - } else if (typeof arguments[0] === 'number') { - return new DebounceObservable(this, arguments[0], arguments[1]); - } else { - throw new Error('Invalid arguments'); - } - }; - - var TimestampObservable = (function (__super__) { - inherits(TimestampObservable, __super__); - function TimestampObservable(source, s) { - this.source = source; - this._s = s; - __super__.call(this); - } - - TimestampObservable.prototype.subscribeCore = function (o) { - return this.source.subscribe(new TimestampObserver(o, this._s)); - }; - - return TimestampObservable; - }(ObservableBase)); - - var TimestampObserver = (function (__super__) { - inherits(TimestampObserver, __super__); - function TimestampObserver(o, s) { - this._o = o; - this._s = s; - __super__.call(this); - } - - TimestampObserver.prototype.next = function (x) { - this._o.onNext({ value: x, timestamp: this._s.now() }); - }; - - TimestampObserver.prototype.error = function (e) { - this._o.onError(e); - }; - - TimestampObserver.prototype.completed = function () { - this._o.onCompleted(); - }; - - return TimestampObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.timestamp = function (scheduler) { - isScheduler(scheduler) || (scheduler = defaultScheduler); - return new TimestampObservable(this, scheduler); - }; - - var SampleObservable = (function(__super__) { - inherits(SampleObservable, __super__); - function SampleObservable(source, sampler) { - this.source = source; - this._sampler = sampler; - __super__.call(this); - } - - SampleObservable.prototype.subscribeCore = function (o) { - var state = { - o: o, - atEnd: false, - value: null, - hasValue: false, - sourceSubscription: new SingleAssignmentDisposable() - }; - - state.sourceSubscription.setDisposable(this.source.subscribe(new SampleSourceObserver(state))); - return new BinaryDisposable( - state.sourceSubscription, - this._sampler.subscribe(new SamplerObserver(state)) - ); - }; - - return SampleObservable; - }(ObservableBase)); - - var SamplerObserver = (function(__super__) { - inherits(SamplerObserver, __super__); - function SamplerObserver(s) { - this._s = s; - __super__.call(this); - } - - SamplerObserver.prototype._handleMessage = function () { - if (this._s.hasValue) { - this._s.hasValue = false; - this._s.o.onNext(this._s.value); - } - this._s.atEnd && this._s.o.onCompleted(); - }; - - SamplerObserver.prototype.next = function () { this._handleMessage(); }; - SamplerObserver.prototype.error = function (e) { this._s.onError(e); }; - SamplerObserver.prototype.completed = function () { this._handleMessage(); }; - - return SamplerObserver; - }(AbstractObserver)); - - var SampleSourceObserver = (function(__super__) { - inherits(SampleSourceObserver, __super__); - function SampleSourceObserver(s) { - this._s = s; - __super__.call(this); - } - - SampleSourceObserver.prototype.next = function (x) { - this._s.hasValue = true; - this._s.value = x; - }; - SampleSourceObserver.prototype.error = function (e) { this._s.o.onError(e); }; - SampleSourceObserver.prototype.completed = function () { - this._s.atEnd = true; - this._s.sourceSubscription.dispose(); - }; - - return SampleSourceObserver; - }(AbstractObserver)); - - /** - * 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. - */ - observableProto.sample = function (intervalOrSampler, scheduler) { - isScheduler(scheduler) || (scheduler = defaultScheduler); - return typeof intervalOrSampler === 'number' ? - new SampleObservable(this, observableinterval(intervalOrSampler, scheduler)) : - new SampleObservable(this, intervalOrSampler); - }; - - var TimeoutError = Rx.TimeoutError = function(message) { - this.message = message || 'Timeout has occurred'; - this.name = 'TimeoutError'; - Error.call(this); - }; - TimeoutError.prototype = Object.create(Error.prototype); - - function timeoutWithSelector(source, firstTimeout, timeoutDurationSelector, other) { - if (isFunction(firstTimeout)) { - other = timeoutDurationSelector; - timeoutDurationSelector = firstTimeout; - firstTimeout = observableNever(); - } - Observable.isObservable(other) || (other = observableThrow(new TimeoutError())); - return new AnonymousObservable(function (o) { - var subscription = new SerialDisposable(), - timer = new SerialDisposable(), - original = new SingleAssignmentDisposable(); - - subscription.setDisposable(original); - - var id = 0, switched = false; - - function setTimer(timeout) { - var myId = id, d = new SingleAssignmentDisposable(); - - function timerWins() { - switched = (myId === id); - return switched; - } - - timer.setDisposable(d); - d.setDisposable(timeout.subscribe(function () { - timerWins() && subscription.setDisposable(other.subscribe(o)); - d.dispose(); - }, function (e) { - timerWins() && o.onError(e); - }, function () { - timerWins() && subscription.setDisposable(other.subscribe(o)); - })); - }; - - setTimer(firstTimeout); - - function oWins() { - var res = !switched; - if (res) { id++; } - return res; - } - - original.setDisposable(source.subscribe(function (x) { - if (oWins()) { - o.onNext(x); - var timeout = tryCatch(timeoutDurationSelector)(x); - if (timeout === errorObj) { return o.onError(timeout.e); } - setTimer(isPromise(timeout) ? observableFromPromise(timeout) : timeout); - } - }, function (e) { - oWins() && o.onError(e); - }, function () { - oWins() && o.onCompleted(); - })); - return new BinaryDisposable(subscription, timer); - }, source); - } - - function timeout(source, dueTime, other, scheduler) { - if (isScheduler(other)) { - scheduler = other; - other = observableThrow(new TimeoutError()); - } - if (other instanceof Error) { other = observableThrow(other); } - isScheduler(scheduler) || (scheduler = defaultScheduler); - Observable.isObservable(other) || (other = observableThrow(new TimeoutError())); - return new AnonymousObservable(function (o) { - var id = 0, - original = new SingleAssignmentDisposable(), - subscription = new SerialDisposable(), - switched = false, - timer = new SerialDisposable(); - - subscription.setDisposable(original); - - function createTimer() { - var myId = id; - timer.setDisposable(scheduler.scheduleFuture(null, dueTime, function () { - switched = id === myId; - if (switched) { - isPromise(other) && (other = observableFromPromise(other)); - subscription.setDisposable(other.subscribe(o)); - } - })); - } - - createTimer(); - - original.setDisposable(source.subscribe(function (x) { - if (!switched) { - id++; - o.onNext(x); - createTimer(); - } - }, function (e) { - if (!switched) { - id++; - o.onError(e); - } - }, function () { - if (!switched) { - id++; - o.onCompleted(); - } - })); - return new BinaryDisposable(subscription, timer); - }, source); - } - - observableProto.timeout = function () { - var firstArg = arguments[0]; - if (firstArg instanceof Date || typeof firstArg === 'number') { - return timeout(this, firstArg, arguments[1], arguments[2]); - } else if (Observable.isObservable(firstArg) || isFunction(firstArg)) { - return timeoutWithSelector(this, firstArg, arguments[1], arguments[2]); - } else { - throw new Error('Invalid arguments'); - } - }; - - /** - * 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. - */ - observableProto.throttle = function (windowDuration, scheduler) { - isScheduler(scheduler) || (scheduler = defaultScheduler); - var duration = +windowDuration || 0; - if (duration <= 0) { throw new RangeError('windowDuration cannot be less or equal zero.'); } - var source = this; - return new AnonymousObservable(function (o) { - var lastOnNext = 0; - return source.subscribe( - function (x) { - var now = scheduler.now(); - if (lastOnNext === 0 || now - lastOnNext >= duration) { - lastOnNext = now; - o.onNext(x); - } - },function (e) { o.onError(e); }, function () { o.onCompleted(); } - ); - }, source); - }; - - var PausableObservable = (function (__super__) { - inherits(PausableObservable, __super__); - function PausableObservable(source, pauser) { - this.source = source; - this.controller = new Subject(); - - if (pauser && pauser.subscribe) { - this.pauser = this.controller.merge(pauser); - } else { - this.pauser = this.controller; - } - - __super__.call(this); - } - - PausableObservable.prototype._subscribe = function (o) { - var conn = this.source.publish(), - subscription = conn.subscribe(o), - connection = disposableEmpty; - - var pausable = this.pauser.distinctUntilChanged().subscribe(function (b) { - if (b) { - connection = conn.connect(); - } else { - connection.dispose(); - connection = disposableEmpty; - } - }); - - return new NAryDisposable([subscription, connection, pausable]); - }; - - PausableObservable.prototype.pause = function () { - this.controller.onNext(false); - }; - - PausableObservable.prototype.resume = function () { - this.controller.onNext(true); - }; - - return PausableObservable; - - }(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. - */ - observableProto.pausable = function (pauser) { - return new PausableObservable(this, pauser); - }; - - function combineLatestSource(source, subject, resultSelector) { - return new AnonymousObservable(function (o) { - var hasValue = [false, false], - hasValueAll = false, - isDone = false, - values = new Array(2), - err; - - function next(x, i) { - values[i] = x; - hasValue[i] = true; - if (hasValueAll || (hasValueAll = hasValue.every(identity))) { - if (err) { return o.onError(err); } - var res = tryCatch(resultSelector).apply(null, values); - if (res === errorObj) { return o.onError(res.e); } - o.onNext(res); - } - isDone && values[1] && o.onCompleted(); - } - - return new BinaryDisposable( - source.subscribe( - function (x) { - next(x, 0); - }, - function (e) { - if (values[1]) { - o.onError(e); - } else { - err = e; - } - }, - function () { - isDone = true; - values[1] && o.onCompleted(); - }), - subject.subscribe( - function (x) { - next(x, 1); - }, - function (e) { o.onError(e); }, - function () { - isDone = true; - next(true, 1); - }) - ); - }, source); - } - - var PausableBufferedObservable = (function (__super__) { - inherits(PausableBufferedObservable, __super__); - function PausableBufferedObservable(source, pauser) { - this.source = source; - this.controller = new Subject(); - - if (pauser && pauser.subscribe) { - this.pauser = this.controller.merge(pauser); - } else { - this.pauser = this.controller; - } - - __super__.call(this); - } - - PausableBufferedObservable.prototype._subscribe = function (o) { - var q = [], previousShouldFire; - - function drainQueue() { while (q.length > 0) { o.onNext(q.shift()); } } - - var subscription = - combineLatestSource( - this.source, - this.pauser.startWith(false).distinctUntilChanged(), - function (data, shouldFire) { - return { data: data, shouldFire: shouldFire }; - }) - .subscribe( - function (results) { - if (previousShouldFire !== undefined && results.shouldFire !== previousShouldFire) { - previousShouldFire = results.shouldFire; - // change in shouldFire - if (results.shouldFire) { drainQueue(); } - } else { - previousShouldFire = results.shouldFire; - // new data - if (results.shouldFire) { - o.onNext(results.data); - } else { - q.push(results.data); - } - } - }, - function (err) { - drainQueue(); - o.onError(err); - }, - function () { - drainQueue(); - o.onCompleted(); - } - ); - return subscription; - }; - - PausableBufferedObservable.prototype.pause = function () { - this.controller.onNext(false); - }; - - PausableBufferedObservable.prototype.resume = function () { - this.controller.onNext(true); - }; - - return PausableBufferedObservable; - - }(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. - */ - observableProto.pausableBuffered = function (pauser) { - return new PausableBufferedObservable(this, pauser); - }; - - var ControlledObservable = (function (__super__) { - inherits(ControlledObservable, __super__); - function ControlledObservable (source, enableQueue, scheduler) { - __super__.call(this); - this.subject = new ControlledSubject(enableQueue, scheduler); - this.source = source.multicast(this.subject).refCount(); - } - - ControlledObservable.prototype._subscribe = function (o) { - return this.source.subscribe(o); - }; - - ControlledObservable.prototype.request = function (numberOfItems) { - return this.subject.request(numberOfItems == null ? -1 : numberOfItems); - }; - - return ControlledObservable; - - }(Observable)); - - var ControlledSubject = (function (__super__) { - inherits(ControlledSubject, __super__); - function ControlledSubject(enableQueue, scheduler) { - enableQueue == null && (enableQueue = true); - - __super__.call(this); - this.subject = new Subject(); - this.enableQueue = enableQueue; - this.queue = enableQueue ? [] : null; - this.requestedCount = 0; - this.requestedDisposable = null; - this.error = null; - this.hasFailed = false; - this.hasCompleted = false; - this.scheduler = scheduler || currentThreadScheduler; - } - - addProperties(ControlledSubject.prototype, Observer, { - _subscribe: function (o) { - return this.subject.subscribe(o); - }, - onCompleted: function () { - this.hasCompleted = true; - if (!this.enableQueue || this.queue.length === 0) { - this.subject.onCompleted(); - this.disposeCurrentRequest(); - } else { - this.queue.push(Notification.createOnCompleted()); - } - }, - onError: function (error) { - this.hasFailed = true; - this.error = error; - if (!this.enableQueue || this.queue.length === 0) { - this.subject.onError(error); - this.disposeCurrentRequest(); - } else { - this.queue.push(Notification.createOnError(error)); - } - }, - onNext: function (value) { - if (this.requestedCount <= 0) { - this.enableQueue && this.queue.push(Notification.createOnNext(value)); - } else { - (this.requestedCount-- === 0) && this.disposeCurrentRequest(); - this.subject.onNext(value); - } - }, - _processRequest: function (numberOfItems) { - if (this.enableQueue) { - while (this.queue.length > 0 && (numberOfItems > 0 || this.queue[0].kind !== 'N')) { - var first = this.queue.shift(); - first.accept(this.subject); - if (first.kind === 'N') { - numberOfItems--; - } else { - this.disposeCurrentRequest(); - this.queue = []; - } - } - } - - return numberOfItems; - }, - request: function (number) { - this.disposeCurrentRequest(); - var self = this; - - this.requestedDisposable = this.scheduler.schedule(number, - function(s, i) { - var remaining = self._processRequest(i); - var stopped = self.hasCompleted || self.hasFailed; - if (!stopped && remaining > 0) { - self.requestedCount = remaining; - - return disposableCreate(function () { - self.requestedCount = 0; - }); - // Scheduled item is still in progress. Return a new - // disposable to allow the request to be interrupted - // via dispose. - } - }); - - return this.requestedDisposable; - }, - disposeCurrentRequest: function () { - if (this.requestedDisposable) { - this.requestedDisposable.dispose(); - this.requestedDisposable = null; - } - } - }); - - return ControlledSubject; - }(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. - */ - observableProto.controlled = function (enableQueue, scheduler) { - - if (enableQueue && isScheduler(enableQueue)) { - scheduler = enableQueue; - enableQueue = true; - } - - if (enableQueue == null) { enableQueue = true; } - return new ControlledObservable(this, enableQueue, scheduler); - }; - - /** - * Pipes the existing Observable sequence into a Node.js Stream. - * @param {Stream} dest The destination Node.js stream. - * @returns {Stream} The destination stream. - */ - observableProto.pipe = function (dest) { - var source = this.pausableBuffered(); - - function onDrain() { - source.resume(); - } - - dest.addListener('drain', onDrain); - - source.subscribe( - function (x) { - !dest.write(String(x)) && source.pause(); - }, - function (err) { - dest.emit('error', err); - }, - function () { - // Hack check because STDIO is not closable - !dest._isStdio && dest.end(); - dest.removeListener('drain', onDrain); - }); - - source.resume(); - - return dest; - }; - - var TransduceObserver = (function (__super__) { - inherits(TransduceObserver, __super__); - function TransduceObserver(o, xform) { - this._o = o; - this._xform = xform; - __super__.call(this); - } - - TransduceObserver.prototype.next = function (x) { - var res = tryCatch(this._xform['@@transducer/step']).call(this._xform, this._o, x); - if (res === errorObj) { this._o.onError(res.e); } - }; - - TransduceObserver.prototype.error = function (e) { this._o.onError(e); }; - - TransduceObserver.prototype.completed = function () { - this._xform['@@transducer/result'](this._o); - }; - - return TransduceObserver; - }(AbstractObserver)); - - function transformForObserver(o) { - return { - '@@transducer/init': function() { - return o; - }, - '@@transducer/step': function(obs, input) { - return obs.onNext(input); - }, - '@@transducer/result': function(obs) { - return obs.onCompleted(); - } - }; - } - - /** - * 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. - */ - observableProto.transduce = function(transducer) { - var source = this; - return new AnonymousObservable(function(o) { - var xform = transducer(transformForObserver(o)); - return source.subscribe(new TransduceObserver(o, xform)); - }, source); - }; - - var AnonymousObservable = Rx.AnonymousObservable = (function (__super__) { - inherits(AnonymousObservable, __super__); - - // Fix subscriber to check for undefined or function returned to decorate as Disposable - function fixSubscriber(subscriber) { - return subscriber && isFunction(subscriber.dispose) ? subscriber : - isFunction(subscriber) ? disposableCreate(subscriber) : disposableEmpty; - } - - function setDisposable(s, state) { - var ado = state[0], self = state[1]; - var sub = tryCatch(self.__subscribe).call(self, ado); - if (sub === errorObj && !ado.fail(errorObj.e)) { thrower(errorObj.e); } - ado.setDisposable(fixSubscriber(sub)); - } - - function AnonymousObservable(subscribe, parent) { - this.source = parent; - this.__subscribe = subscribe; - __super__.call(this); - } - - AnonymousObservable.prototype._subscribe = function (o) { - var ado = new AutoDetachObserver(o), state = [ado, this]; - - if (currentThreadScheduler.scheduleRequired()) { - currentThreadScheduler.schedule(state, setDisposable); - } else { - setDisposable(null, state); - } - return ado; - }; - - return AnonymousObservable; - - }(Observable)); - - var AutoDetachObserver = (function (__super__) { - inherits(AutoDetachObserver, __super__); - - function AutoDetachObserver(observer) { - __super__.call(this); - this.observer = observer; - this.m = new SingleAssignmentDisposable(); - } - - var AutoDetachObserverPrototype = AutoDetachObserver.prototype; - - AutoDetachObserverPrototype.next = function (value) { - var result = tryCatch(this.observer.onNext).call(this.observer, value); - if (result === errorObj) { - this.dispose(); - thrower(result.e); - } - }; - - AutoDetachObserverPrototype.error = function (err) { - var result = tryCatch(this.observer.onError).call(this.observer, err); - this.dispose(); - result === errorObj && thrower(result.e); - }; - - AutoDetachObserverPrototype.completed = function () { - var result = tryCatch(this.observer.onCompleted).call(this.observer); - this.dispose(); - result === errorObj && thrower(result.e); - }; - - AutoDetachObserverPrototype.setDisposable = function (value) { this.m.setDisposable(value); }; - AutoDetachObserverPrototype.getDisposable = function () { return this.m.getDisposable(); }; - - AutoDetachObserverPrototype.dispose = function () { - __super__.prototype.dispose.call(this); - this.m.dispose(); - }; - - return AutoDetachObserver; - }(AbstractObserver)); - - var InnerSubscription = function (s, o) { - this._s = s; - this._o = o; - }; - - InnerSubscription.prototype.dispose = function () { - if (!this._s.isDisposed && this._o !== null) { - var idx = this._s.observers.indexOf(this._o); - this._s.observers.splice(idx, 1); - this._o = null; - } - }; - - /** - * Represents an object that is both an observable sequence as well as an observer. - * Each notification is broadcasted to all subscribed observers. - */ - var Subject = Rx.Subject = (function (__super__) { - inherits(Subject, __super__); - function Subject() { - __super__.call(this); - this.isDisposed = false; - this.isStopped = false; - this.observers = []; - this.hasError = false; - } - - addProperties(Subject.prototype, Observer.prototype, { - _subscribe: function (o) { - checkDisposed(this); - if (!this.isStopped) { - this.observers.push(o); - return new InnerSubscription(this, o); - } - if (this.hasError) { - o.onError(this.error); - return disposableEmpty; - } - o.onCompleted(); - return disposableEmpty; - }, - /** - * Indicates whether the subject has observers subscribed to it. - * @returns {Boolean} Indicates whether the subject has observers subscribed to it. - */ - hasObservers: function () { checkDisposed(this); return this.observers.length > 0; }, - /** - * Notifies all subscribed observers about the end of the sequence. - */ - onCompleted: function () { - checkDisposed(this); - if (!this.isStopped) { - this.isStopped = true; - for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) { - os[i].onCompleted(); - } - - this.observers.length = 0; - } - }, - /** - * Notifies all subscribed observers about the exception. - * @param {Mixed} error The exception to send to all observers. - */ - onError: function (error) { - checkDisposed(this); - if (!this.isStopped) { - this.isStopped = true; - this.error = error; - this.hasError = true; - for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) { - os[i].onError(error); - } - - this.observers.length = 0; - } - }, - /** - * Notifies all subscribed observers about the arrival of the specified element in the sequence. - * @param {Mixed} value The value to send to all observers. - */ - onNext: function (value) { - checkDisposed(this); - if (!this.isStopped) { - for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) { - os[i].onNext(value); - } - } - }, - /** - * Unsubscribe all observers and release resources. - */ - dispose: function () { - this.isDisposed = true; - this.observers = null; - } - }); - - /** - * 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. - */ - Subject.create = function (observer, observable) { - return new AnonymousSubject(observer, observable); - }; - - return Subject; - }(Observable)); - - /** - * 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. - */ - var AsyncSubject = Rx.AsyncSubject = (function (__super__) { - inherits(AsyncSubject, __super__); - - /** - * Creates a subject that can only receive one value and that value is cached for all future observations. - * @constructor - */ - function AsyncSubject() { - __super__.call(this); - this.isDisposed = false; - this.isStopped = false; - this.hasValue = false; - this.observers = []; - this.hasError = false; - } - - addProperties(AsyncSubject.prototype, Observer.prototype, { - _subscribe: function (o) { - checkDisposed(this); - - if (!this.isStopped) { - this.observers.push(o); - return new InnerSubscription(this, o); - } - - if (this.hasError) { - o.onError(this.error); - } else if (this.hasValue) { - o.onNext(this.value); - o.onCompleted(); - } else { - o.onCompleted(); - } - - return disposableEmpty; - }, - /** - * Indicates whether the subject has observers subscribed to it. - * @returns {Boolean} Indicates whether the subject has observers subscribed to it. - */ - hasObservers: function () { checkDisposed(this); return this.observers.length > 0; }, - /** - * Notifies all subscribed observers about the end of the sequence, also causing the last received value to be sent out (if any). - */ - onCompleted: function () { - var i, len; - checkDisposed(this); - if (!this.isStopped) { - this.isStopped = true; - var os = cloneArray(this.observers), len = os.length; - - if (this.hasValue) { - for (i = 0; i < len; i++) { - var o = os[i]; - o.onNext(this.value); - o.onCompleted(); - } - } else { - for (i = 0; i < len; i++) { - os[i].onCompleted(); - } - } - - this.observers.length = 0; - } - }, - /** - * Notifies all subscribed observers about the error. - * @param {Mixed} error The Error to send to all observers. - */ - onError: function (error) { - checkDisposed(this); - if (!this.isStopped) { - this.isStopped = true; - this.hasError = true; - this.error = error; - - for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) { - os[i].onError(error); - } - - this.observers.length = 0; - } - }, - /** - * Sends a value to the subject. The last value received before successful termination will be sent to all subscribed and future observers. - * @param {Mixed} value The value to store in the subject. - */ - onNext: function (value) { - checkDisposed(this); - if (this.isStopped) { return; } - this.value = value; - this.hasValue = true; - }, - /** - * Unsubscribe all observers and release resources. - */ - dispose: function () { - this.isDisposed = true; - this.observers = null; - this.error = null; - this.value = null; - } - }); - - return AsyncSubject; - }(Observable)); - - var AnonymousSubject = Rx.AnonymousSubject = (function (__super__) { - inherits(AnonymousSubject, __super__); - function AnonymousSubject(observer, observable) { - this.observer = observer; - this.observable = observable; - __super__.call(this); - } - - addProperties(AnonymousSubject.prototype, Observer.prototype, { - _subscribe: function (o) { - return this.observable.subscribe(o); - }, - onCompleted: function () { - this.observer.onCompleted(); - }, - onError: function (error) { - this.observer.onError(error); - }, - onNext: function (value) { - this.observer.onNext(value); - } - }); - - return AnonymousSubject; - }(Observable)); - - /** - * Represents a value that changes over time. - * Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. - */ - var BehaviorSubject = Rx.BehaviorSubject = (function (__super__) { - inherits(BehaviorSubject, __super__); - function BehaviorSubject(value) { - __super__.call(this); - this.value = value; - this.observers = []; - this.isDisposed = false; - this.isStopped = false; - this.hasError = false; - } - - addProperties(BehaviorSubject.prototype, Observer.prototype, { - _subscribe: function (o) { - checkDisposed(this); - if (!this.isStopped) { - this.observers.push(o); - o.onNext(this.value); - return new InnerSubscription(this, o); - } - if (this.hasError) { - o.onError(this.error); - } else { - o.onCompleted(); - } - return disposableEmpty; - }, - /** - * 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: function () { - checkDisposed(this); - if (this.hasError) { thrower(this.error); } - return this.value; - }, - /** - * Indicates whether the subject has observers subscribed to it. - * @returns {Boolean} Indicates whether the subject has observers subscribed to it. - */ - hasObservers: function () { checkDisposed(this); return this.observers.length > 0; }, - /** - * Notifies all subscribed observers about the end of the sequence. - */ - onCompleted: function () { - checkDisposed(this); - if (this.isStopped) { return; } - this.isStopped = true; - for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) { - os[i].onCompleted(); - } - - this.observers.length = 0; - }, - /** - * Notifies all subscribed observers about the exception. - * @param {Mixed} error The exception to send to all observers. - */ - onError: function (error) { - checkDisposed(this); - if (this.isStopped) { return; } - this.isStopped = true; - this.hasError = true; - this.error = error; - - for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) { - os[i].onError(error); - } - - this.observers.length = 0; - }, - /** - * Notifies all subscribed observers about the arrival of the specified element in the sequence. - * @param {Mixed} value The value to send to all observers. - */ - onNext: function (value) { - checkDisposed(this); - if (this.isStopped) { return; } - this.value = value; - for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) { - os[i].onNext(value); - } - }, - /** - * Unsubscribe all observers and release resources. - */ - dispose: function () { - this.isDisposed = true; - this.observers = null; - this.value = null; - this.error = null; - } - }); - - return BehaviorSubject; - }(Observable)); - - /** - * 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. - */ - var ReplaySubject = Rx.ReplaySubject = (function (__super__) { - - var maxSafeInteger = Math.pow(2, 53) - 1; - - function createRemovableDisposable(subject, observer) { - return disposableCreate(function () { - observer.dispose(); - !subject.isDisposed && subject.observers.splice(subject.observers.indexOf(observer), 1); - }); - } - - inherits(ReplaySubject, __super__); - - /** - * 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. - */ - function ReplaySubject(bufferSize, windowSize, scheduler) { - this.bufferSize = bufferSize == null ? maxSafeInteger : bufferSize; - this.windowSize = windowSize == null ? maxSafeInteger : windowSize; - this.scheduler = scheduler || currentThreadScheduler; - this.q = []; - this.observers = []; - this.isStopped = false; - this.isDisposed = false; - this.hasError = false; - this.error = null; - __super__.call(this); - } - - addProperties(ReplaySubject.prototype, Observer.prototype, { - _subscribe: function (o) { - checkDisposed(this); - var so = new ScheduledObserver(this.scheduler, o), subscription = createRemovableDisposable(this, so); - - this._trim(this.scheduler.now()); - this.observers.push(so); - - for (var i = 0, len = this.q.length; i < len; i++) { - so.onNext(this.q[i].value); - } - - if (this.hasError) { - so.onError(this.error); - } else if (this.isStopped) { - so.onCompleted(); - } - - so.ensureActive(); - return subscription; - }, - /** - * Indicates whether the subject has observers subscribed to it. - * @returns {Boolean} Indicates whether the subject has observers subscribed to it. - */ - hasObservers: function () { checkDisposed(this); return this.observers.length > 0; }, - _trim: function (now) { - while (this.q.length > this.bufferSize) { - this.q.shift(); - } - while (this.q.length > 0 && (now - this.q[0].interval) > this.windowSize) { - this.q.shift(); - } - }, - /** - * Notifies all subscribed observers about the arrival of the specified element in the sequence. - * @param {Mixed} value The value to send to all observers. - */ - onNext: function (value) { - checkDisposed(this); - if (this.isStopped) { return; } - var now = this.scheduler.now(); - this.q.push({ interval: now, value: value }); - this._trim(now); - - for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) { - var observer = os[i]; - observer.onNext(value); - observer.ensureActive(); - } - }, - /** - * Notifies all subscribed observers about the exception. - * @param {Mixed} error The exception to send to all observers. - */ - onError: function (error) { - checkDisposed(this); - if (this.isStopped) { return; } - this.isStopped = true; - this.error = error; - this.hasError = true; - var now = this.scheduler.now(); - this._trim(now); - for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) { - var observer = os[i]; - observer.onError(error); - observer.ensureActive(); - } - this.observers.length = 0; - }, - /** - * Notifies all subscribed observers about the end of the sequence. - */ - onCompleted: function () { - checkDisposed(this); - if (this.isStopped) { return; } - this.isStopped = true; - var now = this.scheduler.now(); - this._trim(now); - for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) { - var observer = os[i]; - observer.onCompleted(); - observer.ensureActive(); - } - this.observers.length = 0; - }, - /** - * Unsubscribe all observers and release resources. - */ - dispose: function () { - this.isDisposed = true; - this.observers = null; - } - }); - - return ReplaySubject; - }(Observable)); - - /** - * Used to pause and resume streams. - */ - Rx.Pauser = (function (__super__) { - inherits(Pauser, __super__); - function Pauser() { - __super__.call(this); - } - - /** - * Pauses the underlying sequence. - */ - Pauser.prototype.pause = function () { this.onNext(false); }; - - /** - * Resumes the underlying sequence. - */ - Pauser.prototype.resume = function () { this.onNext(true); }; - - return Pauser; - }(Subject)); - - if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) { - root.Rx = Rx; - - define(function() { - return Rx; - }); - } else if (freeExports && freeModule) { - // in Node.js or RingoJS - if (moduleExports) { - (freeModule.exports = Rx).Rx = Rx; - } else { - freeExports.Rx = Rx; - } - } else { - // in a browser or Rhino - root.Rx = Rx; - } - - // All code before this point will be filtered from stack traces. - var rEndingLine = captureLine(); - -}.call(this)); diff --git a/tools/node_modules/eslint/node_modules/rx-lite/rx.lite.map b/tools/node_modules/eslint/node_modules/rx-lite/rx.lite.map deleted file mode 100644 index 5d20dff33e0261..00000000000000 --- a/tools/node_modules/eslint/node_modules/rx-lite/rx.lite.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"rx.lite.min.js","sources":["rx.lite.js"],"names":["undefined","checkGlobal","value","Object","cloneArray","arr","len","length","a","Array","i","tryCatcherGen","tryCatchTarget","apply","this","arguments","e","errorObj","thrower","makeStackTraceLong","error","observable","hasStacks","stack","indexOf","STACK_JUMP_SEPARATOR","stacks","o","source","unshift","concatedStacks","join","filterStackString","stackString","lines","split","desiredLines","line","isInternalFrame","isNodeFrame","push","stackLine","fileNameAndLineNumber","getFileNameAndLineNumber","fileName","lineNumber","rFileName","rStartingLine","rEndingLine","captureLine","Error","firstLine","attempt1","exec","Number","attempt2","attempt3","equalObjects","object","other","equalFunc","isLoose","stackA","stackB","objProps","keys","objLength","othProps","othLength","key","index","hasOwnProperty","call","skipCtor","result","objValue","othValue","objCtor","constructor","othCtor","equalByTag","tag","boolTag","dateTag","errorTag","name","message","numberTag","regexpTag","stringTag","isObjectLike","isLength","MAX_SAFE_INTEGER","isTypedArray","typedArrayTags","objToString","arraySome","array","predicate","equalArrays","arrLength","arrValue","baseIsEqualDeep","objIsArr","isArray","othIsArr","objTag","arrayTag","othTag","argsTag","objectTag","objIsObj","isHostObject","othIsObj","isSameTag","objIsWrapped","othIsWrapped","pop","baseIsEqual","isObject","arrayInitialize","count","factory","IndexedItem","id","IsDisposedDisposable","state","_s","isDisposed","StringIterable","s","StringIterator","_l","_i","ArrayIterable","_a","ArrayIterator","toLength","numberIsFinite","root","isFinite","getIterable","it","$iterator$","TypeError","sign","number","isNaN","Math","floor","abs","maxSafeInteger","observableOf","scheduler","isScheduler","currentThreadScheduler","FromArrayObservable","RepeatSink","observer","parent","falseFactory","argumentsToArray","args","emptyArrayFactory","asObservable","subscribe","repeat","@@iterator","next","done","plucker","x","currentProp","p","createCbObservable","fn","ctx","selector","AsyncSubject","createCbHandler","results","isFunction","tryCatch","onError","onNext","onCompleted","createNodeObservable","createNodeHandler","err","isNodeList","el","StaticNodeList","NodeList","prototype","toString","ListenDisposable","n","_e","_n","_fn","addEventListener","createEventListener","eventName","handler","disposables","CompositeDisposable","elemToString","add","item","_observableTimer","dueTime","TimerObservable","observableTimerDateAndPeriod","period","AnonymousObservable","d","normalizeTime","scheduleRecursiveFuture","self","now","Date","getTime","observableTimerTimeSpanAndPeriod","schedulePeriodic","observableDefer","observableDelayRelative","subscription","active","cancelable","SerialDisposable","exception","q","running","materialize","timestamp","notification","shouldRun","kind","SingleAssignmentDisposable","setDisposable","_","recurseDueTime","shouldRecurse","shift","accept","max","BinaryDisposable","observableDelayAbsolute","delayWithSelector","subscriptionDelay","delayDurationSelector","subDelay","start","delay","delays","remove","atEnd","dispose","debounceWithSelector","durationSelector","hasValue","throttle","isPromise","observableFromPromise","currentid","timeoutWithSelector","firstTimeout","timeoutDurationSelector","observableNever","Observable","isObservable","observableThrow","TimeoutError","setTimer","timeout","timerWins","switched","myId","timer","oWins","res","original","defaultScheduler","createTimer","scheduleFuture","combineLatestSource","subject","resultSelector","values","hasValueAll","every","identity","isDone","transformForObserver","@@transducer/init","@@transducer/step","obs","input","@@transducer/result","objectTypes","function","freeExports","exports","nodeType","freeModule","module","freeGlobal","global","freeSelf","freeWindow","window","moduleExports","thisGlobal","Function","Rx","internals","config","Promise","helpers","noop","defaultNow","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","then","isFn","longStackSupport","EmptyError","create","ObjectDisposedError","ArgumentOutOfRangeError","NotSupportedError","NotImplementedError","notImplemented","notSupported","Symbol","iterator","Set","doneEnumerator","isIterable","isArrayLike","bindCallback","func","thisArg","argCount","arg","collection","dontEnums","funcTag","mapTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","objectProto","pow","hasDontEnumBug","propertyIsEnumerable","dontEnumsLength","obj","prop","type","inherits","slice","child","__","addProperties","sources","idx","ln","addRef","xs","r","getDisposable","CompositeDisposablePrototype","shouldDispose","splice","currentDisposables","Disposable","action","disposableCreate","disposableEmpty","empty","isDisposable","checkDisposed","disposable","disposableFixup","_fixup","current","old","first","second","_first","_second","old1","old2","NAryDisposable","_disposables","ScheduledItem","RefCountDisposable","InnerDisposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","comparer","invoke","invokeCore","compareTo","isCancelled","Scheduler","schedulerProto","schedule","dt","normalize","_scheduleFuture","timeSpan","invokeRecImmediate","pair","innerAction","state2","scheduleWork","state3","isAdded","group","invokeRecDate","dueTime1","scheduleRecursive","setInterval","clearInterval","scheduleMethod","clearMethod","ImmediateScheduler","__super__","immediateScheduler","immediate","CurrentThreadScheduler","runTrampoline","queue","dequeue","si","enqueue","PriorityQueue","scheduleRequired","currentThread","localTimer","SchedulePeriodicRecursive","createTick","command","recurse","_period","_action","_state","_cancel","_scheduler","localSetTimeout","localClearTimeout","setTimeout","clearTimeout","WScript","time","Sleep","runTask","handle","currentlyRunning","task","tasksByHandle","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","nextHandle","reNative","RegExp","String","replace","setImmediate","test","process","nextTick","MSG_PREFIX","random","onGlobalPostMessage","event","data","substring","MessageChannel","channel","port1","port2","document","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","DefaultScheduler","scheduleAction","ClearDisposable","_id","LocalClearDisposable","async","c","capacity","items","priorityProto","isHigherPriority","left","right","percolate","temp","heapify","peek","removeAt","observableProto","Notification","_accept","_acceptObserver","observerOrOnNext","toObservable","OnNextNotification","OnErrorNotification","OnCompletedNotification","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","Observer","observerCreate","AnonymousObserver","AbstractObserver","isStopped","completed","fail","_onNext","_onError","_onCompleted","makeSubscribe","oldOnError","oldSubscribe","_subscribe","forEach","oOrOnNext","subscribeOnNext","subscribeOnError","subscribeOnCompleted","ScheduledObserver","isAcquired","hasFaulted","enqueueNext","enqueueError","enqueueCompleted","work","ensureActive","isOwner","ObservableBase","fixSubscriber","subscriber","ado","sub","subscribeCore","AutoDetachObserver","FlatMapObservable","InnerObserver","_wrapResult","map","i2","from","Enumerable","ConcatEnumerableObservable","currentItem","currentValue","_recurse","concat","CatchErrorObservable","lastError","catchError","RepeatEnumerable","v","RepeatEnumerator","l","enumerableRepeat","repeatCount","OfEnumerable","OfEnumerator","enumerableOf","of","ToArrayObservable","toArray","Defer","_f","defer","observableFactory","EmptyObservable","EmptySink","scheduleItem","sink","run","EMPTY_OBSERVABLE","observableEmpty","FromObservable","iterable","_iterable","createScheduleMethod","list","charAt","observableFrom","mapFn","mapper","_args","observableFromArray","fromArray","NeverObservable","NEVER_OBSERVABLE","never","ofWithScheduler","PairsObservable","_o","_keys","pairs","RangeObservable","rangeCount","loopRecursive","range","RepeatObservable","JustObservable","_value","ThrowObservable","just","_error","CatchObservable","d1","CatchObserver","handlerOrSecond","observableCatch","combineLatest","CombineLatestObservable","params","cb","_params","_cb","subscriptions","sad","CombineLatestObserver","notTheSame","j","filter","observableConcat","ConcatObserver","ConcatObservable","_sources","concatAll","merge","MergeObservable","maxConcurrent","g","MergeObserver","activeCount","handleSubscribe","innerSource","maxConcurrentOrOther","observableMerge","mergeAll","CompositeError","errors","innerErrors","MergeDelayErrorObservable","m","MergeDelayErrorObserver","_group","setCompletion","inner","_inner","mergeDelayError","MergeAllObservable","MergeAllObserver","SkipUntilObservable","_open","leftSubscription","SkipUntilSourceObserver","rightSubscription","SkipUntilOtherObserver","_p","_r","skipUntil","SwitchObservable","SwitchObserver","stopped","latest","hasLatest","switchLatest","TakeUntilObservable","TakeUntilObserver","takeUntil","WithLatestFromObservable","_ss","WithLatestFromOtherObserver","outerSad","WithLatestFromSourceObserver","allValues","withLatestFrom","ZipObservable","ZipObserver","_q","_d","notEmpty","shiftEach","queuedValues","zip","ZipIterableObservable","ZipIterableObserver","zipIterable","DematerializeObservable","DematerializeObserver","dematerialize","DistinctUntilChangedObservable","keyFn","DistinctUntilChangedObserver","hasCurrentKey","currentKey","comparerEquals","distinctUntilChanged","TapObservable","_oN","_oE","_oC","t","tap","doAction","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","FinallyObservable","FinallyDisposable","IgnoreElementsObservable","ignoreElements","MaterializeObservable","MaterializeObserver","retry","retryCount","RetryWhenObservable","createDisposable","notifier","_notifier","exceptions","Subject","handled","notificationDisposable","outer","exn","ex","retryWhen","RepeatWhenObservable","completions","repeatWhen","ScanObservable","accumulator","hasSeed","seed","ScanObserver","_hs","_ha","_hv","scan","SkipLastObservable","_c","SkipLastObserver","skipLast","startWith","TakeLastObserver","takeLast","flatMapConcat","concatMap","MapObservable","innerMap","internalMap","select","selectorFn","pluck","flatMap","selectMany","flatMapLatest","SkipObservable","_count","SkipObserver","skip","SkipWhileObservable","SkipWhileObserver","skipWhile","TakeObservable","TakeObserver","take","TakeWhileObservable","TakeWhileObserver","takeWhile","FilterObservable","innerPredicate","internalFilter","shouldYield","where","fromCallback","fromNodeCallback","removeEventListener","useNativeEvents","EventObservable","_el","createHandler","fromEvent","element","addListener","fromEventPattern","h","removeListener","on","off","publish","refCount","EventPatternObservable","del","_add","_del","EventPatternDisposable","ret","_ret","returnValue","addHandler","removeHandler","FromPromiseObservable","scheduleNext","scheduleError","fromPromise","promise","toPromise","promiseCtor","resolve","reject","startAsync","functionAsync","MulticastObservable","fn1","fn2","_fn1","_fn2","connectable","multicast","connect","subjectOrSubjectSelector","ConnectableObservable","share","publishLast","publishValue","initialValueOrSelector","initialValue","BehaviorSubject","shareValue","replay","bufferSize","windowSize","ReplaySubject","shareReplay","RefCountObservable","_connectableSubscription","_connection","_source","_subject","ConnectDisposable","_dt","observableinterval","interval","periodOrScheduler","firstArg","DebounceObservable","DebounceObserver","_v","currentId","debounce","TimestampObservable","TimestampObserver","SampleObservable","sampler","_sampler","sourceSubscription","SampleSourceObserver","SamplerObserver","_handleMessage","sample","intervalOrSampler","windowDuration","duration","RangeError","lastOnNext","PausableObservable","pauser","controller","conn","connection","pausable","b","pause","resume","PausableBufferedObservable","drainQueue","previousShouldFire","shouldFire","pausableBuffered","ControlledObservable","enableQueue","ControlledSubject","request","numberOfItems","requestedCount","requestedDisposable","hasFailed","hasCompleted","disposeCurrentRequest","_processRequest","remaining","controlled","pipe","dest","onDrain","write","emit","_isStdio","end","TransduceObserver","xform","_xform","transduce","transducer","__subscribe","AutoDetachObserverPrototype","InnerSubscription","observers","hasError","hasObservers","os","AnonymousSubject","getValue","createRemovableDisposable","so","_trim","Pauser","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rx-lite/rx.lite.min.js b/tools/node_modules/eslint/node_modules/rx-lite/rx.lite.min.js deleted file mode 100644 index 870ebcd2f9ee1c..00000000000000 --- a/tools/node_modules/eslint/node_modules/rx-lite/rx.lite.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/ -(function(a){function b(a){return a&&a.Object===Object?a:null}function c(a){for(var b=a.length,c=new Array(b),d=0;b>d;d++)c[d]=a[d];return c}function d(a){return function(){try{return a.apply(this,arguments)}catch(b){return va.e=b,va}}}function e(a){throw a}function f(a,b){if(xa&&b.stack&&"object"==typeof a&&null!==a&&a.stack&&-1===a.stack.indexOf(Ba)){for(var c=[],d=b;d;d=d.source)d.stack&&c.unshift(d.stack);c.unshift(a.stack);var e=c.join("\n"+Ba+"\n");a.stack=g(e)}}function g(a){for(var b=a.split("\n"),c=[],d=0,e=b.length;e>d;d++){var f=b[d];h(f)||i(f)||!f||c.push(f)}return c.join("\n")}function h(a){var b=k(a);if(!b)return!1;var c=b[0],d=b[1];return c===za&&d>=Aa&&qe>=d}function i(a){return-1!==a.indexOf("(module.js:")||-1!==a.indexOf("(node.js:")}function j(){if(xa)try{throw new Error}catch(a){var b=a.stack.split("\n"),c=b[0].indexOf("@")>0?b[1]:b[2],d=k(c);if(!d)return;return za=d[0],d[1]}}function k(a){var b=/at .+ \((.+):(\d+):(?:\d+)\)$/.exec(a);if(b)return[b[1],Number(b[2])];var c=/at ([^ ]+):(\d+):(?:\d+)$/.exec(a);if(c)return[c[1],Number(c[2])];var d=/.*@(.+):(\d+)$/.exec(a);return d?[d[1],Number(d[2])]:void 0}function l(b,c,d,e,f,g){var h=ob(b),i=h.length,j=ob(c),k=j.length;if(i!==k&&!e)return!1;for(var l,m=i;m--;)if(l=h[m],!(e?l in c:lb.call(c,l)))return!1;for(var n=e;++m-1&&a%1===0&&nb>=a}function p(a){return n(a)&&o(a.length)&&!!jb[mb.call(a)]}function q(a,b){for(var c=-1,d=a.length;++ci))return!1;for(;++hd;d++)c[d]=b();return c}function v(a,b){this.id=a,this.value=b}function w(a){this._s=a,this.isDisposed=!1}function x(a){this._s=a}function y(a){this._s=a,this._l=a.length,this._i=0}function z(a){this._a=a}function A(a){this._a=a,this._l=E(a),this._i=0}function B(a){return"number"==typeof a&&la.isFinite(a)}function C(b){var c,d=b[Ia];if(!d&&"string"==typeof b)return c=new x(b),c[Ia]();if(!d&&b.length!==a)return c=new z(b),c[Ia]();if(!d)throw new TypeError("Object is not iterable");return b[Ia]()}function D(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function E(a){var b=+a.length;return isNaN(b)?0:0!==b&&B(b)?(b=D(b)*Math.floor(Math.abs(b)),0>=b?0:b>Ac?Ac:b):b}function F(a,b){return Kb(a)||(a=Qb),new Cc(b,a)}function G(a,b){this.observer=a,this.parent=b}function H(){return!1}function I(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return b}function H(){return!1}function I(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return b}function H(){return!1}function J(){return[]}function H(){return!1}function J(){return[]}function I(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return b}function K(a){return function(b){return a.subscribe(b)}}function L(a){return{"@@iterator":function(){return{next:function(){return{done:!1,value:a}}}}}}function L(a){return{"@@iterator":function(){return{next:function(){return{done:!1,value:a}}}}}}function M(b,c){return function(d){for(var e=d,f=0;c>f;f++){var g=e[b[f]];if("undefined"==typeof g)return a;e=g}return e}}function N(a,b,c,d){var e=new me;return d.push(O(e,b,c)),a.apply(b,d),e.asObservable()}function O(a,b,c){return function(){for(var d=arguments.length,e=new Array(d),f=0;d>f;f++)e[f]=arguments[f];if(ua(c)){if(e=wa(c).apply(b,e),e===va)return a.onError(e.e);a.onNext(e)}else e.length<=1?a.onNext(e[0]):a.onNext(e);a.onCompleted()}}function P(a,b,c,d){var e=new me;return d.push(Q(e,b,c)),a.apply(b,d),e.asObservable()}function Q(a,b,c){return function(){var d=arguments[0];if(d)return a.onError(d);for(var e=arguments.length,f=[],g=1;e>g;g++)f[g-1]=arguments[g];if(ua(c)){var f=wa(c).apply(b,f);if(f===va)return a.onError(f.e);a.onNext(f)}else f.length<=1?a.onNext(f[0]):a.onNext(f);a.onCompleted()}}function R(a){return la.StaticNodeList?a instanceof la.StaticNodeList||a instanceof la.NodeList:"[object NodeList]"===Object.prototype.toString.call(a)}function S(a,b,c){this._e=a,this._n=b,this._fn=c,this._e.addEventListener(this._n,this._fn,!1),this.isDisposed=!1}function T(a,b,c){var d=new vb,e=Object.prototype.toString.call(a);if(R(a)||"[object HTMLCollection]"===e)for(var f=0,g=a.length;g>f;f++)d.add(T(a.item(f),b,c));else a&&d.add(new S(a,b,c));return d}function U(a,b){return new Vd(a,b)}function V(a,b,c){return new ie(function(d){var e=a,f=Jb(b);return c.scheduleRecursiveFuture(0,e,function(a,b){if(f>0){var g=c.now();e=new Date(e.getTime()+f),e.getTime()<=g&&(e=new Date(g+f))}d.onNext(a),b(a+1,new Date(e))})})}function W(a,b,c){return a===b?new ie(function(a){return c.schedulePeriodic(0,b,function(b){return a.onNext(b),b+1})}):vc(function(){return V(new Date(c.now()+a),b,c)})}function X(a,b,c){return new ie(function(d){var e,f=!1,g=new Eb,h=null,i=[],j=!1;return e=a.materialize().timestamp(c).subscribe(function(a){var e,k;"E"===a.value.kind?(i=[],i.push(a),h=a.value.error,k=!j):(i.push({value:a.value,timestamp:a.timestamp+b}),k=!f,f=!0),k&&(null!==h?d.onError(h):(e=new Db,g.setDisposable(e),e.setDisposable(c.scheduleRecursiveFuture(null,b,function(a,b){var e,g,k,l;if(null===h){j=!0;do k=null,i.length>0&&i[0].timestamp-c.now()<=0&&(k=i.shift().value),null!==k&&k.accept(d);while(null!==k);l=!1,g=0,i.length>0?(l=!0,g=Math.max(0,i[0].timestamp-c.now())):f=!1,e=h,j=!1,null!==e?d.onError(e):l&&b(null,g)}}))))}),new Fb(e,g)},a)}function Y(a,b,c){return vc(function(){return X(a,b-c.now(),c)})}function Z(a,b,c){var d,e;return ua(b)?e=b:(d=b,e=c),new ie(function(b){function c(){i.setDisposable(a.subscribe(function(a){var c=wa(e)(a);if(c===va)return b.onError(c.e);var d=new Db;g.add(d),d.setDisposable(c.subscribe(function(){b.onNext(a),g.remove(d),f()},function(a){b.onError(a)},function(){b.onNext(a),g.remove(d),f()}))},function(a){b.onError(a)},function(){h=!0,i.dispose(),f()}))}function f(){h&&0===g.length&&b.onCompleted()}var g=new vb,h=!1,i=new Eb;return d?i.setDisposable(d.subscribe(c,function(a){b.onError(a)},c)):c(),new Fb(i,g)},a)}function $(a,b){return new ie(function(c){var d,e=!1,f=new Eb,g=0,h=a.subscribe(function(a){var h=wa(b)(a);if(h===va)return c.onError(h.e);ta(h)&&(h=Rd(h)),e=!0,d=a,g++;var i=g,j=new Db;f.setDisposable(j),j.setDisposable(h.subscribe(function(){e&&g===i&&c.onNext(d),e=!1,j.dispose()},function(a){c.onError(a)},function(){e&&g===i&&c.onNext(d),e=!1,j.dispose()}))},function(a){f.dispose(),c.onError(a),e=!1,g++},function(){f.dispose(),e&&c.onNext(d),c.onCompleted(),e=!1,g++});return new Fb(h,f)},a)}function _(a,b,c,d){return ua(b)&&(d=c,c=b,b=Gc()),ic.isObservable(d)||(d=Mc(new ce)),new ie(function(e){function f(a){function b(){return l=c===k}var c=k,f=new Db;i.setDisposable(f),f.setDisposable(a.subscribe(function(){b()&&h.setDisposable(d.subscribe(e)),f.dispose()},function(a){b()&&e.onError(a)},function(){b()&&h.setDisposable(d.subscribe(e))}))}function g(){var a=!l;return a&&k++,a}var h=new Eb,i=new Eb,j=new Db;h.setDisposable(j);var k=0,l=!1;return f(b),j.setDisposable(a.subscribe(function(a){if(g()){e.onNext(a);var b=wa(c)(a);if(b===va)return e.onError(b.e);f(ta(b)?Rd(b):b)}},function(a){g()&&e.onError(a)},function(){g()&&e.onCompleted()})),new Fb(h,i)},a)}function aa(a,b,c,d){return Kb(c)&&(d=c,c=Mc(new ce)),c instanceof Error&&(c=Mc(c)),Kb(d)||(d=Vb),ic.isObservable(c)||(c=Mc(new ce)),new ie(function(e){function f(){var a=g;k.setDisposable(d.scheduleFuture(null,b,function(){j=g===a,j&&(ta(c)&&(c=Rd(c)),i.setDisposable(c.subscribe(e)))}))}var g=0,h=new Db,i=new Eb,j=!1,k=new Eb;return i.setDisposable(h),f(),h.setDisposable(a.subscribe(function(a){j||(g++,e.onNext(a),f())},function(a){j||(g++,e.onError(a))},function(){j||(g++,e.onCompleted())})),new Fb(i,k)},a)}function ba(a,b,c){return new ie(function(d){function e(a,b){if(j[b]=a,g[b]=!0,h||(h=g.every(oa))){if(f)return d.onError(f);var e=wa(c).apply(null,j);if(e===va)return d.onError(e.e);d.onNext(e)}i&&j[1]&&d.onCompleted()}var f,g=[!1,!1],h=!1,i=!1,j=new Array(2);return new Fb(a.subscribe(function(a){e(a,0)},function(a){j[1]?d.onError(a):f=a},function(){i=!0,j[1]&&d.onCompleted()}),b.subscribe(function(a){e(a,1)},function(a){d.onError(a)},function(){i=!0,e(!0,1)}))},a)}function ca(a){return{"@@transducer/init":function(){return a},"@@transducer/step":function(a,b){return a.onNext(b)},"@@transducer/result":function(a){return a.onCompleted()}}}var da={"function":!0,object:!0},ea=da[typeof exports]&&exports&&!exports.nodeType?exports:null,fa=da[typeof module]&&module&&!module.nodeType?module:null,ga=b(ea&&fa&&"object"==typeof global&&global),ha=b(da[typeof self]&&self),ia=b(da[typeof window]&&window),ja=fa&&fa.exports===ea?ea:null,ka=b(da[typeof this]&&this),la=ga||ia!==(ka&&ka.window)&&ia||ha||ka||Function("return this")(),ma={internals:{},config:{Promise:la.Promise},helpers:{}},na=ma.helpers.noop=function(){},oa=ma.helpers.identity=function(a){return a},pa=ma.helpers.defaultNow=Date.now,qa=ma.helpers.defaultComparer=function(a,b){return sb(a,b)},ra=ma.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},sa=(ma.helpers.defaultKeySerializer=function(a){return a.toString()},ma.helpers.defaultError=function(a){throw a}),ta=ma.helpers.isPromise=function(a){return!!a&&"function"!=typeof a.subscribe&&"function"==typeof a.then},ua=ma.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==toString.call(a)}),a}(),va={e:{}},wa=ma.internals.tryCatch=function(a){if(!ua(a))throw new TypeError("fn must be a function");return d(a)};ma.config.longStackSupport=!1;var xa=!1,ya=wa(function(){throw new Error})();xa=!!ya.e&&!!ya.e.stack;var za,Aa=j(),Ba="From previous event:",Ca=ma.EmptyError=function(){this.message="Sequence contains no elements.",Error.call(this)};Ca.prototype=Object.create(Error.prototype),Ca.prototype.name="EmptyError";var Da=ma.ObjectDisposedError=function(){this.message="Object has been disposed",Error.call(this)};Da.prototype=Object.create(Error.prototype),Da.prototype.name="ObjectDisposedError";var Ea=ma.ArgumentOutOfRangeError=function(){this.message="Argument out of range",Error.call(this)};Ea.prototype=Object.create(Error.prototype),Ea.prototype.name="ArgumentOutOfRangeError";var Fa=ma.NotSupportedError=function(a){this.message=a||"This operation is not supported",Error.call(this)};Fa.prototype=Object.create(Error.prototype),Fa.prototype.name="NotSupportedError";var Ga=ma.NotImplementedError=function(a){this.message=a||"This operation is not implemented",Error.call(this)};Ga.prototype=Object.create(Error.prototype),Ga.prototype.name="NotImplementedError";var Ha=ma.helpers.notImplemented=function(){throw new Ga},Ia=(ma.helpers.notSupported=function(){throw new Fa},"function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_");la.Set&&"function"==typeof(new la.Set)["@@iterator"]&&(Ia="@@iterator");var Ja=ma.doneEnumerator={done:!0,value:a},Ka=ma.helpers.isIterable=function(b){return b&&b[Ia]!==a},La=ma.helpers.isArrayLike=function(b){return b&&b.length!==a};ma.helpers.iterator=Ia;var Ma=ma.internals.bindCallback=function(a,b,c){if("undefined"==typeof b)return a;switch(c){case 0:return function(){return a.call(b)};case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}},Na=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Oa=(Na.length,"[object Arguments]"),Pa="[object Array]",Qa="[object Boolean]",Ra="[object Date]",Sa="[object Error]",Ta="[object Function]",Ua="[object Map]",Va="[object Number]",Wa="[object Object]",Xa="[object RegExp]",Ya="[object Set]",Za="[object String]",$a="[object WeakMap]",_a="[object ArrayBuffer]",ab="[object Float32Array]",bb="[object Float64Array]",cb="[object Int8Array]",db="[object Int16Array]",eb="[object Int32Array]",fb="[object Uint8Array]",gb="[object Uint8ClampedArray]",hb="[object Uint16Array]",ib="[object Uint32Array]",jb={};jb[ab]=jb[bb]=jb[cb]=jb[db]=jb[eb]=jb[fb]=jb[gb]=jb[hb]=jb[ib]=!0,jb[Oa]=jb[Pa]=jb[_a]=jb[Qa]=jb[Ra]=jb[Sa]=jb[Ta]=jb[Ua]=jb[Va]=jb[Wa]=jb[Xa]=jb[Ya]=jb[Za]=jb[$a]=!1;var kb=Object.prototype,lb=kb.hasOwnProperty,mb=kb.toString,nb=Math.pow(2,53)-1,ob=Object.keys||function(){var a=Object.prototype.hasOwnProperty,b=!{toString:null}.propertyIsEnumerable("toString"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],d=c.length;return function(e){if("object"!=typeof e&&("function"!=typeof e||null===e))throw new TypeError("Object.keys called on non-object");var f,g,h=[];for(f in e)a.call(e,f)&&h.push(f);if(b)for(g=0;d>g;g++)a.call(e,c[g])&&h.push(c[g]);return h}}(),pb=ma.internals.isObject=function(a){var b=typeof a;return!!a&&("object"===b||"function"===b)},qb=function(){try{Object({toString:0}+"")}catch(a){return function(){return!1}}return function(a){return"function"!=typeof a.toString&&"string"==typeof(a+"")}}(),rb=Array.isArray||function(a){return n(a)&&o(a.length)&&mb.call(a)===Pa},sb=ma.internals.isEqual=function(a,b){return t(a,b)},tb=({}.hasOwnProperty,Array.prototype.slice,ma.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),ub=ma.internals.addProperties=function(a){for(var b=[],c=1,d=arguments.length;d>c;c++)b.push(arguments[c]);for(var e=0,f=b.length;f>e;e++){var g=b[e];for(var h in g)a[h]=g[h]}},vb=(ma.internals.addRef=function(a,b){return new ie(function(c){return new Fb(b.getDisposable(),a.subscribe(c))})},ma.CompositeDisposable=function(){var a,b,c=[];if(Array.isArray(arguments[0]))c=arguments[0];else for(b=arguments.length,c=new Array(b),a=0;b>a;a++)c[a]=arguments[a];this.disposables=c,this.isDisposed=!1,this.length=c.length}),wb=vb.prototype;wb.add=function(a){this.isDisposed?a.dispose():(this.disposables.push(a),this.length++)},wb.remove=function(a){var b=!1;if(!this.isDisposed){var c=this.disposables.indexOf(a);-1!==c&&(b=!0,this.disposables.splice(c,1),this.length--,a.dispose())}return b},wb.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;for(var a=this.disposables.length,b=new Array(a),c=0;a>c;c++)b[c]=this.disposables[c];for(this.disposables=[],this.length=0,c=0;a>c;c++)b[c].dispose()}};var xb=ma.Disposable=function(a){this.isDisposed=!1,this.action=a||na};xb.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var yb=xb.create=function(a){return new xb(a)},zb=xb.empty={dispose:na},Ab=xb.isDisposable=function(a){return a&&ua(a.dispose)},Bb=xb.checkDisposed=function(a){if(a.isDisposed)throw new Da},Cb=xb._fixup=function(a){return Ab(a)?a:zb},Db=ma.SingleAssignmentDisposable=function(){this.isDisposed=!1,this.current=null};Db.prototype.getDisposable=function(){return this.current},Db.prototype.setDisposable=function(a){if(this.current)throw new Error("Disposable has already been assigned");var b=this.isDisposed;!b&&(this.current=a),b&&a&&a.dispose()},Db.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var a=this.current;this.current=null,a&&a.dispose()}};var Eb=ma.SerialDisposable=function(){this.isDisposed=!1,this.current=null};Eb.prototype.getDisposable=function(){return this.current},Eb.prototype.setDisposable=function(a){var b=this.isDisposed;if(!b){var c=this.current;this.current=a}c&&c.dispose(),b&&a&&a.dispose()},Eb.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var a=this.current;this.current=null}a&&a.dispose()};var Fb=ma.BinaryDisposable=function(a,b){this._first=a,this._second=b,this.isDisposed=!1};Fb.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var a=this._first;this._first=null,a&&a.dispose();var b=this._second;this._second=null,b&&b.dispose()}};var Gb=ma.NAryDisposable=function(a){this._disposables=a,this.isDisposed=!1};Gb.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;for(var a=0,b=this._disposables.length;b>a;a++)this._disposables[a].dispose();this._disposables.length=0}};var Hb=(ma.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?zb:new a(this)},b}(),ma.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||ra,this.disposable=new Db});Hb.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},Hb.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},Hb.prototype.isCancelled=function(){return this.disposable.isDisposed},Hb.prototype.invokeCore=function(){return Cb(this.action(this.scheduler,this.state))};var Ib=ma.Scheduler=function(){function a(){}a.isScheduler=function(b){return b instanceof a};var b=a.prototype;return b.schedule=function(a,b){throw new Ga},b.scheduleFuture=function(b,c,d){var e=c;return e instanceof Date&&(e-=this.now()),e=a.normalize(e),0===e?this.schedule(b,d):this._scheduleFuture(b,e,d)},b._scheduleFuture=function(a,b,c){throw new Ga},a.now=pa,a.prototype.now=pa,a.normalize=function(a){return 0>a&&(a=0),a},a}(),Jb=Ib.normalize,Kb=Ib.isScheduler;!function(a){function b(a,b){function c(b){function d(a,b){return g?f.remove(i):h=!0,e(b,c),zb}var g=!1,h=!1,i=a.schedule(b,d);h||(f.add(i),g=!0)}var d=b[0],e=b[1],f=new vb;return e(d,c),f}function c(a,b){function c(b,d){function g(a,b){return h?f.remove(j):i=!0,e(b,c),zb}var h=!1,i=!1,j=a.scheduleFuture(b,d,g);i||(f.add(j),h=!0)}var d=b[0],e=b[1],f=new vb;return e(d,c),f}a.scheduleRecursive=function(a,c){return this.schedule([a,c],b)},a.scheduleRecursiveFuture=function(a,b,d){return this.scheduleFuture([a,d],b,c)}}(Ib.prototype),function(a){a.schedulePeriodic=function(a,b,c){if("undefined"==typeof la.setInterval)throw new Fa;b=Jb(b);var d=a,e=la.setInterval(function(){d=c(d)},b);return yb(function(){la.clearInterval(e)})}}(Ib.prototype);var Lb,Mb,Nb=function(a){function b(){a.call(this)}return tb(b,a),b.prototype.schedule=function(a,b){return Cb(b(this,a))},b}(Ib),Ob=Ib.immediate=new Nb,Pb=function(a){function b(){for(;d.length>0;){var a=d.dequeue();!a.isCancelled()&&a.invoke()}}function c(){a.call(this)}var d;return tb(c,a),c.prototype.schedule=function(a,c){var f=new Hb(this,a,c,this.now());if(d)d.enqueue(f);else{d=new Wb(4),d.enqueue(f);var g=wa(b)();d=null,g===va&&e(g.e)}return f.disposable},c.prototype.scheduleRequired=function(){return!d},c}(Ib),Qb=Ib.currentThread=new Pb,Rb=(ma.internals.SchedulePeriodicRecursive=function(){function a(a){return function(b,c){c(0,a._period);var d=wa(a._action)(a._state);d===va&&(a._cancel.dispose(),e(d.e)),a._state=d}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new Db;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveFuture(0,this._period,a(this))),b},b}(),function(){var a,b=na;if(la.setTimeout)a=la.setTimeout,b=la.clearTimeout;else{if(!la.WScript)throw new Fa;a=function(a,b){la.WScript.Sleep(b),a()}}return{setTimeout:a,clearTimeout:b}}()),Sb=Rb.setTimeout,Tb=Rb.clearTimeout;!function(){function a(b){if(f)Sb(function(){a(b)},0);else{var c=d[b];if(c){f=!0;var g=wa(c)();Mb(b),f=!1,g===va&&e(g.e)}}}function b(){if(!la.postMessage||la.importScripts)return!1;var a=!1,b=la.onmessage;return la.onmessage=function(){a=!0},la.postMessage("","*"),la.onmessage=b,a}var c=1,d={},f=!1;Mb=function(a){delete d[a]};var g=new RegExp("^"+String(toString).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),h="function"==typeof(h=ga&&ja&&ga.setImmediate)&&!g.test(h)&&h;if(ua(h))Lb=function(b){var e=c++;return d[e]=b,h(function(){a(e)}),e};else if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))Lb=function(b){var e=c++;return d[e]=b,process.nextTick(function(){a(e)}),e};else if(b()){var i="ms.rx.schedule"+Math.random(),j=function(b){"string"==typeof b.data&&b.data.substring(0,i.length)===i&&a(b.data.substring(i.length))};la.addEventListener("message",j,!1),Lb=function(a){var b=c++;return d[b]=a,la.postMessage(i+b,"*"),b}}else if(la.MessageChannel){var k=new la.MessageChannel;k.port1.onmessage=function(b){a(b.data)},Lb=function(a){var b=c++;return d[b]=a,k.port2.postMessage(b),b}}else Lb="document"in la&&"onreadystatechange"in la.document.createElement("script")?function(b){var e=la.document.createElement("script"),f=c++;return d[f]=b,e.onreadystatechange=function(){a(f),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},la.document.documentElement.appendChild(e),f}:function(b){var e=c++;return d[e]=b,Sb(function(){a(e)},0),e}}();var Ub=function(a){function b(){a.call(this)}function c(a,b,c,d){return function(){a.setDisposable(xb._fixup(b(c,d)))}}function d(a){this._id=a,this.isDisposed=!1}function e(a){this._id=a,this.isDisposed=!1}return tb(b,a),d.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0,Mb(this._id))},e.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0,Tb(this._id))},b.prototype.schedule=function(a,b){var e=new Db,f=Lb(c(e,b,this,a));return new Fb(e,new d(f))},b.prototype._scheduleFuture=function(a,b,d){if(0===b)return this.schedule(a,d);var f=new Db,g=Sb(c(f,d,this,a),b);return new Fb(f,new e(g))},b}(Ib),Vb=Ib["default"]=Ib.async=new Ub;v.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var Wb=ma.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},Xb=Wb.prototype;Xb.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},Xb.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},Xb.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(b0))return void(a.isAcquired=!1);c=a.queue.shift();var d=wa(c)();return d===va?(a.queue=[],a.hasFaulted=!0,e(d.e)):void b(a)}return tb(b,a),b.prototype.next=function(a){this.queue.push(c(this.observer,a))},b.prototype.error=function(a){this.queue.push(d(this.observer,a))},b.prototype.completed=function(){this.queue.push(f(this.observer))},b.prototype.ensureActive=function(){var a=!1;!this.hasFaulted&&this.queue.length>0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(this,g))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(gc),kc=ma.ObservableBase=function(a){function b(a){return a&&ua(a.dispose)?a:ua(a)?yb(a):zb}function c(a,c){var d=c[0],f=c[1],g=wa(f.subscribeCore).call(f,d);g!==va||d.fail(va.e)||e(va.e),d.setDisposable(b(g))}function d(){a.call(this)}return tb(d,a),d.prototype._subscribe=function(a){var b=new je(a),d=[b,this];return Qb.scheduleRequired()?Qb.schedule(d,c):c(null,d),b},d.prototype.subscribeCore=Ha,d}(ic),lc=ma.FlatMapObservable=function(a){function b(b,c,d,e){this.resultSelector=ua(d)?d:null,this.selector=Ma(ua(c)?c:function(){return c},e,3),this.source=b,a.call(this)}function c(a,b,c,d){this.i=0,this.selector=b,this.resultSelector=c,this.source=d,this.o=a,gc.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new c(a,this.selector,this.resultSelector,this))},tb(c,gc),c.prototype._wrapResult=function(a,b,c){return this.resultSelector?a.map(function(a,d){return this.resultSelector(b,a,c,d)},this):a},c.prototype.next=function(a){var b=this.i++,c=wa(this.selector)(a,b,this.source);return c===va?this.o.onError(c.e):(ta(c)&&(c=Rd(c)),(La(c)||Ka(c))&&(c=ic.from(c)),void this.o.onNext(this._wrapResult(c,a,b)))},c.prototype.error=function(a){this.o.onError(a)},c.prototype.completed=function(){this.o.onCompleted()},b}(kc),mc=ma.internals.Enumerable=function(){};w.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0,this._s.isDisposed=!0)};var nc=function(a){function b(b){this.sources=b,a.call(this)}function c(a,b){if(!a.isDisposed){var c=wa(a.e.next).call(a.e);if(c===va)return a.o.onError(c.e);if(c.done)return a.o.onCompleted();var e=c.value;ta(e)&&(e=Rd(e));var f=new Db;a.subscription.setDisposable(f),f.setDisposable(e.subscribe(new d(a,b)))}}function d(a,b){this._state=a,this._recurse=b,gc.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){var b=new Eb,d={isDisposed:!1,o:a,subscription:b,e:this.sources[Ia]()},e=Qb.scheduleRecursive(d,c);return new Gb([b,e,new w(d)])},tb(d,gc),d.prototype.next=function(a){this._state.o.onNext(a)},d.prototype.error=function(a){this._state.o.onError(a)},d.prototype.completed=function(){this._recurse(this._state)},b}(kc);mc.prototype.concat=function(){return new nc(this)};var oc=function(a){function b(b){this.sources=b,a.call(this)}function c(a,b){if(!a.isDisposed){var c=wa(a.e.next).call(a.e);if(c===va)return a.o.onError(c.e);if(c.done)return null!==a.lastError?a.o.onError(a.lastError):a.o.onCompleted();var e=c.value;ta(e)&&(e=Rd(e));var f=new Db;a.subscription.setDisposable(f),f.setDisposable(e.subscribe(new d(a,b)))}}function d(a,b){this._state=a,this._recurse=b,gc.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){var b=new Eb,d={isDisposed:!1,e:this.sources[Ia](),subscription:b,lastError:null,o:a},e=Qb.scheduleRecursive(d,c);return new Gb([b,e,new w(d)])},tb(d,gc),d.prototype.next=function(a){this._state.o.onNext(a)},d.prototype.error=function(a){this._state.lastError=a,this._recurse(this._state)},d.prototype.completed=function(){this._state.o.onCompleted()},b}(kc);mc.prototype.catchError=function(){return new oc(this)};var pc=function(a){function b(a,b){this.v=a,this.c=null==b?-1:b}function c(a){this.v=a.v,this.l=a.c}return tb(b,a),b.prototype[Ia]=function(){return new c(this)},c.prototype.next=function(){return 0===this.l?Ja:(this.l>0&&this.l--,{done:!1,value:this.v})},b}(mc),qc=mc.repeat=function(a,b){return new pc(a,b)},rc=function(a){function b(a,b,c){ -this.s=a,this.fn=b?Ma(b,c,3):null}function c(a){this.i=-1,this.s=a.s,this.l=this.s.length,this.fn=a.fn}return tb(b,a),b.prototype[Ia]=function(){return new c(this)},c.prototype.next=function(){return++this.id?(a.onNext(b[d]),e(d+1)):a.onCompleted()}}return tb(b,a),b.prototype.subscribeCore=function(a){return this._scheduler.scheduleRecursive(0,c(a,this._args))},b}(kc),Dc=ic.fromArray=function(a,b){return Kb(b)||(b=Qb),new Cc(a,b)},Ec=function(a){function b(){a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return zb},b}(kc),Fc=new Ec,Gc=ic.never=function(){return Fc};ic.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return new Cc(b,Qb)},ic.ofWithScheduler=function(a){for(var b=arguments.length,c=new Array(b-1),d=1;b>d;d++)c[d-1]=arguments[d];return new Cc(c,a)};var Hc=function(a){function b(b,c){this._o=b,this._keys=Object.keys(b),this._scheduler=c,a.call(this)}function c(a,b,c){return function(d,e){if(dd?(c.onNext(a+d),e(d+1)):c.onCompleted()}}return tb(b,a),b.prototype.subscribeCore=function(a){return this.scheduler.scheduleRecursive(0,c(this.start,this.rangeCount,a))},b}(kc);ic.range=function(a,b,c){return Kb(c)||(c=Qb),new Ic(a,b,c)};var Jc=function(a){function b(b,c,d){this.value=b,this.repeatCount=null==c?-1:c,this.scheduler=d,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){var b=new G(a,this);return b.run()},b}(kc);G.prototype.run=function(){function a(a,d){return(-1===a||a>0)&&(b.onNext(c),a>0&&a--),0===a?b.onCompleted():void d(a)}var b=this.observer,c=this.parent.value;return this.parent.scheduler.scheduleRecursive(this.parent.repeatCount,a)},ic.repeat=function(a,b,c){return Kb(c)||(c=Qb),new Jc(a,b,c)};var Kc=function(a){function b(b,c){this._value=b,this._scheduler=c,a.call(this)}function c(a,b){var c=b[0],d=b[1];return d.onNext(c),d.onCompleted(),zb}return tb(b,a),b.prototype.subscribeCore=function(a){var b=[this._value,a];return this._scheduler===Ob?c(null,b):this._scheduler.schedule(b,c)},b}(kc),Lc=(ic["return"]=ic.just=function(a,b){return Kb(b)||(b=Ob),new Kc(a,b)},function(a){function b(b,c){this._error=b,this._scheduler=c,a.call(this)}function c(a,b){var c=b[0],d=b[1];return d.onError(c),zb}return tb(b,a),b.prototype.subscribeCore=function(a){var b=[this._error,a];return this._scheduler===Ob?c(null,b):this._scheduler.schedule(b,c)},b}(kc)),Mc=ic["throw"]=function(a,b){return Kb(b)||(b=Ob),new Lc(a,b)},Nc=function(a){function b(b,c){this.source=b,this._fn=c,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){var b=new Db,c=new Eb;return c.setDisposable(b),b.setDisposable(this.source.subscribe(new Oc(a,c,this._fn))),c},b}(kc),Oc=function(a){function b(b,c,d){this._o=b,this._s=c,this._fn=d,a.call(this)}return tb(b,a),b.prototype.next=function(a){this._o.onNext(a)},b.prototype.completed=function(){return this._o.onCompleted()},b.prototype.error=function(a){var b=wa(this._fn)(a);if(b===va)return this._o.onError(b.e);ta(b)&&(b=Rd(b));var c=new Db;this._s.setDisposable(c),c.setDisposable(b.subscribe(this._o))},b}(gc);Yb["catch"]=function(a){return ua(a)?new Nc(this,a):Pc([this,a])};var Pc=ic["catch"]=function(){var a;if(Array.isArray(arguments[0]))a=arguments[0];else{var b=arguments.length;a=new Array(b);for(var c=0;b>c;c++)a[c]=arguments[c]}return sc(a).catchError()};Yb.combineLatest=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return Array.isArray(b[0])?b[0].unshift(this):b.unshift(this),Sc.apply(this,b)};var Qc=function(a){function b(b,c){this._params=b,this._cb=c,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){for(var b=this._params.length,c=new Array(b),d={hasValue:u(b,H),hasValueAll:!1,isDone:u(b,H),values:new Array(b)},e=0;b>e;e++){var f=this._params[e],g=new Db;c[e]=g,ta(f)&&(f=Rd(f)),g.setDisposable(f.subscribe(new Rc(a,e,this._cb,d)))}return new Gb(c)},b}(kc),Rc=function(a){function b(b,c,d,e){this._o=b,this._i=c,this._cb=d,this._state=e,a.call(this)}function c(a){return function(b,c){return c!==a}}return tb(b,a),b.prototype.next=function(a){if(this._state.values[this._i]=a,this._state.hasValue[this._i]=!0,this._state.hasValueAll||(this._state.hasValueAll=this._state.hasValue.every(oa))){var b=wa(this._cb).apply(null,this._state.values);if(b===va)return this._o.onError(b.e);this._o.onNext(b)}else this._state.isDone.filter(c(this._i)).every(oa)&&this._o.onCompleted()},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._state.isDone[this._i]=!0,this._state.isDone.every(oa)&&this._o.onCompleted()},b}(gc),Sc=ic.combineLatest=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=ua(b[a-1])?b.pop():I;return Array.isArray(b[0])&&(b=b[0]),new Qc(b,d)};Yb.concat=function(){for(var a=[],b=0,c=arguments.length;c>b;b++)a.push(arguments[b]);return a.unshift(this),Vc.apply(null,a)};var Tc=function(a){function b(b,c){this._s=b,this._fn=c,a.call(this)}return tb(b,a),b.prototype.next=function(a){this._s.o.onNext(a)},b.prototype.error=function(a){this._s.o.onError(a)},b.prototype.completed=function(){this._s.i++,this._fn(this._s)},b}(gc),Uc=function(a){function b(b){this._sources=b,a.call(this)}function c(a,b){if(!a.disposable.isDisposed){if(a.i===a.sources.length)return a.o.onCompleted();var c=a.sources[a.i];ta(c)&&(c=Rd(c));var d=new Db;a.subscription.setDisposable(d),d.setDisposable(c.subscribe(new Tc(a,b)))}}return tb(b,a),b.prototype.subscribeCore=function(a){var b=new Eb,d=yb(na),e={o:a,i:0,subscription:b,disposable:d,sources:this._sources},f=Ob.scheduleRecursive(e,c);return new Gb([b,d,f])},b}(kc),Vc=ic.concat=function(){var a;if(Array.isArray(arguments[0]))a=arguments[0];else{a=new Array(arguments.length);for(var b=0,c=arguments.length;c>b;b++)a[b]=arguments[b]}return new Uc(a)};Yb.concatAll=function(){return this.merge(1)};var Wc=function(a){function b(b,c){this.source=b,this.maxConcurrent=c,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){var b=new vb;return b.add(this.source.subscribe(new Xc(a,this.maxConcurrent,b))),b},b}(kc),Xc=function(a){function b(b,c,d){this.o=b,this.max=c,this.g=d,this.done=!1,this.q=[],this.activeCount=0,a.call(this)}function c(b,c){this.parent=b,this.sad=c,a.call(this)}return tb(b,a),b.prototype.handleSubscribe=function(a){var b=new Db;this.g.add(b),ta(a)&&(a=Rd(a)),b.setDisposable(a.subscribe(new c(this,b)))},b.prototype.next=function(a){this.activeCount0?this.parent.handleSubscribe(this.parent.q.shift()):(this.parent.activeCount--,this.parent.done&&0===this.parent.activeCount&&this.parent.o.onCompleted())},b}(gc);Yb.merge=function(a){return"number"!=typeof a?Yc(this,a):new Wc(this,a)};var Yc=ic.merge=function(){var a,b,c=[],d=arguments.length;if(arguments[0])if(Kb(arguments[0]))for(a=arguments[0],b=1;d>b;b++)c.push(arguments[b]);else for(a=Ob,b=0;d>b;b++)c.push(arguments[b]);else for(a=Ob,b=1;d>b;b++)c.push(arguments[b]);return Array.isArray(c[0])&&(c=c[0]),F(a,c).mergeAll()},Zc=ma.CompositeError=function(a){this.innerErrors=a,this.message="This contains multiple errors. Check the innerErrors",Error.call(this)};Zc.prototype=Object.create(Error.prototype),Zc.prototype.name="CompositeError";var $c=function(a){function b(b){this.source=b,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){var b=new vb,c=new Db,d={isStopped:!1,errors:[],o:a};return b.add(c),c.setDisposable(this.source.subscribe(new _c(b,d))),b},b}(kc),_c=function(a){function b(b,c){this._group=b,this._state=c,a.call(this)}function c(a,b){0===b.length?a.onCompleted():1===b.length?a.onError(b[0]):a.onError(new Zc(b))}function d(b,c,d){this._inner=b,this._group=c,this._state=d,a.call(this)}return tb(b,a),b.prototype.next=function(a){var b=new Db;this._group.add(b),ta(a)&&(a=Rd(a)),b.setDisposable(a.subscribe(new d(b,this._group,this._state)))},b.prototype.error=function(a){this._state.errors.push(a),this._state.isStopped=!0,1===this._group.length&&c(this._state.o,this._state.errors)},b.prototype.completed=function(){this._state.isStopped=!0,1===this._group.length&&c(this._state.o,this._state.errors)},tb(d,a),d.prototype.next=function(a){this._state.o.onNext(a)},d.prototype.error=function(a){this._state.errors.push(a),this._group.remove(this._inner),this._state.isStopped&&1===this._group.length&&c(this._state.o,this._state.errors)},d.prototype.completed=function(){this._group.remove(this._inner),this._state.isStopped&&1===this._group.length&&c(this._state.o,this._state.errors)},b}(gc);ic.mergeDelayError=function(){var a;if(Array.isArray(arguments[0]))a=arguments[0];else{var b=arguments.length;a=new Array(b);for(var c=0;b>c;c++)a[c]=arguments[c]}var d=F(null,a);return new $c(d)};var ad=function(a){function b(b){this.source=b,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){var b=new vb,c=new Db;return b.add(c),c.setDisposable(this.source.subscribe(new bd(a,b))),b},b}(kc),bd=function(a){function b(b,c){this.o=b,this.g=c,this.done=!1,a.call(this)}function c(b,c){this.parent=b,this.sad=c,a.call(this)}return tb(b,a),b.prototype.next=function(a){var b=new Db;this.g.add(b),ta(a)&&(a=Rd(a)),b.setDisposable(a.subscribe(new c(this,b)))},b.prototype.error=function(a){this.o.onError(a)},b.prototype.completed=function(){this.done=!0,1===this.g.length&&this.o.onCompleted()},tb(c,a),c.prototype.next=function(a){this.parent.o.onNext(a)},c.prototype.error=function(a){this.parent.o.onError(a)},c.prototype.completed=function(){this.parent.g.remove(this.sad),this.parent.done&&1===this.parent.g.length&&this.parent.o.onCompleted()},b}(gc);Yb.mergeAll=function(){return new ad(this)};var cd=function(a){function b(b,c){this._s=b,this._o=ta(c)?Rd(c):c,this._open=!1,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){var b=new Db;b.setDisposable(this._s.subscribe(new dd(a,this))),ta(this._o)&&(this._o=Rd(this._o));var c=new Db;return c.setDisposable(this._o.subscribe(new ed(a,this,c))),new Fb(b,c)},b}(kc),dd=function(a){function b(b,c){this._o=b,this._p=c,a.call(this)}return tb(b,a),b.prototype.next=function(a){this._p._open&&this._o.onNext(a)},b.prototype.error=function(a){this._o.onError(a)},b.prototype.onCompleted=function(){this._p._open&&this._o.onCompleted()},b}(gc),ed=function(a){function b(b,c,d){this._o=b,this._p=c,this._r=d,a.call(this)}return tb(b,a),b.prototype.next=function(){this._p._open=!0,this._r.dispose()},b.prototype.error=function(a){this._o.onError(a)},b.prototype.onCompleted=function(){this._r.dispose()},b}(gc);Yb.skipUntil=function(a){return new cd(this,a)};var fd=function(a){function b(b){this.source=b,a.call(this)}function c(a,b){this.o=a,this.inner=b,this.stopped=!1,this.latest=0,this.hasLatest=!1,gc.call(this)}function d(a,b){this.parent=a,this.id=b,gc.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){var b=new Eb,d=this.source.subscribe(new c(a,b));return new Fb(d,b)},tb(c,gc),c.prototype.next=function(a){var b=new Db,c=++this.latest;this.hasLatest=!0,this.inner.setDisposable(b),ta(a)&&(a=Rd(a)),b.setDisposable(a.subscribe(new d(this,c)))},c.prototype.error=function(a){this.o.onError(a)},c.prototype.completed=function(){this.stopped=!0,!this.hasLatest&&this.o.onCompleted()},tb(d,gc),d.prototype.next=function(a){this.parent.latest===this.id&&this.parent.o.onNext(a)},d.prototype.error=function(a){this.parent.latest===this.id&&this.parent.o.onError(a)},d.prototype.completed=function(){this.parent.latest===this.id&&(this.parent.hasLatest=!1,this.parent.stopped&&this.parent.o.onCompleted())},b}(kc);Yb["switch"]=Yb.switchLatest=function(){return new fd(this)};var gd=function(a){function b(b,c){this.source=b,this.other=ta(c)?Rd(c):c,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return new Fb(this.source.subscribe(a),this.other.subscribe(new hd(a)))},b}(kc),hd=function(a){function b(b){this._o=b,a.call(this)}return tb(b,a),b.prototype.next=function(){this._o.onCompleted()},b.prototype.error=function(a){this._o.onError(a)},b.prototype.onCompleted=na,b}(gc);Yb.takeUntil=function(a){return new gd(this,a)};var id=function(a){function b(b,c,d){this._s=b,this._ss=c,this._cb=d,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){for(var b=this._ss.length,c={hasValue:u(b,H),hasValueAll:!1,values:new Array(b)},d=this._ss.length,e=new Array(d+1),f=0;d>f;f++){var g=this._ss[f],h=new Db;ta(g)&&(g=Rd(g)),h.setDisposable(g.subscribe(new jd(a,f,c))),e[f]=h}var i=new Db;return i.setDisposable(this._s.subscribe(new kd(a,this._cb,c))),e[d]=i,new Gb(e)},b}(kc),jd=function(a){function b(b,c,d){this._o=b,this._i=c,this._state=d,a.call(this)}return tb(b,a),b.prototype.next=function(a){this._state.values[this._i]=a,this._state.hasValue[this._i]=!0,this._state.hasValueAll=this._state.hasValue.every(oa)},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=na,b}(gc),kd=function(a){function b(b,c,d){this._o=b,this._cb=c,this._state=d,a.call(this)}return tb(b,a),b.prototype.next=function(a){var b=[a].concat(this._state.values);if(this._state.hasValueAll){var c=wa(this._cb).apply(null,b);return c===va?this._o.onError(c.e):void this._o.onNext(c)}},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onCompleted()},b}(gc);Yb.withLatestFrom=function(){if(0===arguments.length)throw new Error("invalid arguments");for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=ua(b[a-1])?b.pop():I;return Array.isArray(b[0])&&(b=b[0]),new id(this,b,d)};var ld=function(a){function b(b,c){this._s=b,this._cb=c,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){for(var b=this._s.length,c=new Array(b),d=u(b,H),e=u(b,J),f=0;b>f;f++){var g=this._s[f],h=new Db;c[f]=h,ta(g)&&(g=Rd(g)),h.setDisposable(g.subscribe(new md(a,f,this,e,d)))}return new Gb(c)},b}(kc),md=function(a){function b(b,c,d,e,f){this._o=b,this._i=c,this._p=d,this._q=e,this._d=f,a.call(this)}function c(a){return a.length>0}function d(a){return a.shift()}function e(a){return function(b,c){return c!==a}}return tb(b,a),b.prototype.next=function(a){if(this._q[this._i].push(a),this._q.every(c)){var b=this._q.map(d),f=wa(this._p._cb).apply(null,b);if(f===va)return this._o.onError(f.e);this._o.onNext(f)}else this._d.filter(e(this._i)).every(oa)&&this._o.onCompleted()},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._d[this._i]=!0,this._d.every(oa)&&this._o.onCompleted()},b}(gc);Yb.zip=function(){if(0===arguments.length)throw new Error("invalid arguments");for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=ua(b[a-1])?b.pop():I;Array.isArray(b[0])&&(b=b[0]);var e=this;return b.unshift(e),new ld(b,d)},ic.zip=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];Array.isArray(b[0])&&(b=ua(b[1])?b[0].concat(b[1]):b[0]);var d=b.shift();return d.zip.apply(d,b)};var nd=function(a){function b(b,c){this.sources=b,this._cb=c,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){for(var b=this.sources,c=b.length,d=new Array(c),e={q:u(c,J),done:u(c,H),cb:this._cb,o:a},f=0;c>f;f++)!function(a){var c=b[a],f=new Db;(La(c)||Ka(c))&&(c=Bc(c)),d[a]=f,f.setDisposable(c.subscribe(new od(e,a)))}(f);return new Gb(d)},b}(kc),od=function(a){function b(b,c){this._s=b,this._i=c,a.call(this)}function c(a){return a.length>0}function d(a){return a.shift()}function e(a){return function(b,c){return c!==a}}return tb(b,a),b.prototype.next=function(a){if(this._s.q[this._i].push(a),this._s.q.every(c)){var b=this._s.q.map(d),f=wa(this._s.cb).apply(null,b);if(f===va)return this._s.o.onError(f.e);this._s.o.onNext(f)}else this._s.done.filter(e(this._i)).every(oa)&&this._s.o.onCompleted()},b.prototype.error=function(a){this._s.o.onError(a)},b.prototype.completed=function(){this._s.done[this._i]=!0,this._s.done.every(oa)&&this._s.o.onCompleted()},b}(gc);Yb.zipIterable=function(){if(0===arguments.length)throw new Error("invalid arguments");for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=ua(b[a-1])?b.pop():I,e=this;return b.unshift(e),new nd(b,d)},Yb.asObservable=function(){return new ie(K(this),this)};var pd=function(a){function b(b){this.source=b,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new qd(a))},b}(kc),qd=function(a){function b(b){this._o=b,a.call(this)}return tb(b,a),b.prototype.next=function(a){a.accept(this._o)},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onCompleted()},b}(gc);Yb.dematerialize=function(){return new pd(this)};var rd=function(a){function b(b,c,d){this.source=b,this.keyFn=c,this.comparer=d,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new sd(a,this.keyFn,this.comparer))},b}(kc),sd=function(a){function b(b,c,d){this.o=b,this.keyFn=c,this.comparer=d,this.hasCurrentKey=!1,this.currentKey=null,a.call(this)}return tb(b,a),b.prototype.next=function(a){var b,c=a;return ua(this.keyFn)&&(c=wa(this.keyFn)(a),c===va)?this.o.onError(c.e):this.hasCurrentKey&&(b=wa(this.comparer)(this.currentKey,c),b===va)?this.o.onError(b.e):void(this.hasCurrentKey&&b||(this.hasCurrentKey=!0,this.currentKey=c,this.o.onNext(a)))},b.prototype.error=function(a){this.o.onError(a)},b.prototype.completed=function(){this.o.onCompleted()},b}(gc);Yb.distinctUntilChanged=function(a,b){return b||(b=qa),new rd(this,a,b)};var td=function(a){function b(b,c,d,e){this.source=b,this._oN=c,this._oE=d,this._oC=e,a.call(this)}function c(a,b){this.o=a,this.t=!b._oN||ua(b._oN)?fc(b._oN||na,b._oE||na,b._oC||na):b._oN,this.isStopped=!1,gc.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new c(a,this))},tb(c,gc),c.prototype.next=function(a){var b=wa(this.t.onNext).call(this.t,a);b===va&&this.o.onError(b.e),this.o.onNext(a)},c.prototype.error=function(a){var b=wa(this.t.onError).call(this.t,a);return b===va?this.o.onError(b.e):void this.o.onError(a)},c.prototype.completed=function(){var a=wa(this.t.onCompleted).call(this.t);return a===va?this.o.onError(a.e):void this.o.onCompleted()},b}(kc);Yb["do"]=Yb.tap=Yb.doAction=function(a,b,c){return new td(this,a,b,c)},Yb.doOnNext=Yb.tapOnNext=function(a,b){return this.tap("undefined"!=typeof b?function(c){a.call(b,c)}:a)},Yb.doOnError=Yb.tapOnError=function(a,b){return this.tap(na,"undefined"!=typeof b?function(c){a.call(b,c)}:a)},Yb.doOnCompleted=Yb.tapOnCompleted=function(a,b){return this.tap(na,null,"undefined"!=typeof b?function(){a.call(b)}:a)};var ud=function(a){function b(b,c,d){this.source=b,this._fn=Ma(c,d,0),a.call(this)}function c(a,b){this.isDisposed=!1,this._s=a,this._fn=b}return tb(b,a),b.prototype.subscribeCore=function(a){var b=wa(this.source.subscribe).call(this.source,a);return b===va&&(this._fn(),e(b.e)),new c(b,this._fn)},c.prototype.dispose=function(){if(!this.isDisposed){var a=wa(this._s.dispose).call(this._s);this._fn(),a===va&&e(a.e)}},b}(kc);Yb["finally"]=function(a,b){return new ud(this,a,b)};var vd=function(a){function b(b){this.source=b,a.call(this)}function c(a){this.o=a,this.isStopped=!1}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new c(a))},c.prototype.onNext=na,c.prototype.onError=function(a){this.isStopped||(this.isStopped=!0,this.o.onError(a))},c.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.o.onCompleted())},c.prototype.dispose=function(){this.isStopped=!0},c.prototype.fail=function(a){return this.isStopped?!1:(this.isStopped=!0,this.observer.onError(a),!0)},b}(kc);Yb.ignoreElements=function(){return new vd(this)};var wd=function(a){function b(b,c){this.source=b,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new xd(a))},b}(kc),xd=function(a){function b(b){this._o=b,a.call(this)}return tb(b,a),b.prototype.next=function(a){this._o.onNext(bc(a))},b.prototype.error=function(a){this._o.onNext(cc(a)),this._o.onCompleted()},b.prototype.completed=function(){this._o.onNext(dc()),this._o.onCompleted()},b}(gc);Yb.materialize=function(){return new wd(this)},Yb.repeat=function(a){return qc(this,a).concat()},Yb.retry=function(a){return qc(this,a).catchError()};var yd=function(a){function b(a){return{isDisposed:!1,dispose:function(){this.isDisposed||(this.isDisposed=!0,a.isDisposed=!0)}}}function c(b,c){this.source=b,this._notifier=c,a.call(this)}return tb(c,a),c.prototype.subscribeCore=function(a){var c,d=new le,e=new le,f=this._notifier(d),g=f.subscribe(e),h=this.source["@@iterator"](),i={isDisposed:!1},j=new Eb,k=Qb.scheduleRecursive(null,function(b,f){if(!i.isDisposed){var g=h.next();if(g.done)return void(c?a.onError(c):a.onCompleted());var k=g.value;ta(k)&&(k=Rd(k));var l=new Db,m=new Db;j.setDisposable(new Fb(m,l)),l.setDisposable(k.subscribe(function(b){a.onNext(b)},function(b){m.setDisposable(e.subscribe(f,function(b){a.onError(b)},function(){a.onCompleted()})),d.onNext(b),l.dispose()},function(){a.onCompleted()}))}});return new Gb([g,j,k,b(i)])},c}(kc);Yb.retryWhen=function(a){return new yd(L(this),a)};var zd=function(a){function b(a){return{isDisposed:!1,dispose:function(){this.isDisposed||(this.isDisposed=!0,a.isDisposed=!0)}}}function c(b,c){this.source=b,this._notifier=c,a.call(this)}return tb(c,a),c.prototype.subscribeCore=function(a){var c,d=new le,e=new le,f=this._notifier(d),g=f.subscribe(e),h=this.source["@@iterator"](),i={isDisposed:!1},j=new Eb,k=Qb.scheduleRecursive(null,function(b,f){if(!i.isDisposed){var g=h.next();if(g.done)return void(c?a.onError(c):a.onCompleted());var k=g.value;ta(k)&&(k=Rd(k));var l=new Db,m=new Db;j.setDisposable(new Fb(m,l)),l.setDisposable(k.subscribe(function(b){a.onNext(b)},function(b){a.onError(b)},function(){m.setDisposable(e.subscribe(f,function(b){a.onError(b)},function(){a.onCompleted()})),d.onNext(null),l.dispose()}))}});return new Gb([g,j,k,b(i)])},c}(kc);Yb.repeatWhen=function(a){return new zd(L(this),a)};var Ad=function(a){function b(b,c,d,e){this.source=b,this.accumulator=c,this.hasSeed=d,this.seed=e,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new Bd(a,this))},b}(kc),Bd=function(a){function b(b,c){this._o=b,this._p=c,this._fn=c.accumulator,this._hs=c.hasSeed,this._s=c.seed,this._ha=!1,this._a=null,this._hv=!1,this._i=0,a.call(this)}return tb(b,a),b.prototype.next=function(a){return!this._hv&&(this._hv=!0),this._ha?this._a=wa(this._fn)(this._a,a,this._i,this._p):(this._a=this._hs?wa(this._fn)(this._s,a,this._i,this._p):a,this._ha=!0),this._a===va?this._o.onError(this._a.e):(this._o.onNext(this._a),void this._i++)},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){!this._hv&&this._hs&&this._o.onNext(this._s),this._o.onCompleted()},b}(gc);Yb.scan=function(){var a,b=!1,c=arguments[0];return 2===arguments.length&&(b=!0,a=arguments[1]),new Ad(this,c,b,a)};var Cd=function(a){function b(b,c){this.source=b,this._c=c,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new Dd(a,this._c))},b}(kc),Dd=function(a){function b(b,c){this._o=b,this._c=c,this._q=[],a.call(this)}return tb(b,a),b.prototype.next=function(a){this._q.push(a),this._q.length>this._c&&this._o.onNext(this._q.shift())},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onCompleted()},b}(gc);Yb.skipLast=function(a){if(0>a)throw new Ea;return new Cd(this,a)},Yb.startWith=function(){var a,b=0;arguments.length&&Kb(arguments[0])?(a=arguments[0],b=1):a=Ob;for(var c=[],d=b,e=arguments.length;e>d;d++)c.push(arguments[d]);return sc([Dc(c,a),this]).concat()};var Ed=function(a){function b(b,c){this._o=b,this._c=c,this._q=[],a.call(this)}return tb(b,a),b.prototype.next=function(a){this._q.push(a),this._q.length>this._c&&this._q.shift()},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){for(;this._q.length>0;)this._o.onNext(this._q.shift());this._o.onCompleted()},b}(gc);Yb.takeLast=function(a){if(0>a)throw new Ea;var b=this;return new ie(function(c){return b.subscribe(new Ed(c,a))},b)},Yb.flatMapConcat=Yb.concatMap=function(a,b,c){return new lc(this,a,b,c).merge(1)};var Fd=function(a){function b(b,c,d){this.source=b,this.selector=Ma(c,d,3),a.call(this)}function c(a,b){return function(c,d,e){return a.call(this,b.selector(c,d,e),d,e)}}function d(a,b,c){this.o=a,this.selector=b,this.source=c,this.i=0,gc.call(this)}return tb(b,a),b.prototype.internalMap=function(a,d){return new b(this.source,c(a,this),d)},b.prototype.subscribeCore=function(a){return this.source.subscribe(new d(a,this.selector,this))},tb(d,gc),d.prototype.next=function(a){var b=wa(this.selector)(a,this.i++,this.source);return b===va?this.o.onError(b.e):void this.o.onNext(b)},d.prototype.error=function(a){this.o.onError(a)},d.prototype.completed=function(){this.o.onCompleted()},b}(kc);Yb.map=Yb.select=function(a,b){var c="function"==typeof a?a:function(){return a};return this instanceof Fd?this.internalMap(c,b):new Fd(this,c,b)},Yb.pluck=function(){var a=arguments.length,b=new Array(a);if(0===a)throw new Error("List of properties cannot be empty.");for(var c=0;a>c;c++)b[c]=arguments[c];return this.map(M(b,a))},Yb.flatMap=Yb.selectMany=function(a,b,c){return new lc(this,a,b,c).mergeAll()},ma.Observable.prototype.flatMapLatest=function(a,b,c){return new lc(this,a,b,c).switchLatest()};var Gd=function(a){function b(b,c){this.source=b,this._count=c,a.call(this)}function c(a,b){this._o=a,this._r=b,gc.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new c(a,this._count))},tb(c,gc),c.prototype.next=function(a){this._r<=0?this._o.onNext(a):this._r--},c.prototype.error=function(a){this._o.onError(a)},c.prototype.completed=function(){this._o.onCompleted()},b}(kc);Yb.skip=function(a){if(0>a)throw new Ea;return new Gd(this,a)};var Hd=function(a){function b(b,c){this.source=b,this._fn=c,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new Id(a,this))},b}(kc),Id=function(a){function b(b,c){this._o=b,this._p=c,this._i=0,this._r=!1,a.call(this)}return tb(b,a),b.prototype.next=function(a){if(!this._r){var b=wa(this._p._fn)(a,this._i++,this._p);if(b===va)return this._o.onError(b.e);this._r=!b}this._r&&this._o.onNext(a)},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onCompleted()},b}(gc);Yb.skipWhile=function(a,b){var c=Ma(a,b,3);return new Hd(this,c)};var Jd=function(a){function b(b,c){this.source=b,this._count=c,a.call(this)}function c(a,b){this._o=a,this._c=b,this._r=b,gc.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new c(a,this._count))},tb(c,gc),c.prototype.next=function(a){this._r-->0&&(this._o.onNext(a),this._r<=0&&this._o.onCompleted())},c.prototype.error=function(a){this._o.onError(a)},c.prototype.completed=function(){this._o.onCompleted()},b}(kc);Yb.take=function(a,b){if(0>a)throw new Ea;return 0===a?yc(b):new Jd(this,a)};var Kd=function(a){function b(b,c){this.source=b,this._fn=c,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new Ld(a,this))},b}(kc),Ld=function(a){function b(b,c){this._o=b,this._p=c,this._i=0,this._r=!0,a.call(this)}return tb(b,a),b.prototype.next=function(a){return this._r&&(this._r=wa(this._p._fn)(a,this._i++,this._p),this._r===va)?this._o.onError(this._r.e):void(this._r?this._o.onNext(a):this._o.onCompleted())},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onCompleted()},b}(gc);Yb.takeWhile=function(a,b){var c=Ma(a,b,3);return new Kd(this,c)};var Md=function(a){function b(b,c,d){this.source=b,this.predicate=Ma(c,d,3),a.call(this)}function c(a,b){return function(c,d,e){return b.predicate(c,d,e)&&a.call(this,c,d,e)}}function d(a,b,c){this.o=a,this.predicate=b,this.source=c,this.i=0,gc.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new d(a,this.predicate,this))},b.prototype.internalFilter=function(a,d){return new b(this.source,c(a,this),d)},tb(d,gc),d.prototype.next=function(a){var b=wa(this.predicate)(a,this.i++,this.source);return b===va?this.o.onError(b.e):void(b&&this.o.onNext(a))},d.prototype.error=function(a){this.o.onError(a)},d.prototype.completed=function(){this.o.onCompleted()},b}(kc);Yb.filter=Yb.where=function(a,b){return this instanceof Md?this.internalFilter(a,b):new Md(this,a,b)},ic.fromCallback=function(a,b,c){return function(){"undefined"==typeof b&&(b=this);for(var d=arguments.length,e=new Array(d),f=0;d>f;f++)e[f]=arguments[f];return N(a,b,c,e)}},ic.fromNodeCallback=function(a,b,c){return function(){ -"undefined"==typeof b&&(b=this);for(var d=arguments.length,e=new Array(d),f=0;d>f;f++)e[f]=arguments[f];return P(a,b,c,e)}},S.prototype.dispose=function(){this.isDisposed||(this._e.removeEventListener(this._n,this._fn,!1),this.isDisposed=!0)},ma.config.useNativeEvents=!1;var Nd=function(a){function b(b,c,d){this._el=b,this._n=c,this._fn=d,a.call(this)}function c(a,b){return function(){var c=arguments[0];return ua(b)&&(c=wa(b).apply(null,arguments),c===va)?a.onError(c.e):void a.onNext(c)}}return tb(b,a),b.prototype.subscribeCore=function(a){return T(this._el,this._n,c(a,this._fn))},b}(kc);ic.fromEvent=function(a,b,c){return a.addListener?Pd(function(c){a.addListener(b,c)},function(c){a.removeListener(b,c)},c):ma.config.useNativeEvents||"function"!=typeof a.on||"function"!=typeof a.off?new Nd(a,b,c).publish().refCount():Pd(function(c){a.on(b,c)},function(c){a.off(b,c)},c)};var Od=function(a){function b(b,c,d){this._add=b,this._del=c,this._fn=d,a.call(this)}function c(a,b){return function(){var c=arguments[0];return ua(b)&&(c=wa(b).apply(null,arguments),c===va)?a.onError(c.e):void a.onNext(c)}}function d(a,b,c){this._del=a,this._fn=b,this._ret=c,this.isDisposed=!1}return tb(b,a),b.prototype.subscribeCore=function(a){var b=c(a,this._fn),e=this._add(b);return new d(this._del,b,e)},d.prototype.dispose=function(){this.isDisposed||(ua(this._del)&&this._del(this._fn,this._ret),this.isDisposed=!0)},b}(kc),Pd=ic.fromEventPattern=function(a,b,c){return new Od(a,b,c).publish().refCount()},Qd=function(a){function b(b,c){this._p=b,this._s=c,a.call(this)}function c(a,b){var c=b[0],d=b[1];c.onNext(d),c.onCompleted()}function d(a,b){var c=b[0],d=b[1];c.onError(d)}return tb(b,a),b.prototype.subscribeCore=function(a){var b=new Db,e=this;return this._p.then(function(d){b.setDisposable(e._s.schedule([a,d],c))},function(c){b.setDisposable(e._s.schedule([a,c],d))}),b},b}(kc),Rd=ic.fromPromise=function(a,b){return b||(b=Vb),new Qd(a,b)};Yb.toPromise=function(a){if(a||(a=ma.config.Promise),!a)throw new Fa("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d;b.subscribe(function(a){d=a},c,function(){a(d)})})},ic.startAsync=function(a){var b=wa(a)();return b===va?Mc(b.e):Rd(b)};var Sd=function(a){function b(b,c,d){this.source=b,this._fn1=c,this._fn2=d,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){var b=this.source.multicast(this._fn1());return new Fb(this._fn2(b).subscribe(a),b.connect())},b}(kc);Yb.multicast=function(a,b){return ua(a)?new Sd(this,a,b):new Ud(this,a)},Yb.publish=function(a){return a&&ua(a)?this.multicast(function(){return new le},a):this.multicast(new le)},Yb.share=function(){return this.publish().refCount()},Yb.publishLast=function(a){return a&&ua(a)?this.multicast(function(){return new me},a):this.multicast(new me)},Yb.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new oe(b)},a):this.multicast(new oe(a))},Yb.shareValue=function(a){return this.publishValue(a).refCount()},Yb.replay=function(a,b,c,d){return a&&ua(a)?this.multicast(function(){return new pe(b,c,d)},a):this.multicast(new pe(b,c,d))},Yb.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};var Td=function(a){function b(b){this.source=b,this._count=0,this._connectableSubscription=null,a.call(this)}function c(a,b){this._p=a,this._s=b,this.isDisposed=!1}return tb(b,a),b.prototype.subscribeCore=function(a){var b=this.source.subscribe(a);return 1===++this._count&&(this._connectableSubscription=this.source.connect()),new c(this,b)},c.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0,this._s.dispose(),0===--this._p._count&&this._p._connectableSubscription.dispose())},b}(kc),Ud=ma.ConnectableObservable=function(a){function b(b,c){this.source=b,this._connection=null,this._source=b.asObservable(),this._subject=c,a.call(this)}function c(a,b){this._p=a,this._s=b}return tb(b,a),c.prototype.dispose=function(){this._s&&(this._s.dispose(),this._s=null,this._p._connection=null)},b.prototype.connect=function(){if(!this._connection){var a=this._source.subscribe(this._subject);this._connection=new c(this,a)}return this._connection},b.prototype._subscribe=function(a){return this._subject.subscribe(a)},b.prototype.refCount=function(){return new Td(this)},b}(ic),Vd=function(a){function b(b,c){this._dt=b,this._s=c,a.call(this)}function c(a,b){b.onNext(0),b.onCompleted()}return tb(b,a),b.prototype.subscribeCore=function(a){return this._s.scheduleFuture(a,this._dt,c)},b}(kc),Wd=ic.interval=function(a,b){return W(a,a,Kb(b)?b:Vb)};ic.timer=function(b,c,d){var e;return Kb(d)||(d=Vb),null!=c&&"number"==typeof c?e=c:Kb(c)&&(d=c),(b instanceof Date||"number"==typeof b)&&e===a?U(b,d):b instanceof Date&&e!==a?V(b,c,d):W(b,e,d)};Yb.delay=function(){var a=arguments[0];if("number"==typeof a||a instanceof Date){var b=a,c=arguments[1];return Kb(c)||(c=Vb),b instanceof Date?Y(this,b,c):X(this,b,c)}if(ic.isObservable(a)||ua(a))return Z(this,a,arguments[1]);throw new Error("Invalid arguments")};var Xd=function(a){function b(b,c,d){Kb(d)||(d=Vb),this.source=b,this._dt=c,this._s=d,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){var b=new Eb;return new Fb(this.source.subscribe(new Yd(a,this._dt,this._s,b)),b)},b}(kc),Yd=function(a){function b(b,c,d,e){this._o=b,this._d=c,this._scheduler=d,this._c=e,this._v=null,this._hv=!1,this._id=0,a.call(this)}return tb(b,a),b.prototype.next=function(a){this._hv=!0,this._v=a;var b=++this._id,c=new Db;this._c.setDisposable(c),c.setDisposable(this._scheduler.scheduleFuture(this,this._d,function(c,d){d._hv&&d._id===b&&d._o.onNext(a),d._hv=!1}))},b.prototype.error=function(a){this._c.dispose(),this._o.onError(a),this._hv=!1,this._id++},b.prototype.completed=function(){this._c.dispose(),this._hv&&this._o.onNext(this._v),this._o.onCompleted(),this._hv=!1,this._id++},b}(gc);Yb.debounce=function(){if(ua(arguments[0]))return $(this,arguments[0]);if("number"==typeof arguments[0])return new Xd(this,arguments[0],arguments[1]);throw new Error("Invalid arguments")};var Zd=function(a){function b(b,c){this.source=b,this._s=c,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new $d(a,this._s))},b}(kc),$d=function(a){function b(b,c){this._o=b,this._s=c,a.call(this)}return tb(b,a),b.prototype.next=function(a){this._o.onNext({value:a,timestamp:this._s.now()})},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._o.onCompleted()},b}(gc);Yb.timestamp=function(a){return Kb(a)||(a=Vb),new Zd(this,a)};var _d=function(a){function b(b,c){this.source=b,this._sampler=c,a.call(this)}return tb(b,a),b.prototype.subscribeCore=function(a){var b={o:a,atEnd:!1,value:null,hasValue:!1,sourceSubscription:new Db};return b.sourceSubscription.setDisposable(this.source.subscribe(new be(b))),new Fb(b.sourceSubscription,this._sampler.subscribe(new ae(b)))},b}(kc),ae=function(a){function b(b){this._s=b,a.call(this)}return tb(b,a),b.prototype._handleMessage=function(){this._s.hasValue&&(this._s.hasValue=!1,this._s.o.onNext(this._s.value)),this._s.atEnd&&this._s.o.onCompleted()},b.prototype.next=function(){this._handleMessage()},b.prototype.error=function(a){this._s.onError(a)},b.prototype.completed=function(){this._handleMessage()},b}(gc),be=function(a){function b(b){this._s=b,a.call(this)}return tb(b,a),b.prototype.next=function(a){this._s.hasValue=!0,this._s.value=a},b.prototype.error=function(a){this._s.o.onError(a)},b.prototype.completed=function(){this._s.atEnd=!0,this._s.sourceSubscription.dispose()},b}(gc);Yb.sample=function(a,b){return Kb(b)||(b=Vb),"number"==typeof a?new _d(this,Wd(a,b)):new _d(this,a)};var ce=ma.TimeoutError=function(a){this.message=a||"Timeout has occurred",this.name="TimeoutError",Error.call(this)};ce.prototype=Object.create(Error.prototype),Yb.timeout=function(){var a=arguments[0];if(a instanceof Date||"number"==typeof a)return aa(this,a,arguments[1],arguments[2]);if(ic.isObservable(a)||ua(a))return _(this,a,arguments[1],arguments[2]);throw new Error("Invalid arguments")},Yb.throttle=function(a,b){Kb(b)||(b=Vb);var c=+a||0;if(0>=c)throw new RangeError("windowDuration cannot be less or equal zero.");var d=this;return new ie(function(a){var e=0;return d.subscribe(function(d){var f=b.now();(0===e||f-e>=c)&&(e=f,a.onNext(d))},function(b){a.onError(b)},function(){a.onCompleted()})},d)};var de=function(a){function b(b,c){this.source=b,this.controller=new le,c&&c.subscribe?this.pauser=this.controller.merge(c):this.pauser=this.controller,a.call(this)}return tb(b,a),b.prototype._subscribe=function(a){var b=this.source.publish(),c=b.subscribe(a),d=zb,e=this.pauser.distinctUntilChanged().subscribe(function(a){a?d=b.connect():(d.dispose(),d=zb)});return new Gb([c,d,e])},b.prototype.pause=function(){this.controller.onNext(!1)},b.prototype.resume=function(){this.controller.onNext(!0)},b}(ic);Yb.pausable=function(a){return new de(this,a)};var ee=function(b){function c(a,c){this.source=a,this.controller=new le,c&&c.subscribe?this.pauser=this.controller.merge(c):this.pauser=this.controller,b.call(this)}return tb(c,b),c.prototype._subscribe=function(b){function c(){for(;e.length>0;)b.onNext(e.shift())}var d,e=[],f=ba(this.source,this.pauser.startWith(!1).distinctUntilChanged(),function(a,b){return{data:a,shouldFire:b}}).subscribe(function(f){d!==a&&f.shouldFire!==d?(d=f.shouldFire,f.shouldFire&&c()):(d=f.shouldFire,f.shouldFire?b.onNext(f.data):e.push(f.data))},function(a){c(),b.onError(a)},function(){c(),b.onCompleted()});return f},c.prototype.pause=function(){this.controller.onNext(!1)},c.prototype.resume=function(){this.controller.onNext(!0)},c}(ic);Yb.pausableBuffered=function(a){return new ee(this,a)};var fe=function(a){function b(b,c,d){a.call(this),this.subject=new ge(c,d),this.source=b.multicast(this.subject).refCount()}return tb(b,a),b.prototype._subscribe=function(a){return this.source.subscribe(a)},b.prototype.request=function(a){return this.subject.request(null==a?-1:a)},b}(ic),ge=function(a){function b(b,c){null==b&&(b=!0),a.call(this),this.subject=new le,this.enableQueue=b,this.queue=b?[]:null,this.requestedCount=0,this.requestedDisposable=null,this.error=null,this.hasFailed=!1,this.hasCompleted=!1,this.scheduler=c||Qb}return tb(b,a),ub(b.prototype,ec,{_subscribe:function(a){return this.subject.subscribe(a)},onCompleted:function(){this.hasCompleted=!0,this.enableQueue&&0!==this.queue.length?this.queue.push(Zb.createOnCompleted()):(this.subject.onCompleted(),this.disposeCurrentRequest())},onError:function(a){this.hasFailed=!0,this.error=a,this.enableQueue&&0!==this.queue.length?this.queue.push(Zb.createOnError(a)):(this.subject.onError(a),this.disposeCurrentRequest())},onNext:function(a){this.requestedCount<=0?this.enableQueue&&this.queue.push(Zb.createOnNext(a)):(0===this.requestedCount--&&this.disposeCurrentRequest(),this.subject.onNext(a))},_processRequest:function(a){if(this.enableQueue)for(;this.queue.length>0&&(a>0||"N"!==this.queue[0].kind);){var b=this.queue.shift();b.accept(this.subject),"N"===b.kind?a--:(this.disposeCurrentRequest(),this.queue=[])}return a},request:function(a){this.disposeCurrentRequest();var b=this;return this.requestedDisposable=this.scheduler.schedule(a,function(a,c){var d=b._processRequest(c),e=b.hasCompleted||b.hasFailed;return!e&&d>0?(b.requestedCount=d,yb(function(){b.requestedCount=0})):void 0}),this.requestedDisposable},disposeCurrentRequest:function(){this.requestedDisposable&&(this.requestedDisposable.dispose(),this.requestedDisposable=null)}}),b}(ic);Yb.controlled=function(a,b){return a&&Kb(a)&&(b=a,a=!0),null==a&&(a=!0),new fe(this,a,b)},Yb.pipe=function(a){function b(){c.resume()}var c=this.pausableBuffered();return a.addListener("drain",b),c.subscribe(function(b){!a.write(String(b))&&c.pause()},function(b){a.emit("error",b)},function(){!a._isStdio&&a.end(),a.removeListener("drain",b)}),c.resume(),a};var he=function(a){function b(b,c){this._o=b,this._xform=c,a.call(this)}return tb(b,a),b.prototype.next=function(a){var b=wa(this._xform["@@transducer/step"]).call(this._xform,this._o,a);b===va&&this._o.onError(b.e)},b.prototype.error=function(a){this._o.onError(a)},b.prototype.completed=function(){this._xform["@@transducer/result"](this._o)},b}(gc);Yb.transduce=function(a){var b=this;return new ie(function(c){var d=a(ca(c));return b.subscribe(new he(c,d))},b)};var ie=ma.AnonymousObservable=function(a){function b(a){return a&&ua(a.dispose)?a:ua(a)?yb(a):zb}function c(a,c){var d=c[0],f=c[1],g=wa(f.__subscribe).call(f,d);g!==va||d.fail(va.e)||e(va.e),d.setDisposable(b(g))}function d(b,c){this.source=c,this.__subscribe=b,a.call(this)}return tb(d,a),d.prototype._subscribe=function(a){var b=new je(a),d=[b,this];return Qb.scheduleRequired()?Qb.schedule(d,c):c(null,d),b},d}(ic),je=function(a){function b(b){a.call(this),this.observer=b,this.m=new Db}tb(b,a);var c=b.prototype;return c.next=function(a){var b=wa(this.observer.onNext).call(this.observer,a);b===va&&(this.dispose(),e(b.e))},c.error=function(a){var b=wa(this.observer.onError).call(this.observer,a);this.dispose(),b===va&&e(b.e)},c.completed=function(){var a=wa(this.observer.onCompleted).call(this.observer);this.dispose(),a===va&&e(a.e)},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(gc),ke=function(a,b){this._s=a,this._o=b};ke.prototype.dispose=function(){if(!this._s.isDisposed&&null!==this._o){var a=this._s.observers.indexOf(this._o);this._s.observers.splice(a,1),this._o=null}};var le=ma.Subject=function(a){function b(){a.call(this),this.isDisposed=!1,this.isStopped=!1,this.observers=[],this.hasError=!1}return tb(b,a),ub(b.prototype,ec.prototype,{_subscribe:function(a){return Bb(this),this.isStopped?this.hasError?(a.onError(this.error),zb):(a.onCompleted(),zb):(this.observers.push(a),new ke(this,a))},hasObservers:function(){return Bb(this),this.observers.length>0},onCompleted:function(){if(Bb(this),!this.isStopped){this.isStopped=!0;for(var a=0,b=c(this.observers),d=b.length;d>a;a++)b[a].onCompleted();this.observers.length=0}},onError:function(a){if(Bb(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;for(var b=0,d=c(this.observers),e=d.length;e>b;b++)d[b].onError(a);this.observers.length=0}},onNext:function(a){if(Bb(this),!this.isStopped)for(var b=0,d=c(this.observers),e=d.length;e>b;b++)d[b].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),b.create=function(a,b){return new ne(a,b)},b}(ic),me=ma.AsyncSubject=function(a){function b(){a.call(this),this.isDisposed=!1,this.isStopped=!1,this.hasValue=!1,this.observers=[],this.hasError=!1}return tb(b,a),ub(b.prototype,ec.prototype,{_subscribe:function(a){return Bb(this),this.isStopped?(this.hasError?a.onError(this.error):this.hasValue?(a.onNext(this.value),a.onCompleted()):a.onCompleted(),zb):(this.observers.push(a),new ke(this,a))},hasObservers:function(){return Bb(this),this.observers.length>0},onCompleted:function(){var a,b;if(Bb(this),!this.isStopped){this.isStopped=!0;var d=c(this.observers),b=d.length;if(this.hasValue)for(a=0;b>a;a++){var e=d[a];e.onNext(this.value),e.onCompleted()}else for(a=0;b>a;a++)d[a].onCompleted();this.observers.length=0}},onError:function(a){if(Bb(this),!this.isStopped){this.isStopped=!0,this.hasError=!0,this.error=a;for(var b=0,d=c(this.observers),e=d.length;e>b;b++)d[b].onError(a);this.observers.length=0}},onNext:function(a){Bb(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.error=null,this.value=null}}),b}(ic),ne=ma.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this)}return tb(b,a),ub(b.prototype,ec.prototype,{_subscribe:function(a){return this.observable.subscribe(a)},onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(ic),oe=ma.BehaviorSubject=function(a){function b(b){a.call(this),this.value=b,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.hasError=!1}return tb(b,a),ub(b.prototype,ec.prototype,{_subscribe:function(a){return Bb(this),this.isStopped?(this.hasError?a.onError(this.error):a.onCompleted(),zb):(this.observers.push(a),a.onNext(this.value),new ke(this,a))},getValue:function(){return Bb(this),this.hasError&&e(this.error),this.value},hasObservers:function(){return Bb(this),this.observers.length>0},onCompleted:function(){if(Bb(this),!this.isStopped){this.isStopped=!0;for(var a=0,b=c(this.observers),d=b.length;d>a;a++)b[a].onCompleted();this.observers.length=0}},onError:function(a){if(Bb(this),!this.isStopped){this.isStopped=!0,this.hasError=!0,this.error=a;for(var b=0,d=c(this.observers),e=d.length;e>b;b++)d[b].onError(a);this.observers.length=0}},onNext:function(a){if(Bb(this),!this.isStopped){this.value=a;for(var b=0,d=c(this.observers),e=d.length;e>b;b++)d[b].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.error=null}}),b}(ic),pe=ma.ReplaySubject=function(a){function b(a,b){return yb(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function d(b,c,d){this.bufferSize=null==b?e:b,this.windowSize=null==c?e:c,this.scheduler=d||Qb,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this)}var e=Math.pow(2,53)-1;return tb(d,a),ub(d.prototype,ec.prototype,{_subscribe:function(a){Bb(this);var c=new jc(this.scheduler,a),d=b(this,c);this._trim(this.scheduler.now()),this.observers.push(c);for(var e=0,f=this.q.length;f>e;e++)c.onNext(this.q[e].value);return this.hasError?c.onError(this.error):this.isStopped&&c.onCompleted(),c.ensureActive(),d},hasObservers:function(){return Bb(this),this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift();for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(Bb(this),!this.isStopped){var b=this.scheduler.now();this.q.push({interval:b,value:a}),this._trim(b);for(var d=0,e=c(this.observers),f=e.length;f>d;d++){var g=e[d];g.onNext(a),g.ensureActive()}}},onError:function(a){if(Bb(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var b=this.scheduler.now();this._trim(b);for(var d=0,e=c(this.observers),f=e.length;f>d;d++){var g=e[d];g.onError(a),g.ensureActive()}this.observers.length=0}},onCompleted:function(){if(Bb(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var b=0,d=c(this.observers),e=d.length;e>b;b++){var f=d[b];f.onCompleted(),f.ensureActive()}this.observers.length=0}},dispose:function(){this.isDisposed=!0,this.observers=null}}),d}(ic);ma.Pauser=function(a){function b(){a.call(this)}return tb(b,a),b.prototype.pause=function(){this.onNext(!1)},b.prototype.resume=function(){this.onNext(!0)},b}(le),"function"==typeof define&&"object"==typeof define.amd&&define.amd?(la.Rx=ma,define(function(){return ma})):ea&&fa?ja?(fa.exports=ma).Rx=ma:ea.Rx=ma:la.Rx=ma;var qe=j()}).call(this); -//# sourceMappingURL=rx.lite.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/AsyncSubject.d.ts b/tools/node_modules/eslint/node_modules/rxjs/AsyncSubject.d.ts new file mode 100644 index 00000000000000..40493db6ef1aa7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/AsyncSubject.d.ts @@ -0,0 +1,15 @@ +import { Subject } from './Subject'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +/** + * @class AsyncSubject + */ +export declare class AsyncSubject extends Subject { + private value; + private hasNext; + private hasCompleted; + /** @deprecated internal use only */ _subscribe(subscriber: Subscriber): Subscription; + next(value: T): void; + error(error: any): void; + complete(): void; +} diff --git a/tools/node_modules/eslint/node_modules/rxjs/AsyncSubject.js b/tools/node_modules/eslint/node_modules/rxjs/AsyncSubject.js new file mode 100644 index 00000000000000..d6e0dce9de5fb4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/AsyncSubject.js @@ -0,0 +1,53 @@ +"use strict"; +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +var Subject_1 = require('./Subject'); +var Subscription_1 = require('./Subscription'); +/** + * @class AsyncSubject + */ +var AsyncSubject = (function (_super) { + __extends(AsyncSubject, _super); + function AsyncSubject() { + _super.apply(this, arguments); + this.value = null; + this.hasNext = false; + this.hasCompleted = false; + } + /** @deprecated internal use only */ 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/tools/node_modules/eslint/node_modules/rxjs/AsyncSubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/AsyncSubject.js.map new file mode 100644 index 00000000000000..1d288e527f1058 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/AsyncSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncSubject.js","sourceRoot":"","sources":["../src/AsyncSubject.ts"],"names":[],"mappings":";;;;;;AAAA,wBAAwB,WAAW,CAAC,CAAA;AAEpC,6BAA6B,gBAAgB,CAAC,CAAA;AAE9C;;GAEG;AACH;IAAqC,gCAAU;IAA/C;QAAqC,8BAAU;QACrC,UAAK,GAAM,IAAI,CAAC;QAChB,YAAO,GAAY,KAAK,CAAC;QACzB,iBAAY,GAAY,KAAK,CAAC;IAkCxC,CAAC;IAhCC,oCAAoC,CAAC,iCAAU,GAAV,UAAW,UAA2B;QACzE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,MAAM,CAAC,2BAAY,CAAC,KAAK,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC,2BAAY,CAAC,KAAK,CAAC;QAC5B,CAAC;QACD,MAAM,CAAC,gBAAK,CAAC,UAAU,YAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,2BAAI,GAAJ,UAAK,KAAQ;QACX,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,4BAAK,GAAL,UAAM,KAAU;QACd,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACvB,gBAAK,CAAC,KAAK,YAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,+BAAQ,GAAR;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACjB,gBAAK,CAAC,IAAI,YAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,gBAAK,CAAC,QAAQ,WAAE,CAAC;IACnB,CAAC;IACH,mBAAC;AAAD,CAAC,AArCD,CAAqC,iBAAO,GAqC3C;AArCY,oBAAY,eAqCxB,CAAA","sourcesContent":["import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * @class AsyncSubject\n */\nexport class AsyncSubject extends Subject {\n private value: T = null;\n private hasNext: boolean = false;\n private hasCompleted: boolean = false;\n\n /** @deprecated internal use only */ _subscribe(subscriber: Subscriber): Subscription {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n } else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return Subscription.EMPTY;\n }\n return super._subscribe(subscriber);\n }\n\n next(value: T): void {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n }\n\n error(error: any): void {\n if (!this.hasCompleted) {\n super.error(error);\n }\n }\n\n complete(): void {\n this.hasCompleted = true;\n if (this.hasNext) {\n super.next(this.value);\n }\n super.complete();\n }\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/BehaviorSubject.d.ts b/tools/node_modules/eslint/node_modules/rxjs/BehaviorSubject.d.ts new file mode 100644 index 00000000000000..f3ae834283fb79 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/BehaviorSubject.d.ts @@ -0,0 +1,14 @@ +import { Subject } from './Subject'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +/** + * @class BehaviorSubject + */ +export declare class BehaviorSubject extends Subject { + private _value; + constructor(_value: T); + readonly value: T; + /** @deprecated internal use only */ _subscribe(subscriber: Subscriber): Subscription; + getValue(): T; + next(value: T): void; +} diff --git a/tools/node_modules/eslint/node_modules/rxjs/BehaviorSubject.js b/tools/node_modules/eslint/node_modules/rxjs/BehaviorSubject.js new file mode 100644 index 00000000000000..1d8654fe3d753c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/BehaviorSubject.js @@ -0,0 +1,49 @@ +"use strict"; +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +var Subject_1 = require('./Subject'); +var ObjectUnsubscribedError_1 = require('./util/ObjectUnsubscribedError'); +/** + * @class BehaviorSubject + */ +var BehaviorSubject = (function (_super) { + __extends(BehaviorSubject, _super); + function BehaviorSubject(_value) { + _super.call(this); + this._value = _value; + } + Object.defineProperty(BehaviorSubject.prototype, "value", { + get: function () { + return this.getValue(); + }, + enumerable: true, + configurable: true + }); + /** @deprecated internal use only */ 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/tools/node_modules/eslint/node_modules/rxjs/BehaviorSubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/BehaviorSubject.js.map new file mode 100644 index 00000000000000..31c2bb817672eb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/BehaviorSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BehaviorSubject.js","sourceRoot":"","sources":["../src/BehaviorSubject.ts"],"names":[],"mappings":";;;;;;AAAA,wBAAwB,WAAW,CAAC,CAAA;AAGpC,wCAAwC,gCAAgC,CAAC,CAAA;AAEzE;;GAEG;AACH;IAAwC,mCAAU;IAEhD,yBAAoB,MAAS;QAC3B,iBAAO,CAAC;QADU,WAAM,GAAN,MAAM,CAAG;IAE7B,CAAC;IAED,sBAAI,kCAAK;aAAT;YACE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;;;OAAA;IAED,oCAAoC,CAAC,oCAAU,GAAV,UAAW,UAAyB;QACvE,IAAM,YAAY,GAAG,gBAAK,CAAC,UAAU,YAAC,UAAU,CAAC,CAAC;QAClD,EAAE,CAAC,CAAC,YAAY,IAAI,CAAiB,YAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,CAAC,YAAY,CAAC;IACtB,CAAC;IAED,kCAAQ,GAAR;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,CAAC,WAAW,CAAC;QACzB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,iDAAuB,EAAE,CAAC;QACtC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;IACH,CAAC;IAED,8BAAI,GAAJ,UAAK,KAAQ;QACX,gBAAK,CAAC,IAAI,YAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IACH,sBAAC;AAAD,CAAC,AA/BD,CAAwC,iBAAO,GA+B9C;AA/BY,uBAAe,kBA+B3B,CAAA","sourcesContent":["import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, ISubscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\n\n/**\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @deprecated internal use only */ _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n if (subscription && !(subscription).closed) {\n subscriber.next(this._value);\n }\n return subscription;\n }\n\n getValue(): T {\n if (this.hasError) {\n throw this.thrownError;\n } else if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return this._value;\n }\n }\n\n next(value: T): void {\n super.next(this._value = value);\n }\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/InnerSubscriber.d.ts b/tools/node_modules/eslint/node_modules/rxjs/InnerSubscriber.d.ts new file mode 100644 index 00000000000000..72087f19bc24bf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/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; + private outerValue; + private outerIndex; + 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/tools/node_modules/eslint/node_modules/rxjs/InnerSubscriber.js b/tools/node_modules/eslint/node_modules/rxjs/InnerSubscriber.js new file mode 100644 index 00000000000000..85044bf6610a44 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/InnerSubscriber.js @@ -0,0 +1,36 @@ +"use strict"; +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +var Subscriber_1 = require('./Subscriber'); +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +var InnerSubscriber = (function (_super) { + __extends(InnerSubscriber, _super); + function InnerSubscriber(parent, outerValue, outerIndex) { + _super.call(this); + this.parent = parent; + this.outerValue = outerValue; + this.outerIndex = outerIndex; + this.index = 0; + } + 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/tools/node_modules/eslint/node_modules/rxjs/InnerSubscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/InnerSubscriber.js.map new file mode 100644 index 00000000000000..3f3092b11ac0c2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/InnerSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InnerSubscriber.js","sourceRoot":"","sources":["../src/InnerSubscriber.ts"],"names":[],"mappings":";;;;;;AAAA,2BAA2B,cAAc,CAAC,CAAA;AAG1C;;;;GAIG;AACH;IAA2C,mCAAa;IAGtD,yBAAoB,MAA6B,EAAU,UAAa,EAAU,UAAkB;QAClG,iBAAO,CAAC;QADU,WAAM,GAAN,MAAM,CAAuB;QAAU,eAAU,GAAV,UAAU,CAAG;QAAU,eAAU,GAAV,UAAU,CAAQ;QAF5F,UAAK,GAAW,CAAC,CAAC;IAI1B,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,uBAAe,kBAoB3B,CAAA","sourcesContent":["import { Subscriber } from './Subscriber';\nimport { OuterSubscriber } from './OuterSubscriber';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class InnerSubscriber extends Subscriber {\n private index: number = 0;\n\n constructor(private parent: OuterSubscriber, private outerValue: T, private outerIndex: number) {\n super();\n }\n\n protected _next(value: R): void {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n }\n\n protected _error(error: any): void {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/LICENSE.txt b/tools/node_modules/eslint/node_modules/rxjs/LICENSE.txt new file mode 100644 index 00000000000000..b6c40015e9acc0 --- /dev/null +++ b/tools/node_modules/eslint/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-2017 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/tools/node_modules/eslint/node_modules/rxjs/Notification.d.ts b/tools/node_modules/eslint/node_modules/rxjs/Notification.d.ts new file mode 100644 index 00000000000000..19ba442cddd9d5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Notification.d.ts @@ -0,0 +1,77 @@ +import { PartialObserver } from './Observer'; +import { Observable } from './Observable'; +/** + * 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: string; + value: T; + error: any; + hasValue: boolean; + constructor(kind: string, 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. + */ + 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. + */ + static createError(err?: any): Notification; + /** + * A shortcut to create a Notification instance of the type `complete`. + * @return {Notification} The valueless "complete" Notification. + */ + static createComplete(): Notification; +} diff --git a/tools/node_modules/eslint/node_modules/rxjs/Notification.js b/tools/node_modules/eslint/node_modules/rxjs/Notification.js new file mode 100644 index 00000000000000..ae933e4a575cef --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Notification.js @@ -0,0 +1,127 @@ +"use strict"; +var Observable_1 = require('./Observable'); +/** + * 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 + */ +var Notification = (function () { + function Notification(kind, value, error) { + this.kind = kind; + this.value = value; + this.error = error; + this.hasValue = kind === 'N'; + } + /** + * Delivers to the given `observer` the value wrapped by this Notification. + * @param {Observer} observer + * @return + */ + 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(); + } + }; + /** + * 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} + */ + 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(); + } + }; + /** + * 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} + */ + Notification.prototype.accept = function (nextOrObserver, error, complete) { + if (nextOrObserver && typeof nextOrObserver.next === 'function') { + return this.observe(nextOrObserver); + } + else { + return this.do(nextOrObserver, error, complete); + } + }; + /** + * Returns a simple Observable that just delivers the notification represented + * by this Notification instance. + * @return {any} + */ + Notification.prototype.toObservable = function () { + var kind = this.kind; + switch (kind) { + case 'N': + return Observable_1.Observable.of(this.value); + case 'E': + return Observable_1.Observable.throw(this.error); + case 'C': + return Observable_1.Observable.empty(); + } + throw new Error('unexpected notification kind value'); + }; + /** + * 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. + */ + Notification.createNext = function (value) { + 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. + */ + Notification.createError = function (err) { + return new Notification('E', undefined, err); + }; + /** + * A shortcut to create a Notification instance of the type `complete`. + * @return {Notification} The valueless "complete" Notification. + */ + 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/tools/node_modules/eslint/node_modules/rxjs/Notification.js.map b/tools/node_modules/eslint/node_modules/rxjs/Notification.js.map new file mode 100644 index 00000000000000..b554d335b181ef --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Notification.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Notification.js","sourceRoot":"","sources":["../src/Notification.ts"],"names":[],"mappings":"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","sourcesContent":["import { PartialObserver } from './Observer';\nimport { Observable } from './Observable';\n\n/**\n * Represents a push-based event or value that an {@link Observable} can emit.\n * This class is particularly useful for operators that manage notifications,\n * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and\n * others. Besides wrapping the actual delivered value, it also annotates it\n * with metadata of, for instance, what type of push message it is (`next`,\n * `error`, or `complete`).\n *\n * @see {@link materialize}\n * @see {@link dematerialize}\n * @see {@link observeOn}\n *\n * @class Notification\n */\nexport class Notification {\n hasValue: boolean;\n\n constructor(public kind: string, public value?: T, public error?: any) {\n this.hasValue = kind === 'N';\n }\n\n /**\n * Delivers to the given `observer` the value wrapped by this Notification.\n * @param {Observer} observer\n * @return\n */\n observe(observer: PartialObserver): any {\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\n /**\n * Given some {@link Observer} callbacks, deliver the value represented by the\n * current Notification to the correctly corresponding callback.\n * @param {function(value: T): void} next An Observer `next` callback.\n * @param {function(err: any): void} [error] An Observer `error` callback.\n * @param {function(): void} [complete] An Observer `complete` callback.\n * @return {any}\n */\n do(next: (value: T) => void, error?: (err: any) => void, complete?: () => void): any {\n const 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\n /**\n * Takes an Observer or its individual callback functions, and calls `observe`\n * or `do` methods accordingly.\n * @param {Observer|function(value: T): void} nextOrObserver An Observer or\n * the `next` callback.\n * @param {function(err: any): void} [error] An Observer `error` callback.\n * @param {function(): void} [complete] An Observer `complete` callback.\n * @return {any}\n */\n accept(nextOrObserver: PartialObserver | ((value: T) => void), error?: (err: any) => void, complete?: () => void) {\n if (nextOrObserver && typeof (>nextOrObserver).next === 'function') {\n return this.observe(>nextOrObserver);\n } else {\n return this.do(<(value: T) => void>nextOrObserver, error, complete);\n }\n }\n\n /**\n * Returns a simple Observable that just delivers the notification represented\n * by this Notification instance.\n * @return {any}\n */\n toObservable(): Observable {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return Observable.of(this.value);\n case 'E':\n return Observable.throw(this.error);\n case 'C':\n return Observable.empty();\n }\n throw new Error('unexpected notification kind value');\n }\n\n private static completeNotification: Notification = new Notification('C');\n private static undefinedValueNotification: Notification = new Notification('N', undefined);\n\n /**\n * A shortcut to create a Notification instance of the type `next` from a\n * given value.\n * @param {T} value The `next` value.\n * @return {Notification} The \"next\" Notification representing the\n * argument.\n */\n static createNext(value: T): Notification {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n }\n\n /**\n * A shortcut to create a Notification instance of the type `error` from a\n * given error.\n * @param {any} [err] The `error` error.\n * @return {Notification} The \"error\" Notification representing the\n * argument.\n */\n static createError(err?: any): Notification {\n return new Notification('E', undefined, err);\n }\n\n /**\n * A shortcut to create a Notification instance of the type `complete`.\n * @return {Notification} The valueless \"complete\" Notification.\n */\n static createComplete(): Notification {\n return Notification.completeNotification;\n }\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Observable.d.ts b/tools/node_modules/eslint/node_modules/rxjs/Observable.d.ts new file mode 100644 index 00000000000000..a2d78880d84fb0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Observable.d.ts @@ -0,0 +1,76 @@ +import { PartialObserver } from './Observer'; +import { Operator } from './Operator'; +import { Subscriber } from './Subscriber'; +import { Subscription, AnonymousSubscription, TeardownLogic } from './Subscription'; +import { IfObservable } from './observable/IfObservable'; +import { ErrorObservable } from './observable/ErrorObservable'; +import { OperatorFunction } from './interfaces'; +export interface Subscribable { + subscribe(observerOrNext?: PartialObserver | ((value: T) => void), error?: (error: any) => void, complete?: () => void): AnonymousSubscription; +} +export declare type SubscribableOrPromise = Subscribable | PromiseLike; +export declare type ObservableInput = SubscribableOrPromise | ArrayLike; +/** + * 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 { + _isScalar: boolean; + /** @deprecated internal use only */ source: Observable; + protected 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 + */ + 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; + subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription; + protected _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?: typeof Promise): Promise; + /** @deprecated internal use only */ _subscribe(subscriber: Subscriber): TeardownLogic; + static if: typeof IfObservable.create; + static throw: typeof ErrorObservable.create; + 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(...operations: OperatorFunction[]): Observable; + toPromise(this: Observable): Promise; + toPromise(this: Observable, PromiseCtor: typeof Promise): Promise; + toPromise(this: Observable, PromiseCtor: PromiseConstructorLike): Promise; +} diff --git a/tools/node_modules/eslint/node_modules/rxjs/Observable.js b/tools/node_modules/eslint/node_modules/rxjs/Observable.js new file mode 100644 index 00000000000000..dc3adcbd2db929 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Observable.js @@ -0,0 +1,305 @@ +"use strict"; +var root_1 = require('./util/root'); +var toSubscriber_1 = require('./util/toSubscriber'); +var observable_1 = require('./symbol/observable'); +var pipe_1 = require('./util/pipe'); +/** + * A representation of any set of values over any amount of time. This is the most basic building block + * of RxJS. + * + * @class Observable + */ +var Observable = (function () { + /** + * @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. + */ + function Observable(subscribe) { + this._isScalar = false; + if (subscribe) { + this._subscribe = 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 + */ + Observable.prototype.lift = function (operator) { + var observable = new Observable(); + observable.source = this; + observable.operator = operator; + return observable; + }; + /** + * 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 a {@link create} static factory, but most of the time it is + * a library implementation, which defines what and when will be emitted by an Observable. This means that calling + * `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often + * 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 + * 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, that if `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 first function is equivalent + * of a `next` method, second of an `error` method and 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. + * + * Whatever 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 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 {@link Scheduler}. + * + * @example Subscribe with an Observer + * 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); + * } + * }; + * + * Rx.Observable.of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes. + * .subscribe(sumObserver); + * + * // Logs: + * // "Adding: 1" + * // "Adding: 2" + * // "Adding: 3" + * // "Sum equals: 6" + * + * + * @example Subscribe with functions + * let sum = 0; + * + * Rx.Observable.of(1, 2, 3) + * .subscribe( + * function(value) { + * console.log('Adding: ' + value); + * sum = sum + value; + * }, + * undefined, + * function() { + * console.log('Sum equals: ' + sum); + * } + * ); + * + * // Logs: + * // "Adding: 1" + * // "Adding: 2" + * // "Adding: 3" + * // "Sum equals: 6" + * + * + * @example Cancel a subscription + * const subscription = Rx.Observable.interval(1000).subscribe( + * num => console.log(num), + * undefined, + * () => console.log('completed!') // Will not be called, even + * ); // when cancelling subscription + * + * + * 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 + */ + Observable.prototype.subscribe = function (observerOrNext, error, complete) { + var operator = this.operator; + var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete); + if (operator) { + operator.call(sink, this.source); + } + else { + sink.add(this.source || !sink.syncErrorThrowable ? this._subscribe(sink) : this._trySubscribe(sink)); + } + 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) { + sink.syncErrorThrown = true; + sink.syncErrorValue = err; + sink.error(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 + */ + Observable.prototype.forEach = function (next, PromiseCtor) { + var _this = this; + if (!PromiseCtor) { + if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) { + PromiseCtor = root_1.root.Rx.config.Promise; + } + else if (root_1.root.Promise) { + PromiseCtor = root_1.root.Promise; + } + } + if (!PromiseCtor) { + throw new Error('no Promise impl found'); + } + return new PromiseCtor(function (resolve, reject) { + // Must be declared in a separate statement to avoid a RefernceError when + // accessing subscription below in the closure due to Temporal Dead Zone. + var subscription; + subscription = _this.subscribe(function (value) { + if (subscription) { + // if there is a subscription, then we can surmise + // the next handling is asynchronous. Any errors thrown + // need to be rejected explicitly and unsubscribe must be + // called manually + try { + next(value); + } + catch (err) { + reject(err); + subscription.unsubscribe(); + } + } + else { + // if there is NO subscription, then we're getting a nexted + // value synchronously during subscription. We can just call it. + // If it errors, Observable's `subscribe` will ensure the + // unsubscription logic is called, then synchronously rethrow the error. + // After that, Promise will trap the error and send it + // down the rejection path. + next(value); + } + }, reject, resolve); + }); + }; + /** @deprecated internal use only */ Observable.prototype._subscribe = function (subscriber) { + return this.source.subscribe(subscriber); + }; + /** + * 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 + */ + Observable.prototype[observable_1.observable] = function () { + return this; + }; + /* 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 + * + * import { map, filter, scan } from 'rxjs/operators'; + * + * Rx.Observable.interval(1000) + * .pipe( + * filter(x => x % 2 === 0), + * map(x => x + x), + * scan((acc, x) => acc + x) + * ) + * .subscribe(x => console.log(x)) + */ + Observable.prototype.pipe = function () { + var operations = []; + for (var _i = 0; _i < arguments.length; _i++) { + operations[_i - 0] = arguments[_i]; + } + if (operations.length === 0) { + return this; + } + return pipe_1.pipeFromArray(operations)(this); + }; + /* tslint:enable:max-line-length */ + Observable.prototype.toPromise = function (PromiseCtor) { + var _this = this; + if (!PromiseCtor) { + if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) { + PromiseCtor = root_1.root.Rx.config.Promise; + } + else if (root_1.root.Promise) { + PromiseCtor = root_1.root.Promise; + } + } + if (!PromiseCtor) { + throw new Error('no Promise impl found'); + } + return new PromiseCtor(function (resolve, reject) { + var value; + _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); }); + }); + }; + // 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 + */ + Observable.create = function (subscribe) { + return new Observable(subscribe); + }; + return Observable; +}()); +exports.Observable = Observable; +//# sourceMappingURL=Observable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Observable.js.map b/tools/node_modules/eslint/node_modules/rxjs/Observable.js.map new file mode 100644 index 00000000000000..b302933efeba6a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Observable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Observable.js","sourceRoot":"","sources":["../src/Observable.ts"],"names":[],"mappings":"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","sourcesContent":["import { PartialObserver } from './Observer';\nimport { Operator } from './Operator';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, AnonymousSubscription, TeardownLogic } from './Subscription';\nimport { root } from './util/root';\nimport { toSubscriber } from './util/toSubscriber';\nimport { IfObservable } from './observable/IfObservable';\nimport { ErrorObservable } from './observable/ErrorObservable';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { OperatorFunction } from './interfaces';\nimport { pipeFromArray } from './util/pipe';\n\nexport interface Subscribable {\n subscribe(observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (error: any) => void,\n complete?: () => void): AnonymousSubscription;\n}\n\nexport type SubscribableOrPromise = Subscribable | PromiseLike;\nexport type ObservableInput = SubscribableOrPromise | ArrayLike;\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n\n public _isScalar: boolean = false;\n\n /** @deprecated internal use only */ public source: Observable;\n protected operator: Operator;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new cold Observable by calling the Observable constructor\n * @static true\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new cold observable\n */\n static create: Function = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n }\n\n /**\n * Creates a new Observable, with this Observable as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param {Operator} operator the operator defining the operation to take on the observable\n * @return {Observable} a new observable with the Operator applied\n */\n lift(operator: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observer?: PartialObserver): Subscription;\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to a {@link create} static factory, but most of the time it is\n * a library implementation, which defines what and when will be emitted by an Observable. This means that calling\n * `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, that if `error` method is not provided, all errors will\n * be left uncaught.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where first function is equivalent\n * of a `next` method, second of an `error` method and third of a `complete` method. Just as in case of Observer,\n * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.\n *\n * Whatever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a {@link Scheduler}.\n *\n * @example Subscribe with an Observer\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() { // We actually could just remove this method,\n * }, // since we do not really care about errors right now.\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * Rx.Observable.of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n *\n *\n * @example Subscribe with functions\n * let sum = 0;\n *\n * Rx.Observable.of(1, 2, 3)\n * .subscribe(\n * function(value) {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * function() {\n * console.log('Sum equals: ' + sum);\n * }\n * );\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n *\n *\n * @example Cancel a subscription\n * const subscription = Rx.Observable.interval(1000).subscribe(\n * num => console.log(num),\n * undefined,\n * () => console.log('completed!') // Will not be called, even\n * ); // when cancelling subscription\n *\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // \"unsubscribed!\" after 2.5s\n *\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {ISubscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (error: any) => void,\n complete?: () => void): Subscription {\n\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n\n if (operator) {\n operator.call(sink, this.source);\n } else {\n sink.add(this.source || !sink.syncErrorThrowable ? this._subscribe(sink) : this._trySubscribe(sink));\n }\n\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n\n return sink;\n }\n\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n sink.error(err);\n }\n }\n\n /**\n * @method forEach\n * @param {Function} next a handler for each value emitted by the observable\n * @param {PromiseConstructor} [PromiseCtor] a constructor function used to instantiate the Promise\n * @return {Promise} a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void, PromiseCtor?: typeof Promise): Promise {\n if (!PromiseCtor) {\n if (root.Rx && root.Rx.config && root.Rx.config.Promise) {\n PromiseCtor = root.Rx.config.Promise;\n } else if (root.Promise) {\n PromiseCtor = root.Promise;\n }\n }\n\n if (!PromiseCtor) {\n throw new Error('no Promise impl found');\n }\n\n return new PromiseCtor((resolve, reject) => {\n // Must be declared in a separate statement to avoid a RefernceError when\n // accessing subscription below in the closure due to Temporal Dead Zone.\n let subscription: Subscription;\n subscription = this.subscribe((value) => {\n if (subscription) {\n // if there is a subscription, then we can surmise\n // the next handling is asynchronous. Any errors thrown\n // need to be rejected explicitly and unsubscribe must be\n // called manually\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscription.unsubscribe();\n }\n } else {\n // if there is NO subscription, then we're getting a nexted\n // value synchronously during subscription. We can just call it.\n // If it errors, Observable's `subscribe` will ensure the\n // unsubscription logic is called, then synchronously rethrow the error.\n // After that, Promise will trap the error and send it\n // down the rejection path.\n next(value);\n }\n }, reject, resolve);\n });\n }\n\n /** @deprecated internal use only */ _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source.subscribe(subscriber);\n }\n\n // `if` and `throw` are special snow flakes, the compiler sees them as reserved words\n static if: typeof IfObservable.create;\n static throw: typeof ErrorObservable.create;\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable\n pipe(op1: OperatorFunction): Observable\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction): Observable\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction): Observable\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction): Observable\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction): Observable\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction): Observable\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction): Observable\n pipe(...operations: OperatorFunction[]): Observable\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * @example\n *\n * import { map, filter, scan } from 'rxjs/operators';\n *\n * Rx.Observable.interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x))\n */\n pipe(...operations: OperatorFunction[]): Observable {\n if (operations.length === 0) {\n return this as any;\n }\n\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n toPromise(this: Observable): Promise;\n toPromise(this: Observable, PromiseCtor: typeof Promise): Promise;\n toPromise(this: Observable, PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n toPromise(PromiseCtor?: PromiseConstructorLike) {\n if (!PromiseCtor) {\n if (root.Rx && root.Rx.config && root.Rx.config.Promise) {\n PromiseCtor = root.Rx.config.Promise;\n } else if (root.Promise) {\n PromiseCtor = root.Promise;\n }\n }\n\n if (!PromiseCtor) {\n throw new Error('no Promise impl found');\n }\n\n return new PromiseCtor((resolve, reject) => {\n let value: any;\n this.subscribe((x: T) => value = x, (err: any) => reject(err), () => resolve(value));\n }) as Promise;\n }\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Observer.d.ts b/tools/node_modules/eslint/node_modules/rxjs/Observer.d.ts new file mode 100644 index 00000000000000..99815a7c7fc829 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Observer.d.ts @@ -0,0 +1,26 @@ +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; +} +export declare const empty: Observer; diff --git a/tools/node_modules/eslint/node_modules/rxjs/Observer.js b/tools/node_modules/eslint/node_modules/rxjs/Observer.js new file mode 100644 index 00000000000000..db3df9367c12b3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Observer.js @@ -0,0 +1,8 @@ +"use strict"; +exports.empty = { + closed: true, + next: function (value) { }, + error: function (err) { throw err; }, + complete: function () { } +}; +//# sourceMappingURL=Observer.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Observer.js.map b/tools/node_modules/eslint/node_modules/rxjs/Observer.js.map new file mode 100644 index 00000000000000..6e2f930897dfd8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Observer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Observer.js","sourceRoot":"","sources":["../src/Observer.ts"],"names":[],"mappings":";AA8Ba,aAAK,GAAkB;IAClC,MAAM,EAAE,IAAI;IACZ,IAAI,YAAC,KAAU,IAAoB,CAAC;IACpC,KAAK,YAAC,GAAQ,IAAU,MAAM,GAAG,CAAC,CAAC,CAAC;IACpC,QAAQ,gBAAoB,CAAC;CAC9B,CAAC","sourcesContent":["export interface NextObserver {\n closed?: boolean;\n next: (value: T) => void;\n error?: (err: any) => void;\n complete?: () => void;\n}\n\nexport interface ErrorObserver {\n closed?: boolean;\n next?: (value: T) => void;\n error: (err: any) => void;\n complete?: () => void;\n}\n\nexport interface CompletionObserver {\n closed?: boolean;\n next?: (value: T) => void;\n error?: (err: any) => void;\n complete: () => void;\n}\n\nexport type PartialObserver = NextObserver | ErrorObserver | CompletionObserver;\n\nexport interface Observer {\n closed?: boolean;\n next: (value: T) => void;\n error: (err: any) => void;\n complete: () => void;\n}\n\nexport const empty: Observer = {\n closed: true,\n next(value: any): void { /* noop */},\n error(err: any): void { throw err; },\n complete(): void { /*noop*/ }\n};\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Operator.d.ts b/tools/node_modules/eslint/node_modules/rxjs/Operator.d.ts new file mode 100644 index 00000000000000..643dd9aff16745 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Operator.d.ts @@ -0,0 +1,5 @@ +import { Subscriber } from './Subscriber'; +import { TeardownLogic } from './Subscription'; +export interface Operator { + call(subscriber: Subscriber, source: any): TeardownLogic; +} diff --git a/tools/node_modules/eslint/node_modules/rxjs/Operator.js b/tools/node_modules/eslint/node_modules/rxjs/Operator.js new file mode 100644 index 00000000000000..f99eac52b5f796 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Operator.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=Operator.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Operator.js.map b/tools/node_modules/eslint/node_modules/rxjs/Operator.js.map new file mode 100644 index 00000000000000..d1d8dce08f3c99 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Operator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Operator.js","sourceRoot":"","sources":["../src/Operator.ts"],"names":[],"mappings":"","sourcesContent":["import { Subscriber } from './Subscriber';\nimport { TeardownLogic } from './Subscription';\n\nexport interface Operator {\n call(subscriber: Subscriber, source: any): TeardownLogic;\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/OuterSubscriber.d.ts b/tools/node_modules/eslint/node_modules/rxjs/OuterSubscriber.d.ts new file mode 100644 index 00000000000000..15501206be267c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/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/tools/node_modules/eslint/node_modules/rxjs/OuterSubscriber.js b/tools/node_modules/eslint/node_modules/rxjs/OuterSubscriber.js new file mode 100644 index 00000000000000..a0397e76068530 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/OuterSubscriber.js @@ -0,0 +1,30 @@ +"use strict"; +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +var Subscriber_1 = require('./Subscriber'); +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +var OuterSubscriber = (function (_super) { + __extends(OuterSubscriber, _super); + function OuterSubscriber() { + _super.apply(this, arguments); + } + 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/tools/node_modules/eslint/node_modules/rxjs/OuterSubscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/OuterSubscriber.js.map new file mode 100644 index 00000000000000..09c26b79ca7982 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/OuterSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OuterSubscriber.js","sourceRoot":"","sources":["../src/OuterSubscriber.ts"],"names":[],"mappings":";;;;;;AAAA,2BAA2B,cAAc,CAAC,CAAA;AAG1C;;;;GAIG;AACH;IAA2C,mCAAa;IAAxD;QAA2C,8BAAa;IAcxD,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,uBAAe,kBAc3B,CAAA","sourcesContent":["import { Subscriber } from './Subscriber';\nimport { InnerSubscriber } from './InnerSubscriber';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class OuterSubscriber extends Subscriber {\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next(innerValue);\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this.destination.error(error);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this.destination.complete();\n }\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/README.md b/tools/node_modules/eslint/node_modules/rxjs/README.md new file mode 100644 index 00000000000000..f8eda12a2be10a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/README.md @@ -0,0 +1,204 @@ +[![Build Status](https://travis-ci.org/ReactiveX/rxjs.svg?branch=master)](https://travis-ci.org/ReactiveX/rxjs) +[![Coverage Status](https://coveralls.io/repos/github/ReactiveX/rxjs/badge.svg?branch=master)](https://coveralls.io/github/ReactiveX/rxjs?branch=master) +[![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) + +[![Selenium Test Status](https://saucelabs.com/browser-matrix/rxjs5.svg)](https://saucelabs.com/u/rxjs5) + +# RxJS 5 + +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/maintainer-guidelines.md) +- [Creating Operators](doc/operator-creation.md) +- [Migrating From RxJS 4 to RxJS 5](MIGRATION.md) +- [API Documentation (WIP)](http://reactivex.io/rxjs) + +## Versions In This Repository + +- [master](https://github.com/ReactiveX/rxjs/commits/master) - commits that will be included in the next _minor_ or _patch_ release +- [next](https://github.com/ReactiveX/rxjs/commits/next) - commits that will be included in the next _major_ release (breaking changes) + +Most PRs should be made to **master**, unless you know it is a breaking change. + +## 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 +``` + +To import the entire core set of functionality: + +```js +import Rx from 'rxjs/Rx'; + +Rx.Observable.of(1,2,3) +``` + +To import only what you need by patching (this is useful for size-sensitive bundling): + +```js +import { Observable } from 'rxjs/Observable'; +import 'rxjs/add/observable/of'; +import 'rxjs/add/operator/map'; + +Observable.of(1,2,3).map(x => x + '!!!'); // etc +``` + +To import what you need and use it with proposed [bind operator](https://github.com/tc39/proposal-bind-operator): + +> Note: This additional syntax requires [transpiler support](http://babeljs.io/docs/plugins/transform-function-bind/) and this syntax may be completely withdrawn from TC39 without notice! Use at your own risk. + +```js +import { Observable } from 'rxjs/Observable'; +import { of } from 'rxjs/observable/of'; +import { map } from 'rxjs/operator/map'; + +Observable::of(1,2,3)::map(x => x + '!!!'); // etc +``` + +### CommonJS via npm + +To install this library for CommonJS (CJS) usage, use the following command: + +```sh +npm install rxjs +``` + +Import all core functionality: + +```js +var Rx = require('rxjs/Rx'); + +Rx.Observable.of(1,2,3); // etc +``` + +Import only what you need and patch Observable (this is useful in size-sensitive bundling scenarios): + +```js +var Observable = require('rxjs/Observable').Observable; +// patch Observable with appropriate methods +require('rxjs/add/observable/of'); +require('rxjs/add/operator/map'); + +Observable.of(1,2,3).map(function (x) { return x + '!!!'; }); // etc +``` + +Import operators and use them _manually_ you can do the following (this is also useful for bundling): + +```js +var of = require('rxjs/observable/of').of; +var map = require('rxjs/operator/map').map; + +map.call(of(1,2,3), function (x) { return x + '!!!'; }); +``` + +You can also use the above method to build your own Observable and export it from your own module. + + +### All Module Types (CJS/ES6/AMD/TypeScript) via npm + +To install this library via [npm](https://www.npmjs.org) **version 3**, use the following command: + +```sh +npm install @reactivex/rxjs +``` + +This will include CJS/Global builds and can be used for all module types. + +If you are using npm **version 2** before this library has achieved a stable version, you need to specify the library version explicitly: + +```sh +npm install @reactivex/rxjs@5.0.0 +``` + +### CDN + +For CDN, you can use [unpkg](https://unpkg.com/): + +https://unpkg.com/rxjs/bundles/Rx.min.js + +#### Node.js Usage: + +```js +var Rx = require('@reactivex/rxjs'); + +Rx.Observable.of('hello world') + .subscribe(function(x) { console.log(x); }); +``` + +## Goals + +- 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 + +The build and test structure is fairly primitive at the moment. There are various npm scripts that can be run: + +- build_es6: Transpiles the TypeScript files from `src/` to `dist/es6` +- build_cjs: Transpiles the ES6 files from `dist/es6` to `dist/cjs` +- build_amd: Transpiles the ES6 files from `dist/es6` to `dist/amd` +- build_global: Transpiles/Bundles the CommonJS files from `dist/cjs` to `dist/global/Rx.js` +- build_all: Performs all of the above in the proper order. +- build_test: builds ES6, then CommonJS, then runs the tests with `jasmine` +- build_perf: builds ES6, CommonJS, then global, then runs the performance tests with `protractor` +- build_docs: generates API documentation from `dist/es6` to `dist/docs` +- build_cover: runs `istanbul` code coverage against test cases +- test: runs tests with `jasmine`, must have built prior to running. +- tests2png: generates PNG marble diagrams from test cases. + +`npm run info` will list available script. + +### Example + +```sh +# build all the things! +npm run build_all +``` + +## Performance Tests + +Run `npm run build_perf` or `npm run perf` to run the performance tests with `protractor`. +Run `npm run perf_micro` to run micro performance test benchmarking operator. + +## Adding documentation +RxNext uses [ESDoc](https://esdoc.org/) to generate API documentation. Refer to ESDoc's documentation for syntax. Run `npm run build_docs` to generate. + +## 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/tools/node_modules/eslint/node_modules/rxjs/ReplaySubject.d.ts b/tools/node_modules/eslint/node_modules/rxjs/ReplaySubject.d.ts new file mode 100644 index 00000000000000..34b2ebf2c25ecc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/ReplaySubject.d.ts @@ -0,0 +1,18 @@ +import { Subject } from './Subject'; +import { IScheduler } from './Scheduler'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +/** + * @class ReplaySubject + */ +export declare class ReplaySubject extends Subject { + private scheduler; + private _events; + private _bufferSize; + private _windowTime; + constructor(bufferSize?: number, windowTime?: number, scheduler?: IScheduler); + next(value: T): void; + /** @deprecated internal use only */ _subscribe(subscriber: Subscriber): Subscription; + _getNow(): number; + private _trimBufferThenGetEvents(); +} diff --git a/tools/node_modules/eslint/node_modules/rxjs/ReplaySubject.js b/tools/node_modules/eslint/node_modules/rxjs/ReplaySubject.js new file mode 100644 index 00000000000000..95d677cd9bf426 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/ReplaySubject.js @@ -0,0 +1,102 @@ +"use strict"; +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +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'); +/** + * @class ReplaySubject + */ +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; } + _super.call(this); + this.scheduler = scheduler; + this._events = []; + this._bufferSize = bufferSize < 1 ? 1 : bufferSize; + this._windowTime = windowTime < 1 ? 1 : windowTime; + } + ReplaySubject.prototype.next = function (value) { + var now = this._getNow(); + this._events.push(new ReplayEvent(now, value)); + this._trimBufferThenGetEvents(); + _super.prototype.next.call(this, value); + }; + /** @deprecated internal use only */ ReplaySubject.prototype._subscribe = function (subscriber) { + var _events = this._trimBufferThenGetEvents(); + var scheduler = this.scheduler; + var subscription; + if (this.closed) { + throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError(); + } + else if (this.hasError) { + subscription = Subscription_1.Subscription.EMPTY; + } + else if (this.isStopped) { + 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)); + } + var len = _events.length; + 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; + // 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; + }; + 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/tools/node_modules/eslint/node_modules/rxjs/ReplaySubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/ReplaySubject.js.map new file mode 100644 index 00000000000000..ac80b687b79042 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/ReplaySubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ReplaySubject.js","sourceRoot":"","sources":["../src/ReplaySubject.ts"],"names":[],"mappings":"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","sourcesContent":["import { Subject } from './Subject';\nimport { IScheduler } from './Scheduler';\nimport { queue } from './scheduler/queue';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\n/**\n * @class ReplaySubject\n */\nexport class ReplaySubject extends Subject {\n private _events: ReplayEvent[] = [];\n private _bufferSize: number;\n private _windowTime: number;\n\n constructor(bufferSize: number = Number.POSITIVE_INFINITY,\n windowTime: number = Number.POSITIVE_INFINITY,\n private scheduler?: IScheduler) {\n super();\n this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n this._windowTime = windowTime < 1 ? 1 : windowTime;\n }\n\n next(value: T): void {\n const now = this._getNow();\n this._events.push(new ReplayEvent(now, value));\n this._trimBufferThenGetEvents();\n super.next(value);\n }\n\n /** @deprecated internal use only */ _subscribe(subscriber: Subscriber): Subscription {\n const _events = this._trimBufferThenGetEvents();\n const scheduler = this.scheduler;\n let subscription: Subscription;\n\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else if (this.hasError) {\n subscription = Subscription.EMPTY;\n } else if (this.isStopped) {\n subscription = Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n\n const len = _events.length;\n for (let 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 } else if (this.isStopped) {\n subscriber.complete();\n }\n\n return subscription;\n }\n\n _getNow(): number {\n return (this.scheduler || queue).now();\n }\n\n private _trimBufferThenGetEvents(): ReplayEvent[] {\n const now = this._getNow();\n const _bufferSize = this._bufferSize;\n const _windowTime = this._windowTime;\n const _events = this._events;\n\n let eventsCount = _events.length;\n let spliceCount = 0;\n\n // Trim events that fall out of the time window.\n // Start at the front of the list. Break early once\n // we encounter an event that falls within the window.\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n\n return _events;\n }\n}\n\nclass ReplayEvent {\n constructor(public time: number, public value: T) {\n }\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Rx.d.ts b/tools/node_modules/eslint/node_modules/rxjs/Rx.d.ts new file mode 100644 index 00000000000000..314d4aff60b5d5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Rx.d.ts @@ -0,0 +1,195 @@ +export { Subject, AnonymousSubject } from './Subject'; +export { Observable } from './Observable'; +import './add/observable/bindCallback'; +import './add/observable/bindNodeCallback'; +import './add/observable/combineLatest'; +import './add/observable/concat'; +import './add/observable/defer'; +import './add/observable/empty'; +import './add/observable/forkJoin'; +import './add/observable/from'; +import './add/observable/fromEvent'; +import './add/observable/fromEventPattern'; +import './add/observable/fromPromise'; +import './add/observable/generate'; +import './add/observable/if'; +import './add/observable/interval'; +import './add/observable/merge'; +import './add/observable/race'; +import './add/observable/never'; +import './add/observable/of'; +import './add/observable/onErrorResumeNext'; +import './add/observable/pairs'; +import './add/observable/range'; +import './add/observable/using'; +import './add/observable/throw'; +import './add/observable/timer'; +import './add/observable/zip'; +import './add/observable/dom/ajax'; +import './add/observable/dom/webSocket'; +import './add/operator/buffer'; +import './add/operator/bufferCount'; +import './add/operator/bufferTime'; +import './add/operator/bufferToggle'; +import './add/operator/bufferWhen'; +import './add/operator/catch'; +import './add/operator/combineAll'; +import './add/operator/combineLatest'; +import './add/operator/concat'; +import './add/operator/concatAll'; +import './add/operator/concatMap'; +import './add/operator/concatMapTo'; +import './add/operator/count'; +import './add/operator/dematerialize'; +import './add/operator/debounce'; +import './add/operator/debounceTime'; +import './add/operator/defaultIfEmpty'; +import './add/operator/delay'; +import './add/operator/delayWhen'; +import './add/operator/distinct'; +import './add/operator/distinctUntilChanged'; +import './add/operator/distinctUntilKeyChanged'; +import './add/operator/do'; +import './add/operator/exhaust'; +import './add/operator/exhaustMap'; +import './add/operator/expand'; +import './add/operator/elementAt'; +import './add/operator/filter'; +import './add/operator/finally'; +import './add/operator/find'; +import './add/operator/findIndex'; +import './add/operator/first'; +import './add/operator/groupBy'; +import './add/operator/ignoreElements'; +import './add/operator/isEmpty'; +import './add/operator/audit'; +import './add/operator/auditTime'; +import './add/operator/last'; +import './add/operator/let'; +import './add/operator/every'; +import './add/operator/map'; +import './add/operator/mapTo'; +import './add/operator/materialize'; +import './add/operator/max'; +import './add/operator/merge'; +import './add/operator/mergeAll'; +import './add/operator/mergeMap'; +import './add/operator/mergeMapTo'; +import './add/operator/mergeScan'; +import './add/operator/min'; +import './add/operator/multicast'; +import './add/operator/observeOn'; +import './add/operator/onErrorResumeNext'; +import './add/operator/pairwise'; +import './add/operator/partition'; +import './add/operator/pluck'; +import './add/operator/publish'; +import './add/operator/publishBehavior'; +import './add/operator/publishReplay'; +import './add/operator/publishLast'; +import './add/operator/race'; +import './add/operator/reduce'; +import './add/operator/repeat'; +import './add/operator/repeatWhen'; +import './add/operator/retry'; +import './add/operator/retryWhen'; +import './add/operator/sample'; +import './add/operator/sampleTime'; +import './add/operator/scan'; +import './add/operator/sequenceEqual'; +import './add/operator/share'; +import './add/operator/shareReplay'; +import './add/operator/single'; +import './add/operator/skip'; +import './add/operator/skipLast'; +import './add/operator/skipUntil'; +import './add/operator/skipWhile'; +import './add/operator/startWith'; +import './add/operator/subscribeOn'; +import './add/operator/switch'; +import './add/operator/switchMap'; +import './add/operator/switchMapTo'; +import './add/operator/take'; +import './add/operator/takeLast'; +import './add/operator/takeUntil'; +import './add/operator/takeWhile'; +import './add/operator/throttle'; +import './add/operator/throttleTime'; +import './add/operator/timeInterval'; +import './add/operator/timeout'; +import './add/operator/timeoutWith'; +import './add/operator/timestamp'; +import './add/operator/toArray'; +import './add/operator/toPromise'; +import './add/operator/window'; +import './add/operator/windowCount'; +import './add/operator/windowTime'; +import './add/operator/windowToggle'; +import './add/operator/windowWhen'; +import './add/operator/withLatestFrom'; +import './add/operator/zip'; +import './add/operator/zipAll'; +export { Operator } from './Operator'; +export { Observer } from './Observer'; +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 } 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 './operator/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'; +export declare const operators: typeof _operators; +/** + * @typedef {Object} Rx.Scheduler + * @property {Scheduler} queue Schedules on a queue in the current event frame + * (trampoline scheduler). Use this for iteration operations. + * @property {Scheduler} asap Schedules on the micro task queue, which uses the + * fastest transport mechanism available, either Node.js' `process.nextTick()` + * or Web Worker MessageChannel or setTimeout or others. Use this for + * asynchronous conversions. + * @property {Scheduler} async Schedules work with `setInterval`. Use this for + * time-based operations. + * @property {Scheduler} animationFrame Schedules work with `requestAnimationFrame`. + * Use this for synchronizing with the platform's painting + */ +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: any; + observable: any; + iterator: any; +}; +export { Scheduler, Symbol }; diff --git a/tools/node_modules/eslint/node_modules/rxjs/Rx.js b/tools/node_modules/eslint/node_modules/rxjs/Rx.js new file mode 100644 index 00000000000000..c159fee5b626b3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Rx.js @@ -0,0 +1,233 @@ +"use strict"; +/* 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 +var Subject_1 = require('./Subject'); +exports.Subject = Subject_1.Subject; +exports.AnonymousSubject = Subject_1.AnonymousSubject; +/* tslint:enable:no-unused-variable */ +var Observable_1 = require('./Observable'); +exports.Observable = Observable_1.Observable; +// statics +/* tslint:disable:no-use-before-declare */ +require('./add/observable/bindCallback'); +require('./add/observable/bindNodeCallback'); +require('./add/observable/combineLatest'); +require('./add/observable/concat'); +require('./add/observable/defer'); +require('./add/observable/empty'); +require('./add/observable/forkJoin'); +require('./add/observable/from'); +require('./add/observable/fromEvent'); +require('./add/observable/fromEventPattern'); +require('./add/observable/fromPromise'); +require('./add/observable/generate'); +require('./add/observable/if'); +require('./add/observable/interval'); +require('./add/observable/merge'); +require('./add/observable/race'); +require('./add/observable/never'); +require('./add/observable/of'); +require('./add/observable/onErrorResumeNext'); +require('./add/observable/pairs'); +require('./add/observable/range'); +require('./add/observable/using'); +require('./add/observable/throw'); +require('./add/observable/timer'); +require('./add/observable/zip'); +//dom +require('./add/observable/dom/ajax'); +require('./add/observable/dom/webSocket'); +//operators +require('./add/operator/buffer'); +require('./add/operator/bufferCount'); +require('./add/operator/bufferTime'); +require('./add/operator/bufferToggle'); +require('./add/operator/bufferWhen'); +require('./add/operator/catch'); +require('./add/operator/combineAll'); +require('./add/operator/combineLatest'); +require('./add/operator/concat'); +require('./add/operator/concatAll'); +require('./add/operator/concatMap'); +require('./add/operator/concatMapTo'); +require('./add/operator/count'); +require('./add/operator/dematerialize'); +require('./add/operator/debounce'); +require('./add/operator/debounceTime'); +require('./add/operator/defaultIfEmpty'); +require('./add/operator/delay'); +require('./add/operator/delayWhen'); +require('./add/operator/distinct'); +require('./add/operator/distinctUntilChanged'); +require('./add/operator/distinctUntilKeyChanged'); +require('./add/operator/do'); +require('./add/operator/exhaust'); +require('./add/operator/exhaustMap'); +require('./add/operator/expand'); +require('./add/operator/elementAt'); +require('./add/operator/filter'); +require('./add/operator/finally'); +require('./add/operator/find'); +require('./add/operator/findIndex'); +require('./add/operator/first'); +require('./add/operator/groupBy'); +require('./add/operator/ignoreElements'); +require('./add/operator/isEmpty'); +require('./add/operator/audit'); +require('./add/operator/auditTime'); +require('./add/operator/last'); +require('./add/operator/let'); +require('./add/operator/every'); +require('./add/operator/map'); +require('./add/operator/mapTo'); +require('./add/operator/materialize'); +require('./add/operator/max'); +require('./add/operator/merge'); +require('./add/operator/mergeAll'); +require('./add/operator/mergeMap'); +require('./add/operator/mergeMapTo'); +require('./add/operator/mergeScan'); +require('./add/operator/min'); +require('./add/operator/multicast'); +require('./add/operator/observeOn'); +require('./add/operator/onErrorResumeNext'); +require('./add/operator/pairwise'); +require('./add/operator/partition'); +require('./add/operator/pluck'); +require('./add/operator/publish'); +require('./add/operator/publishBehavior'); +require('./add/operator/publishReplay'); +require('./add/operator/publishLast'); +require('./add/operator/race'); +require('./add/operator/reduce'); +require('./add/operator/repeat'); +require('./add/operator/repeatWhen'); +require('./add/operator/retry'); +require('./add/operator/retryWhen'); +require('./add/operator/sample'); +require('./add/operator/sampleTime'); +require('./add/operator/scan'); +require('./add/operator/sequenceEqual'); +require('./add/operator/share'); +require('./add/operator/shareReplay'); +require('./add/operator/single'); +require('./add/operator/skip'); +require('./add/operator/skipLast'); +require('./add/operator/skipUntil'); +require('./add/operator/skipWhile'); +require('./add/operator/startWith'); +require('./add/operator/subscribeOn'); +require('./add/operator/switch'); +require('./add/operator/switchMap'); +require('./add/operator/switchMapTo'); +require('./add/operator/take'); +require('./add/operator/takeLast'); +require('./add/operator/takeUntil'); +require('./add/operator/takeWhile'); +require('./add/operator/throttle'); +require('./add/operator/throttleTime'); +require('./add/operator/timeInterval'); +require('./add/operator/timeout'); +require('./add/operator/timeoutWith'); +require('./add/operator/timestamp'); +require('./add/operator/toArray'); +require('./add/operator/toPromise'); +require('./add/operator/window'); +require('./add/operator/windowCount'); +require('./add/operator/windowTime'); +require('./add/operator/windowToggle'); +require('./add/operator/windowWhen'); +require('./add/operator/withLatestFrom'); +require('./add/operator/zip'); +require('./add/operator/zipAll'); +/* tslint:disable:no-unused-variable */ +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; +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('./operator/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'); +exports.operators = _operators; +/* tslint:enable:no-unused-variable */ +/** + * @typedef {Object} Rx.Scheduler + * @property {Scheduler} queue Schedules on a queue in the current event frame + * (trampoline scheduler). Use this for iteration operations. + * @property {Scheduler} asap Schedules on the micro task queue, which uses the + * fastest transport mechanism available, either Node.js' `process.nextTick()` + * or Web Worker MessageChannel or setTimeout or others. Use this for + * asynchronous conversions. + * @property {Scheduler} async Schedules work with `setInterval`. Use this for + * time-based operations. + * @property {Scheduler} animationFrame Schedules work with `requestAnimationFrame`. + * Use this for synchronizing with the platform's painting + */ +var Scheduler = { + asap: asap_1.asap, + queue: queue_1.queue, + animationFrame: animationFrame_1.animationFrame, + async: async_1.async +}; +exports.Scheduler = Scheduler; +/** + * @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. + */ +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/tools/node_modules/eslint/node_modules/rxjs/Rx.js.map b/tools/node_modules/eslint/node_modules/rxjs/Rx.js.map new file mode 100644 index 00000000000000..1a505ea485ea95 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Rx.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Rx.js","sourceRoot":"","sources":["../src/Rx.ts"],"names":[],"mappings":"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","sourcesContent":["/* tslint:disable:no-unused-variable */\n// Subject imported before Observable to bypass circular dependency issue since\n// Subject extends Observable and Observable references Subject in it's\n// definition\nexport {Subject, AnonymousSubject} from './Subject';\n/* tslint:enable:no-unused-variable */\nexport {Observable} from './Observable';\n\n// statics\n/* tslint:disable:no-use-before-declare */\nimport './add/observable/bindCallback';\nimport './add/observable/bindNodeCallback';\nimport './add/observable/combineLatest';\nimport './add/observable/concat';\nimport './add/observable/defer';\nimport './add/observable/empty';\nimport './add/observable/forkJoin';\nimport './add/observable/from';\nimport './add/observable/fromEvent';\nimport './add/observable/fromEventPattern';\nimport './add/observable/fromPromise';\nimport './add/observable/generate';\nimport './add/observable/if';\nimport './add/observable/interval';\nimport './add/observable/merge';\nimport './add/observable/race';\nimport './add/observable/never';\nimport './add/observable/of';\nimport './add/observable/onErrorResumeNext';\nimport './add/observable/pairs';\nimport './add/observable/range';\nimport './add/observable/using';\nimport './add/observable/throw';\nimport './add/observable/timer';\nimport './add/observable/zip';\n\n//dom\nimport './add/observable/dom/ajax';\nimport './add/observable/dom/webSocket';\n\n//operators\nimport './add/operator/buffer';\nimport './add/operator/bufferCount';\nimport './add/operator/bufferTime';\nimport './add/operator/bufferToggle';\nimport './add/operator/bufferWhen';\nimport './add/operator/catch';\nimport './add/operator/combineAll';\nimport './add/operator/combineLatest';\nimport './add/operator/concat';\nimport './add/operator/concatAll';\nimport './add/operator/concatMap';\nimport './add/operator/concatMapTo';\nimport './add/operator/count';\nimport './add/operator/dematerialize';\nimport './add/operator/debounce';\nimport './add/operator/debounceTime';\nimport './add/operator/defaultIfEmpty';\nimport './add/operator/delay';\nimport './add/operator/delayWhen';\nimport './add/operator/distinct';\nimport './add/operator/distinctUntilChanged';\nimport './add/operator/distinctUntilKeyChanged';\nimport './add/operator/do';\nimport './add/operator/exhaust';\nimport './add/operator/exhaustMap';\nimport './add/operator/expand';\nimport './add/operator/elementAt';\nimport './add/operator/filter';\nimport './add/operator/finally';\nimport './add/operator/find';\nimport './add/operator/findIndex';\nimport './add/operator/first';\nimport './add/operator/groupBy';\nimport './add/operator/ignoreElements';\nimport './add/operator/isEmpty';\nimport './add/operator/audit';\nimport './add/operator/auditTime';\nimport './add/operator/last';\nimport './add/operator/let';\nimport './add/operator/every';\nimport './add/operator/map';\nimport './add/operator/mapTo';\nimport './add/operator/materialize';\nimport './add/operator/max';\nimport './add/operator/merge';\nimport './add/operator/mergeAll';\nimport './add/operator/mergeMap';\nimport './add/operator/mergeMapTo';\nimport './add/operator/mergeScan';\nimport './add/operator/min';\nimport './add/operator/multicast';\nimport './add/operator/observeOn';\nimport './add/operator/onErrorResumeNext';\nimport './add/operator/pairwise';\nimport './add/operator/partition';\nimport './add/operator/pluck';\nimport './add/operator/publish';\nimport './add/operator/publishBehavior';\nimport './add/operator/publishReplay';\nimport './add/operator/publishLast';\nimport './add/operator/race';\nimport './add/operator/reduce';\nimport './add/operator/repeat';\nimport './add/operator/repeatWhen';\nimport './add/operator/retry';\nimport './add/operator/retryWhen';\nimport './add/operator/sample';\nimport './add/operator/sampleTime';\nimport './add/operator/scan';\nimport './add/operator/sequenceEqual';\nimport './add/operator/share';\nimport './add/operator/shareReplay';\nimport './add/operator/single';\nimport './add/operator/skip';\nimport './add/operator/skipLast';\nimport './add/operator/skipUntil';\nimport './add/operator/skipWhile';\nimport './add/operator/startWith';\nimport './add/operator/subscribeOn';\nimport './add/operator/switch';\nimport './add/operator/switchMap';\nimport './add/operator/switchMapTo';\nimport './add/operator/take';\nimport './add/operator/takeLast';\nimport './add/operator/takeUntil';\nimport './add/operator/takeWhile';\nimport './add/operator/throttle';\nimport './add/operator/throttleTime';\nimport './add/operator/timeInterval';\nimport './add/operator/timeout';\nimport './add/operator/timeoutWith';\nimport './add/operator/timestamp';\nimport './add/operator/toArray';\nimport './add/operator/toPromise';\nimport './add/operator/window';\nimport './add/operator/windowCount';\nimport './add/operator/windowTime';\nimport './add/operator/windowToggle';\nimport './add/operator/windowWhen';\nimport './add/operator/withLatestFrom';\nimport './add/operator/zip';\nimport './add/operator/zipAll';\n\n/* tslint:disable:no-unused-variable */\nexport {Operator} from './Operator';\nexport {Observer} from './Observer';\nexport {Subscription} from './Subscription';\nexport {Subscriber} from './Subscriber';\nexport {AsyncSubject} from './AsyncSubject';\nexport {ReplaySubject} from './ReplaySubject';\nexport {BehaviorSubject} from './BehaviorSubject';\nexport {ConnectableObservable} from './observable/ConnectableObservable';\nexport {Notification} from './Notification';\nexport {EmptyError} from './util/EmptyError';\nexport {ArgumentOutOfRangeError} from './util/ArgumentOutOfRangeError';\nexport {ObjectUnsubscribedError} from './util/ObjectUnsubscribedError';\nexport {TimeoutError} from './util/TimeoutError';\nexport {UnsubscriptionError} from './util/UnsubscriptionError';\nexport {TimeInterval} from './operator/timeInterval';\nexport {Timestamp} from './operators/timestamp';\nexport {TestScheduler} from './testing/TestScheduler';\nexport {VirtualTimeScheduler} from './scheduler/VirtualTimeScheduler';\nexport {AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError} from './observable/dom/AjaxObservable';\nexport { pipe } from './util/pipe';\n\nimport { asap } from './scheduler/asap';\nimport { async } from './scheduler/async';\nimport { queue } from './scheduler/queue';\nimport { animationFrame } from './scheduler/animationFrame';\nimport { AsapScheduler } from './scheduler/AsapScheduler';\nimport { AsyncScheduler } from './scheduler/AsyncScheduler';\nimport { QueueScheduler } from './scheduler/QueueScheduler';\nimport { AnimationFrameScheduler } from './scheduler/AnimationFrameScheduler';\nimport { rxSubscriber } from './symbol/rxSubscriber';\nimport { iterator } from './symbol/iterator';\nimport { observable } from './symbol/observable';\n\nimport * as _operators from './operators';\n\nexport const operators = _operators;\n\n/* tslint:enable:no-unused-variable */\n\n/**\n * @typedef {Object} Rx.Scheduler\n * @property {Scheduler} queue Schedules on a queue in the current event frame\n * (trampoline scheduler). Use this for iteration operations.\n * @property {Scheduler} asap Schedules on the micro task queue, which uses the\n * fastest transport mechanism available, either Node.js' `process.nextTick()`\n * or Web Worker MessageChannel or setTimeout or others. Use this for\n * asynchronous conversions.\n * @property {Scheduler} async Schedules work with `setInterval`. Use this for\n * time-based operations.\n * @property {Scheduler} animationFrame Schedules work with `requestAnimationFrame`.\n * Use this for synchronizing with the platform's painting\n */\nlet Scheduler = {\n asap,\n queue,\n animationFrame,\n async\n};\n\n/**\n * @typedef {Object} Rx.Symbol\n * @property {Symbol|string} rxSubscriber A symbol to use as a property name to\n * retrieve an \"Rx safe\" Observer from an object. \"Rx safety\" can be defined as\n * an object that has all of the traits of an Rx Subscriber, including the\n * ability to add and remove subscriptions to the subscription chain and\n * guarantees involving event triggering (can't \"next\" after unsubscription,\n * etc).\n * @property {Symbol|string} observable A symbol to use as a property name to\n * retrieve an Observable as defined by the [ECMAScript \"Observable\" spec](https://github.com/zenparsing/es-observable).\n * @property {Symbol|string} iterator The ES6 symbol to use as a property name\n * to retrieve an iterator from an object.\n */\nlet Symbol = {\n rxSubscriber,\n observable,\n iterator\n};\n\nexport {\n Scheduler,\n Symbol\n};\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Scheduler.d.ts b/tools/node_modules/eslint/node_modules/rxjs/Scheduler.d.ts new file mode 100644 index 00000000000000..8feeb4232d4ecb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Scheduler.d.ts @@ -0,0 +1,54 @@ +import { Action } from './scheduler/Action'; +import { Subscription } from './Subscription'; +export interface IScheduler { + now(): number; + schedule(work: (this: Action, state?: T) => void, delay?: number, state?: T): Subscription; +} +/** + * 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 {@link Action}. + * + * ```ts + * class Scheduler { + * now(): number; + * schedule(work, delay?, state?): Subscription; + * } + * ``` + * + * @class Scheduler + */ +export declare class Scheduler implements IScheduler { + private SchedulerAction; + 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: Action, state?: T) => void, delay?: number, state?: T): Subscription; +} diff --git a/tools/node_modules/eslint/node_modules/rxjs/Scheduler.js b/tools/node_modules/eslint/node_modules/rxjs/Scheduler.js new file mode 100644 index 00000000000000..3bfbaf1295c025 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Scheduler.js @@ -0,0 +1,49 @@ +"use strict"; +/** + * 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 {@link Action}. + * + * ```ts + * class Scheduler { + * now(): number; + * schedule(work, delay?, state?): Subscription; + * } + * ``` + * + * @class Scheduler + */ +var Scheduler = (function () { + function Scheduler(SchedulerAction, now) { + if (now === void 0) { now = Scheduler.now; } + this.SchedulerAction = SchedulerAction; + this.now = now; + } + /** + * 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. + */ + Scheduler.prototype.schedule = function (work, delay, state) { + if (delay === void 0) { delay = 0; } + return new this.SchedulerAction(this, work).schedule(state, delay); + }; + Scheduler.now = Date.now ? Date.now : function () { return +new Date(); }; + return Scheduler; +}()); +exports.Scheduler = Scheduler; +//# sourceMappingURL=Scheduler.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Scheduler.js.map b/tools/node_modules/eslint/node_modules/rxjs/Scheduler.js.map new file mode 100644 index 00000000000000..b9bd546a1f371e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Scheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../src/Scheduler.ts"],"names":[],"mappings":";AAOA;;;;;;;;;;;;;;;GAeG;AACH;IAIE,mBAAoB,eAA8B,EACtC,GAAiC;QAAjC,mBAAiC,GAAjC,MAAoB,SAAS,CAAC,GAAG;QADzB,oBAAe,GAAf,eAAe,CAAe;QAEhD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAYD;;;;;;;;;;;;;;;;OAgBG;IACI,4BAAQ,GAAf,UAAmB,IAA0C,EAAE,KAAiB,EAAE,KAAS;QAA5B,qBAAiB,GAAjB,SAAiB;QAC9E,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IApCa,aAAG,GAAiB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,cAAM,OAAA,CAAC,IAAI,IAAI,EAAE,EAAX,CAAW,CAAC;IAqC5E,gBAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,iBAAS,YAuCrB,CAAA","sourcesContent":["import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\n\nexport interface IScheduler {\n now(): number;\n schedule(work: (this: Action, state?: T) => void, delay?: number, state?: T): Subscription;\n}\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an {@link Action}.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n */\nexport class Scheduler implements IScheduler {\n\n public static now: () => number = Date.now ? Date.now : () => +new Date();\n\n constructor(private SchedulerAction: typeof Action,\n now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: Action, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.SchedulerAction(this, work).schedule(state, delay);\n }\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Subject.d.ts b/tools/node_modules/eslint/node_modules/rxjs/Subject.d.ts new file mode 100644 index 00000000000000..79e8349d381630 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Subject.d.ts @@ -0,0 +1,43 @@ +import { Operator } from './Operator'; +import { Observer } from './Observer'; +import { Observable } from './Observable'; +import { Subscriber } from './Subscriber'; +import { ISubscription, Subscription, TeardownLogic } from './Subscription'; +/** + * @class SubjectSubscriber + */ +export declare class SubjectSubscriber extends Subscriber { + protected destination: Subject; + constructor(destination: Subject); +} +/** + * @class Subject + */ +export declare class Subject extends Observable implements ISubscription { + observers: Observer[]; + closed: boolean; + isStopped: boolean; + hasError: boolean; + thrownError: any; + constructor(); + static create: Function; + lift(operator: Operator): Observable; + next(value?: T): void; + error(err: any): void; + complete(): void; + unsubscribe(): void; + protected _trySubscribe(subscriber: Subscriber): TeardownLogic; + /** @deprecated internal use only */ _subscribe(subscriber: Subscriber): Subscription; + 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 internal use only */ _subscribe(subscriber: Subscriber): Subscription; +} diff --git a/tools/node_modules/eslint/node_modules/rxjs/Subject.js b/tools/node_modules/eslint/node_modules/rxjs/Subject.js new file mode 100644 index 00000000000000..fcf6b12d0ec9e0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Subject.js @@ -0,0 +1,168 @@ +"use strict"; +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +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('./symbol/rxSubscriber'); +/** + * @class SubjectSubscriber + */ +var SubjectSubscriber = (function (_super) { + __extends(SubjectSubscriber, _super); + function SubjectSubscriber(destination) { + _super.call(this, destination); + this.destination = destination; + } + return SubjectSubscriber; +}(Subscriber_1.Subscriber)); +exports.SubjectSubscriber = SubjectSubscriber; +/** + * @class Subject + */ +var Subject = (function (_super) { + __extends(Subject, _super); + function Subject() { + _super.call(this); + this.observers = []; + this.closed = false; + this.isStopped = false; + this.hasError = false; + this.thrownError = null; + } + 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); + } + }; + /** @deprecated internal use only */ 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; +/** + * @class AnonymousSubject + */ +var AnonymousSubject = (function (_super) { + __extends(AnonymousSubject, _super); + function AnonymousSubject(destination, source) { + _super.call(this); + this.destination = destination; + this.source = source; + } + 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(); + } + }; + /** @deprecated internal use only */ 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/tools/node_modules/eslint/node_modules/rxjs/Subject.js.map b/tools/node_modules/eslint/node_modules/rxjs/Subject.js.map new file mode 100644 index 00000000000000..701bfeb97fb14f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Subject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subject.js","sourceRoot":"","sources":["../src/Subject.ts"],"names":[],"mappings":";;;;;;AAEA,2BAA2B,cAAc,CAAC,CAAA;AAC1C,2BAA2B,cAAc,CAAC,CAAA;AAC1C,6BAA2D,gBAAgB,CAAC,CAAA;AAC5E,wCAAwC,gCAAgC,CAAC,CAAA;AACzE,oCAAoC,uBAAuB,CAAC,CAAA;AAC5D,6BAAmD,uBAAuB,CAAC,CAAA;AAE3E;;GAEG;AACH;IAA0C,qCAAa;IACrD,2BAAsB,WAAuB;QAC3C,kBAAM,WAAW,CAAC,CAAC;QADC,gBAAW,GAAX,WAAW,CAAY;IAE7C,CAAC;IACH,wBAAC;AAAD,CAAC,AAJD,CAA0C,uBAAU,GAInD;AAJY,yBAAiB,oBAI7B,CAAA;AAED;;GAEG;AACH;IAAgC,2BAAa;IAgB3C;QACE,iBAAO,CAAC;QAXV,cAAS,GAAkB,EAAE,CAAC;QAE9B,WAAM,GAAG,KAAK,CAAC;QAEf,cAAS,GAAG,KAAK,CAAC;QAElB,aAAQ,GAAG,KAAK,CAAC;QAEjB,gBAAW,GAAQ,IAAI,CAAC;IAIxB,CAAC;IAhBD,kBAAC,2BAAkB,CAAC,GAApB;QACE,MAAM,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAoBD,sBAAI,GAAJ,UAAQ,QAAwB;QAC9B,IAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,QAAQ,GAAQ,QAAQ,CAAC;QACjC,MAAM,CAAM,OAAO,CAAC;IACtB,CAAC;IAED,sBAAI,GAAJ,UAAK,KAAS;QACZ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,iDAAuB,EAAE,CAAC;QACtC,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACZ,8BAAS,CAAU;YAC3B,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;YAC7B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,uBAAK,GAAL,UAAM,GAAQ;QACZ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,iDAAuB,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACd,8BAAS,CAAU;QAC3B,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,0BAAQ,GAAR;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,iDAAuB,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACd,8BAAS,CAAU;QAC3B,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,6BAAW,GAAX;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAES,+BAAa,GAAvB,UAAwB,UAAyB;QAC/C,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,iDAAuB,EAAE,CAAC;QACtC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,gBAAK,CAAC,aAAa,YAAC,UAAU,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,oCAAoC,CAAC,4BAAU,GAAV,UAAW,UAAyB;QACvE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,iDAAuB,EAAE,CAAC;QACtC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,MAAM,CAAC,2BAAY,CAAC,KAAK,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC,2BAAY,CAAC,KAAK,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,yCAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,8BAAY,GAAZ;QACE,IAAM,UAAU,GAAG,IAAI,uBAAU,EAAK,CAAC;QACjC,UAAW,CAAC,MAAM,GAAG,IAAI,CAAC;QAChC,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC;IAvFM,cAAM,GAAa,UAAI,WAAwB,EAAE,MAAqB;QAC3E,MAAM,CAAC,IAAI,gBAAgB,CAAI,WAAW,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC,CAAA;IAsFH,cAAC;AAAD,CAAC,AA5GD,CAAgC,uBAAU,GA4GzC;AA5GY,eAAO,UA4GnB,CAAA;AAED;;GAEG;AACH;IAAyC,oCAAU;IACjD,0BAAsB,WAAyB,EAAE,MAAsB;QACrE,iBAAO,CAAC;QADY,gBAAW,GAAX,WAAW,CAAc;QAE7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,+BAAI,GAAJ,UAAK,KAAQ;QACH,kCAAW,CAAU;QAC7B,EAAE,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YACpC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,gCAAK,GAAL,UAAM,GAAQ;QACJ,kCAAW,CAAU;QAC7B,EAAE,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,mCAAQ,GAAR;QACU,kCAAW,CAAU;QAC7B,EAAE,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,oCAAoC,CAAC,qCAAU,GAAV,UAAW,UAAyB;QAC/D,wBAAM,CAAU;QACxB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,2BAAY,CAAC,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAnCD,CAAyC,OAAO,GAmC/C;AAnCY,wBAAgB,mBAmC5B,CAAA","sourcesContent":["import { Operator } from './Operator';\nimport { Observer } from './Observer';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { ISubscription, Subscription, TeardownLogic } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from './symbol/rxSubscriber';\n\n/**\n * @class SubjectSubscriber\n */\nexport class SubjectSubscriber extends Subscriber {\n constructor(protected destination: Subject) {\n super(destination);\n }\n}\n\n/**\n * @class Subject\n */\nexport class Subject extends Observable implements ISubscription {\n\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n\n observers: Observer[] = [];\n\n closed = false;\n\n isStopped = false;\n\n hasError = false;\n\n thrownError: any = null;\n\n constructor() {\n super();\n }\n\n static create: Function = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n }\n\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n\n next(value?: T) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n\n error(err: any) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return super._trySubscribe(subscriber);\n }\n }\n\n /** @deprecated internal use only */ _subscribe(subscriber: Subscriber): Subscription {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n } else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n\n asObservable(): Observable {\n const observable = new Observable();\n (observable).source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(protected destination?: Observer, source?: Observable) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n\n error(err: any) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n\n /** @deprecated internal use only */ _subscribe(subscriber: Subscriber): Subscription {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n } else {\n return Subscription.EMPTY;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/SubjectSubscription.d.ts b/tools/node_modules/eslint/node_modules/rxjs/SubjectSubscription.d.ts new file mode 100644 index 00000000000000..f22deafe67af1f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/SubjectSubscription.d.ts @@ -0,0 +1,15 @@ +import { Subject } from './Subject'; +import { Observer } from './Observer'; +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/tools/node_modules/eslint/node_modules/rxjs/SubjectSubscription.js b/tools/node_modules/eslint/node_modules/rxjs/SubjectSubscription.js new file mode 100644 index 00000000000000..8e7b6afabef1a0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/SubjectSubscription.js @@ -0,0 +1,40 @@ +"use strict"; +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +var Subscription_1 = require('./Subscription'); +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +var SubjectSubscription = (function (_super) { + __extends(SubjectSubscription, _super); + function SubjectSubscription(subject, subscriber) { + _super.call(this); + this.subject = subject; + this.subscriber = subscriber; + this.closed = false; + } + 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/tools/node_modules/eslint/node_modules/rxjs/SubjectSubscription.js.map b/tools/node_modules/eslint/node_modules/rxjs/SubjectSubscription.js.map new file mode 100644 index 00000000000000..2a94c562088933 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/SubjectSubscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubjectSubscription.js","sourceRoot":"","sources":["../src/SubjectSubscription.ts"],"names":[],"mappings":";;;;;;AAEA,6BAA6B,gBAAgB,CAAC,CAAA;AAE9C;;;;GAIG;AACH;IAA4C,uCAAY;IAGtD,6BAAmB,OAAmB,EAAS,UAAuB;QACpE,iBAAO,CAAC;QADS,YAAO,GAAP,OAAO,CAAY;QAAS,eAAU,GAAV,UAAU,CAAa;QAFtE,WAAM,GAAY,KAAK,CAAC;IAIxB,CAAC;IAED,yCAAW,GAAX;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC;QACT,CAAC;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,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC;QACT,CAAC;QAED,IAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,EAAE,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA7BD,CAA4C,2BAAY,GA6BvD;AA7BY,2BAAmB,sBA6B/B,CAAA","sourcesContent":["import { Subject } from './Subject';\nimport { Observer } from './Observer';\nimport { Subscription } from './Subscription';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SubjectSubscription extends Subscription {\n closed: boolean = false;\n\n constructor(public subject: Subject, public subscriber: Observer) {\n super();\n }\n\n unsubscribe() {\n if (this.closed) {\n return;\n }\n\n this.closed = true;\n\n const subject = this.subject;\n const observers = subject.observers;\n\n this.subject = null;\n\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n\n const subscriberIndex = observers.indexOf(this.subscriber);\n\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Subscriber.d.ts b/tools/node_modules/eslint/node_modules/rxjs/Subscriber.d.ts new file mode 100644 index 00000000000000..c49ddd5c58b8ec --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Subscriber.d.ts @@ -0,0 +1,68 @@ +import { Observer, PartialObserver } from './Observer'; +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. + */ + static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber; + syncErrorValue: any; + syncErrorThrown: boolean; + syncErrorThrowable: boolean; + protected isStopped: boolean; + protected destination: PartialObserver; + /** + * @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 {@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; + /** + * 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 internal use only */ _unsubscribeAndRecycle(): Subscriber; +} diff --git a/tools/node_modules/eslint/node_modules/rxjs/Subscriber.js b/tools/node_modules/eslint/node_modules/rxjs/Subscriber.js new file mode 100644 index 00000000000000..af3183e309f5ba --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Subscriber.js @@ -0,0 +1,271 @@ +"use strict"; +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +var isFunction_1 = require('./util/isFunction'); +var Subscription_1 = require('./Subscription'); +var Observer_1 = require('./Observer'); +var rxSubscriber_1 = require('./symbol/rxSubscriber'); +/** + * 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 + */ +var Subscriber = (function (_super) { + __extends(Subscriber, _super); + /** + * @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. + */ + function Subscriber(destinationOrNext, error, complete) { + _super.call(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') { + // HACK(benlesh): To resolve an issue where Node users may have multiple + // copies of rxjs in their node_modules directory. + if (isTrustedSubscriber(destinationOrNext)) { + var trustedSubscriber = destinationOrNext[rxSubscriber_1.rxSubscriber](); + this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable; + this.destination = trustedSubscriber; + trustedSubscriber.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; + } + } + Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { 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. + */ + Subscriber.create = function (next, error, complete) { + var subscriber = new Subscriber(next, error, complete); + subscriber.syncErrorThrowable = false; + return subscriber; + }; + /** + * 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} + */ + Subscriber.prototype.next = function (value) { + if (!this.isStopped) { + this._next(value); + } + }; + /** + * The {@link Observer} 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} + */ + Subscriber.prototype.error = function (err) { + 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} + */ + 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(); + }; + /** @deprecated internal use only */ Subscriber.prototype._unsubscribeAndRecycle = function () { + var _a = this, _parent = _a._parent, _parents = _a._parents; + this._parent = null; + this._parents = null; + this.unsubscribe(); + this.closed = false; + this.isStopped = false; + this._parent = _parent; + this._parents = _parents; + return this; + }; + return Subscriber; +}(Subscription_1.Subscription)); +exports.Subscriber = Subscriber; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +var SafeSubscriber = (function (_super) { + __extends(SafeSubscriber, _super); + function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) { + _super.call(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; + } + SafeSubscriber.prototype.next = function (value) { + if (!this.isStopped && this._next) { + var _parentSubscriber = this._parentSubscriber; + if (!_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; + if (this._error) { + if (!_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._error, err); + this.unsubscribe(); + } + else { + this.__tryOrSetError(_parentSubscriber, this._error, err); + this.unsubscribe(); + } + } + else if (!_parentSubscriber.syncErrorThrowable) { + this.unsubscribe(); + throw err; + } + else { + _parentSubscriber.syncErrorValue = err; + _parentSubscriber.syncErrorThrown = true; + 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 (!_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(); + throw err; + } + }; + SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) { + try { + fn.call(this._context, value); + } + catch (err) { + parent.syncErrorValue = err; + parent.syncErrorThrown = true; + return true; + } + return false; + }; + /** @deprecated internal use only */ SafeSubscriber.prototype._unsubscribe = function () { + var _parentSubscriber = this._parentSubscriber; + this._context = null; + this._parentSubscriber = null; + _parentSubscriber.unsubscribe(); + }; + return SafeSubscriber; +}(Subscriber)); +function isTrustedSubscriber(obj) { + return obj instanceof Subscriber || ('syncErrorThrowable' in obj && obj[rxSubscriber_1.rxSubscriber]); +} +//# sourceMappingURL=Subscriber.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Subscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/Subscriber.js.map new file mode 100644 index 00000000000000..13a6d71eebf55b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Subscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subscriber.js","sourceRoot":"","sources":["../src/Subscriber.ts"],"names":[],"mappings":";;;;;;AAAA,2BAA2B,mBAAmB,CAAC,CAAA;AAE/C,6BAA6B,gBAAgB,CAAC,CAAA;AAC9C,yBAAuC,YAAY,CAAC,CAAA;AACpD,6BAAmD,uBAAuB,CAAC,CAAA;AAE3E;;;;;;;;;GASG;AACH;IAAmC,8BAAY;IA8B7C;;;;;;;OAOG;IACH,oBAAY,iBAA+D,EAC/D,KAAyB,EACzB,QAAqB;QAC/B,iBAAO,CAAC;QAlBH,mBAAc,GAAQ,IAAI,CAAC;QAC3B,oBAAe,GAAY,KAAK,CAAC;QACjC,uBAAkB,GAAY,KAAK,CAAC;QAEjC,cAAS,GAAY,KAAK,CAAC;QAgBnC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACzB,KAAK,CAAC;gBACJ,IAAI,CAAC,WAAW,GAAG,gBAAa,CAAC;gBACjC,KAAK,CAAC;YACR,KAAK,CAAC;gBACJ,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,WAAW,GAAG,gBAAa,CAAC;oBACjC,KAAK,CAAC;gBACR,CAAC;gBACD,EAAE,CAAC,CAAC,OAAO,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC;oBAC1C,wEAAwE;oBACxE,kDAAkD;oBAClD,EAAE,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;wBAC3C,IAAM,iBAAiB,GAAG,iBAAiB,CAAC,2BAAkB,CAAC,EAAqB,CAAC;wBACrF,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,kBAAkB,CAAC;wBAC/D,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;wBACrC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAI,IAAI,EAAyB,iBAAiB,CAAC,CAAC;oBAC3F,CAAC;oBACD,KAAK,CAAC;gBACR,CAAC;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,KAAK,CAAC;QACV,CAAC;IACH,CAAC;IArED,qBAAC,2BAAkB,CAAC,GAApB,cAAyB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvC;;;;;;;;;;OAUG;IACI,iBAAM,GAAb,UAAiB,IAAsB,EACtB,KAAyB,EACzB,QAAqB;QACpC,IAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzD,UAAU,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACtC,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC;IAoDD;;;;;;OAMG;IACH,yBAAI,GAAJ,UAAK,KAAS;QACZ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,0BAAK,GAAL,UAAM,GAAS;QACb,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,6BAAQ,GAAR;QACE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,gCAAW,GAAX;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC;QACT,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,gBAAK,CAAC,WAAW,WAAE,CAAC;IACtB,CAAC;IAES,0BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,2BAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,8BAAS,GAAnB;QACE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,oCAAoC,CAAC,2CAAsB,GAAtB;QACnC,IAAA,SAAkC,EAA1B,oBAAO,EAAE,sBAAQ,CAAU;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IACH,iBAAC;AAAD,CAAC,AAlJD,CAAmC,2BAAY,GAkJ9C;AAlJY,kBAAU,aAkJtB,CAAA;AAED;;;;GAIG;AACH;IAAgC,kCAAa;IAI3C,wBAAoB,iBAAgC,EACxC,cAA0D,EAC1D,KAAyB,EACzB,QAAqB;QAC/B,iBAAO,CAAC;QAJU,sBAAiB,GAAjB,iBAAiB,CAAe;QAMlD,IAAI,IAA0B,CAAC;QAC/B,IAAI,OAAO,GAAQ,IAAI,CAAC;QAExB,EAAE,CAAC,CAAC,uBAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,GAA2B,cAAe,CAAC;QACjD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YAC1B,IAAI,GAAyB,cAAe,CAAC,IAAI,CAAC;YAClD,KAAK,GAAyB,cAAe,CAAC,KAAK,CAAC;YACpD,QAAQ,GAAyB,cAAe,CAAC,QAAQ,CAAC;YAC1D,EAAE,CAAC,CAAC,cAAc,KAAK,gBAAa,CAAC,CAAC,CAAC;gBACrC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBACxC,EAAE,CAAC,CAAC,uBAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAI,CAAC,GAAG,CAAc,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBACD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;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,6BAAI,GAAJ,UAAK,KAAS;QACZ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1B,8CAAiB,CAAU;YACnC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAAK,GAAL,UAAM,GAAS;QACb,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACZ,8CAAiB,CAAU;YACnC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChB,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBACpC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM,GAAG,CAAC;YACZ,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,iBAAiB,CAAC,cAAc,GAAG,GAAG,CAAC;gBACvC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;gBACzC,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,iCAAQ,GAAR;QAAA,iBAiBC;QAhBC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACZ,8CAAiB,CAAU;YACnC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBACnB,IAAM,eAAe,GAAG,cAAM,OAAA,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAI,CAAC,QAAQ,CAAC,EAAlC,CAAkC,CAAC;gBAEjE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC1C,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;oBACnC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;oBACzD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,qCAAY,GAApB,UAAqB,EAAY,EAAE,KAAW;QAC5C,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChC,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,wCAAe,GAAvB,UAAwB,MAAqB,EAAE,EAAY,EAAE,KAAW;QACtE,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChC,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC;YAC5B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC,CAAC,qCAAY,GAAZ;QAC3B,8CAAiB,CAAU;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,iBAAiB,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IACH,qBAAC;AAAD,CAAC,AAhHD,CAAgC,UAAU,GAgHzC;AAED,6BAA6B,GAAQ;IACnC,MAAM,CAAC,GAAG,YAAY,UAAU,IAAI,CAAC,oBAAoB,IAAI,GAAG,IAAI,GAAG,CAAC,2BAAkB,CAAC,CAAC,CAAC;AAC/F,CAAC","sourcesContent":["import { isFunction } from './util/isFunction';\nimport { Observer, PartialObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { empty as emptyObserver } from './Observer';\nimport { rxSubscriber as rxSubscriberSymbol } from './symbol/rxSubscriber';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n\n [rxSubscriberSymbol]() { return this; }\n\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n * @return {Subscriber} A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n */\n static create(next?: (x?: T) => void,\n error?: (e?: any) => void,\n complete?: () => void): Subscriber {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n\n public syncErrorValue: any = null;\n public syncErrorThrown: boolean = false;\n public syncErrorThrowable: boolean = false;\n\n protected isStopped: boolean = false;\n protected destination: PartialObserver; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n * defined Observer or a `next` callback function.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n */\n constructor(destinationOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super();\n\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 // HACK(benlesh): To resolve an issue where Node users may have multiple\n // copies of rxjs in their node_modules directory.\n if (isTrustedSubscriber(destinationOrNext)) {\n const trustedSubscriber = destinationOrNext[rxSubscriberSymbol]() as Subscriber;\n this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable;\n this.destination = trustedSubscriber;\n trustedSubscriber.add(this);\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, <((value: T) => void)> destinationOrNext, error, complete);\n break;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached {@link Error}. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n this.destination.error(err);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.destination.complete();\n this.unsubscribe();\n }\n\n /** @deprecated internal use only */ _unsubscribeAndRecycle(): Subscriber {\n const { _parent, _parents } = this;\n this._parent = null;\n this._parents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parent = _parent;\n this._parents = _parents;\n return this;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SafeSubscriber extends Subscriber {\n\n private _context: any;\n\n constructor(private _parentSubscriber: Subscriber,\n observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super();\n\n let next: ((value: T) => void);\n let context: any = this;\n\n if (isFunction(observerOrNext)) {\n next = (<((value: T) => void)> observerOrNext);\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(<() => void> context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n\n next(value?: T): void {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n } else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n\n error(err?: any): void {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._error) {\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n } else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n throw err;\n } else {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n this.unsubscribe();\n }\n }\n }\n\n complete(): void {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n } else {\n this.unsubscribe();\n }\n }\n }\n\n private __tryOrUnsub(fn: Function, value?: any): void {\n try {\n fn.call(this._context, value);\n } catch (err) {\n this.unsubscribe();\n throw err;\n }\n }\n\n private __tryOrSetError(parent: Subscriber, fn: Function, value?: any): boolean {\n try {\n fn.call(this._context, value);\n } catch (err) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n return false;\n }\n\n /** @deprecated internal use only */ _unsubscribe(): void {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n\nfunction isTrustedSubscriber(obj: any) {\n return obj instanceof Subscriber || ('syncErrorThrowable' in obj && obj[rxSubscriberSymbol]);\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/Subscription.d.ts b/tools/node_modules/eslint/node_modules/rxjs/Subscription.d.ts new file mode 100644 index 00000000000000..afe5f17751b8e8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Subscription.d.ts @@ -0,0 +1,70 @@ +export interface AnonymousSubscription { + unsubscribe(): void; +} +export declare type TeardownLogic = AnonymousSubscription | Function | void; +export interface ISubscription extends AnonymousSubscription { + unsubscribe(): void; + readonly closed: boolean; +} +/** + * 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 ISubscription { + static EMPTY: Subscription; + /** + * A flag to indicate whether this Subscription has already been unsubscribed. + * @type {boolean} + */ + closed: boolean; + protected _parent: Subscription; + protected _parents: Subscription[]; + 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. + * + * 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. + * + * @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; + private _addParent(parent); +} diff --git a/tools/node_modules/eslint/node_modules/rxjs/Subscription.js b/tools/node_modules/eslint/node_modules/rxjs/Subscription.js new file mode 100644 index 00000000000000..198728c0ca59cf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Subscription.js @@ -0,0 +1,193 @@ +"use strict"; +var isArray_1 = require('./util/isArray'); +var isObject_1 = require('./util/isObject'); +var isFunction_1 = require('./util/isFunction'); +var tryCatch_1 = require('./util/tryCatch'); +var errorObject_1 = require('./util/errorObject'); +var UnsubscriptionError_1 = require('./util/UnsubscriptionError'); +/** + * 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 + */ +var Subscription = (function () { + /** + * @param {function(): void} [unsubscribe] A function describing how to + * perform the disposal of resources when the `unsubscribe` method is called. + */ + function Subscription(unsubscribe) { + /** + * A flag to indicate whether this Subscription has already been unsubscribed. + * @type {boolean} + */ + this.closed = false; + this._parent = null; + this._parents = null; + this._subscriptions = null; + if (unsubscribe) { + this._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} + */ + Subscription.prototype.unsubscribe = function () { + var hasErrors = false; + var errors; + if (this.closed) { + return; + } + var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions; + this.closed = true; + this._parent = null; + this._parents = null; + // null out _subscriptions first so any child subscriptions that attempt + // to remove themselves from this subscription will noop + this._subscriptions = null; + var index = -1; + var len = _parents ? _parents.length : 0; + // if this._parent is null, then so is this._parents, and we + // don't have to remove ourselves from any parent subscriptions. + while (_parent) { + _parent.remove(this); + // if this._parents is null or index >= len, + // then _parent is set to null, and the loop exits + _parent = ++index < len && _parents[index] || null; + } + if (isFunction_1.isFunction(_unsubscribe)) { + var trial = tryCatch_1.tryCatch(_unsubscribe).call(this); + if (trial === errorObject_1.errorObject) { + hasErrors = true; + errors = errors || (errorObject_1.errorObject.e instanceof UnsubscriptionError_1.UnsubscriptionError ? + flattenUnsubscriptionErrors(errorObject_1.errorObject.e.errors) : [errorObject_1.errorObject.e]); + } + } + if (isArray_1.isArray(_subscriptions)) { + index = -1; + len = _subscriptions.length; + while (++index < len) { + var sub = _subscriptions[index]; + if (isObject_1.isObject(sub)) { + var trial = tryCatch_1.tryCatch(sub.unsubscribe).call(sub); + if (trial === errorObject_1.errorObject) { + hasErrors = true; + errors = errors || []; + var err = errorObject_1.errorObject.e; + if (err instanceof UnsubscriptionError_1.UnsubscriptionError) { + errors = errors.concat(flattenUnsubscriptionErrors(err.errors)); + } + else { + errors.push(err); + } + } + } + } + } + if (hasErrors) { + throw new UnsubscriptionError_1.UnsubscriptionError(errors); + } + }; + /** + * Adds a tear down to be called during the unsubscribe() of this + * 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. + * + * @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. + */ + Subscription.prototype.add = function (teardown) { + if (!teardown || (teardown === Subscription.EMPTY)) { + return Subscription.EMPTY; + } + if (teardown === this) { + return this; + } + var subscription = teardown; + switch (typeof teardown) { + case 'function': + subscription = new Subscription(teardown); + case 'object': + if (subscription.closed || typeof subscription.unsubscribe !== 'function') { + return subscription; + } + else if (this.closed) { + subscription.unsubscribe(); + return subscription; + } + else if (typeof subscription._addParent !== 'function' /* quack quack */) { + var tmp = subscription; + subscription = new Subscription(); + subscription._subscriptions = [tmp]; + } + break; + default: + throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); + } + var subscriptions = this._subscriptions || (this._subscriptions = []); + subscriptions.push(subscription); + subscription._addParent(this); + 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} + */ + Subscription.prototype.remove = function (subscription) { + var subscriptions = this._subscriptions; + if (subscriptions) { + var subscriptionIndex = subscriptions.indexOf(subscription); + if (subscriptionIndex !== -1) { + subscriptions.splice(subscriptionIndex, 1); + } + } + }; + Subscription.prototype._addParent = function (parent) { + var _a = this, _parent = _a._parent, _parents = _a._parents; + if (!_parent || _parent === parent) { + // If we don't have a parent, or the new parent is the same as the + // current parent, then set this._parent to the new parent. + this._parent = parent; + } + else if (!_parents) { + // If there's already one parent, but not multiple, allocate an Array to + // store the rest of the parent Subscriptions. + this._parents = [parent]; + } + else if (_parents.indexOf(parent) === -1) { + // Only add the new parent to the _parents list if it's not already there. + _parents.push(parent); + } + }; + 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/tools/node_modules/eslint/node_modules/rxjs/Subscription.js.map b/tools/node_modules/eslint/node_modules/rxjs/Subscription.js.map new file mode 100644 index 00000000000000..793c4bf77c9fc1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/Subscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subscription.js","sourceRoot":"","sources":["../src/Subscription.ts"],"names":[],"mappings":"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","sourcesContent":["import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { tryCatch } from './util/tryCatch';\nimport { errorObject } from './util/errorObject';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\n\nexport interface AnonymousSubscription {\n unsubscribe(): void;\n}\n\nexport type TeardownLogic = AnonymousSubscription | Function | void;\n\nexport interface ISubscription extends AnonymousSubscription {\n unsubscribe(): void;\n readonly closed: boolean;\n}\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements ISubscription {\n public static EMPTY: Subscription = (function(empty: any){\n empty.closed = true;\n return empty;\n }(new Subscription()));\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n * @type {boolean}\n */\n public closed: boolean = false;\n\n protected _parent: Subscription = null;\n protected _parents: Subscription[] = null;\n private _subscriptions: ISubscription[] = null;\n\n /**\n * @param {function(): void} [unsubscribe] A function describing how to\n * perform the disposal of resources when the `unsubscribe` method is called.\n */\n constructor(unsubscribe?: () => void) {\n if (unsubscribe) {\n ( this)._unsubscribe = unsubscribe;\n }\n }\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let hasErrors = false;\n let errors: any[];\n\n if (this.closed) {\n return;\n }\n\n let { _parent, _parents, _unsubscribe, _subscriptions } = ( this);\n\n this.closed = true;\n this._parent = null;\n this._parents = null;\n // null out _subscriptions first so any child subscriptions that attempt\n // to remove themselves from this subscription will noop\n this._subscriptions = null;\n\n let index = -1;\n let len = _parents ? _parents.length : 0;\n\n // if this._parent is null, then so is this._parents, and we\n // don't have to remove ourselves from any parent subscriptions.\n while (_parent) {\n _parent.remove(this);\n // if this._parents is null or index >= len,\n // then _parent is set to null, and the loop exits\n _parent = ++index < len && _parents[index] || null;\n }\n\n if (isFunction(_unsubscribe)) {\n let trial = tryCatch(_unsubscribe).call(this);\n if (trial === errorObject) {\n hasErrors = true;\n errors = errors || (\n errorObject.e instanceof UnsubscriptionError ?\n flattenUnsubscriptionErrors(errorObject.e.errors) : [errorObject.e]\n );\n }\n }\n\n if (isArray(_subscriptions)) {\n\n index = -1;\n len = _subscriptions.length;\n\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n let trial = tryCatch(sub.unsubscribe).call(sub);\n if (trial === errorObject) {\n hasErrors = true;\n errors = errors || [];\n let err = errorObject.e;\n if (err instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(err.errors));\n } else {\n errors.push(err);\n }\n }\n }\n }\n }\n\n if (hasErrors) {\n throw new UnsubscriptionError(errors);\n }\n }\n\n /**\n * Adds a tear down to be called during the unsubscribe() of this\n * Subscription.\n *\n * If the tear down being added is a subscription that is already\n * unsubscribed, is the same reference `add` is being called on, or is\n * `Subscription.EMPTY`, it will not be added.\n *\n * If this subscription is already in an `closed` state, the passed\n * tear down logic will be executed immediately.\n *\n * @param {TeardownLogic} teardown The additional logic to execute on\n * teardown.\n * @return {Subscription} Returns the Subscription used or created to be\n * added to the inner subscriptions list. This Subscription can be used with\n * `remove()` to remove the passed teardown logic from the inner subscriptions\n * list.\n */\n add(teardown: TeardownLogic): Subscription {\n if (!teardown || (teardown === Subscription.EMPTY)) {\n return Subscription.EMPTY;\n }\n\n if (teardown === this) {\n return this;\n }\n\n let subscription = ( teardown);\n\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(<(() => void) > teardown);\n case 'object':\n if (subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n } else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n } else if (typeof subscription._addParent !== 'function' /* quack quack */) {\n const 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 const subscriptions = this._subscriptions || (this._subscriptions = []);\n\n subscriptions.push(subscription);\n subscription._addParent(this);\n\n return subscription;\n }\n\n /**\n * Removes a Subscription from the internal list of subscriptions that will\n * unsubscribe during the unsubscribe process of this Subscription.\n * @param {Subscription} subscription The subscription to remove.\n * @return {void}\n */\n remove(subscription: Subscription): void {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n\n private _addParent(parent: Subscription) {\n let { _parent, _parents } = this;\n if (!_parent || _parent === parent) {\n // If we don't have a parent, or the new parent is the same as the\n // current parent, then set this._parent to the new parent.\n this._parent = parent;\n } else if (!_parents) {\n // If there's already one parent, but not multiple, allocate an Array to\n // store the rest of the parent Subscriptions.\n this._parents = [parent];\n } else if (_parents.indexOf(parent) === -1) {\n // Only add the new parent to the _parents list if it's not already there.\n _parents.push(parent);\n }\n }\n}\n\nfunction flattenUnsubscriptionErrors(errors: any[]) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/AsyncSubject.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/AsyncSubject.js new file mode 100644 index 00000000000000..26f69a9ec03b70 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/AsyncSubject.js @@ -0,0 +1,44 @@ +import { Subject } from './Subject'; +import { Subscription } from './Subscription'; +/** + * @class AsyncSubject + */ +export class AsyncSubject extends Subject { + constructor() { + super(...arguments); + this.value = null; + this.hasNext = false; + this.hasCompleted = false; + } + /** @deprecated internal use only */ _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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/AsyncSubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/AsyncSubject.js.map new file mode 100644 index 00000000000000..6d2e79ee814f74 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/AsyncSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncSubject.js","sourceRoot":"","sources":["../src/AsyncSubject.ts"],"names":[],"mappings":"OAAO,EAAE,OAAO,EAAE,MAAM,WAAW;OAE5B,EAAE,YAAY,EAAE,MAAM,gBAAgB;AAE7C;;GAEG;AACH,kCAAqC,OAAO;IAA5C;QAAqC,oBAAU;QACrC,UAAK,GAAM,IAAI,CAAC;QAChB,YAAO,GAAY,KAAK,CAAC;QACzB,iBAAY,GAAY,KAAK,CAAC;IAkCxC,CAAC;IAhCC,oCAAoC,CAAC,UAAU,CAAC,UAA2B;QACzE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;QAC5B,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAU;QACd,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACvB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/BehaviorSubject.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/BehaviorSubject.js new file mode 100644 index 00000000000000..0b6a75ca0fb549 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/BehaviorSubject.js @@ -0,0 +1,36 @@ +import { Subject } from './Subject'; +import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; +/** + * @class BehaviorSubject + */ +export class BehaviorSubject extends Subject { + constructor(_value) { + super(); + this._value = _value; + } + get value() { + return this.getValue(); + } + /** @deprecated internal use only */ _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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/BehaviorSubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/BehaviorSubject.js.map new file mode 100644 index 00000000000000..7595a597cb5127 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/BehaviorSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BehaviorSubject.js","sourceRoot":"","sources":["../src/BehaviorSubject.ts"],"names":[],"mappings":"OAAO,EAAE,OAAO,EAAE,MAAM,WAAW;OAG5B,EAAE,uBAAuB,EAAE,MAAM,gCAAgC;AAExE;;GAEG;AACH,qCAAwC,OAAO;IAE7C,YAAoB,MAAS;QAC3B,OAAO,CAAC;QADU,WAAM,GAAN,MAAM,CAAG;IAE7B,CAAC;IAED,IAAI,KAAK;QACP,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,oCAAoC,CAAC,UAAU,CAAC,UAAyB;QACvE,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAClD,EAAE,CAAC,CAAC,YAAY,IAAI,CAAiB,YAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,CAAC,YAAY,CAAC;IACtB,CAAC;IAED,QAAQ;QACN,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,CAAC,WAAW,CAAC;QACzB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,uBAAuB,EAAE,CAAC;QACtC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/InnerSubscriber.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/InnerSubscriber.js new file mode 100644 index 00000000000000..90b76936dabca7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/InnerSubscriber.js @@ -0,0 +1,27 @@ +import { Subscriber } from './Subscriber'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/InnerSubscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/InnerSubscriber.js.map new file mode 100644 index 00000000000000..e1922b3b9396f2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/InnerSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InnerSubscriber.js","sourceRoot":"","sources":["../src/InnerSubscriber.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,cAAc;AAGzC;;;;GAIG;AACH,qCAA2C,UAAU;IAGnD,YAAoB,MAA6B,EAAU,UAAa,EAAU,UAAkB;QAClG,OAAO,CAAC;QADU,WAAM,GAAN,MAAM,CAAuB;QAAU,eAAU,GAAV,UAAU,CAAG;QAAU,eAAU,GAAV,UAAU,CAAQ;QAF5F,UAAK,GAAW,CAAC,CAAC;IAI1B,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;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/LICENSE.txt b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/LICENSE.txt new file mode 100644 index 00000000000000..b6c40015e9acc0 --- /dev/null +++ b/tools/node_modules/eslint/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-2017 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Notification.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Notification.js new file mode 100644 index 00000000000000..7faf76059ec010 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Notification.js @@ -0,0 +1,124 @@ +import { Observable } from './Observable'; +/** + * 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 { + constructor(kind, value, error) { + this.kind = kind; + this.value = value; + this.error = error; + this.hasValue = kind === 'N'; + } + /** + * Delivers to the given `observer` the value wrapped by this Notification. + * @param {Observer} observer + * @return + */ + 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(); + } + } + /** + * 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, 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(); + } + } + /** + * 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, error, complete) { + if (nextOrObserver && typeof nextOrObserver.next === 'function') { + return this.observe(nextOrObserver); + } + else { + return this.do(nextOrObserver, error, complete); + } + } + /** + * Returns a simple Observable that just delivers the notification represented + * by this Notification instance. + * @return {any} + */ + toObservable() { + const kind = this.kind; + switch (kind) { + case 'N': + return Observable.of(this.value); + case 'E': + return Observable.throw(this.error); + case 'C': + return Observable.empty(); + } + throw new Error('unexpected notification kind value'); + } + /** + * 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. + */ + static createNext(value) { + 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. + */ + static createError(err) { + return new Notification('E', undefined, err); + } + /** + * A shortcut to create a Notification instance of the type `complete`. + * @return {Notification} The valueless "complete" Notification. + */ + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Notification.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Notification.js.map new file mode 100644 index 00000000000000..7a2dfb7e61bb4c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Notification.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Notification.js","sourceRoot":"","sources":["../src/Notification.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observable.js new file mode 100644 index 00000000000000..9a3f597656bee6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observable.js @@ -0,0 +1,296 @@ +import { root } from './util/root'; +import { toSubscriber } from './util/toSubscriber'; +import { observable as Symbol_observable } from './symbol/observable'; +import { pipeFromArray } from './util/pipe'; +/** + * 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 { + /** + * @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._isScalar = false; + if (subscribe) { + this._subscribe = 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) { + const observable = new Observable(); + observable.source = this; + observable.operator = operator; + return observable; + } + /** + * 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 a {@link create} static factory, but most of the time it is + * a library implementation, which defines what and when will be emitted by an Observable. This means that calling + * `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often + * 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 + * 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, that if `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 first function is equivalent + * of a `next` method, second of an `error` method and 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. + * + * Whatever 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 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 {@link Scheduler}. + * + * @example Subscribe with an Observer + * 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); + * } + * }; + * + * Rx.Observable.of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes. + * .subscribe(sumObserver); + * + * // Logs: + * // "Adding: 1" + * // "Adding: 2" + * // "Adding: 3" + * // "Sum equals: 6" + * + * + * @example Subscribe with functions + * let sum = 0; + * + * Rx.Observable.of(1, 2, 3) + * .subscribe( + * function(value) { + * console.log('Adding: ' + value); + * sum = sum + value; + * }, + * undefined, + * function() { + * console.log('Sum equals: ' + sum); + * } + * ); + * + * // Logs: + * // "Adding: 1" + * // "Adding: 2" + * // "Adding: 3" + * // "Sum equals: 6" + * + * + * @example Cancel a subscription + * const subscription = Rx.Observable.interval(1000).subscribe( + * num => console.log(num), + * undefined, + * () => console.log('completed!') // Will not be called, even + * ); // when cancelling subscription + * + * + * 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, error, complete) { + const { operator } = this; + const sink = toSubscriber(observerOrNext, error, complete); + if (operator) { + operator.call(sink, this.source); + } + else { + sink.add(this.source || !sink.syncErrorThrowable ? this._subscribe(sink) : this._trySubscribe(sink)); + } + if (sink.syncErrorThrowable) { + sink.syncErrorThrowable = false; + if (sink.syncErrorThrown) { + throw sink.syncErrorValue; + } + } + return sink; + } + _trySubscribe(sink) { + try { + return this._subscribe(sink); + } + catch (err) { + sink.syncErrorThrown = true; + sink.syncErrorValue = err; + sink.error(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, PromiseCtor) { + if (!PromiseCtor) { + if (root.Rx && root.Rx.config && root.Rx.config.Promise) { + PromiseCtor = root.Rx.config.Promise; + } + else if (root.Promise) { + PromiseCtor = root.Promise; + } + } + if (!PromiseCtor) { + throw new Error('no Promise impl found'); + } + return new PromiseCtor((resolve, reject) => { + // Must be declared in a separate statement to avoid a RefernceError when + // accessing subscription below in the closure due to Temporal Dead Zone. + let subscription; + subscription = this.subscribe((value) => { + if (subscription) { + // if there is a subscription, then we can surmise + // the next handling is asynchronous. Any errors thrown + // need to be rejected explicitly and unsubscribe must be + // called manually + try { + next(value); + } + catch (err) { + reject(err); + subscription.unsubscribe(); + } + } + else { + // if there is NO subscription, then we're getting a nexted + // value synchronously during subscription. We can just call it. + // If it errors, Observable's `subscribe` will ensure the + // unsubscription logic is called, then synchronously rethrow the error. + // After that, Promise will trap the error and send it + // down the rejection path. + next(value); + } + }, reject, resolve); + }); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + return this.source.subscribe(subscriber); + } + /** + * 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: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 + * + * import { map, filter, scan } from 'rxjs/operators'; + * + * Rx.Observable.interval(1000) + * .pipe( + * filter(x => x % 2 === 0), + * map(x => x + x), + * scan((acc, x) => acc + x) + * ) + * .subscribe(x => console.log(x)) + */ + pipe(...operations) { + if (operations.length === 0) { + return this; + } + return pipeFromArray(operations)(this); + } + /* tslint:enable:max-line-length */ + toPromise(PromiseCtor) { + if (!PromiseCtor) { + if (root.Rx && root.Rx.config && root.Rx.config.Promise) { + PromiseCtor = root.Rx.config.Promise; + } + else if (root.Promise) { + PromiseCtor = root.Promise; + } + } + if (!PromiseCtor) { + throw new Error('no Promise impl found'); + } + return new PromiseCtor((resolve, reject) => { + let value; + this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value)); + }); + } +} +// 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 + */ +Observable.create = (subscribe) => { + return new Observable(subscribe); +}; +//# sourceMappingURL=Observable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observable.js.map new file mode 100644 index 00000000000000..8238eb19b17d25 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Observable.js","sourceRoot":"","sources":["../src/Observable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observer.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observer.js new file mode 100644 index 00000000000000..edfadbaa137e6a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observer.js @@ -0,0 +1,7 @@ +export const empty = { + closed: true, + next(value) { }, + error(err) { throw err; }, + complete() { } +}; +//# sourceMappingURL=Observer.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observer.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observer.js.map new file mode 100644 index 00000000000000..162fe9241e2668 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Observer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Observer.js","sourceRoot":"","sources":["../src/Observer.ts"],"names":[],"mappings":"AA8BA,OAAO,MAAM,KAAK,GAAkB;IAClC,MAAM,EAAE,IAAI;IACZ,IAAI,CAAC,KAAU,IAAoB,CAAC;IACpC,KAAK,CAAC,GAAQ,IAAU,MAAM,GAAG,CAAC,CAAC,CAAC;IACpC,QAAQ,KAAoB,CAAC;CAC9B,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Operator.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Operator.js new file mode 100644 index 00000000000000..463a42e480da75 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Operator.js @@ -0,0 +1 @@ +//# sourceMappingURL=Operator.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Operator.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Operator.js.map new file mode 100644 index 00000000000000..ce9fa2ecd4a258 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Operator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Operator.js","sourceRoot":"","sources":["../src/Operator.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/OuterSubscriber.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/OuterSubscriber.js new file mode 100644 index 00000000000000..4ee8be3f0e256d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/OuterSubscriber.js @@ -0,0 +1,18 @@ +import { Subscriber } from './Subscriber'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/OuterSubscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/OuterSubscriber.js.map new file mode 100644 index 00000000000000..8701c263d59432 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/OuterSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OuterSubscriber.js","sourceRoot":"","sources":["../src/OuterSubscriber.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,cAAc;AAGzC;;;;GAIG;AACH,qCAA2C,UAAU;IACnD,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;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/README.md b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/README.md new file mode 100644 index 00000000000000..f8eda12a2be10a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/README.md @@ -0,0 +1,204 @@ +[![Build Status](https://travis-ci.org/ReactiveX/rxjs.svg?branch=master)](https://travis-ci.org/ReactiveX/rxjs) +[![Coverage Status](https://coveralls.io/repos/github/ReactiveX/rxjs/badge.svg?branch=master)](https://coveralls.io/github/ReactiveX/rxjs?branch=master) +[![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) + +[![Selenium Test Status](https://saucelabs.com/browser-matrix/rxjs5.svg)](https://saucelabs.com/u/rxjs5) + +# RxJS 5 + +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/maintainer-guidelines.md) +- [Creating Operators](doc/operator-creation.md) +- [Migrating From RxJS 4 to RxJS 5](MIGRATION.md) +- [API Documentation (WIP)](http://reactivex.io/rxjs) + +## Versions In This Repository + +- [master](https://github.com/ReactiveX/rxjs/commits/master) - commits that will be included in the next _minor_ or _patch_ release +- [next](https://github.com/ReactiveX/rxjs/commits/next) - commits that will be included in the next _major_ release (breaking changes) + +Most PRs should be made to **master**, unless you know it is a breaking change. + +## 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 +``` + +To import the entire core set of functionality: + +```js +import Rx from 'rxjs/Rx'; + +Rx.Observable.of(1,2,3) +``` + +To import only what you need by patching (this is useful for size-sensitive bundling): + +```js +import { Observable } from 'rxjs/Observable'; +import 'rxjs/add/observable/of'; +import 'rxjs/add/operator/map'; + +Observable.of(1,2,3).map(x => x + '!!!'); // etc +``` + +To import what you need and use it with proposed [bind operator](https://github.com/tc39/proposal-bind-operator): + +> Note: This additional syntax requires [transpiler support](http://babeljs.io/docs/plugins/transform-function-bind/) and this syntax may be completely withdrawn from TC39 without notice! Use at your own risk. + +```js +import { Observable } from 'rxjs/Observable'; +import { of } from 'rxjs/observable/of'; +import { map } from 'rxjs/operator/map'; + +Observable::of(1,2,3)::map(x => x + '!!!'); // etc +``` + +### CommonJS via npm + +To install this library for CommonJS (CJS) usage, use the following command: + +```sh +npm install rxjs +``` + +Import all core functionality: + +```js +var Rx = require('rxjs/Rx'); + +Rx.Observable.of(1,2,3); // etc +``` + +Import only what you need and patch Observable (this is useful in size-sensitive bundling scenarios): + +```js +var Observable = require('rxjs/Observable').Observable; +// patch Observable with appropriate methods +require('rxjs/add/observable/of'); +require('rxjs/add/operator/map'); + +Observable.of(1,2,3).map(function (x) { return x + '!!!'; }); // etc +``` + +Import operators and use them _manually_ you can do the following (this is also useful for bundling): + +```js +var of = require('rxjs/observable/of').of; +var map = require('rxjs/operator/map').map; + +map.call(of(1,2,3), function (x) { return x + '!!!'; }); +``` + +You can also use the above method to build your own Observable and export it from your own module. + + +### All Module Types (CJS/ES6/AMD/TypeScript) via npm + +To install this library via [npm](https://www.npmjs.org) **version 3**, use the following command: + +```sh +npm install @reactivex/rxjs +``` + +This will include CJS/Global builds and can be used for all module types. + +If you are using npm **version 2** before this library has achieved a stable version, you need to specify the library version explicitly: + +```sh +npm install @reactivex/rxjs@5.0.0 +``` + +### CDN + +For CDN, you can use [unpkg](https://unpkg.com/): + +https://unpkg.com/rxjs/bundles/Rx.min.js + +#### Node.js Usage: + +```js +var Rx = require('@reactivex/rxjs'); + +Rx.Observable.of('hello world') + .subscribe(function(x) { console.log(x); }); +``` + +## Goals + +- 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 + +The build and test structure is fairly primitive at the moment. There are various npm scripts that can be run: + +- build_es6: Transpiles the TypeScript files from `src/` to `dist/es6` +- build_cjs: Transpiles the ES6 files from `dist/es6` to `dist/cjs` +- build_amd: Transpiles the ES6 files from `dist/es6` to `dist/amd` +- build_global: Transpiles/Bundles the CommonJS files from `dist/cjs` to `dist/global/Rx.js` +- build_all: Performs all of the above in the proper order. +- build_test: builds ES6, then CommonJS, then runs the tests with `jasmine` +- build_perf: builds ES6, CommonJS, then global, then runs the performance tests with `protractor` +- build_docs: generates API documentation from `dist/es6` to `dist/docs` +- build_cover: runs `istanbul` code coverage against test cases +- test: runs tests with `jasmine`, must have built prior to running. +- tests2png: generates PNG marble diagrams from test cases. + +`npm run info` will list available script. + +### Example + +```sh +# build all the things! +npm run build_all +``` + +## Performance Tests + +Run `npm run build_perf` or `npm run perf` to run the performance tests with `protractor`. +Run `npm run perf_micro` to run micro performance test benchmarking operator. + +## Adding documentation +RxNext uses [ESDoc](https://esdoc.org/) to generate API documentation. Refer to ESDoc's documentation for syntax. Run `npm run build_docs` to generate. + +## 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/ReplaySubject.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/ReplaySubject.js new file mode 100644 index 00000000000000..f34fe52b5d6741 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/ReplaySubject.js @@ -0,0 +1,90 @@ +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'; +/** + * @class ReplaySubject + */ +export class ReplaySubject extends Subject { + constructor(bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, scheduler) { + super(); + this.scheduler = scheduler; + this._events = []; + this._bufferSize = bufferSize < 1 ? 1 : bufferSize; + this._windowTime = windowTime < 1 ? 1 : windowTime; + } + next(value) { + const now = this._getNow(); + this._events.push(new ReplayEvent(now, value)); + this._trimBufferThenGetEvents(); + super.next(value); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const _events = this._trimBufferThenGetEvents(); + const scheduler = this.scheduler; + let subscription; + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else if (this.hasError) { + subscription = Subscription.EMPTY; + } + else if (this.isStopped) { + subscription = Subscription.EMPTY; + } + else { + this.observers.push(subscriber); + subscription = new SubjectSubscription(this, subscriber); + } + if (scheduler) { + subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler)); + } + const len = _events.length; + 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; + let 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(time, value) { + this.time = time; + this.value = value; + } +} +//# sourceMappingURL=ReplaySubject.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/ReplaySubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/ReplaySubject.js.map new file mode 100644 index 00000000000000..1be9721e9e8340 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/ReplaySubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ReplaySubject.js","sourceRoot":"","sources":["../src/ReplaySubject.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Rx.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Rx.js new file mode 100644 index 00000000000000..23fd5c3f42b68b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Rx.js @@ -0,0 +1,204 @@ +/* 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'; +import './add/observable/bindCallback'; +import './add/observable/bindNodeCallback'; +import './add/observable/combineLatest'; +import './add/observable/concat'; +import './add/observable/defer'; +import './add/observable/empty'; +import './add/observable/forkJoin'; +import './add/observable/from'; +import './add/observable/fromEvent'; +import './add/observable/fromEventPattern'; +import './add/observable/fromPromise'; +import './add/observable/generate'; +import './add/observable/if'; +import './add/observable/interval'; +import './add/observable/merge'; +import './add/observable/race'; +import './add/observable/never'; +import './add/observable/of'; +import './add/observable/onErrorResumeNext'; +import './add/observable/pairs'; +import './add/observable/range'; +import './add/observable/using'; +import './add/observable/throw'; +import './add/observable/timer'; +import './add/observable/zip'; +import './add/observable/dom/ajax'; +import './add/observable/dom/webSocket'; +import './add/operator/buffer'; +import './add/operator/bufferCount'; +import './add/operator/bufferTime'; +import './add/operator/bufferToggle'; +import './add/operator/bufferWhen'; +import './add/operator/catch'; +import './add/operator/combineAll'; +import './add/operator/combineLatest'; +import './add/operator/concat'; +import './add/operator/concatAll'; +import './add/operator/concatMap'; +import './add/operator/concatMapTo'; +import './add/operator/count'; +import './add/operator/dematerialize'; +import './add/operator/debounce'; +import './add/operator/debounceTime'; +import './add/operator/defaultIfEmpty'; +import './add/operator/delay'; +import './add/operator/delayWhen'; +import './add/operator/distinct'; +import './add/operator/distinctUntilChanged'; +import './add/operator/distinctUntilKeyChanged'; +import './add/operator/do'; +import './add/operator/exhaust'; +import './add/operator/exhaustMap'; +import './add/operator/expand'; +import './add/operator/elementAt'; +import './add/operator/filter'; +import './add/operator/finally'; +import './add/operator/find'; +import './add/operator/findIndex'; +import './add/operator/first'; +import './add/operator/groupBy'; +import './add/operator/ignoreElements'; +import './add/operator/isEmpty'; +import './add/operator/audit'; +import './add/operator/auditTime'; +import './add/operator/last'; +import './add/operator/let'; +import './add/operator/every'; +import './add/operator/map'; +import './add/operator/mapTo'; +import './add/operator/materialize'; +import './add/operator/max'; +import './add/operator/merge'; +import './add/operator/mergeAll'; +import './add/operator/mergeMap'; +import './add/operator/mergeMapTo'; +import './add/operator/mergeScan'; +import './add/operator/min'; +import './add/operator/multicast'; +import './add/operator/observeOn'; +import './add/operator/onErrorResumeNext'; +import './add/operator/pairwise'; +import './add/operator/partition'; +import './add/operator/pluck'; +import './add/operator/publish'; +import './add/operator/publishBehavior'; +import './add/operator/publishReplay'; +import './add/operator/publishLast'; +import './add/operator/race'; +import './add/operator/reduce'; +import './add/operator/repeat'; +import './add/operator/repeatWhen'; +import './add/operator/retry'; +import './add/operator/retryWhen'; +import './add/operator/sample'; +import './add/operator/sampleTime'; +import './add/operator/scan'; +import './add/operator/sequenceEqual'; +import './add/operator/share'; +import './add/operator/shareReplay'; +import './add/operator/single'; +import './add/operator/skip'; +import './add/operator/skipLast'; +import './add/operator/skipUntil'; +import './add/operator/skipWhile'; +import './add/operator/startWith'; +import './add/operator/subscribeOn'; +import './add/operator/switch'; +import './add/operator/switchMap'; +import './add/operator/switchMapTo'; +import './add/operator/take'; +import './add/operator/takeLast'; +import './add/operator/takeUntil'; +import './add/operator/takeWhile'; +import './add/operator/throttle'; +import './add/operator/throttleTime'; +import './add/operator/timeInterval'; +import './add/operator/timeout'; +import './add/operator/timeoutWith'; +import './add/operator/timestamp'; +import './add/operator/toArray'; +import './add/operator/toPromise'; +import './add/operator/window'; +import './add/operator/windowCount'; +import './add/operator/windowTime'; +import './add/operator/windowToggle'; +import './add/operator/windowWhen'; +import './add/operator/withLatestFrom'; +import './add/operator/zip'; +import './add/operator/zipAll'; +/* tslint:disable:no-unused-variable */ +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 } 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 './operator/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'; +export const operators = _operators; +/* tslint:enable:no-unused-variable */ +/** + * @typedef {Object} Rx.Scheduler + * @property {Scheduler} queue Schedules on a queue in the current event frame + * (trampoline scheduler). Use this for iteration operations. + * @property {Scheduler} asap Schedules on the micro task queue, which uses the + * fastest transport mechanism available, either Node.js' `process.nextTick()` + * or Web Worker MessageChannel or setTimeout or others. Use this for + * asynchronous conversions. + * @property {Scheduler} async Schedules work with `setInterval`. Use this for + * time-based operations. + * @property {Scheduler} animationFrame Schedules work with `requestAnimationFrame`. + * Use this for synchronizing with the platform's painting + */ +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 }; +//# sourceMappingURL=Rx.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Rx.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Rx.js.map new file mode 100644 index 00000000000000..0da980e57ce1dd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Rx.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Rx.js","sourceRoot":"","sources":["../src/Rx.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,+EAA+E;AAC/E,uEAAuE;AACvE,aAAa;AACb,SAAQ,OAAO,EAAE,gBAAgB,QAAO,WAAW,CAAC;AACpD,sCAAsC;AACtC,SAAQ,UAAU,QAAO,cAAc,CAAC;OAIjC,+BAA+B;OAC/B,mCAAmC;OACnC,gCAAgC;OAChC,yBAAyB;OACzB,wBAAwB;OACxB,wBAAwB;OACxB,2BAA2B;OAC3B,uBAAuB;OACvB,4BAA4B;OAC5B,mCAAmC;OACnC,8BAA8B;OAC9B,2BAA2B;OAC3B,qBAAqB;OACrB,2BAA2B;OAC3B,wBAAwB;OACxB,uBAAuB;OACvB,wBAAwB;OACxB,qBAAqB;OACrB,oCAAoC;OACpC,wBAAwB;OACxB,wBAAwB;OACxB,wBAAwB;OACxB,wBAAwB;OACxB,wBAAwB;OACxB,sBAAsB;OAGtB,2BAA2B;OAC3B,gCAAgC;OAGhC,uBAAuB;OACvB,4BAA4B;OAC5B,2BAA2B;OAC3B,6BAA6B;OAC7B,2BAA2B;OAC3B,sBAAsB;OACtB,2BAA2B;OAC3B,8BAA8B;OAC9B,uBAAuB;OACvB,0BAA0B;OAC1B,0BAA0B;OAC1B,4BAA4B;OAC5B,sBAAsB;OACtB,8BAA8B;OAC9B,yBAAyB;OACzB,6BAA6B;OAC7B,+BAA+B;OAC/B,sBAAsB;OACtB,0BAA0B;OAC1B,yBAAyB;OACzB,qCAAqC;OACrC,wCAAwC;OACxC,mBAAmB;OACnB,wBAAwB;OACxB,2BAA2B;OAC3B,uBAAuB;OACvB,0BAA0B;OAC1B,uBAAuB;OACvB,wBAAwB;OACxB,qBAAqB;OACrB,0BAA0B;OAC1B,sBAAsB;OACtB,wBAAwB;OACxB,+BAA+B;OAC/B,wBAAwB;OACxB,sBAAsB;OACtB,0BAA0B;OAC1B,qBAAqB;OACrB,oBAAoB;OACpB,sBAAsB;OACtB,oBAAoB;OACpB,sBAAsB;OACtB,4BAA4B;OAC5B,oBAAoB;OACpB,sBAAsB;OACtB,yBAAyB;OACzB,yBAAyB;OACzB,2BAA2B;OAC3B,0BAA0B;OAC1B,oBAAoB;OACpB,0BAA0B;OAC1B,0BAA0B;OAC1B,kCAAkC;OAClC,yBAAyB;OACzB,0BAA0B;OAC1B,sBAAsB;OACtB,wBAAwB;OACxB,gCAAgC;OAChC,8BAA8B;OAC9B,4BAA4B;OAC5B,qBAAqB;OACrB,uBAAuB;OACvB,uBAAuB;OACvB,2BAA2B;OAC3B,sBAAsB;OACtB,0BAA0B;OAC1B,uBAAuB;OACvB,2BAA2B;OAC3B,qBAAqB;OACrB,8BAA8B;OAC9B,sBAAsB;OACtB,4BAA4B;OAC5B,uBAAuB;OACvB,qBAAqB;OACrB,yBAAyB;OACzB,0BAA0B;OAC1B,0BAA0B;OAC1B,0BAA0B;OAC1B,4BAA4B;OAC5B,uBAAuB;OACvB,0BAA0B;OAC1B,4BAA4B;OAC5B,qBAAqB;OACrB,yBAAyB;OACzB,0BAA0B;OAC1B,0BAA0B;OAC1B,yBAAyB;OACzB,6BAA6B;OAC7B,6BAA6B;OAC7B,wBAAwB;OACxB,4BAA4B;OAC5B,0BAA0B;OAC1B,wBAAwB;OACxB,0BAA0B;OAC1B,uBAAuB;OACvB,4BAA4B;OAC5B,2BAA2B;OAC3B,6BAA6B;OAC7B,2BAA2B;OAC3B,+BAA+B;OAC/B,oBAAoB;OACpB,uBAAuB;AAE9B,uCAAuC;AAGvC,SAAQ,YAAY,QAAO,gBAAgB,CAAC;AAC5C,SAAQ,UAAU,QAAO,cAAc,CAAC;AACxC,SAAQ,YAAY,QAAO,gBAAgB,CAAC;AAC5C,SAAQ,aAAa,QAAO,iBAAiB,CAAC;AAC9C,SAAQ,eAAe,QAAO,mBAAmB,CAAC;AAClD,SAAQ,qBAAqB,QAAO,oCAAoC,CAAC;AACzE,SAAQ,YAAY,QAAO,gBAAgB,CAAC;AAC5C,SAAQ,UAAU,QAAO,mBAAmB,CAAC;AAC7C,SAAQ,uBAAuB,QAAO,gCAAgC,CAAC;AACvE,SAAQ,uBAAuB,QAAO,gCAAgC,CAAC;AACvE,SAAQ,YAAY,QAAO,qBAAqB,CAAC;AACjD,SAAQ,mBAAmB,QAAO,4BAA4B,CAAC;AAC/D,SAAQ,YAAY,QAAO,yBAAyB,CAAC;AACrD,SAAQ,SAAS,QAAO,uBAAuB,CAAC;AAChD,SAAQ,aAAa,QAAO,yBAAyB,CAAC;AACtD,SAAQ,oBAAoB,QAAO,kCAAkC,CAAC;AACtE,SAAqB,YAAY,EAAE,SAAS,EAAE,gBAAgB,QAAO,iCAAiC,CAAC;AACvG,SAAS,IAAI,QAAQ,aAAa,CAAC;OAE5B,EAAE,IAAI,EAAE,MAAM,kBAAkB;OAChC,EAAE,KAAK,EAAE,MAAM,mBAAmB;OAClC,EAAE,KAAK,EAAE,MAAM,mBAAmB;OAClC,EAAE,cAAc,EAAE,MAAM,4BAA4B;OAKpD,EAAE,YAAY,EAAE,MAAM,uBAAuB;OAC7C,EAAE,QAAQ,EAAE,MAAM,mBAAmB;OACrC,EAAE,UAAU,EAAE,MAAM,qBAAqB;OAEzC,KAAK,UAAU,MAAM,aAAa;AAEzC,OAAO,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC,sCAAsC;AAEtC;;;;;;;;;;;;GAYG;AACH,IAAI,SAAS,GAAG;IACd,IAAI;IACJ,KAAK;IACL,cAAc;IACd,KAAK;CACN,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,IAAI,MAAM,GAAG;IACX,YAAY;IACZ,UAAU;IACV,QAAQ;CACT,CAAC;AAEF,SACI,SAAS,EACT,MAAM,GACR"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Scheduler.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Scheduler.js new file mode 100644 index 00000000000000..c04bab2999f394 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Scheduler.js @@ -0,0 +1,44 @@ +/** + * 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 {@link Action}. + * + * ```ts + * class Scheduler { + * now(): number; + * schedule(work, delay?, state?): Subscription; + * } + * ``` + * + * @class Scheduler + */ +export class Scheduler { + constructor(SchedulerAction, now = Scheduler.now) { + this.SchedulerAction = SchedulerAction; + this.now = now; + } + /** + * 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, delay = 0, state) { + return new this.SchedulerAction(this, work).schedule(state, delay); + } +} +Scheduler.now = Date.now ? Date.now : () => +new Date(); +//# sourceMappingURL=Scheduler.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Scheduler.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Scheduler.js.map new file mode 100644 index 00000000000000..e02e8a737761da --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Scheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../src/Scheduler.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;GAeG;AACH;IAIE,YAAoB,eAA8B,EACtC,GAAG,GAAiB,SAAS,CAAC,GAAG;QADzB,oBAAe,GAAf,eAAe,CAAe;QAEhD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAYD;;;;;;;;;;;;;;;;OAgBG;IACI,QAAQ,CAAI,IAA0C,EAAE,KAAK,GAAW,CAAC,EAAE,KAAS;QACzF,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AArCe,aAAG,GAAiB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAqC1E"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subject.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subject.js new file mode 100644 index 00000000000000..dade0f5fa81ff7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subject.js @@ -0,0 +1,153 @@ +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 './symbol/rxSubscriber'; +/** + * @class SubjectSubscriber + */ +export class SubjectSubscriber extends Subscriber { + constructor(destination) { + super(destination); + this.destination = destination; + } +} +/** + * @class Subject + */ +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); + } + } + /** @deprecated internal use only */ _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); +}; +/** + * @class AnonymousSubject + */ +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(); + } + } + /** @deprecated internal use only */ _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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subject.js.map new file mode 100644 index 00000000000000..9a245d72c8d11c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subject.js","sourceRoot":"","sources":["../src/Subject.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,cAAc;OAClC,EAAE,UAAU,EAAE,MAAM,cAAc;OAClC,EAAiB,YAAY,EAAiB,MAAM,gBAAgB;OACpE,EAAE,uBAAuB,EAAE,MAAM,gCAAgC;OACjE,EAAE,mBAAmB,EAAE,MAAM,uBAAuB;OACpD,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,uBAAuB;AAE1E;;GAEG;AACH,uCAA0C,UAAU;IAClD,YAAsB,WAAuB;QAC3C,MAAM,WAAW,CAAC,CAAC;QADC,gBAAW,GAAX,WAAW,CAAY;IAE7C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,6BAAgC,UAAU;IAgBxC;QACE,OAAO,CAAC;QAXV,cAAS,GAAkB,EAAE,CAAC;QAE9B,WAAM,GAAG,KAAK,CAAC;QAEf,cAAS,GAAG,KAAK,CAAC;QAElB,aAAQ,GAAG,KAAK,CAAC;QAEjB,gBAAW,GAAQ,IAAI,CAAC;IAIxB,CAAC;IAhBD,CAAC,kBAAkB,CAAC;QAClB,MAAM,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAoBD,IAAI,CAAI,QAAwB;QAC9B,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,QAAQ,GAAQ,QAAQ,CAAC;QACjC,MAAM,CAAM,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,KAAS;QACZ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,uBAAuB,EAAE,CAAC;QACtC,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACpB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;YAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAQ;QACZ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,uBAAuB,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ;QACN,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,uBAAuB,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAES,aAAa,CAAC,UAAyB;QAC/C,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,uBAAuB,EAAE,CAAC;QACtC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,oCAAoC,CAAC,UAAU,CAAC,UAAyB;QACvE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,uBAAuB,EAAE,CAAC;QACtC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,YAAY;QACV,MAAM,UAAU,GAAG,IAAI,UAAU,EAAK,CAAC;QACjC,UAAW,CAAC,MAAM,GAAG,IAAI,CAAC;QAChC,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC;AACH,CAAC;AAxFQ,cAAM,GAAa,CAAI,WAAwB,EAAE,MAAqB;IAC3E,MAAM,CAAC,IAAI,gBAAgB,CAAI,WAAW,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC,CAsFF;AAED;;GAEG;AACH,sCAAyC,OAAO;IAC9C,YAAsB,WAAyB,EAAE,MAAsB;QACrE,OAAO,CAAC;QADY,gBAAW,GAAX,WAAW,CAAc;QAE7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,EAAE,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YACpC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAQ;QACZ,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,EAAE,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,QAAQ;QACN,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,EAAE,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,oCAAoC,CAAC,UAAU,CAAC,UAAyB;QACvE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/SubjectSubscription.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/SubjectSubscription.js new file mode 100644 index 00000000000000..7687174f8fcf20 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/SubjectSubscription.js @@ -0,0 +1,31 @@ +import { Subscription } from './Subscription'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/SubjectSubscription.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/SubjectSubscription.js.map new file mode 100644 index 00000000000000..2f93eed2511454 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/SubjectSubscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubjectSubscription.js","sourceRoot":"","sources":["../src/SubjectSubscription.ts"],"names":[],"mappings":"OAEO,EAAE,YAAY,EAAE,MAAM,gBAAgB;AAE7C;;;;GAIG;AACH,yCAA4C,YAAY;IAGtD,YAAmB,OAAmB,EAAS,UAAuB;QACpE,OAAO,CAAC;QADS,YAAO,GAAP,OAAO,CAAY;QAAS,eAAU,GAAV,UAAU,CAAa;QAFtE,WAAM,GAAY,KAAK,CAAC;IAIxB,CAAC;IAED,WAAW;QACT,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC;QACT,CAAC;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,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC;QACT,CAAC;QAED,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,EAAE,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscriber.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscriber.js new file mode 100644 index 00000000000000..e6468ff3eca59b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscriber.js @@ -0,0 +1,259 @@ +import { isFunction } from './util/isFunction'; +import { Subscription } from './Subscription'; +import { empty as emptyObserver } from './Observer'; +import { rxSubscriber as rxSubscriberSymbol } from './symbol/rxSubscriber'; +/** + * 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 { + /** + * @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, 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') { + // HACK(benlesh): To resolve an issue where Node users may have multiple + // copies of rxjs in their node_modules directory. + if (isTrustedSubscriber(destinationOrNext)) { + const trustedSubscriber = destinationOrNext[rxSubscriberSymbol](); + this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable; + this.destination = trustedSubscriber; + trustedSubscriber.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; } + /** + * 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. + */ + static create(next, error, complete) { + const subscriber = new Subscriber(next, error, complete); + subscriber.syncErrorThrowable = false; + return subscriber; + } + /** + * 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) { + if (!this.isStopped) { + this._next(value); + } + } + /** + * The {@link Observer} 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) { + 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() { + 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(); + } + /** @deprecated internal use only */ _unsubscribeAndRecycle() { + const { _parent, _parents } = this; + this._parent = null; + this._parents = null; + this.unsubscribe(); + this.closed = false; + this.isStopped = false; + this._parent = _parent; + this._parents = _parents; + return this; + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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 (!_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; + if (this._error) { + if (!_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._error, err); + this.unsubscribe(); + } + else { + this.__tryOrSetError(_parentSubscriber, this._error, err); + this.unsubscribe(); + } + } + else if (!_parentSubscriber.syncErrorThrowable) { + this.unsubscribe(); + throw err; + } + else { + _parentSubscriber.syncErrorValue = err; + _parentSubscriber.syncErrorThrown = true; + this.unsubscribe(); + } + } + } + complete() { + if (!this.isStopped) { + const { _parentSubscriber } = this; + if (this._complete) { + const wrappedComplete = () => this._complete.call(this._context); + if (!_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(); + throw err; + } + } + __tryOrSetError(parent, fn, value) { + try { + fn.call(this._context, value); + } + catch (err) { + parent.syncErrorValue = err; + parent.syncErrorThrown = true; + return true; + } + return false; + } + /** @deprecated internal use only */ _unsubscribe() { + const { _parentSubscriber } = this; + this._context = null; + this._parentSubscriber = null; + _parentSubscriber.unsubscribe(); + } +} +function isTrustedSubscriber(obj) { + return obj instanceof Subscriber || ('syncErrorThrowable' in obj && obj[rxSubscriberSymbol]); +} +//# sourceMappingURL=Subscriber.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscriber.js.map new file mode 100644 index 00000000000000..7ba8572193c9a0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subscriber.js","sourceRoot":"","sources":["../src/Subscriber.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscription.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscription.js new file mode 100644 index 00000000000000..9752ef894c8c9a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscription.js @@ -0,0 +1,190 @@ +import { isArray } from './util/isArray'; +import { isObject } from './util/isObject'; +import { isFunction } from './util/isFunction'; +import { tryCatch } from './util/tryCatch'; +import { errorObject } from './util/errorObject'; +import { UnsubscriptionError } from './util/UnsubscriptionError'; +/** + * 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 { + /** + * @param {function(): void} [unsubscribe] A function describing how to + * perform the disposal of resources when the `unsubscribe` method is called. + */ + constructor(unsubscribe) { + /** + * A flag to indicate whether this Subscription has already been unsubscribed. + * @type {boolean} + */ + this.closed = false; + this._parent = null; + this._parents = null; + this._subscriptions = null; + if (unsubscribe) { + this._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() { + let hasErrors = false; + let errors; + if (this.closed) { + return; + } + let { _parent, _parents, _unsubscribe, _subscriptions } = this; + this.closed = true; + this._parent = null; + this._parents = null; + // null out _subscriptions first so any child subscriptions that attempt + // to remove themselves from this subscription will noop + this._subscriptions = null; + let index = -1; + let len = _parents ? _parents.length : 0; + // if this._parent is null, then so is this._parents, and we + // don't have to remove ourselves from any parent subscriptions. + while (_parent) { + _parent.remove(this); + // if this._parents is null or index >= len, + // then _parent is set to null, and the loop exits + _parent = ++index < len && _parents[index] || null; + } + if (isFunction(_unsubscribe)) { + let trial = tryCatch(_unsubscribe).call(this); + if (trial === errorObject) { + hasErrors = true; + errors = errors || (errorObject.e instanceof UnsubscriptionError ? + flattenUnsubscriptionErrors(errorObject.e.errors) : [errorObject.e]); + } + } + if (isArray(_subscriptions)) { + index = -1; + len = _subscriptions.length; + while (++index < len) { + const sub = _subscriptions[index]; + if (isObject(sub)) { + let trial = tryCatch(sub.unsubscribe).call(sub); + if (trial === errorObject) { + hasErrors = true; + errors = errors || []; + let err = errorObject.e; + if (err instanceof UnsubscriptionError) { + errors = errors.concat(flattenUnsubscriptionErrors(err.errors)); + } + else { + errors.push(err); + } + } + } + } + } + if (hasErrors) { + throw new UnsubscriptionError(errors); + } + } + /** + * Adds a tear down to be called during the unsubscribe() of this + * 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. + * + * @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) { + if (!teardown || (teardown === Subscription.EMPTY)) { + return Subscription.EMPTY; + } + if (teardown === this) { + return this; + } + let subscription = teardown; + switch (typeof teardown) { + case 'function': + subscription = new Subscription(teardown); + case 'object': + if (subscription.closed || typeof subscription.unsubscribe !== 'function') { + return subscription; + } + else if (this.closed) { + subscription.unsubscribe(); + return subscription; + } + else if (typeof subscription._addParent !== 'function' /* quack quack */) { + const tmp = subscription; + subscription = new Subscription(); + subscription._subscriptions = [tmp]; + } + break; + default: + throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); + } + const subscriptions = this._subscriptions || (this._subscriptions = []); + subscriptions.push(subscription); + subscription._addParent(this); + 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) { + const subscriptions = this._subscriptions; + if (subscriptions) { + const subscriptionIndex = subscriptions.indexOf(subscription); + if (subscriptionIndex !== -1) { + subscriptions.splice(subscriptionIndex, 1); + } + } + } + _addParent(parent) { + let { _parent, _parents } = this; + if (!_parent || _parent === parent) { + // If we don't have a parent, or the new parent is the same as the + // current parent, then set this._parent to the new parent. + this._parent = parent; + } + else if (!_parents) { + // If there's already one parent, but not multiple, allocate an Array to + // store the rest of the parent Subscriptions. + this._parents = [parent]; + } + else if (_parents.indexOf(parent) === -1) { + // Only add the new parent to the _parents list if it's not already there. + _parents.push(parent); + } + } +} +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscription.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscription.js.map new file mode 100644 index 00000000000000..903318ea9f3c52 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/Subscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subscription.js","sourceRoot":"","sources":["../src/Subscription.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindCallback.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindCallback.js new file mode 100644 index 00000000000000..0f1db94a097462 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindCallback.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { bindCallback as staticBindCallback } from '../../observable/bindCallback'; +Observable.bindCallback = staticBindCallback; +//# sourceMappingURL=bindCallback.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindCallback.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindCallback.js.map new file mode 100644 index 00000000000000..356b47e9133a48 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindCallback.js","sourceRoot":"","sources":["../../../src/add/observable/bindCallback.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,+BAA+B;AAElF,UAAU,CAAC,YAAY,GAAG,kBAAkB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindNodeCallback.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindNodeCallback.js new file mode 100644 index 00000000000000..2b1e47e9146277 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindNodeCallback.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { bindNodeCallback as staticBindNodeCallback } from '../../observable/bindNodeCallback'; +Observable.bindNodeCallback = staticBindNodeCallback; +//# sourceMappingURL=bindNodeCallback.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindNodeCallback.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindNodeCallback.js.map new file mode 100644 index 00000000000000..1e4b0a2dd3fff5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/bindNodeCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindNodeCallback.js","sourceRoot":"","sources":["../../../src/add/observable/bindNodeCallback.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,mCAAmC;AAE9F,UAAU,CAAC,gBAAgB,GAAG,sBAAsB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/combineLatest.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/combineLatest.js new file mode 100644 index 00000000000000..39b7bc09e3ed71 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/combineLatest.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { combineLatest as combineLatestStatic } from '../../observable/combineLatest'; +Observable.combineLatest = combineLatestStatic; +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/combineLatest.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/combineLatest.js.map new file mode 100644 index 00000000000000..adf36f0be61dce --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sourceRoot":"","sources":["../../../src/add/observable/combineLatest.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,gCAAgC;AAErF,UAAU,CAAC,aAAa,GAAG,mBAAmB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/concat.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/concat.js new file mode 100644 index 00000000000000..3fbd22fba8d24b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/concat.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { concat as concatStatic } from '../../observable/concat'; +Observable.concat = concatStatic; +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/concat.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/concat.js.map new file mode 100644 index 00000000000000..cb035092938d02 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sourceRoot":"","sources":["../../../src/add/observable/concat.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,yBAAyB;AAEhE,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/defer.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/defer.js new file mode 100644 index 00000000000000..eeaf67d4ef6f40 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/defer.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { defer as staticDefer } from '../../observable/defer'; +Observable.defer = staticDefer; +//# sourceMappingURL=defer.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/defer.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/defer.js.map new file mode 100644 index 00000000000000..39bdc56774a5ad --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/defer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defer.js","sourceRoot":"","sources":["../../../src/add/observable/defer.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAE7D,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/ajax.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/ajax.js new file mode 100644 index 00000000000000..24174932525055 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/ajax.js @@ -0,0 +1,4 @@ +import { Observable } from '../../../Observable'; +import { ajax as staticAjax } from '../../../observable/dom/ajax'; +Observable.ajax = staticAjax; +//# sourceMappingURL=ajax.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/ajax.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/ajax.js.map new file mode 100644 index 00000000000000..b1a72fce496cc3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/ajax.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ajax.js","sourceRoot":"","sources":["../../../../src/add/observable/dom/ajax.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB;OACzC,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,8BAA8B;AAGjE,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/webSocket.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/webSocket.js new file mode 100644 index 00000000000000..acd4cf0e68d5e0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/webSocket.js @@ -0,0 +1,4 @@ +import { Observable } from '../../../Observable'; +import { webSocket as staticWebSocket } from '../../../observable/dom/webSocket'; +Observable.webSocket = staticWebSocket; +//# sourceMappingURL=webSocket.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/webSocket.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/webSocket.js.map new file mode 100644 index 00000000000000..c57fcff3fb202f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/dom/webSocket.js.map @@ -0,0 +1 @@ +{"version":3,"file":"webSocket.js","sourceRoot":"","sources":["../../../../src/add/observable/dom/webSocket.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB;OACzC,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,mCAAmC;AAEhF,UAAU,CAAC,SAAS,GAAG,eAAe,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/empty.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/empty.js new file mode 100644 index 00000000000000..b19ba02f6144f8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/empty.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { empty as staticEmpty } from '../../observable/empty'; +Observable.empty = staticEmpty; +//# sourceMappingURL=empty.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/empty.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/empty.js.map new file mode 100644 index 00000000000000..f7e8ba6847f039 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/empty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"empty.js","sourceRoot":"","sources":["../../../src/add/observable/empty.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAE7D,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/forkJoin.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/forkJoin.js new file mode 100644 index 00000000000000..77162a1fe1ce7b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/forkJoin.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { forkJoin as staticForkJoin } from '../../observable/forkJoin'; +Observable.forkJoin = staticForkJoin; +//# sourceMappingURL=forkJoin.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/forkJoin.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/forkJoin.js.map new file mode 100644 index 00000000000000..8ced0a5c28a2ea --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/forkJoin.js.map @@ -0,0 +1 @@ +{"version":3,"file":"forkJoin.js","sourceRoot":"","sources":["../../../src/add/observable/forkJoin.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,2BAA2B;AAEtE,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/from.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/from.js new file mode 100644 index 00000000000000..c13211da4a25d0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/from.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { from as staticFrom } from '../../observable/from'; +Observable.from = staticFrom; +//# sourceMappingURL=from.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/from.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/from.js.map new file mode 100644 index 00000000000000..1c72bc29f633d3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/from.js.map @@ -0,0 +1 @@ +{"version":3,"file":"from.js","sourceRoot":"","sources":["../../../src/add/observable/from.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,uBAAuB;AAE1D,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEvent.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEvent.js new file mode 100644 index 00000000000000..2ab5efa940b49f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEvent.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { fromEvent as staticFromEvent } from '../../observable/fromEvent'; +Observable.fromEvent = staticFromEvent; +//# sourceMappingURL=fromEvent.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEvent.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEvent.js.map new file mode 100644 index 00000000000000..cf5ee4979eb518 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEvent.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEvent.js","sourceRoot":"","sources":["../../../src/add/observable/fromEvent.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,4BAA4B;AAEzE,UAAU,CAAC,SAAS,GAAG,eAAe,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEventPattern.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEventPattern.js new file mode 100644 index 00000000000000..35205b5230af44 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEventPattern.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { fromEventPattern as staticFromEventPattern } from '../../observable/fromEventPattern'; +Observable.fromEventPattern = staticFromEventPattern; +//# sourceMappingURL=fromEventPattern.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEventPattern.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEventPattern.js.map new file mode 100644 index 00000000000000..47ea597d93aabc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromEventPattern.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEventPattern.js","sourceRoot":"","sources":["../../../src/add/observable/fromEventPattern.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,mCAAmC;AAE9F,UAAU,CAAC,gBAAgB,GAAG,sBAAsB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromPromise.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromPromise.js new file mode 100644 index 00000000000000..166b5e4ccbfe3d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromPromise.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { fromPromise as staticFromPromise } from '../../observable/fromPromise'; +Observable.fromPromise = staticFromPromise; +//# sourceMappingURL=fromPromise.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromPromise.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromPromise.js.map new file mode 100644 index 00000000000000..3901e0a59f9e0c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/fromPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromPromise.js","sourceRoot":"","sources":["../../../src/add/observable/fromPromise.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,8BAA8B;AAE/E,UAAU,CAAC,WAAW,GAAG,iBAAiB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/generate.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/generate.js new file mode 100644 index 00000000000000..c2ecc29cbac945 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/generate.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { generate as staticGenerate } from '../../observable/generate'; +Observable.generate = staticGenerate; +//# sourceMappingURL=generate.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/generate.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/generate.js.map new file mode 100644 index 00000000000000..4fbe347933015f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/generate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/add/observable/generate.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,2BAA2B;AAEtE,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/if.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/if.js new file mode 100644 index 00000000000000..bf4da9393e1bef --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/if.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { _if } from '../../observable/if'; +Observable.if = _if; +//# sourceMappingURL=if.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/if.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/if.js.map new file mode 100644 index 00000000000000..8b2343f3c027b1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/if.js.map @@ -0,0 +1 @@ +{"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/add/observable/if.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,GAAG,EAAE,MAAM,qBAAqB;AAEzC,UAAU,CAAC,EAAE,GAAG,GAAG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/interval.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/interval.js new file mode 100644 index 00000000000000..df4048e01380ac --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/interval.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { interval as staticInterval } from '../../observable/interval'; +Observable.interval = staticInterval; +//# sourceMappingURL=interval.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/interval.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/interval.js.map new file mode 100644 index 00000000000000..06684f89677451 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/interval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interval.js","sourceRoot":"","sources":["../../../src/add/observable/interval.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,2BAA2B;AAEtE,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/merge.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/merge.js new file mode 100644 index 00000000000000..1e846ddd39ee40 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/merge.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { merge as mergeStatic } from '../../observable/merge'; +Observable.merge = mergeStatic; +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/merge.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/merge.js.map new file mode 100644 index 00000000000000..c592cade664c2e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../src/add/observable/merge.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAE7D,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/never.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/never.js new file mode 100644 index 00000000000000..e44cfa015fa52d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/never.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { never as staticNever } from '../../observable/never'; +Observable.never = staticNever; +//# sourceMappingURL=never.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/never.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/never.js.map new file mode 100644 index 00000000000000..5e139d5c333221 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/never.js.map @@ -0,0 +1 @@ +{"version":3,"file":"never.js","sourceRoot":"","sources":["../../../src/add/observable/never.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAE7D,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/of.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/of.js new file mode 100644 index 00000000000000..267d9bbba60685 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/of.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { of as staticOf } from '../../observable/of'; +Observable.of = staticOf; +//# sourceMappingURL=of.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/of.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/of.js.map new file mode 100644 index 00000000000000..37b7c88bf5f3fe --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/of.js.map @@ -0,0 +1 @@ +{"version":3,"file":"of.js","sourceRoot":"","sources":["../../../src/add/observable/of.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,qBAAqB;AAEpD,UAAU,CAAC,EAAE,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/onErrorResumeNext.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/onErrorResumeNext.js new file mode 100644 index 00000000000000..a2b8b29c683e85 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/onErrorResumeNext.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { onErrorResumeNext as staticOnErrorResumeNext } from '../../observable/onErrorResumeNext'; +Observable.onErrorResumeNext = staticOnErrorResumeNext; +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/onErrorResumeNext.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/onErrorResumeNext.js.map new file mode 100644 index 00000000000000..af74b57229c81c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sourceRoot":"","sources":["../../../src/add/observable/onErrorResumeNext.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,iBAAiB,IAAI,uBAAuB,EAAE,MAAM,oCAAoC;AAEjG,UAAU,CAAC,iBAAiB,GAAG,uBAAuB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/pairs.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/pairs.js new file mode 100644 index 00000000000000..5654a6c4437a32 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/pairs.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { pairs as staticPairs } from '../../observable/pairs'; +Observable.pairs = staticPairs; +//# sourceMappingURL=pairs.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/pairs.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/pairs.js.map new file mode 100644 index 00000000000000..2a046c87bebede --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/pairs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairs.js","sourceRoot":"","sources":["../../../src/add/observable/pairs.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAE7D,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/race.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/race.js new file mode 100644 index 00000000000000..dc8e858643311f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/race.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { race as staticRace } from '../../observable/race'; +Observable.race = staticRace; +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/race.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/race.js.map new file mode 100644 index 00000000000000..e9daf89b4ffaa4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sourceRoot":"","sources":["../../../src/add/observable/race.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,uBAAuB;AAE1D,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/range.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/range.js new file mode 100644 index 00000000000000..3967d03b45a23f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/range.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { range as staticRange } from '../../observable/range'; +Observable.range = staticRange; +//# sourceMappingURL=range.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/range.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/range.js.map new file mode 100644 index 00000000000000..a0fb1323b5bcda --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/range.js.map @@ -0,0 +1 @@ +{"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/add/observable/range.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAE7D,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/throw.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/throw.js new file mode 100644 index 00000000000000..aedfe476d8dda5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/throw.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { _throw } from '../../observable/throw'; +Observable.throw = _throw; +//# sourceMappingURL=throw.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/throw.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/throw.js.map new file mode 100644 index 00000000000000..b08cdd4249824a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/throw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throw.js","sourceRoot":"","sources":["../../../src/add/observable/throw.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,EAAE,MAAM,wBAAwB;AAE/C,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/timer.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/timer.js new file mode 100644 index 00000000000000..b8ca5f05be50a7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/timer.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { timer as staticTimer } from '../../observable/timer'; +Observable.timer = staticTimer; +//# sourceMappingURL=timer.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/timer.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/timer.js.map new file mode 100644 index 00000000000000..0996c0dc19884c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/timer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timer.js","sourceRoot":"","sources":["../../../src/add/observable/timer.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAE7D,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/using.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/using.js new file mode 100644 index 00000000000000..f54e091114dc2c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/using.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { using as staticUsing } from '../../observable/using'; +Observable.using = staticUsing; +//# sourceMappingURL=using.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/using.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/using.js.map new file mode 100644 index 00000000000000..a4d7ecf73c0ab0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/using.js.map @@ -0,0 +1 @@ +{"version":3,"file":"using.js","sourceRoot":"","sources":["../../../src/add/observable/using.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAE7D,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/zip.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/zip.js new file mode 100644 index 00000000000000..9cb666005507a4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/zip.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { zip as zipStatic } from '../../observable/zip'; +Observable.zip = zipStatic; +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/zip.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/zip.js.map new file mode 100644 index 00000000000000..3e75ebfacd36f9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/observable/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sourceRoot":"","sources":["../../../src/add/observable/zip.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,sBAAsB;AAEvD,UAAU,CAAC,GAAG,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/audit.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/audit.js new file mode 100644 index 00000000000000..5f14e305d2fbaf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/audit.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { audit } from '../../operator/audit'; +Observable.prototype.audit = audit; +//# sourceMappingURL=audit.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/audit.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/audit.js.map new file mode 100644 index 00000000000000..b7b430d6cf6ee2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/audit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/add/operator/audit.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,EAAE,MAAM,sBAAsB;AAE5C,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/auditTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/auditTime.js new file mode 100644 index 00000000000000..91ed2df50c9799 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/auditTime.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { auditTime } from '../../operator/auditTime'; +Observable.prototype.auditTime = auditTime; +//# sourceMappingURL=auditTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/auditTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/auditTime.js.map new file mode 100644 index 00000000000000..2732e3a821f1d8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/auditTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auditTime.js","sourceRoot":"","sources":["../../../src/add/operator/auditTime.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/buffer.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/buffer.js new file mode 100644 index 00000000000000..91a0b1040f525e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/buffer.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { buffer } from '../../operator/buffer'; +Observable.prototype.buffer = buffer; +//# sourceMappingURL=buffer.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/buffer.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/buffer.js.map new file mode 100644 index 00000000000000..d591739d78d94e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/buffer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../../src/add/operator/buffer.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,EAAE,MAAM,uBAAuB;AAE9C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferCount.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferCount.js new file mode 100644 index 00000000000000..d8337523166825 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferCount.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { bufferCount } from '../../operator/bufferCount'; +Observable.prototype.bufferCount = bufferCount; +//# sourceMappingURL=bufferCount.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferCount.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferCount.js.map new file mode 100644 index 00000000000000..a84b6dc3736439 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferCount.js","sourceRoot":"","sources":["../../../src/add/operator/bufferCount.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,WAAW,EAAE,MAAM,4BAA4B;AAExD,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferTime.js new file mode 100644 index 00000000000000..6415f04e9d5f95 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferTime.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { bufferTime } from '../../operator/bufferTime'; +Observable.prototype.bufferTime = bufferTime; +//# sourceMappingURL=bufferTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferTime.js.map new file mode 100644 index 00000000000000..eeadbae65d2c88 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferTime.js","sourceRoot":"","sources":["../../../src/add/operator/bufferTime.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,UAAU,EAAE,MAAM,2BAA2B;AAEtD,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferToggle.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferToggle.js new file mode 100644 index 00000000000000..5ff022c9406105 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferToggle.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { bufferToggle } from '../../operator/bufferToggle'; +Observable.prototype.bufferToggle = bufferToggle; +//# sourceMappingURL=bufferToggle.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferToggle.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferToggle.js.map new file mode 100644 index 00000000000000..e9bc07ba8e5d1c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferToggle.js","sourceRoot":"","sources":["../../../src/add/operator/bufferToggle.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,YAAY,EAAE,MAAM,6BAA6B;AAE1D,UAAU,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferWhen.js new file mode 100644 index 00000000000000..d54c9d92b9b31b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferWhen.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { bufferWhen } from '../../operator/bufferWhen'; +Observable.prototype.bufferWhen = bufferWhen; +//# sourceMappingURL=bufferWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferWhen.js.map new file mode 100644 index 00000000000000..3f7f8406fc1838 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/bufferWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferWhen.js","sourceRoot":"","sources":["../../../src/add/operator/bufferWhen.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,UAAU,EAAE,MAAM,2BAA2B;AAEtD,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/catch.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/catch.js new file mode 100644 index 00000000000000..16fa04fa760ebf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/catch.js @@ -0,0 +1,5 @@ +import { Observable } from '../../Observable'; +import { _catch } from '../../operator/catch'; +Observable.prototype.catch = _catch; +Observable.prototype._catch = _catch; +//# sourceMappingURL=catch.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/catch.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/catch.js.map new file mode 100644 index 00000000000000..1c9bad85d6b5f5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/catch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"catch.js","sourceRoot":"","sources":["../../../src/add/operator/catch.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,EAAE,MAAM,sBAAsB;AAE7C,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC;AACpC,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineAll.js new file mode 100644 index 00000000000000..a04f4a0811272a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineAll.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { combineAll } from '../../operator/combineAll'; +Observable.prototype.combineAll = combineAll; +//# sourceMappingURL=combineAll.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineAll.js.map new file mode 100644 index 00000000000000..9bb75f1709278f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineAll.js","sourceRoot":"","sources":["../../../src/add/operator/combineAll.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,UAAU,EAAE,MAAM,2BAA2B;AAEtD,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineLatest.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineLatest.js new file mode 100644 index 00000000000000..a9442d9dabcce1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineLatest.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { combineLatest } from '../../operator/combineLatest'; +Observable.prototype.combineLatest = combineLatest; +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineLatest.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineLatest.js.map new file mode 100644 index 00000000000000..3806d7e1d8e578 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sourceRoot":"","sources":["../../../src/add/operator/combineLatest.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,aAAa,EAAE,MAAM,8BAA8B;AAE5D,UAAU,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concat.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concat.js new file mode 100644 index 00000000000000..5c2b6e4d55bbf9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concat.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { concat } from '../../operator/concat'; +Observable.prototype.concat = concat; +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concat.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concat.js.map new file mode 100644 index 00000000000000..277d7d4931df2e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sourceRoot":"","sources":["../../../src/add/operator/concat.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,EAAE,MAAM,uBAAuB;AAE9C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatAll.js new file mode 100644 index 00000000000000..5bfbce5817f0a5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatAll.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { concatAll } from '../../operator/concatAll'; +Observable.prototype.concatAll = concatAll; +//# sourceMappingURL=concatAll.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatAll.js.map new file mode 100644 index 00000000000000..0539708f8423e6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatAll.js","sourceRoot":"","sources":["../../../src/add/operator/concatAll.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMap.js new file mode 100644 index 00000000000000..297bc0739623ff --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMap.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { concatMap } from '../../operator/concatMap'; +Observable.prototype.concatMap = concatMap; +//# sourceMappingURL=concatMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMap.js.map new file mode 100644 index 00000000000000..40af13feed935e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMap.js","sourceRoot":"","sources":["../../../src/add/operator/concatMap.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMapTo.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMapTo.js new file mode 100644 index 00000000000000..c92f243d82eaeb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMapTo.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { concatMapTo } from '../../operator/concatMapTo'; +Observable.prototype.concatMapTo = concatMapTo; +//# sourceMappingURL=concatMapTo.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMapTo.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMapTo.js.map new file mode 100644 index 00000000000000..83d634567b7f1b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/concatMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMapTo.js","sourceRoot":"","sources":["../../../src/add/operator/concatMapTo.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,WAAW,EAAE,MAAM,4BAA4B;AAExD,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/count.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/count.js new file mode 100644 index 00000000000000..1d353e819e13ce --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/count.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { count } from '../../operator/count'; +Observable.prototype.count = count; +//# sourceMappingURL=count.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/count.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/count.js.map new file mode 100644 index 00000000000000..e21cbb81402024 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/count.js.map @@ -0,0 +1 @@ +{"version":3,"file":"count.js","sourceRoot":"","sources":["../../../src/add/operator/count.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,EAAE,MAAM,sBAAsB;AAE5C,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounce.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounce.js new file mode 100644 index 00000000000000..fa7a57560175a1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounce.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { debounce } from '../../operator/debounce'; +Observable.prototype.debounce = debounce; +//# sourceMappingURL=debounce.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounce.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounce.js.map new file mode 100644 index 00000000000000..eb8da464bef3f6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../../src/add/operator/debounce.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,EAAE,MAAM,yBAAyB;AAElD,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounceTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounceTime.js new file mode 100644 index 00000000000000..946dad97ca9dfd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounceTime.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { debounceTime } from '../../operator/debounceTime'; +Observable.prototype.debounceTime = debounceTime; +//# sourceMappingURL=debounceTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounceTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounceTime.js.map new file mode 100644 index 00000000000000..901a4aa830528d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/debounceTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounceTime.js","sourceRoot":"","sources":["../../../src/add/operator/debounceTime.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,YAAY,EAAE,MAAM,6BAA6B;AAE1D,UAAU,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/defaultIfEmpty.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/defaultIfEmpty.js new file mode 100644 index 00000000000000..8b3a128b179acb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/defaultIfEmpty.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { defaultIfEmpty } from '../../operator/defaultIfEmpty'; +Observable.prototype.defaultIfEmpty = defaultIfEmpty; +//# sourceMappingURL=defaultIfEmpty.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/defaultIfEmpty.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/defaultIfEmpty.js.map new file mode 100644 index 00000000000000..fc748ed8afa13b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/defaultIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defaultIfEmpty.js","sourceRoot":"","sources":["../../../src/add/operator/defaultIfEmpty.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,cAAc,EAAE,MAAM,+BAA+B;AAE9D,UAAU,CAAC,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delay.js new file mode 100644 index 00000000000000..e135a67e590fb4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delay.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { delay } from '../../operator/delay'; +Observable.prototype.delay = delay; +//# sourceMappingURL=delay.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delay.js.map new file mode 100644 index 00000000000000..e591a59a0deb96 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delay.js","sourceRoot":"","sources":["../../../src/add/operator/delay.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,EAAE,MAAM,sBAAsB;AAE5C,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delayWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delayWhen.js new file mode 100644 index 00000000000000..8cd8cbe0670ba3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delayWhen.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { delayWhen } from '../../operator/delayWhen'; +Observable.prototype.delayWhen = delayWhen; +//# sourceMappingURL=delayWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delayWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delayWhen.js.map new file mode 100644 index 00000000000000..18ea4d73247e12 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/delayWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delayWhen.js","sourceRoot":"","sources":["../../../src/add/operator/delayWhen.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/dematerialize.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/dematerialize.js new file mode 100644 index 00000000000000..75ad79e97c1f21 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/dematerialize.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { dematerialize } from '../../operator/dematerialize'; +Observable.prototype.dematerialize = dematerialize; +//# sourceMappingURL=dematerialize.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/dematerialize.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/dematerialize.js.map new file mode 100644 index 00000000000000..07eb8bc02ec799 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/dematerialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dematerialize.js","sourceRoot":"","sources":["../../../src/add/operator/dematerialize.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,aAAa,EAAE,MAAM,8BAA8B;AAE5D,UAAU,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinct.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinct.js new file mode 100644 index 00000000000000..f1ac2f3049a7a0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinct.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { distinct } from '../../operator/distinct'; +Observable.prototype.distinct = distinct; +//# sourceMappingURL=distinct.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinct.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinct.js.map new file mode 100644 index 00000000000000..fd1daac99b1269 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinct.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinct.js","sourceRoot":"","sources":["../../../src/add/operator/distinct.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,EAAE,MAAM,yBAAyB;AAElD,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilChanged.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilChanged.js new file mode 100644 index 00000000000000..617fe3aeb12690 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilChanged.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { distinctUntilChanged } from '../../operator/distinctUntilChanged'; +Observable.prototype.distinctUntilChanged = distinctUntilChanged; +//# sourceMappingURL=distinctUntilChanged.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilChanged.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilChanged.js.map new file mode 100644 index 00000000000000..c3154a856ae95d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilChanged.js","sourceRoot":"","sources":["../../../src/add/operator/distinctUntilChanged.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,oBAAoB,EAAE,MAAM,qCAAqC;AAE1E,UAAU,CAAC,SAAS,CAAC,oBAAoB,GAAG,oBAAoB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilKeyChanged.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilKeyChanged.js new file mode 100644 index 00000000000000..dbb12a62afb5a6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilKeyChanged.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { distinctUntilKeyChanged } from '../../operator/distinctUntilKeyChanged'; +Observable.prototype.distinctUntilKeyChanged = distinctUntilKeyChanged; +//# sourceMappingURL=distinctUntilKeyChanged.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilKeyChanged.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilKeyChanged.js.map new file mode 100644 index 00000000000000..12228a7916f54c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/distinctUntilKeyChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilKeyChanged.js","sourceRoot":"","sources":["../../../src/add/operator/distinctUntilKeyChanged.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,uBAAuB,EAAE,MAAM,wCAAwC;AAEhF,UAAU,CAAC,SAAS,CAAC,uBAAuB,GAAG,uBAAuB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/do.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/do.js new file mode 100644 index 00000000000000..a4e526697ca896 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/do.js @@ -0,0 +1,5 @@ +import { Observable } from '../../Observable'; +import { _do } from '../../operator/do'; +Observable.prototype.do = _do; +Observable.prototype._do = _do; +//# sourceMappingURL=do.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/do.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/do.js.map new file mode 100644 index 00000000000000..fe50770d9ca978 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/do.js.map @@ -0,0 +1 @@ +{"version":3,"file":"do.js","sourceRoot":"","sources":["../../../src/add/operator/do.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,GAAG,EAAE,MAAM,mBAAmB;AAEvC,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,CAAC;AAC9B,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/elementAt.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/elementAt.js new file mode 100644 index 00000000000000..9995e376e294dc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/elementAt.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { elementAt } from '../../operator/elementAt'; +Observable.prototype.elementAt = elementAt; +//# sourceMappingURL=elementAt.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/elementAt.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/elementAt.js.map new file mode 100644 index 00000000000000..531f6cb8d02f4d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/elementAt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"elementAt.js","sourceRoot":"","sources":["../../../src/add/operator/elementAt.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/every.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/every.js new file mode 100644 index 00000000000000..a5b95f89278de9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/every.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { every } from '../../operator/every'; +Observable.prototype.every = every; +//# sourceMappingURL=every.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/every.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/every.js.map new file mode 100644 index 00000000000000..548ff57ec45d5d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/every.js.map @@ -0,0 +1 @@ +{"version":3,"file":"every.js","sourceRoot":"","sources":["../../../src/add/operator/every.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,EAAE,MAAM,sBAAsB;AAE5C,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaust.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaust.js new file mode 100644 index 00000000000000..29c03e13b63c3d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaust.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { exhaust } from '../../operator/exhaust'; +Observable.prototype.exhaust = exhaust; +//# sourceMappingURL=exhaust.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaust.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaust.js.map new file mode 100644 index 00000000000000..fcd4564b4307f7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaust.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaust.js","sourceRoot":"","sources":["../../../src/add/operator/exhaust.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,OAAO,EAAE,MAAM,wBAAwB;AAEhD,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaustMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaustMap.js new file mode 100644 index 00000000000000..988ed28b743f25 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaustMap.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { exhaustMap } from '../../operator/exhaustMap'; +Observable.prototype.exhaustMap = exhaustMap; +//# sourceMappingURL=exhaustMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaustMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaustMap.js.map new file mode 100644 index 00000000000000..0268bb136e6b5e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/exhaustMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaustMap.js","sourceRoot":"","sources":["../../../src/add/operator/exhaustMap.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,UAAU,EAAE,MAAM,2BAA2B;AAEtD,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/expand.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/expand.js new file mode 100644 index 00000000000000..31ee76e81a8651 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/expand.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { expand } from '../../operator/expand'; +Observable.prototype.expand = expand; +//# sourceMappingURL=expand.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/expand.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/expand.js.map new file mode 100644 index 00000000000000..6439cef5c0dba4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/expand.js.map @@ -0,0 +1 @@ +{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../../src/add/operator/expand.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,EAAE,MAAM,uBAAuB;AAE9C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/filter.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/filter.js new file mode 100644 index 00000000000000..09e71d31c144a3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/filter.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { filter } from '../../operator/filter'; +Observable.prototype.filter = filter; +//# sourceMappingURL=filter.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/filter.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/filter.js.map new file mode 100644 index 00000000000000..adcf585e24919e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/add/operator/filter.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,EAAE,MAAM,uBAAuB;AAE9C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/finally.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/finally.js new file mode 100644 index 00000000000000..b37b947a929d22 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/finally.js @@ -0,0 +1,5 @@ +import { Observable } from '../../Observable'; +import { _finally } from '../../operator/finally'; +Observable.prototype.finally = _finally; +Observable.prototype._finally = _finally; +//# sourceMappingURL=finally.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/finally.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/finally.js.map new file mode 100644 index 00000000000000..b6a05142a1bf76 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/finally.js.map @@ -0,0 +1 @@ +{"version":3,"file":"finally.js","sourceRoot":"","sources":["../../../src/add/operator/finally.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,EAAE,MAAM,wBAAwB;AAEjD,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC;AACxC,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/find.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/find.js new file mode 100644 index 00000000000000..41d5eab92392e7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/find.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { find } from '../../operator/find'; +Observable.prototype.find = find; +//# sourceMappingURL=find.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/find.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/find.js.map new file mode 100644 index 00000000000000..643b75aae2c009 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/find.js.map @@ -0,0 +1 @@ +{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/add/operator/find.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,IAAI,EAAE,MAAM,qBAAqB;AAE1C,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/findIndex.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/findIndex.js new file mode 100644 index 00000000000000..a985ad7c4e0cb8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/findIndex.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { findIndex } from '../../operator/findIndex'; +Observable.prototype.findIndex = findIndex; +//# sourceMappingURL=findIndex.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/findIndex.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/findIndex.js.map new file mode 100644 index 00000000000000..0f3c5e4a34e462 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/findIndex.js.map @@ -0,0 +1 @@ +{"version":3,"file":"findIndex.js","sourceRoot":"","sources":["../../../src/add/operator/findIndex.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/first.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/first.js new file mode 100644 index 00000000000000..d8cf6f91036ad2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/first.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { first } from '../../operator/first'; +Observable.prototype.first = first; +//# sourceMappingURL=first.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/first.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/first.js.map new file mode 100644 index 00000000000000..2558027ce18e9d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/first.js.map @@ -0,0 +1 @@ +{"version":3,"file":"first.js","sourceRoot":"","sources":["../../../src/add/operator/first.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,EAAE,MAAM,sBAAsB;AAE5C,UAAU,CAAC,SAAS,CAAC,KAAK,GAAQ,KAAK,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/groupBy.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/groupBy.js new file mode 100644 index 00000000000000..2ff1a19935a068 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/groupBy.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { groupBy } from '../../operator/groupBy'; +Observable.prototype.groupBy = groupBy; +//# sourceMappingURL=groupBy.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/groupBy.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/groupBy.js.map new file mode 100644 index 00000000000000..8fa90b35470bf4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/groupBy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"groupBy.js","sourceRoot":"","sources":["../../../src/add/operator/groupBy.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,OAAO,EAAE,MAAM,wBAAwB;AAEhD,UAAU,CAAC,SAAS,CAAC,OAAO,GAAQ,OAAO,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/ignoreElements.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/ignoreElements.js new file mode 100644 index 00000000000000..949c7ef5e5db55 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/ignoreElements.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { ignoreElements } from '../../operator/ignoreElements'; +Observable.prototype.ignoreElements = ignoreElements; +//# sourceMappingURL=ignoreElements.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/ignoreElements.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/ignoreElements.js.map new file mode 100644 index 00000000000000..bce942d1167070 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/ignoreElements.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ignoreElements.js","sourceRoot":"","sources":["../../../src/add/operator/ignoreElements.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,cAAc,EAAE,MAAM,+BAA+B;AAE9D,UAAU,CAAC,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/isEmpty.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/isEmpty.js new file mode 100644 index 00000000000000..83b57e56c8f621 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/isEmpty.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { isEmpty } from '../../operator/isEmpty'; +Observable.prototype.isEmpty = isEmpty; +//# sourceMappingURL=isEmpty.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/isEmpty.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/isEmpty.js.map new file mode 100644 index 00000000000000..b1ba63bc57ad12 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/isEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isEmpty.js","sourceRoot":"","sources":["../../../src/add/operator/isEmpty.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,OAAO,EAAE,MAAM,wBAAwB;AAEhD,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/last.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/last.js new file mode 100644 index 00000000000000..5df19c2657158f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/last.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { last } from '../../operator/last'; +Observable.prototype.last = last; +//# sourceMappingURL=last.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/last.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/last.js.map new file mode 100644 index 00000000000000..0a3f7d273cb3c7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/last.js.map @@ -0,0 +1 @@ +{"version":3,"file":"last.js","sourceRoot":"","sources":["../../../src/add/operator/last.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,IAAI,EAAE,MAAM,qBAAqB;AAE1C,UAAU,CAAC,SAAS,CAAC,IAAI,GAAQ,IAAI,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/let.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/let.js new file mode 100644 index 00000000000000..fb390682390448 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/let.js @@ -0,0 +1,5 @@ +import { Observable } from '../../Observable'; +import { letProto } from '../../operator/let'; +Observable.prototype.let = letProto; +Observable.prototype.letBind = letProto; +//# sourceMappingURL=let.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/let.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/let.js.map new file mode 100644 index 00000000000000..0255712d44b47a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/let.js.map @@ -0,0 +1 @@ +{"version":3,"file":"let.js","sourceRoot":"","sources":["../../../src/add/operator/let.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,EAAE,MAAM,oBAAoB;AAE7C,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,QAAQ,CAAC;AACpC,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/map.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/map.js new file mode 100644 index 00000000000000..029a540a53aae7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/map.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { map } from '../../operator/map'; +Observable.prototype.map = map; +//# sourceMappingURL=map.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/map.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/map.js.map new file mode 100644 index 00000000000000..c0272bea42da4e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/map.js.map @@ -0,0 +1 @@ +{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/add/operator/map.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,GAAG,EAAE,MAAM,oBAAoB;AAExC,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mapTo.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mapTo.js new file mode 100644 index 00000000000000..b4db0c8c13af0f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mapTo.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { mapTo } from '../../operator/mapTo'; +Observable.prototype.mapTo = mapTo; +//# sourceMappingURL=mapTo.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mapTo.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mapTo.js.map new file mode 100644 index 00000000000000..af985e505c7b19 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mapTo.js","sourceRoot":"","sources":["../../../src/add/operator/mapTo.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,EAAE,MAAM,sBAAsB;AAE5C,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/materialize.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/materialize.js new file mode 100644 index 00000000000000..2fe29e321a6fef --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/materialize.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { materialize } from '../../operator/materialize'; +Observable.prototype.materialize = materialize; +//# sourceMappingURL=materialize.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/materialize.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/materialize.js.map new file mode 100644 index 00000000000000..cf39a9dcc14b3c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/materialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"materialize.js","sourceRoot":"","sources":["../../../src/add/operator/materialize.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,WAAW,EAAE,MAAM,4BAA4B;AAExD,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/max.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/max.js new file mode 100644 index 00000000000000..20d430c30daa29 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/max.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { max } from '../../operator/max'; +Observable.prototype.max = max; +//# sourceMappingURL=max.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/max.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/max.js.map new file mode 100644 index 00000000000000..53ff69d101fdbf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/max.js.map @@ -0,0 +1 @@ +{"version":3,"file":"max.js","sourceRoot":"","sources":["../../../src/add/operator/max.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,GAAG,EAAE,MAAM,oBAAoB;AAExC,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/merge.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/merge.js new file mode 100644 index 00000000000000..0c0389610f23ae --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/merge.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { merge } from '../../operator/merge'; +Observable.prototype.merge = merge; +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/merge.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/merge.js.map new file mode 100644 index 00000000000000..980477e70eb0b7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../src/add/operator/merge.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,EAAE,MAAM,sBAAsB;AAE5C,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeAll.js new file mode 100644 index 00000000000000..3608a75dbd56b1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeAll.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { mergeAll } from '../../operator/mergeAll'; +Observable.prototype.mergeAll = mergeAll; +//# sourceMappingURL=mergeAll.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeAll.js.map new file mode 100644 index 00000000000000..b73e09e0b85b5e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeAll.js","sourceRoot":"","sources":["../../../src/add/operator/mergeAll.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,EAAE,MAAM,yBAAyB;AAElD,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMap.js new file mode 100644 index 00000000000000..081b529731bf02 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMap.js @@ -0,0 +1,5 @@ +import { Observable } from '../../Observable'; +import { mergeMap } from '../../operator/mergeMap'; +Observable.prototype.mergeMap = mergeMap; +Observable.prototype.flatMap = mergeMap; +//# sourceMappingURL=mergeMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMap.js.map new file mode 100644 index 00000000000000..bbe2e51b82751a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMap.js","sourceRoot":"","sources":["../../../src/add/operator/mergeMap.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,EAAE,MAAM,yBAAyB;AAElD,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAQ,QAAQ,CAAC;AAC9C,UAAU,CAAC,SAAS,CAAC,OAAO,GAAQ,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMapTo.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMapTo.js new file mode 100644 index 00000000000000..f01b21f25ed10f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMapTo.js @@ -0,0 +1,5 @@ +import { Observable } from '../../Observable'; +import { mergeMapTo } from '../../operator/mergeMapTo'; +Observable.prototype.flatMapTo = mergeMapTo; +Observable.prototype.mergeMapTo = mergeMapTo; +//# sourceMappingURL=mergeMapTo.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMapTo.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMapTo.js.map new file mode 100644 index 00000000000000..964d9ec011b78d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMapTo.js","sourceRoot":"","sources":["../../../src/add/operator/mergeMapTo.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,UAAU,EAAE,MAAM,2BAA2B;AAEtD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAQ,UAAU,CAAC;AACjD,UAAU,CAAC,SAAS,CAAC,UAAU,GAAQ,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeScan.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeScan.js new file mode 100644 index 00000000000000..f815aa0956246a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeScan.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { mergeScan } from '../../operator/mergeScan'; +Observable.prototype.mergeScan = mergeScan; +//# sourceMappingURL=mergeScan.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeScan.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeScan.js.map new file mode 100644 index 00000000000000..e2367429679996 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/mergeScan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeScan.js","sourceRoot":"","sources":["../../../src/add/operator/mergeScan.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/min.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/min.js new file mode 100644 index 00000000000000..710fd78d76aeba --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/min.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { min } from '../../operator/min'; +Observable.prototype.min = min; +//# sourceMappingURL=min.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/min.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/min.js.map new file mode 100644 index 00000000000000..53a518e7b05a53 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"min.js","sourceRoot":"","sources":["../../../src/add/operator/min.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,GAAG,EAAE,MAAM,oBAAoB;AAExC,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/multicast.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/multicast.js new file mode 100644 index 00000000000000..5073d13b94a370 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/multicast.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { multicast } from '../../operator/multicast'; +Observable.prototype.multicast = multicast; +//# sourceMappingURL=multicast.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/multicast.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/multicast.js.map new file mode 100644 index 00000000000000..86c681316fbf4d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/multicast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"multicast.js","sourceRoot":"","sources":["../../../src/add/operator/multicast.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAQ,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/observeOn.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/observeOn.js new file mode 100644 index 00000000000000..244e0fad457fa1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/observeOn.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { observeOn } from '../../operator/observeOn'; +Observable.prototype.observeOn = observeOn; +//# sourceMappingURL=observeOn.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/observeOn.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/observeOn.js.map new file mode 100644 index 00000000000000..50d3637a0c4b61 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/observeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observeOn.js","sourceRoot":"","sources":["../../../src/add/operator/observeOn.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/onErrorResumeNext.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/onErrorResumeNext.js new file mode 100644 index 00000000000000..0bf1e0d9fca488 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/onErrorResumeNext.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { onErrorResumeNext } from '../../operator/onErrorResumeNext'; +Observable.prototype.onErrorResumeNext = onErrorResumeNext; +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/onErrorResumeNext.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/onErrorResumeNext.js.map new file mode 100644 index 00000000000000..afbddc9636aa3d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sourceRoot":"","sources":["../../../src/add/operator/onErrorResumeNext.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,iBAAiB,EAAE,MAAM,kCAAkC;AAEpE,UAAU,CAAC,SAAS,CAAC,iBAAiB,GAAG,iBAAiB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pairwise.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pairwise.js new file mode 100644 index 00000000000000..05b9e9fdd14d27 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pairwise.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { pairwise } from '../../operator/pairwise'; +Observable.prototype.pairwise = pairwise; +//# sourceMappingURL=pairwise.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pairwise.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pairwise.js.map new file mode 100644 index 00000000000000..f1c7cbce6fe4e9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pairwise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairwise.js","sourceRoot":"","sources":["../../../src/add/operator/pairwise.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,EAAE,MAAM,yBAAyB;AAElD,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/partition.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/partition.js new file mode 100644 index 00000000000000..827741e7cd969f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/partition.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { partition } from '../../operator/partition'; +Observable.prototype.partition = partition; +//# sourceMappingURL=partition.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/partition.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/partition.js.map new file mode 100644 index 00000000000000..9b034d9193bfbc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/partition.js.map @@ -0,0 +1 @@ +{"version":3,"file":"partition.js","sourceRoot":"","sources":["../../../src/add/operator/partition.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pluck.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pluck.js new file mode 100644 index 00000000000000..3c93abec51a43f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pluck.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { pluck } from '../../operator/pluck'; +Observable.prototype.pluck = pluck; +//# sourceMappingURL=pluck.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pluck.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pluck.js.map new file mode 100644 index 00000000000000..f1e329367f9dad --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/pluck.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pluck.js","sourceRoot":"","sources":["../../../src/add/operator/pluck.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,EAAE,MAAM,sBAAsB;AAE5C,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publish.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publish.js new file mode 100644 index 00000000000000..d3a06e071a8f55 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publish.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { publish } from '../../operator/publish'; +Observable.prototype.publish = publish; +//# sourceMappingURL=publish.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publish.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publish.js.map new file mode 100644 index 00000000000000..18753cb5fe2c9e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publish.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/add/operator/publish.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,OAAO,EAAE,MAAM,wBAAwB;AAEhD,UAAU,CAAC,SAAS,CAAC,OAAO,GAAQ,OAAO,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishBehavior.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishBehavior.js new file mode 100644 index 00000000000000..7555f4a3f3dd85 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishBehavior.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { publishBehavior } from '../../operator/publishBehavior'; +Observable.prototype.publishBehavior = publishBehavior; +//# sourceMappingURL=publishBehavior.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishBehavior.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishBehavior.js.map new file mode 100644 index 00000000000000..2bb0c42aeb5491 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishBehavior.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishBehavior.js","sourceRoot":"","sources":["../../../src/add/operator/publishBehavior.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,eAAe,EAAE,MAAM,gCAAgC;AAEhE,UAAU,CAAC,SAAS,CAAC,eAAe,GAAG,eAAe,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishLast.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishLast.js new file mode 100644 index 00000000000000..df2fd387788413 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishLast.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { publishLast } from '../../operator/publishLast'; +Observable.prototype.publishLast = publishLast; +//# sourceMappingURL=publishLast.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishLast.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishLast.js.map new file mode 100644 index 00000000000000..fd2cfbc8503ba7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishLast.js","sourceRoot":"","sources":["../../../src/add/operator/publishLast.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,WAAW,EAAE,MAAM,4BAA4B;AAExD,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishReplay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishReplay.js new file mode 100644 index 00000000000000..8807d12fc3d232 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishReplay.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { publishReplay } from '../../operator/publishReplay'; +Observable.prototype.publishReplay = publishReplay; +//# sourceMappingURL=publishReplay.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishReplay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishReplay.js.map new file mode 100644 index 00000000000000..68fc5011412d99 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/publishReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishReplay.js","sourceRoot":"","sources":["../../../src/add/operator/publishReplay.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,aAAa,EAAE,MAAM,8BAA8B;AAE5D,UAAU,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/race.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/race.js new file mode 100644 index 00000000000000..ec1984858245e7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/race.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { race } from '../../operator/race'; +Observable.prototype.race = race; +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/race.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/race.js.map new file mode 100644 index 00000000000000..e6cf7ea66a4af3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sourceRoot":"","sources":["../../../src/add/operator/race.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,IAAI,EAAE,MAAM,qBAAqB;AAE1C,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/reduce.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/reduce.js new file mode 100644 index 00000000000000..897690d3c4156d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/reduce.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { reduce } from '../../operator/reduce'; +Observable.prototype.reduce = reduce; +//# sourceMappingURL=reduce.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/reduce.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/reduce.js.map new file mode 100644 index 00000000000000..b6585dc66b888f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/reduce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reduce.js","sourceRoot":"","sources":["../../../src/add/operator/reduce.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,EAAE,MAAM,uBAAuB;AAE9C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeat.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeat.js new file mode 100644 index 00000000000000..c0dbbb0c3c7643 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeat.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { repeat } from '../../operator/repeat'; +Observable.prototype.repeat = repeat; +//# sourceMappingURL=repeat.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeat.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeat.js.map new file mode 100644 index 00000000000000..bcdbe76d596ce1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeat.js","sourceRoot":"","sources":["../../../src/add/operator/repeat.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,EAAE,MAAM,uBAAuB;AAE9C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeatWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeatWhen.js new file mode 100644 index 00000000000000..6942635368ecec --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeatWhen.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { repeatWhen } from '../../operator/repeatWhen'; +Observable.prototype.repeatWhen = repeatWhen; +//# sourceMappingURL=repeatWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeatWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeatWhen.js.map new file mode 100644 index 00000000000000..ed4e662be8bc33 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/repeatWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeatWhen.js","sourceRoot":"","sources":["../../../src/add/operator/repeatWhen.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,UAAU,EAAE,MAAM,2BAA2B;AAEtD,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retry.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retry.js new file mode 100644 index 00000000000000..13c4f11a1d9f1f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retry.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { retry } from '../../operator/retry'; +Observable.prototype.retry = retry; +//# sourceMappingURL=retry.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retry.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retry.js.map new file mode 100644 index 00000000000000..7fcabbf1b8fcb0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retry.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/add/operator/retry.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,EAAE,MAAM,sBAAsB;AAE5C,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retryWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retryWhen.js new file mode 100644 index 00000000000000..7fee774edba37f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retryWhen.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { retryWhen } from '../../operator/retryWhen'; +Observable.prototype.retryWhen = retryWhen; +//# sourceMappingURL=retryWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retryWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retryWhen.js.map new file mode 100644 index 00000000000000..76e6ed74a4d390 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/retryWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retryWhen.js","sourceRoot":"","sources":["../../../src/add/operator/retryWhen.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sample.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sample.js new file mode 100644 index 00000000000000..ca78e32bd98a56 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sample.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { sample } from '../../operator/sample'; +Observable.prototype.sample = sample; +//# sourceMappingURL=sample.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sample.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sample.js.map new file mode 100644 index 00000000000000..79e0a68ff41148 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sample.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sample.js","sourceRoot":"","sources":["../../../src/add/operator/sample.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,EAAE,MAAM,uBAAuB;AAE9C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sampleTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sampleTime.js new file mode 100644 index 00000000000000..53abf883e473ed --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sampleTime.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { sampleTime } from '../../operator/sampleTime'; +Observable.prototype.sampleTime = sampleTime; +//# sourceMappingURL=sampleTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sampleTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sampleTime.js.map new file mode 100644 index 00000000000000..e102b73312c48f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sampleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sampleTime.js","sourceRoot":"","sources":["../../../src/add/operator/sampleTime.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,UAAU,EAAE,MAAM,2BAA2B;AAEtD,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/scan.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/scan.js new file mode 100644 index 00000000000000..651e18c1b66d78 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/scan.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { scan } from '../../operator/scan'; +Observable.prototype.scan = scan; +//# sourceMappingURL=scan.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/scan.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/scan.js.map new file mode 100644 index 00000000000000..7c1fe66dcb3ce5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/scan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/add/operator/scan.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OAEtC,EAAE,IAAI,EAAE,MAAM,qBAAqB;AAE1C,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sequenceEqual.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sequenceEqual.js new file mode 100644 index 00000000000000..2582117e35db5d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sequenceEqual.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { sequenceEqual } from '../../operator/sequenceEqual'; +Observable.prototype.sequenceEqual = sequenceEqual; +//# sourceMappingURL=sequenceEqual.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sequenceEqual.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sequenceEqual.js.map new file mode 100644 index 00000000000000..a3de597b84e502 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/sequenceEqual.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sequenceEqual.js","sourceRoot":"","sources":["../../../src/add/operator/sequenceEqual.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,aAAa,EAAE,MAAM,8BAA8B;AAE5D,UAAU,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/share.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/share.js new file mode 100644 index 00000000000000..83a639d9d4d926 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/share.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { share } from '../../operator/share'; +Observable.prototype.share = share; +//# sourceMappingURL=share.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/share.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/share.js.map new file mode 100644 index 00000000000000..540b9ecb1e0a40 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/share.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share.js","sourceRoot":"","sources":["../../../src/add/operator/share.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,KAAK,EAAE,MAAM,sBAAsB;AAE5C,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/shareReplay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/shareReplay.js new file mode 100644 index 00000000000000..afa8c007f245bb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/shareReplay.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { shareReplay } from '../../operator/shareReplay'; +Observable.prototype.shareReplay = shareReplay; +//# sourceMappingURL=shareReplay.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/shareReplay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/shareReplay.js.map new file mode 100644 index 00000000000000..fe8aadfb85683b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/shareReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shareReplay.js","sourceRoot":"","sources":["../../../src/add/operator/shareReplay.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,WAAW,EAAE,MAAM,4BAA4B;AAExD,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/single.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/single.js new file mode 100644 index 00000000000000..05eb212a6a9d23 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/single.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { single } from '../../operator/single'; +Observable.prototype.single = single; +//# sourceMappingURL=single.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/single.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/single.js.map new file mode 100644 index 00000000000000..0218f7b322bf81 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/single.js.map @@ -0,0 +1 @@ +{"version":3,"file":"single.js","sourceRoot":"","sources":["../../../src/add/operator/single.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,EAAE,MAAM,uBAAuB;AAE9C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skip.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skip.js new file mode 100644 index 00000000000000..47b3da95371c72 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skip.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { skip } from '../../operator/skip'; +Observable.prototype.skip = skip; +//# sourceMappingURL=skip.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skip.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skip.js.map new file mode 100644 index 00000000000000..8e76fde5fddd79 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skip.js","sourceRoot":"","sources":["../../../src/add/operator/skip.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,IAAI,EAAE,MAAM,qBAAqB;AAE1C,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipLast.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipLast.js new file mode 100644 index 00000000000000..d634402ae768f4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipLast.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { skipLast } from '../../operator/skipLast'; +Observable.prototype.skipLast = skipLast; +//# sourceMappingURL=skipLast.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipLast.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipLast.js.map new file mode 100644 index 00000000000000..d654de9b8eeb7d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipLast.js","sourceRoot":"","sources":["../../../src/add/operator/skipLast.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,EAAE,MAAM,yBAAyB;AAElD,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipUntil.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipUntil.js new file mode 100644 index 00000000000000..a40bf41bdf5b0e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipUntil.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { skipUntil } from '../../operator/skipUntil'; +Observable.prototype.skipUntil = skipUntil; +//# sourceMappingURL=skipUntil.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipUntil.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipUntil.js.map new file mode 100644 index 00000000000000..1241bcda95001a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipUntil.js","sourceRoot":"","sources":["../../../src/add/operator/skipUntil.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipWhile.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipWhile.js new file mode 100644 index 00000000000000..7888238cb83b4f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipWhile.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { skipWhile } from '../../operator/skipWhile'; +Observable.prototype.skipWhile = skipWhile; +//# sourceMappingURL=skipWhile.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipWhile.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipWhile.js.map new file mode 100644 index 00000000000000..4df3927d4e34a4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/skipWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipWhile.js","sourceRoot":"","sources":["../../../src/add/operator/skipWhile.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/startWith.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/startWith.js new file mode 100644 index 00000000000000..25fecefa862824 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/startWith.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { startWith } from '../../operator/startWith'; +Observable.prototype.startWith = startWith; +//# sourceMappingURL=startWith.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/startWith.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/startWith.js.map new file mode 100644 index 00000000000000..fecea096bacdc9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/startWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"startWith.js","sourceRoot":"","sources":["../../../src/add/operator/startWith.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/subscribeOn.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/subscribeOn.js new file mode 100644 index 00000000000000..0d8a75eb3b42a8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/subscribeOn.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { subscribeOn } from '../../operator/subscribeOn'; +Observable.prototype.subscribeOn = subscribeOn; +//# sourceMappingURL=subscribeOn.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/subscribeOn.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/subscribeOn.js.map new file mode 100644 index 00000000000000..ef7b25bd9e29f7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/subscribeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeOn.js","sourceRoot":"","sources":["../../../src/add/operator/subscribeOn.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,WAAW,EAAE,MAAM,4BAA4B;AAExD,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switch.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switch.js new file mode 100644 index 00000000000000..02b02efc5a9661 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switch.js @@ -0,0 +1,5 @@ +import { Observable } from '../../Observable'; +import { _switch } from '../../operator/switch'; +Observable.prototype.switch = _switch; +Observable.prototype._switch = _switch; +//# sourceMappingURL=switch.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switch.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switch.js.map new file mode 100644 index 00000000000000..3d42bd6516eb08 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/add/operator/switch.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,OAAO,EAAE,MAAM,uBAAuB;AAE/C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC;AACtC,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMap.js new file mode 100644 index 00000000000000..7dc5024d4ad33e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMap.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { switchMap } from '../../operator/switchMap'; +Observable.prototype.switchMap = switchMap; +//# sourceMappingURL=switchMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMap.js.map new file mode 100644 index 00000000000000..d738a94448e989 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMap.js","sourceRoot":"","sources":["../../../src/add/operator/switchMap.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMapTo.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMapTo.js new file mode 100644 index 00000000000000..c4042be35f820b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMapTo.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { switchMapTo } from '../../operator/switchMapTo'; +Observable.prototype.switchMapTo = switchMapTo; +//# sourceMappingURL=switchMapTo.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMapTo.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMapTo.js.map new file mode 100644 index 00000000000000..bd5af839c9a323 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/switchMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMapTo.js","sourceRoot":"","sources":["../../../src/add/operator/switchMapTo.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,WAAW,EAAE,MAAM,4BAA4B;AAExD,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/take.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/take.js new file mode 100644 index 00000000000000..e8bac3ac6f8db2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/take.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { take } from '../../operator/take'; +Observable.prototype.take = take; +//# sourceMappingURL=take.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/take.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/take.js.map new file mode 100644 index 00000000000000..b9236de7c996bb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/take.js.map @@ -0,0 +1 @@ +{"version":3,"file":"take.js","sourceRoot":"","sources":["../../../src/add/operator/take.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,IAAI,EAAE,MAAM,qBAAqB;AAE1C,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeLast.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeLast.js new file mode 100644 index 00000000000000..6e6e5d9bcc96c1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeLast.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { takeLast } from '../../operator/takeLast'; +Observable.prototype.takeLast = takeLast; +//# sourceMappingURL=takeLast.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeLast.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeLast.js.map new file mode 100644 index 00000000000000..6aa0e22b1cd582 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeLast.js","sourceRoot":"","sources":["../../../src/add/operator/takeLast.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,EAAE,MAAM,yBAAyB;AAElD,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeUntil.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeUntil.js new file mode 100644 index 00000000000000..a30c3d25011b41 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeUntil.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { takeUntil } from '../../operator/takeUntil'; +Observable.prototype.takeUntil = takeUntil; +//# sourceMappingURL=takeUntil.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeUntil.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeUntil.js.map new file mode 100644 index 00000000000000..d73bb558b0f75d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeUntil.js","sourceRoot":"","sources":["../../../src/add/operator/takeUntil.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeWhile.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeWhile.js new file mode 100644 index 00000000000000..6fbd622ae01c40 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeWhile.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { takeWhile } from '../../operator/takeWhile'; +Observable.prototype.takeWhile = takeWhile; +//# sourceMappingURL=takeWhile.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeWhile.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeWhile.js.map new file mode 100644 index 00000000000000..36c3f0a06228d2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/takeWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeWhile.js","sourceRoot":"","sources":["../../../src/add/operator/takeWhile.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttle.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttle.js new file mode 100644 index 00000000000000..59854a01797e9a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttle.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { throttle } from '../../operator/throttle'; +Observable.prototype.throttle = throttle; +//# sourceMappingURL=throttle.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttle.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttle.js.map new file mode 100644 index 00000000000000..760b105b33ff0d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../../src/add/operator/throttle.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,EAAE,MAAM,yBAAyB;AAElD,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttleTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttleTime.js new file mode 100644 index 00000000000000..857a4f170d85cc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttleTime.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { throttleTime } from '../../operator/throttleTime'; +Observable.prototype.throttleTime = throttleTime; +//# sourceMappingURL=throttleTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttleTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttleTime.js.map new file mode 100644 index 00000000000000..b94a392db912cd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/throttleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttleTime.js","sourceRoot":"","sources":["../../../src/add/operator/throttleTime.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,YAAY,EAAE,MAAM,6BAA6B;AAE1D,UAAU,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeInterval.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeInterval.js new file mode 100644 index 00000000000000..421255ca9b65df --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeInterval.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { timeInterval } from '../../operator/timeInterval'; +Observable.prototype.timeInterval = timeInterval; +//# sourceMappingURL=timeInterval.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeInterval.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeInterval.js.map new file mode 100644 index 00000000000000..cb3b85a61edaa9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeInterval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeInterval.js","sourceRoot":"","sources":["../../../src/add/operator/timeInterval.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,YAAY,EAAE,MAAM,6BAA6B;AAE1D,UAAU,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeout.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeout.js new file mode 100644 index 00000000000000..93a9a35e74ac2f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeout.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { timeout } from '../../operator/timeout'; +Observable.prototype.timeout = timeout; +//# sourceMappingURL=timeout.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeout.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeout.js.map new file mode 100644 index 00000000000000..19b0e0b2cb77ab --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../../src/add/operator/timeout.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,OAAO,EAAE,MAAM,wBAAwB;AAEhD,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeoutWith.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeoutWith.js new file mode 100644 index 00000000000000..67481560927b48 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeoutWith.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { timeoutWith } from '../../operator/timeoutWith'; +Observable.prototype.timeoutWith = timeoutWith; +//# sourceMappingURL=timeoutWith.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeoutWith.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeoutWith.js.map new file mode 100644 index 00000000000000..86ed14846c1b1f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timeoutWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeoutWith.js","sourceRoot":"","sources":["../../../src/add/operator/timeoutWith.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,WAAW,EAAE,MAAM,4BAA4B;AAExD,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timestamp.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timestamp.js new file mode 100644 index 00000000000000..bb9ad90e739027 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timestamp.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { timestamp } from '../../operator/timestamp'; +Observable.prototype.timestamp = timestamp; +//# sourceMappingURL=timestamp.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timestamp.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timestamp.js.map new file mode 100644 index 00000000000000..9bc45bac618ac5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/timestamp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../../src/add/operator/timestamp.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,SAAS,EAAE,MAAM,0BAA0B;AAEpD,UAAU,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toArray.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toArray.js new file mode 100644 index 00000000000000..5a0b7600e3565d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toArray.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { toArray } from '../../operator/toArray'; +Observable.prototype.toArray = toArray; +//# sourceMappingURL=toArray.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toArray.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toArray.js.map new file mode 100644 index 00000000000000..bb19a203dff260 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toArray.js","sourceRoot":"","sources":["../../../src/add/operator/toArray.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,OAAO,EAAE,MAAM,wBAAwB;AAEhD,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toPromise.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toPromise.js new file mode 100644 index 00000000000000..5e65742c7c8222 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toPromise.js @@ -0,0 +1,3 @@ +// HACK: does nothing, because `toPromise` now lives on the `Observable` itself. +// leaving this module here to prevent breakage. +//# sourceMappingURL=toPromise.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toPromise.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toPromise.js.map new file mode 100644 index 00000000000000..643c9061c687c3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/toPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toPromise.js","sourceRoot":"","sources":["../../../src/add/operator/toPromise.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gDAAgD"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/window.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/window.js new file mode 100644 index 00000000000000..a45a78518c2ff2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/window.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { window } from '../../operator/window'; +Observable.prototype.window = window; +//# sourceMappingURL=window.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/window.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/window.js.map new file mode 100644 index 00000000000000..80c1de64b7bcf1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/window.js.map @@ -0,0 +1 @@ +{"version":3,"file":"window.js","sourceRoot":"","sources":["../../../src/add/operator/window.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,EAAE,MAAM,uBAAuB;AAE9C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowCount.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowCount.js new file mode 100644 index 00000000000000..f4762e97f457ff --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowCount.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { windowCount } from '../../operator/windowCount'; +Observable.prototype.windowCount = windowCount; +//# sourceMappingURL=windowCount.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowCount.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowCount.js.map new file mode 100644 index 00000000000000..edc6be1ba6c8cf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowCount.js","sourceRoot":"","sources":["../../../src/add/operator/windowCount.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,WAAW,EAAE,MAAM,4BAA4B;AAExD,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowTime.js new file mode 100644 index 00000000000000..d6aa1e2a5e4121 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowTime.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { windowTime } from '../../operator/windowTime'; +Observable.prototype.windowTime = windowTime; +//# sourceMappingURL=windowTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowTime.js.map new file mode 100644 index 00000000000000..1c9fff6a0110e5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowTime.js","sourceRoot":"","sources":["../../../src/add/operator/windowTime.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,UAAU,EAAE,MAAM,2BAA2B;AAEtD,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowToggle.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowToggle.js new file mode 100644 index 00000000000000..26532657b0d41d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowToggle.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { windowToggle } from '../../operator/windowToggle'; +Observable.prototype.windowToggle = windowToggle; +//# sourceMappingURL=windowToggle.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowToggle.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowToggle.js.map new file mode 100644 index 00000000000000..1cf1921f54d5d7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowToggle.js","sourceRoot":"","sources":["../../../src/add/operator/windowToggle.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,YAAY,EAAE,MAAM,6BAA6B;AAE1D,UAAU,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowWhen.js new file mode 100644 index 00000000000000..77e02df0996dd6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowWhen.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { windowWhen } from '../../operator/windowWhen'; +Observable.prototype.windowWhen = windowWhen; +//# sourceMappingURL=windowWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowWhen.js.map new file mode 100644 index 00000000000000..1f594206f80bf3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/windowWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowWhen.js","sourceRoot":"","sources":["../../../src/add/operator/windowWhen.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,UAAU,EAAE,MAAM,2BAA2B;AAEtD,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/withLatestFrom.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/withLatestFrom.js new file mode 100644 index 00000000000000..0d093b0925c39a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/withLatestFrom.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { withLatestFrom } from '../../operator/withLatestFrom'; +Observable.prototype.withLatestFrom = withLatestFrom; +//# sourceMappingURL=withLatestFrom.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/withLatestFrom.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/withLatestFrom.js.map new file mode 100644 index 00000000000000..d3cc7a71d6ec1d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/withLatestFrom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"withLatestFrom.js","sourceRoot":"","sources":["../../../src/add/operator/withLatestFrom.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,cAAc,EAAE,MAAM,+BAA+B;AAE9D,UAAU,CAAC,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zip.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zip.js new file mode 100644 index 00000000000000..38b5e89fd7770f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zip.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { zipProto } from '../../operator/zip'; +Observable.prototype.zip = zipProto; +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zip.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zip.js.map new file mode 100644 index 00000000000000..cd953a9f38da49 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sourceRoot":"","sources":["../../../src/add/operator/zip.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,QAAQ,EAAE,MAAM,oBAAoB;AAE7C,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zipAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zipAll.js new file mode 100644 index 00000000000000..33d7970fc61f08 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zipAll.js @@ -0,0 +1,4 @@ +import { Observable } from '../../Observable'; +import { zipAll } from '../../operator/zipAll'; +Observable.prototype.zipAll = zipAll; +//# sourceMappingURL=zipAll.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zipAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zipAll.js.map new file mode 100644 index 00000000000000..71b067ccd9991c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/add/operator/zipAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zipAll.js","sourceRoot":"","sources":["../../../src/add/operator/zipAll.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,kBAAkB;OACtC,EAAE,MAAM,EAAE,MAAM,uBAAuB;AAE9C,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/interfaces.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/interfaces.js new file mode 100644 index 00000000000000..eb519ecf694ec6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/interfaces.js @@ -0,0 +1 @@ +//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/interfaces.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/interfaces.js.map new file mode 100644 index 00000000000000..8fb5f7d1795b90 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/interfaces.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayLikeObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayLikeObservable.js new file mode 100644 index 00000000000000..552a25bd971261 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayLikeObservable.js @@ -0,0 +1,61 @@ +import { Observable } from '../Observable'; +import { ScalarObservable } from './ScalarObservable'; +import { EmptyObservable } from './EmptyObservable'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class ArrayLikeObservable extends Observable { + constructor(arrayLike, scheduler) { + super(); + this.arrayLike = arrayLike; + this.scheduler = scheduler; + if (!scheduler && arrayLike.length === 1) { + this._isScalar = true; + this.value = arrayLike[0]; + } + } + static create(arrayLike, scheduler) { + const length = arrayLike.length; + if (length === 0) { + return new EmptyObservable(); + } + else if (length === 1) { + return new ScalarObservable(arrayLike[0], scheduler); + } + else { + return new ArrayLikeObservable(arrayLike, scheduler); + } + } + static dispatch(state) { + const { arrayLike, index, length, subscriber } = state; + if (subscriber.closed) { + return; + } + if (index >= length) { + subscriber.complete(); + return; + } + subscriber.next(arrayLike[index]); + state.index = index + 1; + this.schedule(state); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + let index = 0; + const { arrayLike, scheduler } = this; + const length = arrayLike.length; + if (scheduler) { + return scheduler.schedule(ArrayLikeObservable.dispatch, 0, { + arrayLike, index, length, subscriber + }); + } + else { + for (let i = 0; i < length && !subscriber.closed; i++) { + subscriber.next(arrayLike[i]); + } + subscriber.complete(); + } + } +} +//# sourceMappingURL=ArrayLikeObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayLikeObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayLikeObservable.js.map new file mode 100644 index 00000000000000..f5ec01781974ab --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayLikeObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ArrayLikeObservable.js","sourceRoot":"","sources":["../../src/observable/ArrayLikeObservable.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,gBAAgB,EAAE,MAAM,oBAAoB;OAC9C,EAAE,eAAe,EAAE,MAAM,mBAAmB;AAInD;;;;GAIG;AACH,yCAA4C,UAAU;IAmCpD,YAAoB,SAAuB,EAAU,SAAsB;QACzE,OAAO,CAAC;QADU,cAAS,GAAT,SAAS,CAAc;QAAU,cAAS,GAAT,SAAS,CAAa;QAEzE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAvCD,OAAO,MAAM,CAAI,SAAuB,EAAE,SAAsB;QAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,eAAe,EAAK,CAAC;QAClC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,gBAAgB,CAAS,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,IAAI,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,KAAU;QACxB,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAEvD,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC;YACpB,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAElC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QAEjB,IAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAaD,oCAAoC,CAAC,UAAU,CAAC,UAAyB;QACvE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACtC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAEhC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACzD,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU;aACrC,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;YACD,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayObservable.js new file mode 100644 index 00000000000000..321086ebca36e2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayObservable.js @@ -0,0 +1,109 @@ +import { Observable } from '../Observable'; +import { ScalarObservable } from './ScalarObservable'; +import { EmptyObservable } from './EmptyObservable'; +import { isScheduler } from '../util/isScheduler'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class ArrayObservable extends Observable { + constructor(array, scheduler) { + super(); + this.array = array; + this.scheduler = scheduler; + if (!scheduler && array.length === 1) { + this._isScalar = true; + this.value = array[0]; + } + } + static create(array, scheduler) { + return new ArrayObservable(array, scheduler); + } + /** + * Creates an Observable that emits some values you specify as arguments, + * immediately one after the other, and then emits a complete notification. + * + * Emits the arguments you provide, then completes. + * + * + * + * + * This static operator is useful for creating a simple Observable that only + * emits the arguments given, and the complete notification thereafter. It can + * be used for composing with other Observables, such as with {@link concat}. + * By default, it uses a `null` IScheduler, which means the `next` + * notifications are sent synchronously, although with a different IScheduler + * it is possible to determine when those notifications will be delivered. + * + * @example Emit 10, 20, 30, then 'a', 'b', 'c', then start ticking every second. + * var numbers = Rx.Observable.of(10, 20, 30); + * var letters = Rx.Observable.of('a', 'b', 'c'); + * var interval = Rx.Observable.interval(1000); + * var result = numbers.concat(letters).concat(interval); + * result.subscribe(x => console.log(x)); + * + * @see {@link create} + * @see {@link empty} + * @see {@link never} + * @see {@link throw} + * + * @param {...T} values Arguments that represent `next` values to be emitted. + * @param {Scheduler} [scheduler] A {@link IScheduler} to use for scheduling + * the emissions of the `next` notifications. + * @return {Observable} An Observable that emits each given input value. + * @static true + * @name of + * @owner Observable + */ + static of(...array) { + let scheduler = array[array.length - 1]; + if (isScheduler(scheduler)) { + array.pop(); + } + else { + scheduler = null; + } + const len = array.length; + if (len > 1) { + return new ArrayObservable(array, scheduler); + } + else if (len === 1) { + return new ScalarObservable(array[0], scheduler); + } + else { + return new EmptyObservable(scheduler); + } + } + static dispatch(state) { + const { array, index, count, subscriber } = state; + if (index >= count) { + subscriber.complete(); + return; + } + subscriber.next(array[index]); + if (subscriber.closed) { + return; + } + state.index = index + 1; + this.schedule(state); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + let index = 0; + const array = this.array; + const count = array.length; + const scheduler = this.scheduler; + if (scheduler) { + return scheduler.schedule(ArrayObservable.dispatch, 0, { + array, index, count, subscriber + }); + } + else { + for (let i = 0; i < count && !subscriber.closed; i++) { + subscriber.next(array[i]); + } + subscriber.complete(); + } + } +} +//# sourceMappingURL=ArrayObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayObservable.js.map new file mode 100644 index 00000000000000..061e66eb2063dc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ArrayObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ArrayObservable.js","sourceRoot":"","sources":["../../src/observable/ArrayObservable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundCallbackObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundCallbackObservable.js new file mode 100644 index 00000000000000..0c2c5a065a5624 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundCallbackObservable.js @@ -0,0 +1,242 @@ +import { Observable } from '../Observable'; +import { tryCatch } from '../util/tryCatch'; +import { errorObject } from '../util/errorObject'; +import { AsyncSubject } from '../AsyncSubject'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class BoundCallbackObservable extends Observable { + constructor(callbackFunc, selector, args, context, scheduler) { + super(); + this.callbackFunc = callbackFunc; + this.selector = selector; + this.args = args; + this.context = context; + this.scheduler = scheduler; + } + /* 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. + * + * Optionally, a selector function can be passed to `bindObservable`. The selector function + * takes the same arguments as the callback and returns the value that will be emitted by the Observable. + * Even though by default multiple arguments passed to callback appear in the stream as an array + * the selector function will be called with arguments directly, just as the callback would. + * This means you can imagine the default selector (when one is not provided explicitly) + * as a function that aggregates all its arguments into an array, or simply returns first argument + * if there is only one. + * + * The last optional parameter - {@link 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 `Scheduler.async` 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 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 the subscription of the resulting Observable + * will call the `next` function synchronously as well. If you want to defer that call, + * you may use `Scheduler.async` 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. + * + * + * @example Convert jQuery's getJSON to an Observable API + * // Suppose we have jQuery.getJSON('/my/url', callback) + * var getJSONAsObservable = Rx.Observable.bindCallback(jQuery.getJSON); + * var result = getJSONAsObservable('/my/url'); + * result.subscribe(x => console.log(x), e => console.error(e)); + * + * + * @example Receive an array of arguments passed to a callback + * someFunction((a, b, c) => { + * console.log(a); // 5 + * console.log(b); // 'some string' + * console.log(c); // {someProperty: 'someValue'} + * }); + * + * const boundSomeFunction = Rx.Observable.bindCallback(someFunction); + * boundSomeFunction().subscribe(values => { + * console.log(values) // [5, 'some string', {someProperty: 'someValue'}] + * }); + * + * + * @example Use bindCallback with a selector function + * someFunction((a, b, c) => { + * console.log(a); // 'a' + * console.log(b); // 'b' + * console.log(c); // 'c' + * }); + * + * const boundSomeFunction = Rx.Observable.bindCallback(someFunction, (a, b, c) => a + b + c); + * boundSomeFunction().subscribe(value => { + * console.log(value) // 'abc' + * }); + * + * + * @example Compare behaviour with and without async Scheduler + * function iCallMyCallbackSynchronously(cb) { + * cb(); + * } + * + * const boundSyncFn = Rx.Observable.bindCallback(iCallMyCallbackSynchronously); + * const boundAsyncFn = Rx.Observable.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! + * + * + * @example Use bindCallback on an object method + * const boundMethod = Rx.Observable.bindCallback(someObject.methodWithCallback); + * boundMethod.call(someObject) // make sure methodWithCallback has access to someObject + * .subscribe(subscriber); + * + * + * @see {@link bindNodeCallback} + * @see {@link from} + * @see {@link fromPromise} + * + * @param {function} func A function with a callback as the last parameter. + * @param {function} [selector] A function which takes the arguments from the + * callback and maps them to a value that is emitted on the output Observable. + * @param {Scheduler} [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. + * @static true + * @name bindCallback + * @owner Observable + */ + static create(func, selector = undefined, scheduler) { + return function (...args) { + return new BoundCallbackObservable(func, selector, args, this, scheduler); + }; + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const callbackFunc = this.callbackFunc; + const args = this.args; + const scheduler = this.scheduler; + let subject = this.subject; + if (!scheduler) { + if (!subject) { + subject = this.subject = new AsyncSubject(); + const handler = function handlerFn(...innerArgs) { + const source = handlerFn.source; + const { selector, subject } = source; + if (selector) { + const result = tryCatch(selector).apply(this, innerArgs); + if (result === errorObject) { + subject.error(errorObject.e); + } + else { + subject.next(result); + subject.complete(); + } + } + else { + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + } + }; + // use named function instance to avoid closure. + handler.source = this; + const result = tryCatch(callbackFunc).apply(this.context, args.concat(handler)); + if (result === errorObject) { + subject.error(errorObject.e); + } + } + return subject.subscribe(subscriber); + } + else { + return scheduler.schedule(BoundCallbackObservable.dispatch, 0, { source: this, subscriber, context: this.context }); + } + } + static dispatch(state) { + const self = this; + const { source, subscriber, context } = state; + const { callbackFunc, args, scheduler } = source; + let subject = source.subject; + if (!subject) { + subject = source.subject = new AsyncSubject(); + const handler = function handlerFn(...innerArgs) { + const source = handlerFn.source; + const { selector, subject } = source; + if (selector) { + const result = tryCatch(selector).apply(this, innerArgs); + if (result === errorObject) { + self.add(scheduler.schedule(dispatchError, 0, { err: errorObject.e, subject })); + } + else { + self.add(scheduler.schedule(dispatchNext, 0, { value: result, subject })); + } + } + else { + const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + self.add(scheduler.schedule(dispatchNext, 0, { value, subject })); + } + }; + // use named function to pass values in without closure + handler.source = source; + const result = tryCatch(callbackFunc).apply(context, args.concat(handler)); + if (result === errorObject) { + subject.error(errorObject.e); + } + } + self.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=BoundCallbackObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundCallbackObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundCallbackObservable.js.map new file mode 100644 index 00000000000000..f9764c9726b756 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundCallbackObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BoundCallbackObservable.js","sourceRoot":"","sources":["../../src/observable/BoundCallbackObservable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundNodeCallbackObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundNodeCallbackObservable.js new file mode 100644 index 00000000000000..3ed8a5cc26228e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundNodeCallbackObservable.js @@ -0,0 +1,241 @@ +import { Observable } from '../Observable'; +import { tryCatch } from '../util/tryCatch'; +import { errorObject } from '../util/errorObject'; +import { AsyncSubject } from '../AsyncSubject'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class BoundNodeCallbackObservable extends Observable { + constructor(callbackFunc, selector, args, context, scheduler) { + super(); + this.callbackFunc = callbackFunc; + this.selector = selector; + this.args = args; + this.context = context; + this.scheduler = scheduler; + } + /* tslint:enable:max-line-length */ + /** + * 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. + * + * Optionally `bindNodeCallback` accepts selector function, which allows you to + * make resulting Observable emit value computed by selector, instead of regular + * callback arguments. It works similarly to {@link bindCallback} selector, but + * Node.js-style error argument will never be passed to that function. + * + * 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 {@link Scheduler} provided as optional third parameter. Scheduler + * can also control when values from callback will be emitted by Observable. + * To find out more, check out documentation for {@link bindCallback}, where + * Scheduler 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 or in selector function. + * + * + * @example Read a file from the filesystem and get the data as an Observable + * import * as fs from 'fs'; + * var readFileAsObservable = Rx.Observable.bindNodeCallback(fs.readFile); + * var result = readFileAsObservable('./roadNames.txt', 'utf8'); + * result.subscribe(x => console.log(x), e => console.error(e)); + * + * + * @example Use on function calling callback with multiple arguments + * someFunction((err, a, b) => { + * console.log(err); // null + * console.log(a); // 5 + * console.log(b); // "some string" + * }); + * var boundSomeFunction = Rx.Observable.bindNodeCallback(someFunction); + * boundSomeFunction() + * .subscribe(value => { + * console.log(value); // [5, "some string"] + * }); + * + * + * @example Use with selector function + * someFunction((err, a, b) => { + * console.log(err); // undefined + * console.log(a); // "abc" + * console.log(b); // "DEF" + * }); + * var boundSomeFunction = Rx.Observable.bindNodeCallback(someFunction, (a, b) => a + b); + * boundSomeFunction() + * .subscribe(value => { + * console.log(value); // "abcDEF" + * }); + * + * + * @example Use on function calling callback in regular style + * someFunction(a => { + * console.log(a); // 5 + * }); + * var boundSomeFunction = Rx.Observable.bindNodeCallback(someFunction); + * boundSomeFunction() + * .subscribe( + * value => {} // never gets called + * err => console.log(err) // 5 + *); + * + * + * @see {@link bindCallback} + * @see {@link from} + * @see {@link fromPromise} + * + * @param {function} func Function with a Node.js-style callback as the last parameter. + * @param {function} [selector] A function which takes the arguments from the + * callback and maps those to a value to emit on the output Observable. + * @param {Scheduler} [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. + * @static true + * @name bindNodeCallback + * @owner Observable + */ + static create(func, selector = undefined, scheduler) { + return function (...args) { + return new BoundNodeCallbackObservable(func, selector, args, this, scheduler); + }; + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const callbackFunc = this.callbackFunc; + const args = this.args; + const scheduler = this.scheduler; + let subject = this.subject; + if (!scheduler) { + if (!subject) { + subject = this.subject = new AsyncSubject(); + const handler = function handlerFn(...innerArgs) { + const source = handlerFn.source; + const { selector, subject } = source; + const err = innerArgs.shift(); + if (err) { + subject.error(err); + } + else if (selector) { + const result = tryCatch(selector).apply(this, innerArgs); + if (result === errorObject) { + subject.error(errorObject.e); + } + else { + subject.next(result); + subject.complete(); + } + } + else { + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + } + }; + // use named function instance to avoid closure. + handler.source = this; + const result = tryCatch(callbackFunc).apply(this.context, args.concat(handler)); + if (result === errorObject) { + subject.error(errorObject.e); + } + } + return subject.subscribe(subscriber); + } + else { + return scheduler.schedule(dispatch, 0, { source: this, subscriber, context: this.context }); + } + } +} +function dispatch(state) { + const self = this; + const { source, subscriber, context } = state; + // XXX: cast to `any` to access to the private field in `source`. + const { callbackFunc, args, scheduler } = source; + let subject = source.subject; + if (!subject) { + subject = source.subject = new AsyncSubject(); + const handler = function handlerFn(...innerArgs) { + const source = handlerFn.source; + const { selector, subject } = source; + const err = innerArgs.shift(); + if (err) { + self.add(scheduler.schedule(dispatchError, 0, { err, subject })); + } + else if (selector) { + const result = tryCatch(selector).apply(this, innerArgs); + if (result === errorObject) { + self.add(scheduler.schedule(dispatchError, 0, { err: errorObject.e, subject })); + } + else { + self.add(scheduler.schedule(dispatchNext, 0, { value: result, subject })); + } + } + else { + const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + self.add(scheduler.schedule(dispatchNext, 0, { value, subject })); + } + }; + // use named function to pass values in without closure + handler.source = source; + const result = tryCatch(callbackFunc).apply(context, args.concat(handler)); + if (result === errorObject) { + self.add(scheduler.schedule(dispatchError, 0, { err: errorObject.e, subject })); + } + } + self.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=BoundNodeCallbackObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundNodeCallbackObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundNodeCallbackObservable.js.map new file mode 100644 index 00000000000000..1ebd41c1ef5362 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/BoundNodeCallbackObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BoundNodeCallbackObservable.js","sourceRoot":"","sources":["../../src/observable/BoundNodeCallbackObservable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ConnectableObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ConnectableObservable.js new file mode 100644 index 00000000000000..9eba70d8bdecc3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ConnectableObservable.js @@ -0,0 +1,157 @@ +import { SubjectSubscriber } from '../Subject'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { refCount as higherOrderRefCount } from '../operators/refCount'; +/** + * @class ConnectableObservable + */ +export class ConnectableObservable extends Observable { + constructor(/** @deprecated internal use only */ source, + /** @deprecated internal use only */ subjectFactory) { + super(); + this.source = source; + this.subjectFactory = subjectFactory; + /** @deprecated internal use only */ this._refCount = 0; + this._isComplete = false; + } + /** @deprecated internal use only */ _subscribe(subscriber) { + return this.getSubject().subscribe(subscriber); + } + /** @deprecated internal use only */ 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; + } + else { + this._connection = connection; + } + } + return connection; + } + refCount() { + return higherOrderRefCount()(this); + } +} +const connectableProto = ConnectableObservable.prototype; +export const connectableObservableDescriptor = { + 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(); + } + /** @deprecated internal use only */ _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; + } + /** @deprecated internal use only */ _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: + // ``` + // Observable.range(0, 10) + // .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(); + } + } +} +//# sourceMappingURL=ConnectableObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ConnectableObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ConnectableObservable.js.map new file mode 100644 index 00000000000000..a8931b1b3910a9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ConnectableObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ConnectableObservable.js","sourceRoot":"","sources":["../../src/observable/ConnectableObservable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/DeferObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/DeferObservable.js new file mode 100644 index 00000000000000..51009f38ff6ed4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/DeferObservable.js @@ -0,0 +1,88 @@ +import { Observable } from '../Observable'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { OuterSubscriber } from '../OuterSubscriber'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class DeferObservable extends Observable { + constructor(observableFactory) { + super(); + this.observableFactory = observableFactory; + } + /** + * 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` 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 + * var clicksOrInterval = Rx.Observable.defer(function () { + * if (Math.random() > 0.5) { + * return Rx.Observable.fromEvent(document, 'click'); + * } else { + * return Rx.Observable.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 create} + * + * @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 + */ + static create(observableFactory) { + return new DeferObservable(observableFactory); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + return new DeferSubscriber(subscriber, this.observableFactory); + } +} +class DeferSubscriber extends OuterSubscriber { + constructor(destination, factory) { + super(destination); + this.factory = factory; + this.tryDefer(); + } + tryDefer() { + try { + this._callFactory(); + } + catch (err) { + this._error(err); + } + } + _callFactory() { + const result = this.factory(); + if (result) { + this.add(subscribeToResult(this, result)); + } + } +} +//# sourceMappingURL=DeferObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/DeferObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/DeferObservable.js.map new file mode 100644 index 00000000000000..83a5535809d056 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/DeferObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DeferObservable.js","sourceRoot":"","sources":["../../src/observable/DeferObservable.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAyB,MAAM,eAAe;OAI1D,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;OACtD,EAAE,eAAe,EAAE,MAAM,oBAAoB;AACpD;;;;GAIG;AACH,qCAAwC,UAAU;IAoDhD,YAAoB,iBAAwD;QAC1E,OAAO,CAAC;QADU,sBAAiB,GAAjB,iBAAiB,CAAuC;IAE5E,CAAC;IApDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,OAAO,MAAM,CAAI,iBAAwD;QACvE,MAAM,CAAC,IAAI,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAMD,oCAAoC,CAAC,UAAU,CAAC,UAAyB;QACvE,MAAM,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,8BAAiC,eAAe;IAC9C,YAAY,WAA0B,EAClB,OAA8C;QAChE,MAAM,WAAW,CAAC,CAAC;QADD,YAAO,GAAP,OAAO,CAAuC;QAEhE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEO,QAAQ;QACd,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/EmptyObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/EmptyObservable.js new file mode 100644 index 00000000000000..2b5e4f79b5bae0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/EmptyObservable.js @@ -0,0 +1,72 @@ +import { Observable } from '../Observable'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class EmptyObservable extends Observable { + constructor(scheduler) { + super(); + this.scheduler = scheduler; + } + /** + * Creates an Observable that emits no items to the Observer and immediately + * emits a complete notification. + * + * Just emits 'complete', and nothing else. + * + * + * + * + * 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}. + * + * @example Emit the number 7, then complete. + * var result = Rx.Observable.empty().startWith(7); + * result.subscribe(x => console.log(x)); + * + * @example Map and flatten only odd numbers to the sequence 'a', 'b', 'c' + * var interval = Rx.Observable.interval(1000); + * var result = interval.mergeMap(x => + * x % 2 === 1 ? Rx.Observable.of('a', 'b', 'c') : Rx.Observable.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 create} + * @see {@link never} + * @see {@link of} + * @see {@link throw} + * + * @param {Scheduler} [scheduler] A {@link IScheduler} to use for scheduling + * the emission of the complete notification. + * @return {Observable} An "empty" Observable: emits only the complete + * notification. + * @static true + * @name empty + * @owner Observable + */ + static create(scheduler) { + return new EmptyObservable(scheduler); + } + static dispatch(arg) { + const { subscriber } = arg; + subscriber.complete(); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const scheduler = this.scheduler; + if (scheduler) { + return scheduler.schedule(EmptyObservable.dispatch, 0, { subscriber }); + } + else { + subscriber.complete(); + } + } +} +//# sourceMappingURL=EmptyObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/EmptyObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/EmptyObservable.js.map new file mode 100644 index 00000000000000..77f46ae5bf99ef --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/EmptyObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EmptyObservable.js","sourceRoot":"","sources":["../../src/observable/EmptyObservable.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;AAO1C;;;;GAIG;AACH,qCAAwC,UAAU;IAsDhD,YAAoB,SAAsB;QACxC,OAAO,CAAC;QADU,cAAS,GAAT,SAAS,CAAa;IAE1C,CAAC;IAtDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,OAAO,MAAM,CAAI,SAAsB;QACrC,MAAM,CAAC,IAAI,eAAe,CAAI,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,QAAQ,CAAI,GAAmB;QACpC,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;QAC3B,UAAU,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAMD,oCAAoC,CAAC,UAAU,CAAC,UAAyB;QAEvE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ErrorObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ErrorObservable.js new file mode 100644 index 00000000000000..582bfe6e53ada7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ErrorObservable.js @@ -0,0 +1,74 @@ +import { Observable } from '../Observable'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class ErrorObservable extends Observable { + constructor(error, scheduler) { + super(); + this.error = error; + this.scheduler = scheduler; + } + /** + * Creates an Observable that emits no items to the Observer and immediately + * emits an error notification. + * + * Just emits 'error', and nothing else. + * + * + * + * + * 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}. + * + * @example Emit the number 7, then emit an error. + * var result = Rx.Observable.throw(new Error('oops!')).startWith(7); + * result.subscribe(x => console.log(x), e => console.error(e)); + * + * @example Map and flatten numbers to the sequence 'a', 'b', 'c', but throw an error for 13 + * var interval = Rx.Observable.interval(1000); + * var result = interval.mergeMap(x => + * x === 13 ? + * Rx.Observable.throw('Thirteens are bad') : + * Rx.Observable.of('a', 'b', 'c') + * ); + * result.subscribe(x => console.log(x), e => console.error(e)); + * + * @see {@link create} + * @see {@link empty} + * @see {@link never} + * @see {@link of} + * + * @param {any} error The particular Error to pass to the error notification. + * @param {Scheduler} [scheduler] A {@link IScheduler} 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 throw + * @owner Observable + */ + static create(error, scheduler) { + return new ErrorObservable(error, scheduler); + } + static dispatch(arg) { + const { error, subscriber } = arg; + subscriber.error(error); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const error = this.error; + const scheduler = this.scheduler; + subscriber.syncErrorThrowable = true; + if (scheduler) { + return scheduler.schedule(ErrorObservable.dispatch, 0, { + error, subscriber + }); + } + else { + subscriber.error(error); + } + } +} +//# sourceMappingURL=ErrorObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ErrorObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ErrorObservable.js.map new file mode 100644 index 00000000000000..75bda8f864cf21 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ErrorObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ErrorObservable.js","sourceRoot":"","sources":["../../src/observable/ErrorObservable.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;AAS1C;;;;GAIG;AACH,qCAAqC,UAAU;IAmD7C,YAAmB,KAAU,EAAU,SAAsB;QAC3D,OAAO,CAAC;QADS,UAAK,GAAL,KAAK,CAAK;QAAU,cAAS,GAAT,SAAS,CAAa;IAE7D,CAAC;IAnDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,OAAO,MAAM,CAAC,KAAU,EAAE,SAAsB;QAC9C,MAAM,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,QAAQ,CAAC,GAAgB;QAC9B,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;QAClC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAMD,oCAAoC,CAAC,UAAU,CAAC,UAA2B;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAErC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACrD,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ForkJoinObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ForkJoinObservable.js new file mode 100644 index 00000000000000..8d8f86ffa17494 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ForkJoinObservable.js @@ -0,0 +1,187 @@ +import { Observable } from '../Observable'; +import { EmptyObservable } from './EmptyObservable'; +import { isArray } from '../util/isArray'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { OuterSubscriber } from '../OuterSubscriber'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class ForkJoinObservable extends Observable { + constructor(sources, resultSelector) { + super(); + this.sources = sources; + this.resultSelector = resultSelector; + } + /* tslint:enable:max-line-length */ + /** + * Joins last values emitted by passed Observables. + * + * Wait for Observables to complete and then combine last values they emitted. + * + * + * + * `forkJoin` is an operator that takes any number of Observables which can be passed either as an array + * or directly as arguments. 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 with last + * values from corresponding Observables. So if you pass `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. 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. + * + * @example Use forkJoin with operator emitting immediately + * const observable = Rx.Observable.forkJoin( + * Rx.Observable.of(1, 2, 3, 4), + * Rx.Observable.of(5, 6, 7, 8) + * ); + * observable.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('This is how it ends!') + * ); + * + * // Logs: + * // [4, 8] + * // "This is how it ends!" + * + * + * @example Use forkJoin with operator emitting after some time + * const observable = Rx.Observable.forkJoin( + * Rx.Observable.interval(1000).take(3), // emit 0, 1, 2 every second and complete + * Rx.Observable.interval(500).take(4) // emit 0, 1, 2, 3 every half a second and complete + * ); + * observable.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('This is how it ends!') + * ); + * + * // Logs: + * // [2, 3] after 3 seconds + * // "This is how it ends!" immediately after + * + * + * @example Use forkJoin with project function + * const observable = Rx.Observable.forkJoin( + * Rx.Observable.interval(1000).take(3), // emit 0, 1, 2 every second and complete + * Rx.Observable.interval(500).take(4), // emit 0, 1, 2, 3 every half a second and complete + * (n, m) => n + m + * ); + * observable.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('This is how it ends!') + * ); + * + * // Logs: + * // 5 after 3 seconds + * // "This is how it ends!" immediately after + * + * @see {@link combineLatest} + * @see {@link zip} + * + * @param {...SubscribableOrPromise} 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. + * @static true + * @name forkJoin + * @owner Observable + */ + static create(...sources) { + if (sources === null || arguments.length === 0) { + return new EmptyObservable(); + } + let resultSelector = null; + if (typeof sources[sources.length - 1] === 'function') { + resultSelector = sources.pop(); + } + // if the first and only other argument besides the resultSelector is an array + // assume it's been called with `forkJoin([obs1, obs2, obs3], resultSelector)` + if (sources.length === 1 && isArray(sources[0])) { + sources = sources[0]; + } + if (sources.length === 0) { + return new EmptyObservable(); + } + return new ForkJoinObservable(sources, resultSelector); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + return new ForkJoinSubscriber(subscriber, this.sources, this.resultSelector); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class ForkJoinSubscriber extends OuterSubscriber { + constructor(destination, sources, resultSelector) { + super(destination); + this.sources = sources; + this.resultSelector = resultSelector; + this.completed = 0; + this.haveValues = 0; + const len = sources.length; + this.total = len; + this.values = new Array(len); + for (let i = 0; i < len; i++) { + const source = sources[i]; + const innerSubscription = subscribeToResult(this, source, null, i); + if (innerSubscription) { + innerSubscription.outerIndex = i; + this.add(innerSubscription); + } + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.values[outerIndex] = innerValue; + if (!innerSub._hasValue) { + innerSub._hasValue = true; + this.haveValues++; + } + } + notifyComplete(innerSub) { + const destination = this.destination; + const { haveValues, resultSelector, values } = this; + const len = values.length; + if (!innerSub._hasValue) { + destination.complete(); + return; + } + this.completed++; + if (this.completed !== len) { + return; + } + if (haveValues === len) { + const value = resultSelector ? resultSelector.apply(this, values) : values; + destination.next(value); + } + destination.complete(); + } +} +//# sourceMappingURL=ForkJoinObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ForkJoinObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ForkJoinObservable.js.map new file mode 100644 index 00000000000000..e3926d62c4e1ec --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ForkJoinObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ForkJoinObservable.js","sourceRoot":"","sources":["../../src/observable/ForkJoinObservable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventObservable.js new file mode 100644 index 00000000000000..c3d5e0550a8c60 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventObservable.js @@ -0,0 +1,203 @@ +import { Observable } from '../Observable'; +import { tryCatch } from '../util/tryCatch'; +import { isFunction } from '../util/isFunction'; +import { errorObject } from '../util/errorObject'; +import { Subscription } from '../Subscription'; +const toString = Object.prototype.toString; +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 isNodeList(sourceObj) { + return !!sourceObj && toString.call(sourceObj) === '[object NodeList]'; +} +function isHTMLCollection(sourceObj) { + return !!sourceObj && toString.call(sourceObj) === '[object HTMLCollection]'; +} +function isEventTarget(sourceObj) { + return !!sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function'; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class FromEventObservable extends Observable { + constructor(sourceObj, eventName, selector, options) { + super(); + this.sourceObj = sourceObj; + this.eventName = eventName; + this.selector = selector; + this.options = options; + } + /* 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` 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. + * + * + * @example Emits clicks happening on the DOM document + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * clicks.subscribe(x => console.log(x)); + * + * // Results in: + * // MouseEvent object logged to console every time a click + * // occurs on the document. + * + * + * @example Use addEventListener with capture option + * var clicksInDocument = Rx.Observable.fromEvent(document, 'click', true); // note optional configuration parameter + * // which will be passed to addEventListener + * var clicksInDiv = Rx.Observable.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 {EventTargetLike} 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 + * @param {SelectorMethodSignature} [selector] An optional function to + * post-process results. It takes the arguments from the event handler and + * should return a single value. + * @return {Observable} + * @static true + * @name fromEvent + * @owner Observable + */ + static create(target, eventName, options, selector) { + if (isFunction(options)) { + selector = options; + options = undefined; + } + return new FromEventObservable(target, eventName, selector, options); + } + static setupSubscription(sourceObj, eventName, handler, subscriber, options) { + let unsubscribe; + if (isNodeList(sourceObj) || isHTMLCollection(sourceObj)) { + for (let i = 0, len = sourceObj.length; i < len; i++) { + FromEventObservable.setupSubscription(sourceObj[i], eventName, handler, subscriber, options); + } + } + else 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 { + throw new TypeError('Invalid event target'); + } + subscriber.add(new Subscription(unsubscribe)); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const sourceObj = this.sourceObj; + const eventName = this.eventName; + const options = this.options; + const selector = this.selector; + let handler = selector ? (...args) => { + let result = tryCatch(selector)(...args); + if (result === errorObject) { + subscriber.error(errorObject.e); + } + else { + subscriber.next(result); + } + } : (e) => subscriber.next(e); + FromEventObservable.setupSubscription(sourceObj, eventName, handler, subscriber, options); + } +} +//# sourceMappingURL=FromEventObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventObservable.js.map new file mode 100644 index 00000000000000..6c88cee72b0f37 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FromEventObservable.js","sourceRoot":"","sources":["../../src/observable/FromEventObservable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventPatternObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventPatternObservable.js new file mode 100644 index 00000000000000..da0aa4e10f2048 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventPatternObservable.js @@ -0,0 +1,99 @@ +import { isFunction } from '../util/isFunction'; +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class FromEventPatternObservable extends Observable { + constructor(addHandler, removeHandler, selector) { + super(); + this.addHandler = addHandler; + this.removeHandler = removeHandler; + this.selector = selector; + } + /** + * Creates an Observable from an API based on addHandler/removeHandler + * functions. + * + * Converts any addHandler/removeHandler API to an + * Observable. + * + * + * + * Creates an Observable by using the `addHandler` and `removeHandler` + * functions to add and remove the handlers, with an optional selector + * function to project the event arguments to a result. The `addHandler` is + * called when the output Observable is subscribed, and `removeHandler` is + * called when the Subscription is unsubscribed. + * + * @example Emits clicks happening on the DOM document + * function addClickHandler(handler) { + * document.addEventListener('click', handler); + * } + * + * function removeClickHandler(handler) { + * document.removeEventListener('click', handler); + * } + * + * var clicks = Rx.Observable.fromEventPattern( + * addClickHandler, + * removeClickHandler + * ); + * clicks.subscribe(x => console.log(x)); + * + * @see {@link from} + * @see {@link fromEvent} + * + * @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, signal?: any): void} [removeHandler] An optional function that + * takes a `handler` function as argument and removes it in case it was + * previously attached using `addHandler`. if addHandler returns signal to teardown when remove, + * removeHandler function will forward it. + * @param {function(...args: any): T} [selector] An optional function to + * post-process results. It takes the arguments from the event handler and + * should return a single value. + * @return {Observable} + * @static true + * @name fromEventPattern + * @owner Observable + */ + static create(addHandler, removeHandler, selector) { + return new FromEventPatternObservable(addHandler, removeHandler, selector); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const removeHandler = this.removeHandler; + const handler = !!this.selector ? (...args) => { + this._callSelector(subscriber, args); + } : function (e) { subscriber.next(e); }; + const retValue = this._callAddHandler(handler, subscriber); + if (!isFunction(removeHandler)) { + return; + } + subscriber.add(new Subscription(() => { + //TODO: determine whether or not to forward to error handler + removeHandler(handler, retValue); + })); + } + _callSelector(subscriber, args) { + try { + const result = this.selector(...args); + subscriber.next(result); + } + catch (e) { + subscriber.error(e); + } + } + _callAddHandler(handler, errorSubscriber) { + try { + return this.addHandler(handler) || null; + } + catch (e) { + errorSubscriber.error(e); + } + } +} +//# sourceMappingURL=FromEventPatternObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventPatternObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventPatternObservable.js.map new file mode 100644 index 00000000000000..ce7234bfc533f5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromEventPatternObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FromEventPatternObservable.js","sourceRoot":"","sources":["../../src/observable/FromEventPatternObservable.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB;OACxC,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,YAAY,EAAE,MAAM,iBAAiB;AAG9C;;;;GAIG;AACH,gDAAmD,UAAU;IAwD3D,YAAoB,UAAsC,EACtC,aAAyD,EACzD,QAAqC;QACvD,OAAO,CAAC;QAHU,eAAU,GAAV,UAAU,CAA4B;QACtC,kBAAa,GAAb,aAAa,CAA4C;QACzD,aAAQ,GAAR,QAAQ,CAA6B;IAEzD,CAAC;IA1DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACH,OAAO,MAAM,CAAI,UAAsC,EACtC,aAAyD,EACzD,QAAqC;QACpD,MAAM,CAAC,IAAI,0BAA0B,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAQD,oCAAoC,CAAC,UAAU,CAAC,UAAyB;QACvE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAgB;YACpD,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,GAAG,UAAS,CAAM,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE3D,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC;QACT,CAAC;QAED,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;YAC9B,4DAA4D;YAC5D,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAE;QACpC,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,aAAa,CAAC,UAAyB,EAAE,IAAgB;QAC/D,IAAI,CAAC;YACH,MAAM,MAAM,GAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;YACzC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CACA;QAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,OAAyB,EAAE,eAA8B;QAC/E,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QAC1C,CACA;QAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromObservable.js new file mode 100644 index 00000000000000..85ebbbfb392e1b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromObservable.js @@ -0,0 +1,113 @@ +import { isArray } from '../util/isArray'; +import { isArrayLike } from '../util/isArrayLike'; +import { isPromise } from '../util/isPromise'; +import { PromiseObservable } from './PromiseObservable'; +import { IteratorObservable } from './IteratorObservable'; +import { ArrayObservable } from './ArrayObservable'; +import { ArrayLikeObservable } from './ArrayLikeObservable'; +import { iterator as Symbol_iterator } from '../symbol/iterator'; +import { Observable } from '../Observable'; +import { ObserveOnSubscriber } from '../operators/observeOn'; +import { observable as Symbol_observable } from '../symbol/observable'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class FromObservable extends Observable { + constructor(ish, scheduler) { + super(null); + this.ish = ish; + this.scheduler = scheduler; + } + /** + * 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. + * + * + * + * Convert various other objects and data types into Observables. `from` + * converts a Promise or an array-like or an + * [iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable) + * object into an Observable that emits the items in that promise or 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. + * + * @example Converts an array to an Observable + * var array = [10, 20, 30]; + * var result = Rx.Observable.from(array); + * result.subscribe(x => console.log(x)); + * + * // Results in the following: + * // 10 20 30 + * + * @example Convert an infinite iterable (from a generator) to an Observable + * function* generateDoubles(seed) { + * var i = seed; + * while (true) { + * yield i; + * i = 2 * i; // double it + * } + * } + * + * var iterator = generateDoubles(3); + * var result = Rx.Observable.from(iterator).take(10); + * result.subscribe(x => console.log(x)); + * + * // Results in the following: + * // 3 6 12 24 48 96 192 384 768 1536 + * + * @see {@link create} + * @see {@link fromEvent} + * @see {@link fromEventPattern} + * @see {@link fromPromise} + * + * @param {ObservableInput} ish A subscribable object, a Promise, an + * Observable-like, an Array, an iterable or an array-like object to be + * converted. + * @param {Scheduler} [scheduler] The scheduler on which to schedule the + * emissions of values. + * @return {Observable} The Observable whose values are originally from the + * input object that was converted. + * @static true + * @name from + * @owner Observable + */ + static create(ish, scheduler) { + if (ish != null) { + if (typeof ish[Symbol_observable] === 'function') { + if (ish instanceof Observable && !scheduler) { + return ish; + } + return new FromObservable(ish, scheduler); + } + else if (isArray(ish)) { + return new ArrayObservable(ish, scheduler); + } + else if (isPromise(ish)) { + return new PromiseObservable(ish, scheduler); + } + else if (typeof ish[Symbol_iterator] === 'function' || typeof ish === 'string') { + return new IteratorObservable(ish, scheduler); + } + else if (isArrayLike(ish)) { + return new ArrayLikeObservable(ish, scheduler); + } + } + throw new TypeError((ish !== null && typeof ish || ish) + ' is not observable'); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const ish = this.ish; + const scheduler = this.scheduler; + if (scheduler == null) { + return ish[Symbol_observable]().subscribe(subscriber); + } + else { + return ish[Symbol_observable]().subscribe(new ObserveOnSubscriber(subscriber, scheduler, 0)); + } + } +} +//# sourceMappingURL=FromObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromObservable.js.map new file mode 100644 index 00000000000000..e3591ce1996fbd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/FromObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FromObservable.js","sourceRoot":"","sources":["../../src/observable/FromObservable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/GenerateObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/GenerateObservable.js new file mode 100644 index 00000000000000..0fc01a91960a1b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/GenerateObservable.js @@ -0,0 +1,126 @@ +import { Observable } from '../Observable'; +import { isScheduler } from '../util/isScheduler'; +const selfSelector = (value) => value; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class GenerateObservable extends Observable { + constructor(initialState, condition, iterate, resultSelector, scheduler) { + super(); + this.initialState = initialState; + this.condition = condition; + this.iterate = iterate; + this.resultSelector = resultSelector; + this.scheduler = scheduler; + } + static create(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) { + if (arguments.length == 1) { + return new GenerateObservable(initialStateOrOptions.initialState, initialStateOrOptions.condition, initialStateOrOptions.iterate, initialStateOrOptions.resultSelector || selfSelector, initialStateOrOptions.scheduler); + } + if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) { + return new GenerateObservable(initialStateOrOptions, condition, iterate, selfSelector, resultSelectorOrObservable); + } + return new GenerateObservable(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + let state = this.initialState; + if (this.scheduler) { + return this.scheduler.schedule(GenerateObservable.dispatch, 0, { + subscriber, + iterate: this.iterate, + condition: this.condition, + resultSelector: this.resultSelector, + state }); + } + const { condition, resultSelector, iterate } = this; + do { + if (condition) { + let conditionResult; + try { + conditionResult = condition(state); + } + catch (err) { + subscriber.error(err); + return; + } + if (!conditionResult) { + subscriber.complete(); + break; + } + } + let value; + try { + value = resultSelector(state); + } + catch (err) { + subscriber.error(err); + return; + } + subscriber.next(value); + if (subscriber.closed) { + break; + } + try { + state = iterate(state); + } + catch (err) { + subscriber.error(err); + return; + } + } while (true); + } + static dispatch(state) { + const { subscriber, condition } = state; + if (subscriber.closed) { + return; + } + if (state.needIterate) { + try { + state.state = state.iterate(state.state); + } + catch (err) { + subscriber.error(err); + return; + } + } + else { + state.needIterate = true; + } + if (condition) { + let conditionResult; + try { + conditionResult = condition(state.state); + } + catch (err) { + subscriber.error(err); + return; + } + if (!conditionResult) { + subscriber.complete(); + return; + } + if (subscriber.closed) { + return; + } + } + let value; + try { + value = state.resultSelector(state.state); + } + catch (err) { + subscriber.error(err); + return; + } + if (subscriber.closed) { + return; + } + subscriber.next(value); + if (subscriber.closed) { + return; + } + return this.schedule(state); + } +} +//# sourceMappingURL=GenerateObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/GenerateObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/GenerateObservable.js.map new file mode 100644 index 00000000000000..fc0d926af1561b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/GenerateObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GenerateObservable.js","sourceRoot":"","sources":["../../src/observable/GenerateObservable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IfObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IfObservable.js new file mode 100644 index 00000000000000..0afc876f607389 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IfObservable.js @@ -0,0 +1,50 @@ +import { Observable } from '../Observable'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { OuterSubscriber } from '../OuterSubscriber'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class IfObservable extends Observable { + constructor(condition, thenSource, elseSource) { + super(); + this.condition = condition; + this.thenSource = thenSource; + this.elseSource = elseSource; + } + static create(condition, thenSource, elseSource) { + return new IfObservable(condition, thenSource, elseSource); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const { condition, thenSource, elseSource } = this; + return new IfSubscriber(subscriber, condition, thenSource, elseSource); + } +} +class IfSubscriber extends OuterSubscriber { + constructor(destination, condition, thenSource, elseSource) { + super(destination); + this.condition = condition; + this.thenSource = thenSource; + this.elseSource = elseSource; + this.tryIf(); + } + tryIf() { + const { condition, thenSource, elseSource } = this; + let result; + try { + result = condition(); + const source = result ? thenSource : elseSource; + if (source) { + this.add(subscribeToResult(this, source)); + } + else { + this._complete(); + } + } + catch (err) { + this._error(err); + } + } +} +//# sourceMappingURL=IfObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IfObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IfObservable.js.map new file mode 100644 index 00000000000000..9b94f0b404a535 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IfObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"IfObservable.js","sourceRoot":"","sources":["../../src/observable/IfObservable.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAyB,MAAM,eAAe;OAI1D,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;OACtD,EAAE,eAAe,EAAE,MAAM,oBAAoB;AACpD;;;;GAIG;AACH,kCAAwC,UAAU;IAQhD,YAAoB,SAA+B,EAC/B,UAA4C,EAC5C,UAA4C;QAC9D,OAAO,CAAC;QAHU,cAAS,GAAT,SAAS,CAAsB;QAC/B,eAAU,GAAV,UAAU,CAAkC;QAC5C,eAAU,GAAV,UAAU,CAAkC;IAEhE,CAAC;IAVD,OAAO,MAAM,CAAO,SAA+B,EAC/B,UAA4C,EAC5C,UAA4C;QAC9D,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAQD,oCAAoC,CAAC,UAAU,CAAC,UAA2B;QACzE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAEnD,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,2BAAiC,eAAe;IAC9C,YAAY,WAA0B,EAClB,SAA+B,EAC/B,UAA4C,EAC5C,UAA4C;QAC9D,MAAM,WAAW,CAAC,CAAC;QAHD,cAAS,GAAT,SAAS,CAAsB;QAC/B,eAAU,GAAV,UAAU,CAAkC;QAC5C,eAAU,GAAV,UAAU,CAAkC;QAE9D,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEO,KAAK;QACX,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAEnD,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAY,SAAS,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;YAEhD,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5C,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;QACH,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IntervalObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IntervalObservable.js new file mode 100644 index 00000000000000..a53608dbcaf1bb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IntervalObservable.js @@ -0,0 +1,75 @@ +import { isNumeric } from '../util/isNumeric'; +import { Observable } from '../Observable'; +import { async } from '../scheduler/async'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class IntervalObservable extends Observable { + constructor(period = 0, scheduler = async) { + super(); + this.period = period; + this.scheduler = scheduler; + if (!isNumeric(period) || period < 0) { + this.period = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + this.scheduler = async; + } + } + /** + * Creates an Observable that emits sequential numbers every specified + * interval of time, on a specified IScheduler. + * + * Emits incremental numbers periodically in time. + * + * + * + * + * `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` IScheduler to provide a notion of time, but you may pass any + * IScheduler to it. + * + * @example Emits ascending numbers, one every second (1000ms) + * var numbers = Rx.Observable.interval(1000); + * numbers.subscribe(x => console.log(x)); + * + * @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 {Scheduler} [scheduler=async] The IScheduler 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 + */ + static create(period = 0, scheduler = async) { + return new IntervalObservable(period, scheduler); + } + static dispatch(state) { + const { index, subscriber, period } = state; + subscriber.next(index); + if (subscriber.closed) { + return; + } + state.index += 1; + this.schedule(state, period); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const index = 0; + const period = this.period; + const scheduler = this.scheduler; + subscriber.add(scheduler.schedule(IntervalObservable.dispatch, period, { + index, subscriber, period + })); + } +} +//# sourceMappingURL=IntervalObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IntervalObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IntervalObservable.js.map new file mode 100644 index 00000000000000..898b42cdeb256a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IntervalObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"IntervalObservable.js","sourceRoot":"","sources":["../../src/observable/IntervalObservable.ts"],"names":[],"mappings":"OACO,EAAE,SAAS,EAAE,MAAM,mBAAmB;OAEtC,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,KAAK,EAAE,MAAM,oBAAoB;AAE1C;;;;GAIG;AACH,wCAAwC,UAAU;IAqDhD,YAAoB,MAAM,GAAW,CAAC,EAClB,SAAS,GAAe,KAAK;QAC/C,OAAO,CAAC;QAFU,WAAM,GAAN,MAAM,CAAY;QAClB,cAAS,GAAT,SAAS,CAAoB;QAE/C,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IA7DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,OAAO,MAAM,CAAC,MAAM,GAAW,CAAC,EAClB,SAAS,GAAe,KAAK;QACzC,MAAM,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,QAAQ,CAAC,KAAU;QACxB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAE5C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvB,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAED,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAEV,IAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAaD,oCAAoC,CAAC,UAAU,CAAC,UAA8B;QAC5E,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE;YACrE,KAAK,EAAE,UAAU,EAAE,MAAM;SAC1B,CAAC,CAAC,CAAC;IACN,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IteratorObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IteratorObservable.js new file mode 100644 index 00000000000000..e7955e51b1a533 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IteratorObservable.js @@ -0,0 +1,148 @@ +import { root } from '../util/root'; +import { Observable } from '../Observable'; +import { iterator as Symbol_iterator } from '../symbol/iterator'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class IteratorObservable extends Observable { + constructor(iterator, scheduler) { + super(); + this.scheduler = scheduler; + if (iterator == null) { + throw new Error('iterator cannot be null.'); + } + this.iterator = getIterator(iterator); + } + static create(iterator, scheduler) { + return new IteratorObservable(iterator, scheduler); + } + static dispatch(state) { + const { index, hasError, iterator, subscriber } = state; + if (hasError) { + subscriber.error(state.error); + return; + } + let result = iterator.next(); + if (result.done) { + subscriber.complete(); + return; + } + subscriber.next(result.value); + state.index = index + 1; + if (subscriber.closed) { + if (typeof iterator.return === 'function') { + iterator.return(); + } + return; + } + this.schedule(state); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + let index = 0; + const { iterator, scheduler } = this; + if (scheduler) { + return scheduler.schedule(IteratorObservable.dispatch, 0, { + index, iterator, subscriber + }); + } + else { + do { + let result = iterator.next(); + if (result.done) { + subscriber.complete(); + break; + } + else { + subscriber.next(result.value); + } + if (subscriber.closed) { + if (typeof iterator.return === 'function') { + iterator.return(); + } + break; + } + } while (true); + } + } +} +class StringIterator { + constructor(str, idx = 0, len = str.length) { + this.str = str; + this.idx = idx; + this.len = len; + } + [Symbol_iterator]() { return (this); } + next() { + return this.idx < this.len ? { + done: false, + value: this.str.charAt(this.idx++) + } : { + done: true, + value: undefined + }; + } +} +class ArrayIterator { + constructor(arr, idx = 0, len = toLength(arr)) { + this.arr = arr; + this.idx = idx; + this.len = len; + } + [Symbol_iterator]() { return this; } + next() { + return this.idx < this.len ? { + done: false, + value: this.arr[this.idx++] + } : { + done: true, + value: undefined + }; + } +} +function getIterator(obj) { + const i = obj[Symbol_iterator]; + if (!i && typeof obj === 'string') { + return new StringIterator(obj); + } + if (!i && obj.length !== undefined) { + return new ArrayIterator(obj); + } + if (!i) { + throw new TypeError('object is not iterable'); + } + return obj[Symbol_iterator](); +} +const maxSafeInteger = Math.pow(2, 53) - 1; +function toLength(o) { + let len = +o.length; + if (isNaN(len)) { + return 0; + } + if (len === 0 || !numberIsFinite(len)) { + return len; + } + len = sign(len) * Math.floor(Math.abs(len)); + if (len <= 0) { + return 0; + } + if (len > maxSafeInteger) { + return maxSafeInteger; + } + return len; +} +function numberIsFinite(value) { + return typeof value === 'number' && root.isFinite(value); +} +function sign(value) { + let valueAsNumber = +value; + if (valueAsNumber === 0) { + return valueAsNumber; + } + if (isNaN(valueAsNumber)) { + return valueAsNumber; + } + return valueAsNumber < 0 ? -1 : 1; +} +//# sourceMappingURL=IteratorObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IteratorObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IteratorObservable.js.map new file mode 100644 index 00000000000000..e48fa0d1d40528 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/IteratorObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"IteratorObservable.js","sourceRoot":"","sources":["../../src/observable/IteratorObservable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/NeverObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/NeverObservable.js new file mode 100644 index 00000000000000..d3b40d38311a95 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/NeverObservable.js @@ -0,0 +1,50 @@ +import { Observable } from '../Observable'; +import { noop } from '../util/noop'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class NeverObservable extends Observable { + constructor() { + super(); + } + /** + * Creates an Observable that emits no items to the Observer. + * + * An Observable that never emits anything. + * + * + * + * This static operator is useful for creating 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). + * function info() { + * console.log('Will not be called'); + * } + * var result = Rx.Observable.never().startWith(7); + * result.subscribe(x => console.log(x), info, info); + * + * @see {@link create} + * @see {@link empty} + * @see {@link of} + * @see {@link throw} + * + * @return {Observable} A "never" Observable: never emits anything. + * @static true + * @name never + * @owner Observable + */ + static create() { + return new NeverObservable(); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + noop(); + } +} +//# sourceMappingURL=NeverObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/NeverObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/NeverObservable.js.map new file mode 100644 index 00000000000000..0f35a33e802442 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/NeverObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NeverObservable.js","sourceRoot":"","sources":["../../src/observable/NeverObservable.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,eAAe;OAEnC,EAAE,IAAI,EAAE,MAAM,cAAc;AAEnC;;;;GAIG;AACH,qCAAwC,UAAU;IAoChD;QACE,OAAO,CAAC;IACV,CAAC;IArCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,OAAO,MAAM;QACX,MAAM,CAAC,IAAI,eAAe,EAAK,CAAC;IAClC,CAAC;IAMD,oCAAoC,CAAC,UAAU,CAAC,UAAyB;QACvE,IAAI,EAAE,CAAC;IACT,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PairsObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PairsObservable.js new file mode 100644 index 00000000000000..74850518bee2fe --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PairsObservable.js @@ -0,0 +1,76 @@ +import { Observable } from '../Observable'; +function dispatch(state) { + const { obj, keys, length, index, subscriber } = state; + if (index === length) { + subscriber.complete(); + return; + } + const key = keys[index]; + subscriber.next([key, obj[key]]); + state.index = index + 1; + this.schedule(state); +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class PairsObservable extends Observable { + constructor(obj, scheduler) { + super(); + this.obj = obj; + this.scheduler = scheduler; + this.keys = Object.keys(obj); + } + /** + * Convert an object into an observable sequence of [key, value] pairs + * using an optional IScheduler to enumerate the object. + * + * @example Converts a javascript object to an Observable + * var obj = { + * foo: 42, + * bar: 56, + * baz: 78 + * }; + * + * var source = Rx.Observable.pairs(obj); + * + * var subscription = source.subscribe( + * function (x) { + * console.log('Next: %s', x); + * }, + * function (err) { + * console.log('Error: %s', err); + * }, + * function () { + * console.log('Completed'); + * }); + * + * @param {Object} obj The object to inspect and turn into an + * Observable sequence. + * @param {Scheduler} [scheduler] An optional IScheduler to run the + * enumeration of the input sequence on. + * @returns {(Observable>)} An observable sequence of + * [key, value] pairs from the object. + */ + static create(obj, scheduler) { + return new PairsObservable(obj, scheduler); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const { keys, scheduler } = this; + const length = keys.length; + if (scheduler) { + return scheduler.schedule(dispatch, 0, { + obj: this.obj, keys, length, index: 0, subscriber + }); + } + else { + for (let idx = 0; idx < length; idx++) { + const key = keys[idx]; + subscriber.next([key, this.obj[key]]); + } + subscriber.complete(); + } + } +} +//# sourceMappingURL=PairsObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PairsObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PairsObservable.js.map new file mode 100644 index 00000000000000..eeaad78db668e9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PairsObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PairsObservable.js","sourceRoot":"","sources":["../../src/observable/PairsObservable.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;AAY1C,kBAAoD,KAAsB;IACxE,MAAM,EAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAC,GAAG,KAAK,CAAC;IAErD,EAAE,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC;QACrB,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,CAAC;IACT,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEjC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IAExB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,qCAAwC,UAAU;IAsChD,YAAoB,GAAW,EAAU,SAAsB;QAC7D,OAAO,CAAC;QADU,QAAG,GAAH,GAAG,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAa;QAE7D,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAtCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,OAAO,MAAM,CAAI,GAAW,EAAE,SAAsB;QAClD,MAAM,CAAC,IAAI,eAAe,CAAI,GAAG,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAOD,oCAAoC,CAAC,UAAU,CAAC,UAAyC;QACvF,MAAM,EAAC,IAAI,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACrC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU;aAClD,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;gBACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PromiseObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PromiseObservable.js new file mode 100644 index 00000000000000..7f79715c7c10ec --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PromiseObservable.js @@ -0,0 +1,111 @@ +import { root } from '../util/root'; +import { Observable } from '../Observable'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class PromiseObservable extends Observable { + constructor(promise, scheduler) { + super(); + this.promise = promise; + this.scheduler = scheduler; + } + /** + * Converts a Promise to an Observable. + * + * Returns an Observable that just emits the Promise's + * resolved value, then completes. + * + * Converts an ES2015 Promise or a Promises/A+ spec compliant Promise to an + * Observable. If the Promise resolves with a value, the output Observable + * emits that resolved value as a `next`, and then completes. If the Promise + * is rejected, then the output Observable emits the corresponding Error. + * + * @example Convert the Promise returned by Fetch to an Observable + * var result = Rx.Observable.fromPromise(fetch('http://myserver.com/')); + * result.subscribe(x => console.log(x), e => console.error(e)); + * + * @see {@link bindCallback} + * @see {@link from} + * + * @param {PromiseLike} promise The promise to be converted. + * @param {Scheduler} [scheduler] An optional IScheduler to use for scheduling + * the delivery of the resolved value (or the rejection). + * @return {Observable} An Observable which wraps the Promise. + * @static true + * @name fromPromise + * @owner Observable + */ + static create(promise, scheduler) { + return new PromiseObservable(promise, scheduler); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const promise = this.promise; + const scheduler = this.scheduler; + if (scheduler == null) { + if (this._isScalar) { + if (!subscriber.closed) { + subscriber.next(this.value); + subscriber.complete(); + } + } + else { + promise.then((value) => { + this.value = value; + this._isScalar = true; + if (!subscriber.closed) { + subscriber.next(value); + subscriber.complete(); + } + }, (err) => { + if (!subscriber.closed) { + subscriber.error(err); + } + }) + .then(null, err => { + // escape the promise trap, throw unhandled errors + root.setTimeout(() => { throw err; }); + }); + } + } + else { + if (this._isScalar) { + if (!subscriber.closed) { + return scheduler.schedule(dispatchNext, 0, { value: this.value, subscriber }); + } + } + else { + promise.then((value) => { + this.value = value; + this._isScalar = true; + if (!subscriber.closed) { + subscriber.add(scheduler.schedule(dispatchNext, 0, { value, subscriber })); + } + }, (err) => { + if (!subscriber.closed) { + subscriber.add(scheduler.schedule(dispatchError, 0, { err, subscriber })); + } + }) + .then(null, (err) => { + // escape the promise trap, throw unhandled errors + root.setTimeout(() => { throw err; }); + }); + } + } + } +} +function dispatchNext(arg) { + const { value, subscriber } = arg; + if (!subscriber.closed) { + subscriber.next(value); + subscriber.complete(); + } +} +function dispatchError(arg) { + const { err, subscriber } = arg; + if (!subscriber.closed) { + subscriber.error(err); + } +} +//# sourceMappingURL=PromiseObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PromiseObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PromiseObservable.js.map new file mode 100644 index 00000000000000..bc1ea69a39f6cf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/PromiseObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PromiseObservable.js","sourceRoot":"","sources":["../../src/observable/PromiseObservable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/RangeObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/RangeObservable.js new file mode 100644 index 00000000000000..a4f86fe116a08b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/RangeObservable.js @@ -0,0 +1,85 @@ +import { Observable } from '../Observable'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class RangeObservable extends Observable { + constructor(start, count, scheduler) { + super(); + this.start = start; + this._count = count; + this.scheduler = scheduler; + } + /** + * Creates an Observable that emits a sequence of numbers within a specified + * range. + * + * Emits a sequence of numbers in a range. + * + * + * + * `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 + * IScheduler and just delivers the notifications synchronously, but may use + * an optional IScheduler to regulate those deliveries. + * + * @example Emits the numbers 1 to 10 + * var numbers = Rx.Observable.range(1, 10); + * numbers.subscribe(x => console.log(x)); + * + * @see {@link timer} + * @see {@link interval} + * + * @param {number} [start=0] The value of the first integer in the sequence. + * @param {number} [count=0] The number of sequential integers to generate. + * @param {Scheduler} [scheduler] A {@link IScheduler} 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 + */ + static create(start = 0, count = 0, scheduler) { + return new RangeObservable(start, count, scheduler); + } + static 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); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + let index = 0; + let start = this.start; + const count = this._count; + const scheduler = this.scheduler; + if (scheduler) { + return scheduler.schedule(RangeObservable.dispatch, 0, { + index, count, start, subscriber + }); + } + else { + do { + if (index++ >= count) { + subscriber.complete(); + break; + } + subscriber.next(start++); + if (subscriber.closed) { + break; + } + } while (true); + } + } +} +//# sourceMappingURL=RangeObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/RangeObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/RangeObservable.js.map new file mode 100644 index 00000000000000..55d8b37ca3b9f9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/RangeObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RangeObservable.js","sourceRoot":"","sources":["../../src/observable/RangeObservable.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;AAI1C;;;;GAIG;AACH,qCAAqC,UAAU;IA+D7C,YAAY,KAAa,EACb,KAAa,EACb,SAAsB;QAChC,OAAO,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IApED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,OAAO,MAAM,CAAC,KAAK,GAAW,CAAC,EACjB,KAAK,GAAW,CAAC,EACjB,SAAsB;QAClC,MAAM,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,QAAQ,CAAC,KAAU;QAExB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAElD,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;YACnB,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvB,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QACxB,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QAEjB,IAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAeD,oCAAoC,CAAC,UAAU,CAAC,UAA8B;QAC5E,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACrD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU;aAChC,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,GAAG,CAAC;gBACF,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC;oBACrB,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACtB,KAAK,CAAC;gBACR,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzB,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;oBACtB,KAAK,CAAC;gBACR,CAAC;YACH,CAAC,QAAQ,IAAI,EAAE;QACjB,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ScalarObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ScalarObservable.js new file mode 100644 index 00000000000000..c5400be993c90d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ScalarObservable.js @@ -0,0 +1,49 @@ +import { Observable } from '../Observable'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class ScalarObservable extends Observable { + constructor(value, scheduler) { + super(); + this.value = value; + this.scheduler = scheduler; + this._isScalar = true; + if (scheduler) { + this._isScalar = false; + } + } + static create(value, scheduler) { + return new ScalarObservable(value, scheduler); + } + static dispatch(state) { + const { done, value, subscriber } = state; + if (done) { + subscriber.complete(); + return; + } + subscriber.next(value); + if (subscriber.closed) { + return; + } + state.done = true; + this.schedule(state); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const value = this.value; + const scheduler = this.scheduler; + if (scheduler) { + return scheduler.schedule(ScalarObservable.dispatch, 0, { + done: false, value, subscriber + }); + } + else { + subscriber.next(value); + if (!subscriber.closed) { + subscriber.complete(); + } + } + } +} +//# sourceMappingURL=ScalarObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ScalarObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ScalarObservable.js.map new file mode 100644 index 00000000000000..f516eb9e9ab548 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/ScalarObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ScalarObservable.js","sourceRoot":"","sources":["../../src/observable/ScalarObservable.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;AAI1C;;;;GAIG;AACH,sCAAyC,UAAU;IAwBjD,YAAmB,KAAQ,EAAU,SAAsB;QACzD,OAAO,CAAC;QADS,UAAK,GAAL,KAAK,CAAG;QAAU,cAAS,GAAT,SAAS,CAAa;QAF3D,cAAS,GAAY,IAAI,CAAC;QAIxB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IA5BD,OAAO,MAAM,CAAI,KAAQ,EAAE,SAAsB;QAC/C,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,QAAQ,CAAC,KAAU;QACxB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAE1C,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACT,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAED,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QACX,IAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAWD,oCAAoC,CAAC,UAAU,CAAC,UAAyB;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACtD,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU;aAC/B,CAAC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/SubscribeOnObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/SubscribeOnObservable.js new file mode 100644 index 00000000000000..aa92dbffeaab04 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/SubscribeOnObservable.js @@ -0,0 +1,38 @@ +import { Observable } from '../Observable'; +import { asap } from '../scheduler/asap'; +import { isNumeric } from '../util/isNumeric'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +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)); + } + /** @deprecated internal use only */ _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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/SubscribeOnObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/SubscribeOnObservable.js.map new file mode 100644 index 00000000000000..05b8a3879d484d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/SubscribeOnObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscribeOnObservable.js","sourceRoot":"","sources":["../../src/observable/SubscribeOnObservable.ts"],"names":[],"mappings":"OAIO,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,IAAI,EAAE,MAAM,mBAAmB;OACjC,EAAE,SAAS,EAAE,MAAM,mBAAmB;AAO7C;;;;GAIG;AACH,2CAA8C,UAAU;IAUtD,YAAmB,MAAqB,EACpB,SAAS,GAAW,CAAC,EACrB,SAAS,GAAe,IAAI;QAC9C,OAAO,CAAC;QAHS,WAAM,GAAN,MAAM,CAAe;QACpB,cAAS,GAAT,SAAS,CAAY;QACrB,cAAS,GAAT,SAAS,CAAmB;QAE9C,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAnBD,OAAO,MAAM,CAAI,MAAqB,EAAE,KAAK,GAAW,CAAC,EAAE,SAAS,GAAe,IAAI;QACrF,MAAM,CAAC,IAAI,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,QAAQ,CAAqB,GAAmB;QACrD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAChD,CAAC;IAcD,oCAAoC,CAAC,UAAU,CAAC,UAAyB;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE;YAC/D,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/TimerObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/TimerObservable.js new file mode 100644 index 00000000000000..4a2e2403f11e23 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/TimerObservable.js @@ -0,0 +1,96 @@ +import { isNumeric } from '../util/isNumeric'; +import { Observable } from '../Observable'; +import { async } from '../scheduler/async'; +import { isScheduler } from '../util/isScheduler'; +import { isDate } from '../util/isDate'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class TimerObservable extends Observable { + constructor(dueTime = 0, period, scheduler) { + super(); + this.period = -1; + this.dueTime = 0; + if (isNumeric(period)) { + this.period = Number(period) < 1 && 1 || Number(period); + } + else if (isScheduler(period)) { + scheduler = period; + } + if (!isScheduler(scheduler)) { + scheduler = async; + } + this.scheduler = scheduler; + this.dueTime = isDate(dueTime) ? + (+dueTime - this.scheduler.now()) : + dueTime; + } + /** + * Creates an Observable that starts emitting after an `initialDelay` and + * emits ever increasing numbers after each `period` of time thereafter. + * + * Its like {@link interval}, but you can specify when + * should the emissions start. + * + * + * + * `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 + * `initialDelay`. The initial delay may be a {@link Date}. By default, this + * operator uses the `async` IScheduler to provide a notion of time, but you + * may pass any IScheduler to it. If `period` is not specified, the output + * Observable emits only one value, `0`. Otherwise, it emits an infinite + * sequence. + * + * @example Emits ascending numbers, one every second (1000ms), starting after 3 seconds + * var numbers = Rx.Observable.timer(3000, 1000); + * numbers.subscribe(x => console.log(x)); + * + * @example Emits one number after five seconds + * var numbers = Rx.Observable.timer(5000); + * numbers.subscribe(x => console.log(x)); + * + * @see {@link interval} + * @see {@link delay} + * + * @param {number|Date} initialDelay The initial delay time to wait before + * emitting the first value of `0`. + * @param {number} [period] The period of time between emissions of the + * subsequent numbers. + * @param {Scheduler} [scheduler=async] The IScheduler to use for scheduling + * the emission of values, and providing a notion of "time". + * @return {Observable} An Observable that emits a `0` after the + * `initialDelay` and ever increasing numbers after each `period` of time + * thereafter. + * @static true + * @name timer + * @owner Observable + */ + static create(initialDelay = 0, period, scheduler) { + return new TimerObservable(initialDelay, period, scheduler); + } + static dispatch(state) { + const { index, period, subscriber } = state; + const action = this; + subscriber.next(index); + if (subscriber.closed) { + return; + } + else if (period === -1) { + return subscriber.complete(); + } + state.index = index + 1; + action.schedule(state, period); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const index = 0; + const { period, dueTime, scheduler } = this; + return scheduler.schedule(TimerObservable.dispatch, dueTime, { + index, period, subscriber + }); + } +} +//# sourceMappingURL=TimerObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/TimerObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/TimerObservable.js.map new file mode 100644 index 00000000000000..afafc848e43940 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/TimerObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TimerObservable.js","sourceRoot":"","sources":["../../src/observable/TimerObservable.ts"],"names":[],"mappings":"OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB;OAEtC,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,KAAK,EAAE,MAAM,oBAAoB;OACnC,EAAE,WAAW,EAAE,MAAM,qBAAqB;OAC1C,EAAE,MAAM,EAAE,MAAM,gBAAgB;AAIvC;;;;GAIG;AACH,qCAAqC,UAAU;IAuE7C,YAAY,OAAO,GAAkB,CAAC,EAC1B,MAA4B,EAC5B,SAAsB;QAChC,OAAO,CAAC;QAPF,WAAM,GAAW,CAAC,CAAC,CAAC;QACpB,YAAO,GAAW,CAAC,CAAC;QAQ1B,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B,SAAS,GAAgB,MAAM,CAAC;QAClC,CAAC;QAED,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC5B,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC5B,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YACvB,OAAQ,CAAC;IACvB,CAAC;IAxFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,OAAO,MAAM,CAAC,YAAY,GAAkB,CAAC,EAC/B,MAA4B,EAC5B,SAAsB;QAClC,MAAM,CAAC,IAAI,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,QAAQ,CAAC,KAAU;QAExB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAC5C,MAAM,MAAM,GAAU,IAAK,CAAC;QAE5B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvB,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACT,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QACxB,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IA2BD,oCAAoC,CAAC,UAAU,CAAC,UAA8B;QAC5E,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAE5C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE;YAC3D,KAAK,EAAE,MAAM,EAAE,UAAU;SAC1B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/UsingObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/UsingObservable.js new file mode 100644 index 00000000000000..2774a393e375af --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/UsingObservable.js @@ -0,0 +1,50 @@ +import { Observable } from '../Observable'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { OuterSubscriber } from '../OuterSubscriber'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class UsingObservable extends Observable { + constructor(resourceFactory, observableFactory) { + super(); + this.resourceFactory = resourceFactory; + this.observableFactory = observableFactory; + } + static create(resourceFactory, observableFactory) { + return new UsingObservable(resourceFactory, observableFactory); + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const { resourceFactory, observableFactory } = this; + let resource; + try { + resource = resourceFactory(); + return new UsingSubscriber(subscriber, resource, observableFactory); + } + catch (err) { + subscriber.error(err); + } + } +} +class UsingSubscriber extends OuterSubscriber { + constructor(destination, resource, observableFactory) { + super(destination); + this.resource = resource; + this.observableFactory = observableFactory; + destination.add(resource); + this.tryUse(); + } + tryUse() { + try { + const source = this.observableFactory.call(this, this.resource); + if (source) { + this.add(subscribeToResult(this, source)); + } + } + catch (err) { + this._error(err); + } + } +} +//# sourceMappingURL=UsingObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/UsingObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/UsingObservable.js.map new file mode 100644 index 00000000000000..a2e85df23e07eb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/UsingObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UsingObservable.js","sourceRoot":"","sources":["../../src/observable/UsingObservable.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAyB,MAAM,eAAe;OAI1D,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;OACtD,EAAE,eAAe,EAAE,MAAM,oBAAoB;AACpD;;;;GAIG;AACH,qCAAwC,UAAU;IAOhD,YAAoB,eAAmD,EACnD,iBAAuF;QACzG,OAAO,CAAC;QAFU,oBAAe,GAAf,eAAe,CAAoC;QACnD,sBAAiB,GAAjB,iBAAiB,CAAsE;IAE3G,CAAC;IARD,OAAO,MAAM,CAAI,eAAmD,EACnD,iBAAuF;QACtG,MAAM,CAAC,IAAI,eAAe,CAAI,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACpE,CAAC;IAOD,oCAAoC,CAAC,UAAU,CAAC,UAAyB;QACvE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;QAEpD,IAAI,QAA+B,CAAC;QAEpC,IAAI,CAAC;YACH,QAAQ,GAA0B,eAAe,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACtE,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED,8BAAiC,eAAe;IAC9C,YAAY,WAA0B,EAClB,QAA+B,EAC/B,iBAAuF;QACzG,MAAM,WAAW,CAAC,CAAC;QAFD,aAAQ,GAAR,QAAQ,CAAuB;QAC/B,sBAAiB,GAAjB,iBAAiB,CAAsE;QAEzG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEO,MAAM;QACZ,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindCallback.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindCallback.js new file mode 100644 index 00000000000000..f8ff5c54564e59 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindCallback.js @@ -0,0 +1,3 @@ +import { BoundCallbackObservable } from './BoundCallbackObservable'; +export const bindCallback = BoundCallbackObservable.create; +//# sourceMappingURL=bindCallback.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindCallback.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindCallback.js.map new file mode 100644 index 00000000000000..c79cf61eeef2b4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindCallback.js","sourceRoot":"","sources":["../../src/observable/bindCallback.ts"],"names":[],"mappings":"OAAO,EAAG,uBAAuB,EAAG,MAAM,2BAA2B;AAErE,OAAO,MAAM,YAAY,GAAG,uBAAuB,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindNodeCallback.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindNodeCallback.js new file mode 100644 index 00000000000000..028c7079f20358 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindNodeCallback.js @@ -0,0 +1,3 @@ +import { BoundNodeCallbackObservable } from './BoundNodeCallbackObservable'; +export const bindNodeCallback = BoundNodeCallbackObservable.create; +//# sourceMappingURL=bindNodeCallback.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindNodeCallback.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindNodeCallback.js.map new file mode 100644 index 00000000000000..3ac4415fbc4068 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/bindNodeCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindNodeCallback.js","sourceRoot":"","sources":["../../src/observable/bindNodeCallback.ts"],"names":[],"mappings":"OAAO,EAAG,2BAA2B,EAAG,MAAM,+BAA+B;AAE7E,OAAO,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/combineLatest.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/combineLatest.js new file mode 100644 index 00000000000000..0cf7cb2c271fff --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/combineLatest.js @@ -0,0 +1,130 @@ +import { isScheduler } from '../util/isScheduler'; +import { isArray } from '../util/isArray'; +import { ArrayObservable } from './ArrayObservable'; +import { CombineLatestOperator } from '../operators/combineLatest'; +/* 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` 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 that values but last + * will be lost. On the other hand, is some Observable does not emit 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. + * + * + * @example Combine two timer Observables + * const firstTimer = Rx.Observable.timer(0, 1000); // emit 0, 1, 2... after every second, starting from now + * const secondTimer = Rx.Observable.timer(500, 1000); // emit 0, 1, 2... after every second, starting 0,5s from now + * const combinedTimers = Rx.Observable.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 + * + * + * @example Combine an array of Observables + * const observables = [1, 5, 10].map( + * n => Rx.Observable.of(n).delay(n * 1000).startWith(0) // emit 0 and then emit n after n seconds + * ); + * const combined = Rx.Observable.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 + * + * + * @example Use project function to dynamically calculate the Body-Mass Index + * var weight = Rx.Observable.of(70, 72, 76, 79, 75); + * var height = Rx.Observable.of(1.76, 1.77, 1.78); + * var bmi = Rx.Observable.combineLatest(weight, height, (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 {Scheduler} [scheduler=null] The IScheduler 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. + * @static true + * @name combineLatest + * @owner Observable + */ +export function combineLatest(...observables) { + let project = null; + let scheduler = null; + if (isScheduler(observables[observables.length - 1])) { + scheduler = observables.pop(); + } + if (typeof observables[observables.length - 1] === 'function') { + project = 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]; + } + return new ArrayObservable(observables, scheduler).lift(new CombineLatestOperator(project)); +} +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/combineLatest.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/combineLatest.js.map new file mode 100644 index 00000000000000..eecf845af33ae0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sourceRoot":"","sources":["../../src/observable/combineLatest.ts"],"names":[],"mappings":"OAEO,EAAG,WAAW,EAAG,MAAM,qBAAqB;OAC5C,EAAG,OAAO,EAAG,MAAM,iBAAiB;OACpC,EAAG,eAAe,EAAG,MAAM,mBAAmB;OAC9C,EAAG,qBAAqB,EAAG,MAAM,4BAA4B;AAuBpE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2GG;AACH,8BAAoC,GAAG,WAGwB;IAC7D,IAAI,OAAO,GAAkC,IAAI,CAAC;IAClD,IAAI,SAAS,GAAe,IAAI,CAAC;IAEjC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,SAAS,GAAe,WAAW,CAAC,GAAG,EAAE,CAAC;IAC5C,CAAC;IAED,EAAE,CAAC,CAAC,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC;QAC9D,OAAO,GAAiC,WAAW,CAAC,GAAG,EAAE,CAAC;IAC5D,CAAC;IAED,8EAA8E;IAC9E,4EAA4E;IAC5E,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,WAAW,GAA2B,WAAW,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,IAAI,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAO,OAAO,CAAC,CAAC,CAAC;AACpG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/concat.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/concat.js new file mode 100644 index 00000000000000..63759a61681f07 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/concat.js @@ -0,0 +1,105 @@ +import { isScheduler } from '../util/isScheduler'; +import { of } from './of'; +import { from } from './from'; +import { concatAll } from '../operators/concatAll'; +/* 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` 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}. + * + * @example Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10 + * var timer = Rx.Observable.interval(1000).take(4); + * var sequence = Rx.Observable.range(1, 10); + * var result = Rx.Observable.concat(timer, sequence); + * result.subscribe(x => console.log(x)); + * + * // results in: + * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10 + * + * + * @example Concatenate an array of 3 Observables + * var timer1 = Rx.Observable.interval(1000).take(10); + * var timer2 = Rx.Observable.interval(2000).take(6); + * var timer3 = Rx.Observable.interval(500).take(10); + * var result = Rx.Observable.concat([timer1, timer2, timer3]); // note that array is passed + * 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 + * + * + * @example Concatenate the same Observable to repeat it + * const timer = Rx.Observable.interval(1000).take(2); + * + * Rx.Observable.concat(timer, timer) // concating 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} + * + * @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 {Scheduler} [scheduler=null] An optional IScheduler 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(...observables) { + if (observables.length === 1 || (observables.length === 2 && isScheduler(observables[1]))) { + return from(observables[0]); + } + return concatAll()(of(...observables)); +} +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/concat.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/concat.js.map new file mode 100644 index 00000000000000..2e7926986f9fd0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sourceRoot":"","sources":["../../src/observable/concat.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE,MAAM,qBAAqB;OAC1C,EAAE,EAAE,EAAE,MAAM,MAAM;OAClB,EAAE,IAAI,EAAE,MAAM,QAAQ;OACtB,EAAE,SAAS,EAAE,MAAM,wBAAwB;AAWlD,mCAAmC;AACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AACH,uBAA6B,GAAG,WAAqD;IACnF,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,CAAC,IAAI,CAAM,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAkB,CAAC;AAC1D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/defer.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/defer.js new file mode 100644 index 00000000000000..b209da87d5e56b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/defer.js @@ -0,0 +1,3 @@ +import { DeferObservable } from './DeferObservable'; +export const defer = DeferObservable.create; +//# sourceMappingURL=defer.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/defer.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/defer.js.map new file mode 100644 index 00000000000000..8329a27337e12b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/defer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defer.js","sourceRoot":"","sources":["../../src/observable/defer.ts"],"names":[],"mappings":"OAAO,EAAG,eAAe,EAAG,MAAM,mBAAmB;AAErD,OAAO,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/AjaxObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/AjaxObservable.js new file mode 100644 index 00000000000000..3e16e971f9f909 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/AjaxObservable.js @@ -0,0 +1,399 @@ +import { root } from '../../util/root'; +import { tryCatch } from '../../util/tryCatch'; +import { errorObject } from '../../util/errorObject'; +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 + })); +} +; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class AjaxObservable extends Observable { + constructor(urlOrRequest) { + super(); + const request = { + async: true, + createXHR: function () { + return this.crossDomain ? getCORSRequest.call(this) : getXMLHttpRequest(); + }, + crossDomain: false, + 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 internal use only */ _subscribe(subscriber) { + return new AjaxSubscriber(subscriber, this.request); + } +} +/** + * Creates an observable for an Ajax request with either a request object with + * url, headers, etc or a string for a URL. + * + * @example + * source = Rx.Observable.ajax('/products'); + * source = Rx.Observable.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 +*/ +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; +})(); +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class AjaxSubscriber extends Subscriber { + constructor(destination, request) { + super(destination); + this.request = request; + this.done = false; + const headers = request.headers = request.headers || {}; + // force CORS if requested + if (!request.crossDomain && !headers['X-Requested-With']) { + headers['X-Requested-With'] = 'XMLHttpRequest'; + } + // ensure content type is set + if (!('Content-Type' in headers) && !(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, request.headers['Content-Type']); + this.send(); + } + next(e) { + this.done = true; + const { xhr, request, destination } = this; + const response = new AjaxResponse(e, xhr, request); + destination.next(response); + } + send() { + const { request, request: { user, method, url, async, password, headers, body } } = this; + const createXHR = request.createXHR; + const xhr = tryCatch(createXHR).call(request); + if (xhr === errorObject) { + this.error(errorObject.e); + } + else { + this.xhr = xhr; + // 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 + let result; + if (user) { + result = tryCatch(xhr.open).call(xhr, method, url, async, user, password); + } + else { + result = tryCatch(xhr.open).call(xhr, method, url, async); + } + if (result === errorObject) { + this.error(errorObject.e); + return null; + } + // timeout, responseType and withCredentials can be set once the XHR is open + if (async) { + xhr.timeout = request.timeout; + xhr.responseType = request.responseType; + } + if ('withCredentials' in xhr) { + xhr.withCredentials = !!request.withCredentials; + } + // set headers + this.setHeaders(xhr, headers); + // finally send the request + result = body ? tryCatch(xhr.send).call(xhr, body) : tryCatch(xhr.send).call(xhr); + if (result === errorObject) { + this.error(errorObject.e); + return null; + } + } + return xhr; + } + 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 => `${encodeURI(key)}=${encodeURI(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]); + } + } + } + setupEvents(xhr, request) { + const progressSubscriber = request.progressSubscriber; + function xhrTimeout(e) { + const { subscriber, progressSubscriber, request } = xhrTimeout; + if (progressSubscriber) { + progressSubscriber.error(e); + } + subscriber.error(new AjaxTimeoutError(this, request)); //TODO: Make betterer. + } + ; + 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); + } + subscriber.error(new AjaxError('ajax error', this, request)); + }; + xhr.onerror = xhrError; + xhrError.request = request; + xhrError.subscriber = this; + xhrError.progressSubscriber = progressSubscriber; + } + function xhrReadyStateChange(e) { + const { subscriber, progressSubscriber, request } = xhrReadyStateChange; + if (this.readyState === 4) { + // normalize IE9 bug (http://bugs.jquery.com/ticket/1450) + let status = this.status === 1223 ? 204 : this.status; + let response = (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; + } + if (200 <= status && status < 300) { + if (progressSubscriber) { + progressSubscriber.complete(); + } + subscriber.next(e); + subscriber.complete(); + } + else { + if (progressSubscriber) { + progressSubscriber.error(e); + } + subscriber.error(new AjaxError('ajax error ' + status, this, request)); + } + } + } + ; + xhr.onreadystatechange = xhrReadyStateChange; + xhrReadyStateChange.subscriber = this; + xhrReadyStateChange.progressSubscriber = progressSubscriber; + xhrReadyStateChange.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 { + 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); + } +} +/** + * A normalized AJAX error. + * + * @see {@link ajax} + * + * @class AjaxError + */ +export class AjaxError extends Error { + constructor(message, xhr, request) { + super(message); + this.message = message; + this.xhr = xhr; + this.request = request; + this.status = xhr.status; + this.responseType = xhr.responseType || request.responseType; + this.response = parseXhrResponse(this.responseType, xhr); + } +} +function parseXhrResponse(responseType, xhr) { + switch (responseType) { + case 'json': + if ('response' in xhr) { + //IE does not support json as responseType, parse it internally + return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null'); + } + else { + // HACK(benlesh): TypeScript shennanigans + // tslint:disable-next-line:no-any latest TS seems to think xhr is "never" here. + return JSON.parse(xhr.responseText || 'null'); + } + case 'xml': + return xhr.responseXML; + case 'text': + default: + // HACK(benlesh): TypeScript shennanigans + // tslint:disable-next-line:no-any latest TS seems to think xhr is "never" here. + return ('response' in xhr) ? xhr.response : xhr.responseText; + } +} +/** + * @see {@link ajax} + * + * @class AjaxTimeoutError + */ +export class AjaxTimeoutError extends AjaxError { + constructor(xhr, request) { + super('ajax timeout', xhr, request); + } +} +//# sourceMappingURL=AjaxObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/AjaxObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/AjaxObservable.js.map new file mode 100644 index 00000000000000..b546ddeeb41c09 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/AjaxObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AjaxObservable.js","sourceRoot":"","sources":["../../../src/observable/dom/AjaxObservable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/WebSocketSubject.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/WebSocketSubject.js new file mode 100644 index 00000000000000..01dfaf1aaa5961 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/WebSocketSubject.js @@ -0,0 +1,239 @@ +import { Subject, AnonymousSubject } from '../../Subject'; +import { Subscriber } from '../../Subscriber'; +import { Observable } from '../../Observable'; +import { Subscription } from '../../Subscription'; +import { root } from '../../util/root'; +import { ReplaySubject } from '../../ReplaySubject'; +import { tryCatch } from '../../util/tryCatch'; +import { errorObject } from '../../util/errorObject'; +import { assign } from '../../util/assign'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class WebSocketSubject extends AnonymousSubject { + constructor(urlConfigOrSource, destination) { + if (urlConfigOrSource instanceof Observable) { + super(destination, urlConfigOrSource); + } + else { + super(); + this.WebSocketCtor = root.WebSocket; + this._output = new Subject(); + if (typeof urlConfigOrSource === 'string') { + this.url = urlConfigOrSource; + } + else { + // WARNING: config object could override important members here. + assign(this, urlConfigOrSource); + } + if (!this.WebSocketCtor) { + throw new Error('no WebSocket constructor can be found'); + } + this.destination = new ReplaySubject(); + } + } + resultSelector(e) { + return JSON.parse(e.data); + } + /** + * Wrapper around the w3c-compatible WebSocket object provided by the browser. + * + * @example Wraps browser WebSocket + * + * let socket$ = Observable.webSocket('ws://localhost:8081'); + * + * socket$.subscribe( + * (msg) => console.log('message received: ' + msg), + * (err) => console.log(err), + * () => console.log('complete') + * ); + * + * socket$.next(JSON.stringify({ op: 'hello' })); + * + * @example Wraps WebSocket from nodejs-websocket (using node.js) + * + * import { w3cwebsocket } from 'websocket'; + * + * let socket$ = Observable.webSocket({ + * url: 'ws://localhost:8081', + * WebSocketCtor: w3cwebsocket + * }); + * + * socket$.subscribe( + * (msg) => console.log('message received: ' + msg), + * (err) => console.log(err), + * () => console.log('complete') + * ); + * + * socket$.next(JSON.stringify({ op: 'hello' })); + * + * @param {string | WebSocketSubjectConfig} urlConfigOrSource the source of the websocket as an url or a structure defining the websocket object + * @return {WebSocketSubject} + * @static true + * @name webSocket + * @owner Observable + */ + static create(urlConfigOrSource) { + return new WebSocketSubject(urlConfigOrSource); + } + lift(operator) { + const sock = new WebSocketSubject(this, this.destination); + sock.operator = operator; + return sock; + } + _resetState() { + this.socket = null; + if (!this.source) { + this.destination = new ReplaySubject(); + } + this._output = new Subject(); + } + // TODO: factor this out to be a proper Operator/Subscriber implementation and eliminate closures + multiplex(subMsg, unsubMsg, messageFilter) { + const self = this; + return new Observable((observer) => { + const result = tryCatch(subMsg)(); + if (result === errorObject) { + observer.error(errorObject.e); + } + else { + self.next(result); + } + let subscription = self.subscribe(x => { + const result = tryCatch(messageFilter)(x); + if (result === errorObject) { + observer.error(errorObject.e); + } + else if (result) { + observer.next(x); + } + }, err => observer.error(err), () => observer.complete()); + return () => { + const result = tryCatch(unsubMsg)(); + if (result === errorObject) { + observer.error(errorObject.e); + } + else { + self.next(result); + } + subscription.unsubscribe(); + }; + }); + } + _connectSocket() { + const { WebSocketCtor } = this; + const observer = this._output; + let socket = null; + try { + socket = this.protocol ? + new WebSocketCtor(this.url, this.protocol) : + new WebSocketCtor(this.url); + this.socket = socket; + if (this.binaryType) { + this.socket.binaryType = this.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 openObserver = this.openObserver; + if (openObserver) { + openObserver.next(e); + } + const queue = this.destination; + this.destination = Subscriber.create((x) => socket.readyState === 1 && socket.send(x), (e) => { + const closingObserver = this.closingObserver; + if (closingObserver) { + closingObserver.next(undefined); + } + if (e && e.code) { + socket.close(e.code, e.reason); + } + else { + observer.error(new TypeError('WebSocketSubject.error must be called with an object with an error code, ' + + 'and an optional reason: { code: number, reason: string }')); + } + this._resetState(); + }, () => { + const closingObserver = this.closingObserver; + 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.closeObserver; + if (closeObserver) { + closeObserver.next(e); + } + if (e.wasClean) { + observer.complete(); + } + else { + observer.error(e); + } + }; + socket.onmessage = (e) => { + const result = tryCatch(this.resultSelector)(e); + if (result === errorObject) { + observer.error(errorObject.e); + } + else { + observer.next(result); + } + }; + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const { source } = this; + if (source) { + return source.subscribe(subscriber); + } + if (!this.socket) { + this._connectSocket(); + } + let subscription = new Subscription(); + subscription.add(this._output.subscribe(subscriber)); + subscription.add(() => { + const { socket } = this; + if (this._output.observers.length === 0) { + if (socket && socket.readyState === 1) { + socket.close(); + } + this._resetState(); + } + }); + return subscription; + } + unsubscribe() { + const { source, socket } = this; + if (socket && socket.readyState === 1) { + socket.close(); + this._resetState(); + } + super.unsubscribe(); + if (!source) { + this.destination = new ReplaySubject(); + } + } +} +//# sourceMappingURL=WebSocketSubject.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/WebSocketSubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/WebSocketSubject.js.map new file mode 100644 index 00000000000000..6ff90493b78e4f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/WebSocketSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WebSocketSubject.js","sourceRoot":"","sources":["../../../src/observable/dom/WebSocketSubject.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/ajax.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/ajax.js new file mode 100644 index 00000000000000..3a6d75ba293f22 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/ajax.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/ajax.js.map new file mode 100644 index 00000000000000..039ca48fc046e1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/ajax.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ajax.js","sourceRoot":"","sources":["../../../src/observable/dom/ajax.ts"],"names":[],"mappings":"OAAO,EAAG,cAAc,EAAuB,MAAM,kBAAkB;AAEvE,OAAO,MAAM,IAAI,GAAuB,cAAc,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/webSocket.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/webSocket.js new file mode 100644 index 00000000000000..e705f409c90fed --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/webSocket.js @@ -0,0 +1,3 @@ +import { WebSocketSubject } from './WebSocketSubject'; +export const webSocket = WebSocketSubject.create; +//# sourceMappingURL=webSocket.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/webSocket.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/webSocket.js.map new file mode 100644 index 00000000000000..6ea99ef813e585 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/dom/webSocket.js.map @@ -0,0 +1 @@ +{"version":3,"file":"webSocket.js","sourceRoot":"","sources":["../../../src/observable/dom/webSocket.ts"],"names":[],"mappings":"OAAO,EAAG,gBAAgB,EAAG,MAAM,oBAAoB;AAEvD,OAAO,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/empty.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/empty.js new file mode 100644 index 00000000000000..bbe56e3606016e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/empty.js @@ -0,0 +1,3 @@ +import { EmptyObservable } from './EmptyObservable'; +export const empty = EmptyObservable.create; +//# sourceMappingURL=empty.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/empty.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/empty.js.map new file mode 100644 index 00000000000000..39dc642608c67d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/empty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"empty.js","sourceRoot":"","sources":["../../src/observable/empty.ts"],"names":[],"mappings":"OAAO,EAAG,eAAe,EAAG,MAAM,mBAAmB;AAErD,OAAO,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/forkJoin.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/forkJoin.js new file mode 100644 index 00000000000000..739bfaa8a0a5e5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/forkJoin.js @@ -0,0 +1,3 @@ +import { ForkJoinObservable } from './ForkJoinObservable'; +export const forkJoin = ForkJoinObservable.create; +//# sourceMappingURL=forkJoin.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/forkJoin.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/forkJoin.js.map new file mode 100644 index 00000000000000..8c0f1e47ee3d6c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/forkJoin.js.map @@ -0,0 +1 @@ +{"version":3,"file":"forkJoin.js","sourceRoot":"","sources":["../../src/observable/forkJoin.ts"],"names":[],"mappings":"OAAO,EAAG,kBAAkB,EAAG,MAAM,sBAAsB;AAE3D,OAAO,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/from.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/from.js new file mode 100644 index 00000000000000..125070cf027ba5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/from.js @@ -0,0 +1,3 @@ +import { FromObservable } from './FromObservable'; +export const from = FromObservable.create; +//# sourceMappingURL=from.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/from.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/from.js.map new file mode 100644 index 00000000000000..84ea85f1734b77 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/from.js.map @@ -0,0 +1 @@ +{"version":3,"file":"from.js","sourceRoot":"","sources":["../../src/observable/from.ts"],"names":[],"mappings":"OAAO,EAAG,cAAc,EAAG,MAAM,kBAAkB;AAEnD,OAAO,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEvent.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEvent.js new file mode 100644 index 00000000000000..f31e5e2f02c7d4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEvent.js @@ -0,0 +1,3 @@ +import { FromEventObservable } from './FromEventObservable'; +export const fromEvent = FromEventObservable.create; +//# sourceMappingURL=fromEvent.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEvent.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEvent.js.map new file mode 100644 index 00000000000000..7b6b736a650d20 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEvent.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEvent.js","sourceRoot":"","sources":["../../src/observable/fromEvent.ts"],"names":[],"mappings":"OAAO,EAAG,mBAAmB,EAAG,MAAM,uBAAuB;AAE7D,OAAO,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEventPattern.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEventPattern.js new file mode 100644 index 00000000000000..261c1acec030c3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEventPattern.js @@ -0,0 +1,3 @@ +import { FromEventPatternObservable } from './FromEventPatternObservable'; +export const fromEventPattern = FromEventPatternObservable.create; +//# sourceMappingURL=fromEventPattern.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEventPattern.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEventPattern.js.map new file mode 100644 index 00000000000000..b6ce68a160ec04 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromEventPattern.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEventPattern.js","sourceRoot":"","sources":["../../src/observable/fromEventPattern.ts"],"names":[],"mappings":"OAAO,EAAG,0BAA0B,EAAG,MAAM,8BAA8B;AAE3E,OAAO,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromPromise.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromPromise.js new file mode 100644 index 00000000000000..e6b2d5777a24bb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromPromise.js @@ -0,0 +1,3 @@ +import { PromiseObservable } from './PromiseObservable'; +export const fromPromise = PromiseObservable.create; +//# sourceMappingURL=fromPromise.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromPromise.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromPromise.js.map new file mode 100644 index 00000000000000..2146de47309085 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/fromPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromPromise.js","sourceRoot":"","sources":["../../src/observable/fromPromise.ts"],"names":[],"mappings":"OAAO,EAAG,iBAAiB,EAAG,MAAM,qBAAqB;AAEzD,OAAO,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/generate.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/generate.js new file mode 100644 index 00000000000000..bedd1047dcc880 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/generate.js @@ -0,0 +1,3 @@ +import { GenerateObservable } from './GenerateObservable'; +export const generate = GenerateObservable.create; +//# sourceMappingURL=generate.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/generate.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/generate.js.map new file mode 100644 index 00000000000000..2cb68666b0767b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/generate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/observable/generate.ts"],"names":[],"mappings":"OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB;AAEzD,OAAO,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/if.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/if.js new file mode 100644 index 00000000000000..6df4692667ba0f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/if.js @@ -0,0 +1,3 @@ +import { IfObservable } from './IfObservable'; +export const _if = IfObservable.create; +//# sourceMappingURL=if.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/if.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/if.js.map new file mode 100644 index 00000000000000..ef758d1827a06f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/if.js.map @@ -0,0 +1 @@ +{"version":3,"file":"if.js","sourceRoot":"","sources":["../../src/observable/if.ts"],"names":[],"mappings":"OAAO,EAAG,YAAY,EAAG,MAAM,gBAAgB;AAE/C,OAAO,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/interval.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/interval.js new file mode 100644 index 00000000000000..9cf1cf1e63d1ca --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/interval.js @@ -0,0 +1,3 @@ +import { IntervalObservable } from './IntervalObservable'; +export const interval = IntervalObservable.create; +//# sourceMappingURL=interval.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/interval.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/interval.js.map new file mode 100644 index 00000000000000..a43822fee758b7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/interval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interval.js","sourceRoot":"","sources":["../../src/observable/interval.ts"],"names":[],"mappings":"OAAO,EAAG,kBAAkB,EAAG,MAAM,sBAAsB;AAE3D,OAAO,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/merge.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/merge.js new file mode 100644 index 00000000000000..02c99033c4045a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/merge.js @@ -0,0 +1,84 @@ +import { Observable } from '../Observable'; +import { ArrayObservable } from './ArrayObservable'; +import { isScheduler } from '../util/isScheduler'; +import { mergeAll } from '../operators/mergeAll'; +/* 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` 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. + * + * @example Merge together two Observables: 1s interval and clicks + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var timer = Rx.Observable.interval(1000); + * var clicksOrTimer = Rx.Observable.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. + * + * @example Merge together 3 Observables, but only 2 run concurrently + * var timer1 = Rx.Observable.interval(1000).take(10); + * var timer2 = Rx.Observable.interval(2000).take(6); + * var timer3 = Rx.Observable.interval(500).take(10); + * var concurrent = 2; // the argument + * var merged = Rx.Observable.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 it's max iteration, timer2 will + * // continue, and timer3 will start to run concurrently with timer2 + * // - when timer2 hits it's 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 {Scheduler} [scheduler=null] The IScheduler 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) { + 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)(new ArrayObservable(observables, scheduler)); +} +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/merge.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/merge.js.map new file mode 100644 index 00000000000000..23a0dc115c313e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/observable/merge.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAmB,MAAM,eAAe;OAEpD,EAAE,eAAe,EAAE,MAAM,mBAAmB;OAC5C,EAAE,WAAW,EAAE,MAAM,qBAAqB;OAC1C,EAAE,QAAQ,EAAE,MAAM,uBAAuB;AAiBhD,mCAAmC;AACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,sBAA4B,GAAG,WAA8D;IAC5F,IAAI,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC1C,IAAI,SAAS,GAAe,IAAI,CAAC;IAChC,IAAI,IAAI,GAAQ,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,SAAS,GAAe,WAAW,CAAC,GAAG,EAAE,CAAC;QAC1C,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;YACtF,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;QACpC,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;IACzC,CAAC;IAED,EAAE,CAAC,CAAC,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC,CAAC,CAAC;QAC3F,MAAM,CAAgB,WAAW,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,eAAe,CAAM,WAAW,EAAE,SAAS,CAAC,CAAkB,CAAC;AACjG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/never.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/never.js new file mode 100644 index 00000000000000..8750a3e1cefff4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/never.js @@ -0,0 +1,3 @@ +import { NeverObservable } from './NeverObservable'; +export const never = NeverObservable.create; +//# sourceMappingURL=never.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/never.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/never.js.map new file mode 100644 index 00000000000000..4e305bc7fbbc41 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/never.js.map @@ -0,0 +1 @@ +{"version":3,"file":"never.js","sourceRoot":"","sources":["../../src/observable/never.ts"],"names":[],"mappings":"OAAO,EAAG,eAAe,EAAG,MAAM,mBAAmB;AAErD,OAAO,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/of.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/of.js new file mode 100644 index 00000000000000..78f169a1ec9538 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/of.js @@ -0,0 +1,3 @@ +import { ArrayObservable } from './ArrayObservable'; +export const of = ArrayObservable.of; +//# sourceMappingURL=of.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/of.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/of.js.map new file mode 100644 index 00000000000000..6dbffa98e386bf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/of.js.map @@ -0,0 +1 @@ +{"version":3,"file":"of.js","sourceRoot":"","sources":["../../src/observable/of.ts"],"names":[],"mappings":"OAAO,EAAG,eAAe,EAAG,MAAM,mBAAmB;AAErD,OAAO,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/onErrorResumeNext.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/onErrorResumeNext.js new file mode 100644 index 00000000000000..5215d936a86592 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/onErrorResumeNext.js @@ -0,0 +1,3 @@ +import { onErrorResumeNextStatic } from '../operators/onErrorResumeNext'; +export const onErrorResumeNext = onErrorResumeNextStatic; +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/onErrorResumeNext.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/onErrorResumeNext.js.map new file mode 100644 index 00000000000000..0ce313bf149a81 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sourceRoot":"","sources":["../../src/observable/onErrorResumeNext.ts"],"names":[],"mappings":"OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC;AAExE,OAAO,MAAM,iBAAiB,GAAG,uBAAuB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/pairs.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/pairs.js new file mode 100644 index 00000000000000..6dd20ede9a7421 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/pairs.js @@ -0,0 +1,3 @@ +import { PairsObservable } from './PairsObservable'; +export const pairs = PairsObservable.create; +//# sourceMappingURL=pairs.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/pairs.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/pairs.js.map new file mode 100644 index 00000000000000..32e93fa99d8e5a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/pairs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairs.js","sourceRoot":"","sources":["../../src/observable/pairs.ts"],"names":[],"mappings":"OAAO,EAAG,eAAe,EAAG,MAAM,mBAAmB;AAErD,OAAO,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/race.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/race.js new file mode 100644 index 00000000000000..7fbcda5ebd0a23 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/race.js @@ -0,0 +1,71 @@ +import { isArray } from '../util/isArray'; +import { ArrayObservable } from '../observable/ArrayObservable'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +export function race(...observables) { + // 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]; + } + else { + return observables[0]; + } + } + return new ArrayObservable(observables).lift(new RaceOperator()); +} +export class RaceOperator { + call(subscriber, source) { + return source.subscribe(new RaceSubscriber(subscriber)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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++) { + let observable = observables[i]; + let subscription = subscribeToResult(this, observable, observable, i); + if (this.subscriptions) { + this.subscriptions.push(subscription); + } + this.add(subscription); + } + this.observables = null; + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/race.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/race.js.map new file mode 100644 index 00000000000000..9a1fc27c8193a9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sourceRoot":"","sources":["../../src/observable/race.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/range.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/range.js new file mode 100644 index 00000000000000..e0e3530290f948 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/range.js @@ -0,0 +1,3 @@ +import { RangeObservable } from './RangeObservable'; +export const range = RangeObservable.create; +//# sourceMappingURL=range.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/range.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/range.js.map new file mode 100644 index 00000000000000..d96093c82acde1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/range.js.map @@ -0,0 +1 @@ +{"version":3,"file":"range.js","sourceRoot":"","sources":["../../src/observable/range.ts"],"names":[],"mappings":"OAAO,EAAG,eAAe,EAAG,MAAM,mBAAmB;AAErD,OAAO,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/throw.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/throw.js new file mode 100644 index 00000000000000..7c82dd8f389018 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/throw.js @@ -0,0 +1,3 @@ +import { ErrorObservable } from './ErrorObservable'; +export const _throw = ErrorObservable.create; +//# sourceMappingURL=throw.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/throw.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/throw.js.map new file mode 100644 index 00000000000000..298f37dd321e29 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/throw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throw.js","sourceRoot":"","sources":["../../src/observable/throw.ts"],"names":[],"mappings":"OAAO,EAAG,eAAe,EAAG,MAAM,mBAAmB;AAErD,OAAO,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/timer.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/timer.js new file mode 100644 index 00000000000000..fb8e7707210bc1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/timer.js @@ -0,0 +1,3 @@ +import { TimerObservable } from './TimerObservable'; +export const timer = TimerObservable.create; +//# sourceMappingURL=timer.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/timer.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/timer.js.map new file mode 100644 index 00000000000000..fe47d32cb5a83d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/timer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timer.js","sourceRoot":"","sources":["../../src/observable/timer.ts"],"names":[],"mappings":"OAAO,EAAG,eAAe,EAAG,MAAM,mBAAmB;AAErD,OAAO,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/using.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/using.js new file mode 100644 index 00000000000000..9bd796280b4ed4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/using.js @@ -0,0 +1,3 @@ +import { UsingObservable } from './UsingObservable'; +export const using = UsingObservable.create; +//# sourceMappingURL=using.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/using.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/using.js.map new file mode 100644 index 00000000000000..ec36086fd93813 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/using.js.map @@ -0,0 +1 @@ +{"version":3,"file":"using.js","sourceRoot":"","sources":["../../src/observable/using.ts"],"names":[],"mappings":"OAAO,EAAG,eAAe,EAAG,MAAM,mBAAmB;AAErD,OAAO,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/zip.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/zip.js new file mode 100644 index 00000000000000..ac07e1332c5be4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/zip.js @@ -0,0 +1,3 @@ +import { zipStatic } from '../operators/zip'; +export const zip = zipStatic; +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/zip.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/zip.js.map new file mode 100644 index 00000000000000..d65a6cd1573895 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/observable/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sourceRoot":"","sources":["../../src/observable/zip.ts"],"names":[],"mappings":"OAAO,EAAG,SAAS,EAAG,MAAM,kBAAkB;AAE9C,OAAO,MAAM,GAAG,GAAG,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/audit.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/audit.js new file mode 100644 index 00000000000000..53fb472cc172d8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/audit.js @@ -0,0 +1,45 @@ +import { audit as higherOrder } from '../operators/audit'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.audit(ev => Rx.Observable.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) { + return higherOrder(durationSelector)(this); +} +//# sourceMappingURL=audit.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/audit.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/audit.js.map new file mode 100644 index 00000000000000..e6e37c6e206e8d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/audit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/operator/audit.ts"],"names":[],"mappings":"OAEO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,sBAA8C,gBAA0D;IACtG,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/auditTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/auditTime.js new file mode 100644 index 00000000000000..edf60a507b9baf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/auditTime.js @@ -0,0 +1,48 @@ +import { async } from '../scheduler/async'; +import { auditTime as higherOrder } from '../operators/auditTime'; +/** + * 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 values, it ignores that plus + * the next ones for `duration` milliseconds, and then it emits the most recent + * value from the source. + * + * + * + * `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 IScheduler} for managing timers. + * + * @example Emit clicks at a rate of at most one click per second + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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 {Scheduler} [scheduler=async] The {@link IScheduler} 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, scheduler = async) { + return higherOrder(duration, scheduler)(this); +} +//# sourceMappingURL=auditTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/auditTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/auditTime.js.map new file mode 100644 index 00000000000000..cade2077ad6d2e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/auditTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auditTime.js","sourceRoot":"","sources":["../../src/operator/auditTime.ts"],"names":[],"mappings":"OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OAGnC,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,0BAAkD,QAAgB,EAAE,SAAS,GAAe,KAAK;IAC/F,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,IAAI,CAAkB,CAAC;AACjE,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/buffer.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/buffer.js new file mode 100644 index 00000000000000..e75bd0559d73d9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/buffer.js @@ -0,0 +1,37 @@ +import { buffer as higherOrder } from '../operators/buffer'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var interval = Rx.Observable.interval(1000); + * var buffered = interval.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) { + return higherOrder(closingNotifier)(this); +} +//# sourceMappingURL=buffer.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/buffer.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/buffer.js.map new file mode 100644 index 00000000000000..ace64376f0e01e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/buffer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/operator/buffer.ts"],"names":[],"mappings":"OAEO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,qBAAqB;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,uBAA+C,eAAgC;IAC7E,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CAAoB,CAAC;AAC/D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferCount.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferCount.js new file mode 100644 index 00000000000000..f60ad45a9484dc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferCount.js @@ -0,0 +1,46 @@ +import { bufferCount as higherOrder } from '../operators/bufferCount'; +/** + * 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`. + * + * + * + * 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. + * + * @example Emit the last two click events as an array + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var buffered = clicks.bufferCount(2); + * buffered.subscribe(x => console.log(x)); + * + * @example On every click, emit the last two click events as an array + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var buffered = clicks.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, startBufferEvery = null) { + return higherOrder(bufferSize, startBufferEvery)(this); +} +//# sourceMappingURL=bufferCount.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferCount.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferCount.js.map new file mode 100644 index 00000000000000..c94b1f4a2485fb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferCount.js","sourceRoot":"","sources":["../../src/operator/bufferCount.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,0BAA0B;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,4BAAoD,UAAkB,EAAE,gBAAgB,GAAW,IAAI;IACrG,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAoB,CAAC;AAC5E,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferTime.js new file mode 100644 index 00000000000000..e3400c77143878 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferTime.js @@ -0,0 +1,65 @@ +import { async } from '../scheduler/async'; +import { isScheduler } from '../util/isScheduler'; +import { bufferTime as higherOrder } from '../operators/bufferTime'; +/* 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. + * + * + * + * 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. + * + * @example Every second, emit an array of the recent click events + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var buffered = clicks.bufferTime(1000); + * buffered.subscribe(x => console.log(x)); + * + * @example Every 5 seconds, emit the click events from the next 2 seconds + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var buffered = clicks.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 {Scheduler} [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) { + 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 higherOrder(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler)(this); +} +//# sourceMappingURL=bufferTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferTime.js.map new file mode 100644 index 00000000000000..9c0596a6fc4fe0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferTime.js","sourceRoot":"","sources":["../../src/operator/bufferTime.ts"],"names":[],"mappings":"OACO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OAEnC,EAAE,WAAW,EAAE,MAAM,qBAAqB;OAC1C,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,yBAAyB;AAMnE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,2BAAmD,cAAsB;IACvE,IAAI,MAAM,GAAW,SAAS,CAAC,MAAM,CAAC;IAEtC,IAAI,SAAS,GAAe,KAAK,CAAC;IAClC,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,EAAE,CAAC;IACX,CAAC;IAED,IAAI,sBAAsB,GAAW,IAAI,CAAC;IAC1C,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,sBAAsB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,aAAa,GAAW,MAAM,CAAC,iBAAiB,CAAC;IACrD,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,sBAAsB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,IAAI,CAAoB,CAAC;AAChH,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferToggle.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferToggle.js new file mode 100644 index 00000000000000..694eadaedf7af4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferToggle.js @@ -0,0 +1,43 @@ +import { bufferToggle as higherOrder } from '../operators/bufferToggle'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var openings = Rx.Observable.interval(1000); + * var buffered = clicks.bufferToggle(openings, i => + * i % 2 ? Rx.Observable.interval(500) : Rx.Observable.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, closingSelector) { + return higherOrder(openings, closingSelector)(this); +} +//# sourceMappingURL=bufferToggle.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferToggle.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferToggle.js.map new file mode 100644 index 00000000000000..e860d3c1705efe --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferToggle.js","sourceRoot":"","sources":["../../src/operator/bufferToggle.ts"],"names":[],"mappings":"OAEO,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,2BAA2B;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,6BAAwD,QAAkC,EACvD,eAAyD;IAC1F,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,IAAI,CAAoB,CAAC;AACzE,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferWhen.js new file mode 100644 index 00000000000000..438273fa48534b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferWhen.js @@ -0,0 +1,38 @@ +import { bufferWhen as higherOrder } from '../operators/bufferWhen'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var buffered = clicks.bufferWhen(() => + * Rx.Observable.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) { + return higherOrder(closingSelector)(this); +} +//# sourceMappingURL=bufferWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferWhen.js.map new file mode 100644 index 00000000000000..c8dc442d8962cc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/bufferWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferWhen.js","sourceRoot":"","sources":["../../src/operator/bufferWhen.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,yBAAyB;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,2BAAmD,eAAsC;IACvF,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CAAoB,CAAC;AAC/D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/catch.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/catch.js new file mode 100644 index 00000000000000..714adc76c13437 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/catch.js @@ -0,0 +1,64 @@ +import { catchError as higherOrder } from '../operators/catchError'; +/** + * Catches errors on the observable to be handled by returning a new observable or throwing an error. + * + * + * + * @example Continues with a different Observable when there's an error + * + * Observable.of(1, 2, 3, 4, 5) + * .map(n => { + * if (n == 4) { + * throw 'four!'; + * } + * return n; + * }) + * .catch(err => Observable.of('I', 'II', 'III', 'IV', 'V')) + * .subscribe(x => console.log(x)); + * // 1, 2, 3, I, II, III, IV, V + * + * @example Retries the caught source Observable again in case of error, similar to retry() operator + * + * Observable.of(1, 2, 3, 4, 5) + * .map(n => { + * if (n === 4) { + * throw 'four!'; + * } + * return n; + * }) + * .catch((err, caught) => caught) + * .take(30) + * .subscribe(x => console.log(x)); + * // 1, 2, 3, 1, 2, 3, ... + * + * @example Throws a new error when the source Observable throws an error + * + * Observable.of(1, 2, 3, 4, 5) + * .map(n => { + * if (n == 4) { + * throw 'four!'; + * } + * return n; + * }) + * .catch(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. + * @method catch + * @name catch + * @owner Observable + */ +export function _catch(selector) { + return higherOrder(selector)(this); +} +//# sourceMappingURL=catch.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/catch.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/catch.js.map new file mode 100644 index 00000000000000..773e0d45cd0a52 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/catch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"catch.js","sourceRoot":"","sources":["../../src/operator/catch.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,yBAAyB;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,uBAAkD,QAAiE;IACjH,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineAll.js new file mode 100644 index 00000000000000..38368f7a8eda0e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineAll.js @@ -0,0 +1,45 @@ +import { combineAll as higherOrder } from '../operators/combineAll'; +/** + * Converts a higher-order Observable into a first-order Observable by waiting + * for the outer Observable to complete, then applying {@link combineLatest}. + * + * Flattens an Observable-of-Observables by applying + * {@link combineLatest} when the Observable-of-Observables completes. + * + * + * + * 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 of the most recent + * values is emitted by the output Observable. + * + * @example Map two click events to a finite interval Observable, then apply combineAll + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var higherOrder = clicks.map(ev => + * Rx.Observable.interval(Math.random()*2000).take(3) + * ).take(2); + * var result = higherOrder.combineAll(); + * result.subscribe(x => console.log(x)); + * + * @see {@link combineLatest} + * @see {@link mergeAll} + * + * @param {function} [project] 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} An Observable of projected results or arrays of recent + * values. + * @method combineAll + * @owner Observable + */ +export function combineAll(project) { + return higherOrder(project)(this); +} +//# sourceMappingURL=combineAll.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineAll.js.map new file mode 100644 index 00000000000000..78d323164bad6f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineAll.js","sourceRoot":"","sources":["../../src/operator/combineAll.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,yBAAyB;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,2BAAsD,OAAsC;IAC1F,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineLatest.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineLatest.js new file mode 100644 index 00000000000000..4839bad7d10b8a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineLatest.js @@ -0,0 +1,49 @@ +import { combineLatest as higherOrder } from '../operators/combineLatest'; +/* 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` combines the values from this Observable with values from + * Observables passed as arguments. This is done by subscribing to each + * Observable, in order, and collecting an array of each of the most recent + * values any time any of the input Observables emits, then either taking that + * array and passing it as arguments to an optional `project` function and + * emitting the return value of that, or just emitting the array of recent + * values directly if there is no `project` function. + * + * @example Dynamically calculate the Body-Mass Index from an Observable of weight and one for height + * var weight = Rx.Observable.of(70, 72, 76, 79, 75); + * var height = Rx.Observable.of(1.76, 1.77, 1.78); + * var bmi = weight.combineLatest(height, (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} other An input Observable to combine with the source + * Observable. More than one input Observables may be given as argument. + * @param {function} [project] An optional function to project the values from + * the combined latest values into a new value 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 combineLatest + * @owner Observable + */ +export function combineLatest(...observables) { + return higherOrder(...observables)(this); +} +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineLatest.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineLatest.js.map new file mode 100644 index 00000000000000..461bebbb67add0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sourceRoot":"","sources":["../../src/operator/combineLatest.ts"],"names":[],"mappings":"OACO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,4BAA4B;AAiBzE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,8BAAyD,GAAG,WAE0B;IACpF,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concat.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concat.js new file mode 100644 index 00000000000000..d2b73961480ce6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concat.js @@ -0,0 +1,56 @@ +import { concat as higherOrder } from '../operators/concat'; +export { concat as concatStatic } from '../observable/concat'; +/* tslint:enable:max-line-length */ +/** + * Creates an output Observable which sequentially emits all values from every + * given input Observable after the current Observable. + * + * Concatenates multiple Observables together by + * sequentially emitting their values, one Observable after the other. + * + * + * + * Joins this Observable with multiple other Observables by subscribing to them + * one at a time, starting with the source, and merging their results into the + * output Observable. Will wait for each Observable to complete before moving + * on to the next. + * + * @example Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10 + * var timer = Rx.Observable.interval(1000).take(4); + * var sequence = Rx.Observable.range(1, 10); + * var result = timer.concat(sequence); + * result.subscribe(x => console.log(x)); + * + * // results in: + * // 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10 + * + * @example Concatenate 3 Observables + * var timer1 = Rx.Observable.interval(1000).take(10); + * var timer2 = Rx.Observable.interval(2000).take(6); + * var timer3 = Rx.Observable.interval(500).take(10); + * var result = timer1.concat(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 + * + * @see {@link concatAll} + * @see {@link concatMap} + * @see {@link concatMapTo} + * + * @param {ObservableInput} other An input Observable to concatenate after the source + * Observable. More than one input Observables may be given as argument. + * @param {Scheduler} [scheduler=null] An optional IScheduler to schedule each + * Observable subscription on. + * @return {Observable} All values of each passed Observable merged into a + * single Observable, in order, in serial fashion. + * @method concat + * @owner Observable + */ +export function concat(...observables) { + return higherOrder(...observables)(this); +} +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concat.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concat.js.map new file mode 100644 index 00000000000000..50de5f4f3a8244 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sourceRoot":"","sources":["../../src/operator/concat.ts"],"names":[],"mappings":"OAEO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,qBAAqB;AAE3D,SAAS,MAAM,IAAI,YAAY,QAAQ,sBAAsB,CAAC;AAW9D,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,uBAAkD,GAAG,WAAqD;IACxG,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatAll.js new file mode 100644 index 00000000000000..ecf9b05c924d5d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatAll.js @@ -0,0 +1,54 @@ +import { concatAll as higherOrder } from '../operators/concatAll'; +/* tslint:enable:max-line-length */ +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var higherOrder = clicks.map(ev => Rx.Observable.interval(1000).take(4)); + * var firstOrder = higherOrder.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 switch} + * @see {@link zipAll} + * + * @return {Observable} An Observable emitting values from all the inner + * Observables concatenated. + * @method concatAll + * @owner Observable + */ +export function concatAll() { + return higherOrder()(this); +} +//# sourceMappingURL=concatAll.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatAll.js.map new file mode 100644 index 00000000000000..d340e224a931ef --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatAll.js","sourceRoot":"","sources":["../../src/operator/concatAll.ts"],"names":[],"mappings":"OAEO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAKjE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH;IACE,MAAM,CAAM,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMap.js new file mode 100644 index 00000000000000..987b3ac235c106 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMap.js @@ -0,0 +1,65 @@ +import { concatMap as higherOrderConcatMap } from '../operators/concatMap'; +/* 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}. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.concatMap(ev => Rx.Observable.interval(1000).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. + * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected Observable + * @return {Observable} An Observable that emits the result of applying the + * projection function (and the optional `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, resultSelector) { + return higherOrderConcatMap(project, resultSelector)(this); +} +//# sourceMappingURL=concatMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMap.js.map new file mode 100644 index 00000000000000..41de2cd918bdb5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMap.js","sourceRoot":"","sources":["../../src/operator/concatMap.ts"],"names":[],"mappings":"OAAO,EAAE,SAAS,IAAI,oBAAoB,EAAE,MAAM,wBAAwB;AAM1E,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,0BAAwD,OAAyD,EAC9E,cAA4F;IAC7H,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMapTo.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMapTo.js new file mode 100644 index 00000000000000..b51b0ced4accbc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMapTo.js @@ -0,0 +1,62 @@ +import { concatMapTo as higherOrder } from '../operators/concatMapTo'; +/* 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.concatMapTo(Rx.Observable.interval(1000).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. + * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected 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, resultSelector) { + return higherOrder(innerObservable, resultSelector)(this); +} +//# sourceMappingURL=concatMapTo.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMapTo.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMapTo.js.map new file mode 100644 index 00000000000000..45b7f4490b757b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/concatMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMapTo.js","sourceRoot":"","sources":["../../src/operator/concatMapTo.ts"],"names":[],"mappings":"OACO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,0BAA0B;AAKrE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,4BAA0D,eAA8B,EACnD,cAA4F;IAC/H,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/count.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/count.js new file mode 100644 index 00000000000000..751ccf2e3d196b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/count.js @@ -0,0 +1,53 @@ +import { count as higherOrder } from '../operators/count'; +/** + * 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` 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`. + * + * @example Counts how many seconds have passed before the first click happened + * var seconds = Rx.Observable.interval(1000); + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var secondsBeforeClick = seconds.takeUntil(clicks); + * var result = secondsBeforeClick.count(); + * result.subscribe(x => console.log(x)); + * + * @example Counts how many odd numbers are there between 1 and 7 + * var numbers = Rx.Observable.range(1, 7); + * var result = numbers.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) { + return higherOrder(predicate)(this); +} +//# sourceMappingURL=count.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/count.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/count.js.map new file mode 100644 index 00000000000000..b5299e7e33a4f0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/count.js.map @@ -0,0 +1 @@ +{"version":3,"file":"count.js","sourceRoot":"","sources":["../../src/operator/count.ts"],"names":[],"mappings":"OACO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,sBAA8C,SAAuE;IACnH,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounce.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounce.js new file mode 100644 index 00000000000000..2dcf5712f26d61 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounce.js @@ -0,0 +1,47 @@ +import { debounce as higherOrder } from '../operators/debounce'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.debounce(() => Rx.Observable.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) { + return higherOrder(durationSelector)(this); +} +//# sourceMappingURL=debounce.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounce.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounce.js.map new file mode 100644 index 00000000000000..80b60d977bb4c8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/operator/debounce.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,uBAAuB;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,yBAAiD,gBAA6D;IAC5G,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounceTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounceTime.js new file mode 100644 index 00000000000000..298ab82645437f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounceTime.js @@ -0,0 +1,52 @@ +import { async } from '../scheduler/async'; +import { debounceTime as higherOrder } from '../operators/debounceTime'; +/** + * 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` 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 IScheduler} for + * managing timers. + * + * @example Emit the most recent click after a burst of clicks + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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 {Scheduler} [scheduler=async] The {@link IScheduler} 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, scheduler = async) { + return higherOrder(dueTime, scheduler)(this); +} +//# sourceMappingURL=debounceTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounceTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounceTime.js.map new file mode 100644 index 00000000000000..4523bfea195961 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/debounceTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounceTime.js","sourceRoot":"","sources":["../../src/operator/debounceTime.ts"],"names":[],"mappings":"OAGO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OACnC,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,2BAA2B;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,6BAAqD,OAAe,EAAE,SAAS,GAAe,KAAK;IACjG,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAAkB,CAAC;AAChE,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/defaultIfEmpty.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/defaultIfEmpty.js new file mode 100644 index 00000000000000..ff61fda83f5007 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/defaultIfEmpty.js @@ -0,0 +1,36 @@ +import { defaultIfEmpty as higherOrder } from '../operators/defaultIfEmpty'; +/* 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` 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" + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var clicksBeforeFive = clicks.takeUntil(Rx.Observable.interval(5000)); + * var result = clicksBeforeFive.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 = null) { + return higherOrder(defaultValue)(this); +} +//# sourceMappingURL=defaultIfEmpty.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/defaultIfEmpty.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/defaultIfEmpty.js.map new file mode 100644 index 00000000000000..a2499881da025c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/defaultIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defaultIfEmpty.js","sourceRoot":"","sources":["../../src/operator/defaultIfEmpty.ts"],"names":[],"mappings":"OAEO,EAAE,cAAc,IAAI,WAAW,EAAE,MAAM,6BAA6B;AAK3E,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,+BAA0D,YAAY,GAAM,IAAI;IAC9E,MAAM,CAAC,WAAW,CAAO,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delay.js new file mode 100644 index 00000000000000..18da4386b9c448 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delay.js @@ -0,0 +1,45 @@ +import { async } from '../scheduler/async'; +import { delay as higherOrder } from '../operators/delay'; +/** + * 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. + * + * + * + * 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. + * + * @example Delay each click by one second + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var delayedClicks = clicks.delay(1000); // each click emitted after 1 second + * delayedClicks.subscribe(x => console.log(x)); + * + * @example Delay all clicks until a future date happens + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var date = new Date('March 15, 2050 12:00:00'); // in the future + * var delayedClicks = clicks.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 {Scheduler} [scheduler=async] The IScheduler 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, scheduler = async) { + return higherOrder(delay, scheduler)(this); +} +//# sourceMappingURL=delay.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delay.js.map new file mode 100644 index 00000000000000..b50b888ca118f1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delay.js","sourceRoot":"","sources":["../../src/operator/delay.ts"],"names":[],"mappings":"OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OAGnC,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,sBAA8C,KAAkB,EACvC,SAAS,GAAe,KAAK;IACpD,MAAM,CAAC,WAAW,CAAI,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delayWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delayWhen.js new file mode 100644 index 00000000000000..338b3e6262d8c8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delayWhen.js @@ -0,0 +1,50 @@ +import { delayWhen as higherOrder } from '../operators/delayWhen'; +/** + * 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` 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. + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var delayedClicks = clicks.delayWhen(event => + * Rx.Observable.interval(Math.random() * 5000) + * ); + * delayedClicks.subscribe(x => console.log(x)); + * + * @see {@link debounce} + * @see {@link delay} + * + * @param {function(value: T): 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, subscriptionDelay) { + return higherOrder(delayDurationSelector, subscriptionDelay)(this); +} +//# sourceMappingURL=delayWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delayWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delayWhen.js.map new file mode 100644 index 00000000000000..2594970e7a4239 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/delayWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delayWhen.js","sourceRoot":"","sources":["../../src/operator/delayWhen.ts"],"names":[],"mappings":"OAEO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,0BAAkD,qBAAoD,EACzE,iBAAmC;IAC9D,MAAM,CAAC,WAAW,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/dematerialize.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/dematerialize.js new file mode 100644 index 00000000000000..15eca3d84edf2f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/dematerialize.js @@ -0,0 +1,45 @@ +import { dematerialize as higherOrder } from '../operators/dematerialize'; +/** + * 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` 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 + * var notifA = new Rx.Notification('N', 'A'); + * var notifB = new Rx.Notification('N', 'B'); + * var notifE = new Rx.Notification('E', void 0, + * new TypeError('x.toUpperCase is not a function') + * ); + * var materialized = Rx.Observable.of(notifA, notifB, notifE); + * var upperCase = materialized.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() { + return higherOrder()(this); +} +//# sourceMappingURL=dematerialize.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/dematerialize.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/dematerialize.js.map new file mode 100644 index 00000000000000..c5b985ef9a3269 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/dematerialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dematerialize.js","sourceRoot":"","sources":["../../src/operator/dematerialize.ts"],"names":[],"mappings":"OAGO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,4BAA4B;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH;IACE,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAkB,CAAC;AAC9C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinct.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinct.js new file mode 100644 index 00000000000000..6ae645a9d3b068 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinct.js @@ -0,0 +1,50 @@ +import { distinct as higherOrder } from '../operators/distinct'; +/** + * 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. + * + * @example A simple example with numbers + * Observable.of(1, 1, 2, 2, 2, 1, 2, 3, 4, 3, 2, 1) + * .distinct() + * .subscribe(x => console.log(x)); // 1, 2, 3, 4 + * + * @example An example using a keySelector function + * interface Person { + * age: number, + * name: string + * } + * + * Observable.of( + * { age: 4, name: 'Foo'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo'}) + * .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, flushes) { + return higherOrder(keySelector, flushes)(this); +} +//# sourceMappingURL=distinct.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinct.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinct.js.map new file mode 100644 index 00000000000000..0a2c6895cdc4fb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinct.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinct.js","sourceRoot":"","sources":["../../src/operator/distinct.ts"],"names":[],"mappings":"OACO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,uBAAuB;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,yBAC+B,WAA6B,EAC7B,OAAyB;IACtD,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilChanged.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilChanged.js new file mode 100644 index 00000000000000..0b79e4782fd43b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilChanged.js @@ -0,0 +1,45 @@ +import { distinctUntilChanged as higherOrder } from '../operators/distinctUntilChanged'; +/* 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 + * Observable.of(1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 4) + * .distinctUntilChanged() + * .subscribe(x => console.log(x)); // 1, 2, 1, 2, 3, 4 + * + * @example An example using a compare function + * interface Person { + * age: number, + * name: string + * } + * + * Observable.of( + * { age: 4, name: 'Foo'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo'}) + * { age: 6, name: 'Foo'}) + * .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, keySelector) { + return higherOrder(compare, keySelector)(this); +} +//# sourceMappingURL=distinctUntilChanged.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilChanged.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilChanged.js.map new file mode 100644 index 00000000000000..9dc18b9b943d1b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilChanged.js","sourceRoot":"","sources":["../../src/operator/distinctUntilChanged.ts"],"names":[],"mappings":"OAEO,EAAE,oBAAoB,IAAI,WAAW,EAAE,MAAM,mCAAmC;AAKvF,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qCAAgE,OAAiC,EAAE,WAAyB;IAC1H,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilKeyChanged.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilKeyChanged.js new file mode 100644 index 00000000000000..d0008a3f14a51e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilKeyChanged.js @@ -0,0 +1,63 @@ +import { distinctUntilKeyChanged as higherOrder } from '../operators/distinctUntilKeyChanged'; +/* 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. + * + * @example An example comparing the name of persons + * + * interface Person { + * age: number, + * name: string + * } + * + * Observable.of( + * { age: 4, name: 'Foo'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo'}, + * { age: 6, name: 'Foo'}) + * .distinctUntilKeyChanged('name') + * .subscribe(x => console.log(x)); + * + * // displays: + * // { age: 4, name: 'Foo' } + * // { age: 7, name: 'Bar' } + * // { age: 5, name: 'Foo' } + * + * @example An example comparing the first letters of the name + * + * interface Person { + * age: number, + * name: string + * } + * + * Observable.of( + * { age: 4, name: 'Foo1'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo2'}, + * { age: 6, name: 'Foo3'}) + * .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, compare) { + return higherOrder(key, compare)(this); +} +//# sourceMappingURL=distinctUntilKeyChanged.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilKeyChanged.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilKeyChanged.js.map new file mode 100644 index 00000000000000..4c34125917cd40 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/distinctUntilKeyChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilKeyChanged.js","sourceRoot":"","sources":["../../src/operator/distinctUntilKeyChanged.ts"],"names":[],"mappings":"OAEO,EAAE,uBAAuB,IAAI,WAAW,EAAE,MAAM,sCAAsC;AAK7F,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,wCAAgE,GAAW,EAAE,OAAiC;IAC5G,MAAM,CAAC,WAAW,CAAO,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/do.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/do.js new file mode 100644 index 00000000000000..2b5131470f7c4f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/do.js @@ -0,0 +1,49 @@ +import { tap as higherOrder } from '../operators/tap'; +/* 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. + * + * + * + * 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 `do` is not subscribed, the side effects specified by the + * Observer will never happen. `do` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var positions = clicks + * .do(ev => console.log(ev)) + * .map(ev => ev.clientX); + * positions.subscribe(x => console.log(x)); + * + * @see {@link map} + * @see {@link 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. + * @method do + * @name do + * @owner Observable + */ +export function _do(nextOrObserver, error, complete) { + return higherOrder(nextOrObserver, error, complete)(this); +} +//# sourceMappingURL=do.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/do.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/do.js.map new file mode 100644 index 00000000000000..2599e4c44aabc7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/do.js.map @@ -0,0 +1 @@ +{"version":3,"file":"do.js","sourceRoot":"","sources":["../../src/operator/do.ts"],"names":[],"mappings":"OAGO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,kBAAkB;AAKrD,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,oBAA4C,cAAsD,EAC3E,KAAwB,EACxB,QAAqB;IAC1C,MAAM,CAAC,WAAW,CAAM,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAkB,CAAC;AAClF,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/elementAt.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/elementAt.js new file mode 100644 index 00000000000000..f358561cff133d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/elementAt.js @@ -0,0 +1,47 @@ +import { elementAt as higherOrder } from '../operators/elementAt'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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, defaultValue) { + return higherOrder(index, defaultValue)(this); +} +//# sourceMappingURL=elementAt.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/elementAt.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/elementAt.js.map new file mode 100644 index 00000000000000..7686a8101adc6e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/elementAt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"elementAt.js","sourceRoot":"","sources":["../../src/operator/elementAt.ts"],"names":[],"mappings":"OAEO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,0BAAkD,KAAa,EAAE,YAAgB;IAC/E,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/every.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/every.js new file mode 100644 index 00000000000000..28d34f416af7ae --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/every.js @@ -0,0 +1,19 @@ +import { every as higherOrder } from '../operators/every'; +/** + * 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 + * Observable.of(1, 2, 3, 4, 5, 6) + * .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, thisArg) { + return higherOrder(predicate, thisArg)(this); +} +//# sourceMappingURL=every.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/every.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/every.js.map new file mode 100644 index 00000000000000..d2fc666ddf08d8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/every.js.map @@ -0,0 +1 @@ +{"version":3,"file":"every.js","sourceRoot":"","sources":["../../src/operator/every.ts"],"names":[],"mappings":"OAEO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB;AAEzD;;;;;;;;;;;;;GAaG;AACH,sBAA8C,SAAsE,EAC3F,OAAa;IACpC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaust.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaust.js new file mode 100644 index 00000000000000..02c5cff3e6ef34 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaust.js @@ -0,0 +1,40 @@ +import { exhaust as higherOrder } from '../operators/exhaust'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000).take(5)); + * var result = higherOrder.exhaust(); + * result.subscribe(x => console.log(x)); + * + * @see {@link combineAll} + * @see {@link concatAll} + * @see {@link switch} + * @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() { + return higherOrder()(this); +} +//# sourceMappingURL=exhaust.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaust.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaust.js.map new file mode 100644 index 00000000000000..fabda8b3047532 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaust.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaust.js","sourceRoot":"","sources":["../../src/operator/exhaust.ts"],"names":[],"mappings":"OAEO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH;IACE,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAkB,CAAC;AAC9C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaustMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaustMap.js new file mode 100644 index 00000000000000..54fa682a467844 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaustMap.js @@ -0,0 +1,51 @@ +import { exhaustMap as higherOrder } from '../operators/exhaustMap'; +/* 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}. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.exhaustMap((ev) => Rx.Observable.interval(1000).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. + * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected 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, resultSelector) { + return higherOrder(project, resultSelector)(this); +} +//# sourceMappingURL=exhaustMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaustMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaustMap.js.map new file mode 100644 index 00000000000000..243f67839d765c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/exhaustMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaustMap.js","sourceRoot":"","sources":["../../src/operator/exhaustMap.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,yBAAyB;AAKnE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,2BAAyD,OAAwD,EAC7E,cAA4F;IAC9H,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/expand.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/expand.js new file mode 100644 index 00000000000000..a544be0f3543f1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/expand.js @@ -0,0 +1,52 @@ +import { expand as higherOrder } from '../operators/expand'; +/* 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var powersOfTwo = clicks + * .mapTo(1) + * .expand(x => Rx.Observable.of(2 * x).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 {Scheduler} [scheduler=null] The IScheduler 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, concurrent = Number.POSITIVE_INFINITY, scheduler = undefined) { + concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent; + return higherOrder(project, concurrent, scheduler)(this); +} +//# sourceMappingURL=expand.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/expand.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/expand.js.map new file mode 100644 index 00000000000000..e4486d8790edd4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/expand.js.map @@ -0,0 +1 @@ +{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../src/operator/expand.ts"],"names":[],"mappings":"OAEO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,qBAAqB;AAK3D,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,uBAAkD,OAAmD,EACxE,UAAU,GAAW,MAAM,CAAC,iBAAiB,EAC7C,SAAS,GAAe,SAAS;IAC5D,UAAU,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,iBAAiB,GAAG,UAAU,CAAC;IAE3E,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/filter.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/filter.js new file mode 100644 index 00000000000000..c57a64b4e16c61 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/filter.js @@ -0,0 +1,45 @@ +import { filter as higherOrderFilter } from '../operators/filter'; +/* 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var clicksOnDivs = clicks.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, thisArg) { + return higherOrderFilter(predicate, thisArg)(this); +} +//# sourceMappingURL=filter.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/filter.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/filter.js.map new file mode 100644 index 00000000000000..6abb45c2d615f8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/operator/filter.ts"],"names":[],"mappings":"OAEO,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,qBAAqB;AASjE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,uBAA+C,SAA+C,EACpE,OAAa;IACrC,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/finally.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/finally.js new file mode 100644 index 00000000000000..740cd765e2be73 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/finally.js @@ -0,0 +1,13 @@ +import { finalize } from '../operators/finalize'; +/** + * 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 _finally(callback) { + return finalize(callback)(this); +} +//# sourceMappingURL=finally.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/finally.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/finally.js.map new file mode 100644 index 00000000000000..fa9f5ae64765f3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/finally.js.map @@ -0,0 +1 @@ +{"version":3,"file":"finally.js","sourceRoot":"","sources":["../../src/operator/finally.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,MAAM,uBAAuB;AAEhD;;;;;;;GAOG;AACH,yBAAiD,QAAoB;IACnE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAkB,CAAC;AACnD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/find.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/find.js new file mode 100644 index 00000000000000..6521b51e3f3141 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/find.js @@ -0,0 +1,39 @@ +import { find as higherOrder } from '../operators/find'; +/* tslint:enable:max-line-length */ +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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, thisArg) { + return higherOrder(predicate, thisArg)(this); +} +//# sourceMappingURL=find.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/find.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/find.js.map new file mode 100644 index 00000000000000..615dbadf164307 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/find.js.map @@ -0,0 +1 @@ +{"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/operator/find.ts"],"names":[],"mappings":"OACO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,mBAAmB;AASvD,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAA6C,SAAsE,EAC3F,OAAa;IACnC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/findIndex.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/findIndex.js new file mode 100644 index 00000000000000..eec92243837ec9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/findIndex.js @@ -0,0 +1,39 @@ +import { findIndex as higherOrder } from '../operators/findIndex'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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, thisArg) { + return higherOrder(predicate, thisArg)(this); +} +//# sourceMappingURL=findIndex.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/findIndex.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/findIndex.js.map new file mode 100644 index 00000000000000..77ac8f36f87576 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/findIndex.js.map @@ -0,0 +1 @@ +{"version":3,"file":"findIndex.js","sourceRoot":"","sources":["../../src/operator/findIndex.ts"],"names":[],"mappings":"OACO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AACjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,0BAAkD,SAAsE,EAC3F,OAAa;IACxC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/first.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/first.js new file mode 100644 index 00000000000000..cc97bd80e2343b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/first.js @@ -0,0 +1,54 @@ +import { first as higherOrder } from '../operators/first'; +/** + * 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. + * + * + * + * 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 `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. + * + * @example Emit only the first click that happens on the DOM + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.first(); + * result.subscribe(x => console.log(x)); + * + * @example Emits the first click that happens on a DIV + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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 {function(value: T, index: number): R} [resultSelector] A function to + * produce the value on the output Observable based on the values + * and the indices of the source Observable. The arguments passed to this + * function are: + * - `value`: the value that was emitted on the source. + * - `index`: the "index" of the value from the source. + * @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, resultSelector, defaultValue) { + return higherOrder(predicate, resultSelector, defaultValue)(this); +} +//# sourceMappingURL=first.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/first.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/first.js.map new file mode 100644 index 00000000000000..663b25f3f69cd7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/first.js.map @@ -0,0 +1 @@ +{"version":3,"file":"first.js","sourceRoot":"","sources":["../../src/operator/first.ts"],"names":[],"mappings":"OACO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB;AAuBzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,sBAAiD,SAAuE,EAC5F,cAAwD,EACxD,YAAgB;IAC1C,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,cAAqB,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/groupBy.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/groupBy.js new file mode 100644 index 00000000000000..73db84a47d9e10 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/groupBy.js @@ -0,0 +1,74 @@ +import { groupBy as higherOrder, GroupedObservable } from '../operators/groupBy'; +export { GroupedObservable }; +/* 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. + * + * + * + * @example Group objects by id and return as array + * Observable.of({id: 1, name: 'aze1'}, + * {id: 2, name: 'sf2'}, + * {id: 2, name: 'dg2'}, + * {id: 1, name: 'erg1'}, + * {id: 1, name: 'df1'}, + * {id: 2, name: 'sfqfb2'}, + * {id: 3, name: 'qfs3'}, + * {id: 2, name: 'qsgqsfg2'} + * ) + * .groupBy(p => p.id) + * .flatMap( (group$) => group$.reduce((acc, cur) => [...acc, cur], [])) + * .subscribe(p => console.log(p)); + * + * // displays: + * // [ { id: 1, name: 'aze1' }, + * // { id: 1, name: 'erg1' }, + * // { id: 1, name: 'df1' } ] + * // + * // [ { id: 2, name: 'sf2' }, + * // { id: 2, name: 'dg2' }, + * // { id: 2, name: 'sfqfb2' }, + * // { id: 2, name: 'qsgqsfg2' } ] + * // + * // [ { id: 3, name: 'qfs3' } ] + * + * @example Pivot data on the id field + * Observable.of({id: 1, name: 'aze1'}, + * {id: 2, name: 'sf2'}, + * {id: 2, name: 'dg2'}, + * {id: 1, name: 'erg1'}, + * {id: 1, name: 'df1'}, + * {id: 2, name: 'sfqfb2'}, + * {id: 3, name: 'qfs1'}, + * {id: 2, name: 'qsgqsfg2'} + * ) + * .groupBy(p => p.id, p => p.name) + * .flatMap( (group$) => group$.reduce((acc, cur) => [...acc, cur], ["" + group$.key])) + * .map(arr => ({'id': parseInt(arr[0]), 'values': arr.slice(1)})) + * .subscribe(p => console.log(p)); + * + * // displays: + * // { id: 1, values: [ 'aze1', 'erg1', 'df1' ] } + * // { id: 2, values: [ 'sf2', 'dg2', 'sfqfb2', 'qsgqsfg2' ] } + * // { id: 3, values: [ 'qfs1' ] } + * + * @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, elementSelector, durationSelector, subjectSelector) { + return higherOrder(keySelector, elementSelector, durationSelector, subjectSelector)(this); +} +//# sourceMappingURL=groupBy.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/groupBy.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/groupBy.js.map new file mode 100644 index 00000000000000..a174abedbad24b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/groupBy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"groupBy.js","sourceRoot":"","sources":["../../src/operator/groupBy.ts"],"names":[],"mappings":"OAGO,EAAE,OAAO,IAAI,WAAW,EAAE,iBAAiB,EAAE,MAAM,sBAAsB;AAChF,SAAS,iBAAiB,GAAG;AAO7B,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,wBAAsD,WAA4B,EACjD,eAA0C,EAC1C,gBAAwE,EACxE,eAAkC;IACjE,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,eAAsB,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC;AACnG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/ignoreElements.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/ignoreElements.js new file mode 100644 index 00000000000000..6223239b211365 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/ignoreElements.js @@ -0,0 +1,16 @@ +import { ignoreElements as higherOrder } from '../operators/ignoreElements'; +/** + * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`. + * + * + * + * @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() { + return higherOrder()(this); +} +; +//# sourceMappingURL=ignoreElements.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/ignoreElements.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/ignoreElements.js.map new file mode 100644 index 00000000000000..063cc8c5b0b4af --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/ignoreElements.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ignoreElements.js","sourceRoot":"","sources":["../../src/operator/ignoreElements.ts"],"names":[],"mappings":"OACO,EAAE,cAAc,IAAI,WAAW,EAAE,MAAM,6BAA6B;AAE3E;;;;;;;;;GASG;AACH;IACE,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAkB,CAAC;AAC9C,CAAC;AAAA,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/isEmpty.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/isEmpty.js new file mode 100644 index 00000000000000..c5143de3906ad8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/isEmpty.js @@ -0,0 +1,14 @@ +import { isEmpty as higherOrder } from '../operators/isEmpty'; +/** + * If the source Observable is empty it returns an Observable that emits true, otherwise it emits false. + * + * + * + * @return {Observable} An Observable that emits a Boolean. + * @method isEmpty + * @owner Observable + */ +export function isEmpty() { + return higherOrder()(this); +} +//# sourceMappingURL=isEmpty.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/isEmpty.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/isEmpty.js.map new file mode 100644 index 00000000000000..e8b7a9e1e551ce --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/isEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isEmpty.js","sourceRoot":"","sources":["../../src/operator/isEmpty.ts"],"names":[],"mappings":"OAEO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB;AAE7D;;;;;;;;GAQG;AACH;IACE,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/last.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/last.js new file mode 100644 index 00000000000000..202219a27a7448 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/last.js @@ -0,0 +1,23 @@ +import { last as higherOrder } from '../operators/last'; +/* 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. + * + * + * + * @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. + * @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. + * @method last + * @owner Observable + */ +export function last(predicate, resultSelector, defaultValue) { + return higherOrder(predicate, resultSelector, defaultValue)(this); +} +//# sourceMappingURL=last.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/last.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/last.js.map new file mode 100644 index 00000000000000..00d0ac38651c1a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/last.js.map @@ -0,0 +1 @@ +{"version":3,"file":"last.js","sourceRoot":"","sources":["../../src/operator/last.ts"],"names":[],"mappings":"OACO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,mBAAmB;AAsBvD,mCAAmC;AAEnC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAgD,SAAuE,EAC5F,cAAwD,EACxD,YAAgB;IACzC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,cAAqB,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/let.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/let.js new file mode 100644 index 00000000000000..8d5d3a96633637 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/let.js @@ -0,0 +1,10 @@ +/** + * @param func + * @return {Observable} + * @method let + * @owner Observable + */ +export function letProto(func) { + return func(this); +} +//# sourceMappingURL=let.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/let.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/let.js.map new file mode 100644 index 00000000000000..a0c984c3764a7b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/let.js.map @@ -0,0 +1 @@ +{"version":3,"file":"let.js","sourceRoot":"","sources":["../../src/operator/let.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,yBAAoD,IAAgD;IAClG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/map.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/map.js new file mode 100644 index 00000000000000..42fc7c357d07e5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/map.js @@ -0,0 +1,38 @@ +import { map as higherOrderMap } from '../operators/map'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var positions = clicks.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, thisArg) { + return higherOrderMap(project, thisArg)(this); +} +//# sourceMappingURL=map.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/map.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/map.js.map new file mode 100644 index 00000000000000..78d52a886c963a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/map.js.map @@ -0,0 +1 @@ +{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/operator/map.ts"],"names":[],"mappings":"OAAO,EAAE,GAAG,IAAI,cAAc,EAAE,MAAM,kBAAkB;AAGxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,oBAA+C,OAAuC,EAAE,OAAa;IACnG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mapTo.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mapTo.js new file mode 100644 index 00000000000000..93f589da0cb8d2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mapTo.js @@ -0,0 +1,31 @@ +import { mapTo as higherOrder } from '../operators/mapTo'; +/** + * 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. + * + * + * + * 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' + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var greetings = clicks.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) { + return higherOrder(value)(this); +} +//# sourceMappingURL=mapTo.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mapTo.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mapTo.js.map new file mode 100644 index 00000000000000..2e1d8fd029cb5f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mapTo.js","sourceRoot":"","sources":["../../src/operator/mapTo.ts"],"names":[],"mappings":"OACO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,sBAAiD,KAAQ;IACvD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/materialize.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/materialize.js new file mode 100644 index 00000000000000..c92ad78405d14c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/materialize.js @@ -0,0 +1,49 @@ +import { materialize as higherOrder } from '../operators/materialize'; +/** + * 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` 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 + * var letters = Rx.Observable.of('a', 'b', 13, 'd'); + * var upperCase = letters.map(x => x.toUpperCase()); + * var materialized = upperCase.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() { + return higherOrder()(this); +} +//# sourceMappingURL=materialize.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/materialize.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/materialize.js.map new file mode 100644 index 00000000000000..c5ed78e9737128 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/materialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"materialize.js","sourceRoot":"","sources":["../../src/operator/materialize.ts"],"names":[],"mappings":"OAGO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,0BAA0B;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH;IACE,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAgC,CAAC;AAC5D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/max.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/max.js new file mode 100644 index 00000000000000..430013bfd95396 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/max.js @@ -0,0 +1,36 @@ +import { max as higherOrderMax } from '../operators/max'; +/** + * 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. + * + * + * + * @example Get the maximal value of a series of numbers + * Rx.Observable.of(5, 4, 7, 2, 8) + * .max() + * .subscribe(x => console.log(x)); // -> 8 + * + * @example Use a comparer function to get the maximal item + * interface Person { + * age: number, + * name: string + * } + * Observable.of({age: 7, name: 'Foo'}, + * {age: 5, name: 'Bar'}, + * {age: 9, name: 'Beer'}) + * .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) { + return higherOrderMax(comparer)(this); +} +//# sourceMappingURL=max.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/max.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/max.js.map new file mode 100644 index 00000000000000..d4a472f06c8a54 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/max.js.map @@ -0,0 +1 @@ +{"version":3,"file":"max.js","sourceRoot":"","sources":["../../src/operator/max.ts"],"names":[],"mappings":"OACO,EAAE,GAAG,IAAI,cAAc,EAAE,MAAM,kBAAkB;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,oBAA4C,QAAiC;IAC3E,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/merge.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/merge.js new file mode 100644 index 00000000000000..322cd90cd87316 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/merge.js @@ -0,0 +1,53 @@ +import { merge as higherOrder } from '../operators/merge'; +export { merge as mergeStatic } from '../observable/merge'; +/* 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` subscribes to each given input Observable (either the source or an + * Observable given as argument), 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. + * + * @example Merge together two Observables: 1s interval and clicks + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var timer = Rx.Observable.interval(1000); + * var clicksOrTimer = clicks.merge(timer); + * clicksOrTimer.subscribe(x => console.log(x)); + * + * @example Merge together 3 Observables, but only 2 run concurrently + * var timer1 = Rx.Observable.interval(1000).take(10); + * var timer2 = Rx.Observable.interval(2000).take(6); + * var timer3 = Rx.Observable.interval(500).take(10); + * var concurrent = 2; // the argument + * var merged = timer1.merge(timer2, timer3, concurrent); + * merged.subscribe(x => console.log(x)); + * + * @see {@link mergeAll} + * @see {@link mergeMap} + * @see {@link mergeMapTo} + * @see {@link mergeScan} + * + * @param {ObservableInput} other An input Observable to merge with the source + * Observable. More than one input Observables may be given as argument. + * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input + * Observables being subscribed to concurrently. + * @param {Scheduler} [scheduler=null] The IScheduler to use for managing + * concurrency of input Observables. + * @return {Observable} An Observable that emits items that are the result of + * every input Observable. + * @method merge + * @owner Observable + */ +export function merge(...observables) { + return higherOrder(...observables)(this); +} +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/merge.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/merge.js.map new file mode 100644 index 00000000000000..f9c35c8e64482a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/operator/merge.ts"],"names":[],"mappings":"OAEO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB;AAEzD,SAAS,KAAK,IAAI,WAAW,QAAQ,qBAAqB,CAAC;AAiB3D,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,sBAAiD,GAAG,WAA8D;IAChH,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAkB,CAAC;AAC5D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeAll.js new file mode 100644 index 00000000000000..2464518a3a1992 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeAll.js @@ -0,0 +1,49 @@ +import { mergeAll as higherOrder } from '../operators/mergeAll'; +/** + * 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` 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. + * + * @example Spawn a new interval Observable for each click event, and blend their outputs as one Observable + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000)); + * var firstOrder = higherOrder.mergeAll(); + * firstOrder.subscribe(x => console.log(x)); + * + * @example Count from 0 to 9 every second for each click, but only allow 2 concurrent timers + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000).take(10)); + * var firstOrder = higherOrder.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 switch} + * @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.POSITIVE_INFINITY) { + return higherOrder(concurrent)(this); +} +//# sourceMappingURL=mergeAll.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeAll.js.map new file mode 100644 index 00000000000000..a8a04ea9423673 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeAll.js","sourceRoot":"","sources":["../../src/operator/mergeAll.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,uBAAuB;AAK/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,yBAAiD,UAAU,GAAW,MAAM,CAAC,iBAAiB;IAC5F,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAkB,CAAC;AACxD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMap.js new file mode 100644 index 00000000000000..c7c1bd99cb75be --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMap.js @@ -0,0 +1,64 @@ +import { mergeMap as higherOrderMergeMap } from '../operators/mergeMap'; +/* 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}. + * + * + * + * 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 + * var letters = Rx.Observable.of('a', 'b', 'c'); + * var result = letters.mergeMap(x => + * Rx.Observable.interval(1000).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 {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected 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 `resultSelector`) to each item emitted + * by the source Observable and merging the results of the Observables obtained + * from this transformation. + * @method mergeMap + * @owner Observable + */ +export function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) { + return higherOrderMergeMap(project, resultSelector, concurrent)(this); +} +//# sourceMappingURL=mergeMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMap.js.map new file mode 100644 index 00000000000000..8095283c3f55ca --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMap.js","sourceRoot":"","sources":["../../src/operator/mergeMap.ts"],"names":[],"mappings":"OACO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,uBAAuB;AAKvE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,yBAAuD,OAAwD,EAC7E,cAAuG,EACvG,UAAU,GAAW,MAAM,CAAC,iBAAiB;IAC7E,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAO,cAAc,EAAE,UAAU,CAAC,CAAC,IAAI,CAAsB,CAAC;AAClG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMapTo.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMapTo.js new file mode 100644 index 00000000000000..2be85147a598dd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMapTo.js @@ -0,0 +1,49 @@ +import { mergeMapTo as higherOrder } from '../operators/mergeMapTo'; +/* 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.mergeMapTo(Rx.Observable.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 {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected 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` (and optionally transformed through `resultSelector`) every + * time a value is emitted on the source Observable. + * @method mergeMapTo + * @owner Observable + */ +export function mergeMapTo(innerObservable, resultSelector, concurrent = Number.POSITIVE_INFINITY) { + return higherOrder(innerObservable, resultSelector, concurrent)(this); +} +//# sourceMappingURL=mergeMapTo.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMapTo.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMapTo.js.map new file mode 100644 index 00000000000000..9315e3c9b645e2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMapTo.js","sourceRoot":"","sources":["../../src/operator/mergeMapTo.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,yBAAyB;AAKnE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,2BAAyD,eAA8B,EACnD,cAAuG,EACvG,UAAU,GAAW,MAAM,CAAC,iBAAiB;IAC/E,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,cAAqB,EAAE,UAAU,CAAC,CAAC,IAAI,CAAkB,CAAC;AAChG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeScan.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeScan.js new file mode 100644 index 00000000000000..6713a03d62e908 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeScan.js @@ -0,0 +1,36 @@ +import { mergeScan as higherOrder } from '../operators/mergeScan'; +/** + * 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 + * const click$ = Rx.Observable.fromEvent(document, 'click'); + * const one$ = click$.mapTo(1); + * const seed = 0; + * const count$ = one$.mergeScan((acc, one) => Rx.Observable.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, seed, concurrent = Number.POSITIVE_INFINITY) { + return higherOrder(accumulator, seed, concurrent)(this); +} +//# sourceMappingURL=mergeScan.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeScan.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeScan.js.map new file mode 100644 index 00000000000000..a3104f58af7a4d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/mergeScan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeScan.js","sourceRoot":"","sources":["../../src/operator/mergeScan.ts"],"names":[],"mappings":"OAEO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,0BACgC,WAAgD,EAChD,IAAO,EACP,UAAU,GAAW,MAAM,CAAC,iBAAiB;IAC3E,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/min.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/min.js new file mode 100644 index 00000000000000..5f24d5d96c57f1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/min.js @@ -0,0 +1,36 @@ +import { min as higherOrderMin } from '../operators/min'; +/** + * 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. + * + * + * + * @example Get the minimal value of a series of numbers + * Rx.Observable.of(5, 4, 7, 2, 8) + * .min() + * .subscribe(x => console.log(x)); // -> 2 + * + * @example Use a comparer function to get the minimal item + * interface Person { + * age: number, + * name: string + * } + * Observable.of({age: 7, name: 'Foo'}, + * {age: 5, name: 'Bar'}, + * {age: 9, name: 'Beer'}) + * .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) { + return higherOrderMin(comparer)(this); +} +//# sourceMappingURL=min.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/min.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/min.js.map new file mode 100644 index 00000000000000..8595bece85d6d1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"min.js","sourceRoot":"","sources":["../../src/operator/min.ts"],"names":[],"mappings":"OACO,EAAE,GAAG,IAAI,cAAc,EAAE,MAAM,kBAAkB;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,oBAA4C,QAAiC;IAC3E,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/multicast.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/multicast.js new file mode 100644 index 00000000000000..74b70cd114ae8c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/multicast.js @@ -0,0 +1,100 @@ +import { multicast as higherOrder } from '../operators/multicast'; +/* tslint:enable:max-line-length */ +/** + * Allows source Observable to be subscribed only once with a Subject of choice, + * while still sharing its values between multiple subscribers. + * + * Subscribe to Observable once, but send its values to multiple subscribers. + * + * + * + * `multicast` is an operator that works in two modes. + * + * In the first mode you provide a single argument to it, which can be either an initialized Subject or a Subject + * factory. As a result you will get a special kind of an Observable - a {@link ConnectableObservable}. It can be + * subscribed multiple times, just as regular Observable, but it won't subscribe to the source Observable at that + * moment. It will do it only if you call its `connect` method. This means you can essentially control by hand, when + * source Observable will be actually subscribed. What is more, ConnectableObservable will share this one subscription + * between all of its subscribers. This means that, for example, `ajax` Observable will only send a request once, + * even though usually it would send a request per every subscriber. Since it sends a request at the moment of + * subscription, here request would be sent when the `connect` method of a ConnectableObservable is called. + * + * The most common pattern of using ConnectableObservable is calling `connect` when the first consumer subscribes, + * keeping the subscription alive while several consumers come and go and finally unsubscribing from the source + * Observable, when the last consumer unsubscribes. To not implement that logic over and over again, + * ConnectableObservable has a special operator, `refCount`. When called, it returns an Observable, which will count + * the number of consumers subscribed to it and keep ConnectableObservable connected as long as there is at least + * one consumer. So if you don't actually need to decide yourself when to connect and disconnect a + * ConnectableObservable, use `refCount`. + * + * The second mode is invoked by calling `multicast` with an additional, second argument - selector function. + * This function accepts an Observable - which basically mirrors the source Observable - and returns Observable + * as well, which should be the input stream modified by any operators you want. Note that in this + * mode you cannot provide initialized Subject as a first argument - it has to be a Subject factory. If + * you provide selector function, `multicast` returns just a regular Observable, instead of ConnectableObservable. + * Thus, as usual, each subscription to this stream triggers subscription to the source Observable. However, + * if inside the selector function you subscribe to the input Observable multiple times, actual source stream + * will be subscribed only once. So if you have a chain of operators that use some Observable many times, + * but you want to subscribe to that Observable only once, this is the mode you would use. + * + * Subject provided as a first parameter of `multicast` is used as a proxy for the single subscription to the + * source Observable. It means that all values from the source stream go through that Subject. Thus, if a Subject + * has some special properties, Observable returned by `multicast` will have them as well. If you want to use + * `multicast` with a Subject that is one of the ones included in RxJS by default - {@link Subject}, + * {@link AsyncSubject}, {@link BehaviorSubject}, or {@link ReplaySubject} - simply use {@link publish}, + * {@link publishLast}, {@link publishBehavior} or {@link publishReplay} respectively. These are actually + * just wrappers around `multicast`, with a specific Subject hardcoded inside. + * + * Also, if you use {@link publish} or {@link publishReplay} with a ConnectableObservables `refCount` operator, + * you can simply use {@link share} and {@link shareReplay} respectively, which chain these two. + * + * @example Use ConnectableObservable + * const seconds = Rx.Observable.interval(1000); + * const connectableSeconds = seconds.multicast(new Subject()); + * + * connectableSeconds.subscribe(value => console.log('first: ' + value)); + * connectableSeconds.subscribe(value => console.log('second: ' + value)); + * + * // At this point still nothing happens, even though we subscribed twice. + * + * connectableSeconds.connect(); + * + * // From now on `seconds` are being logged to the console, + * // twice per every second. `seconds` Observable was however only subscribed once, + * // so under the hood Observable.interval had only one clock started. + * + * @example Use selector + * const seconds = Rx.Observable.interval(1000); + * + * seconds + * .multicast( + * () => new Subject(), + * seconds => seconds.zip(seconds) // Usually zip would subscribe to `seconds` twice. + * // Because we are inside selector, `seconds` is subscribed once, + * ) // thus starting only one clock used internally by Observable.interval. + * .subscribe(); + * + * @see {@link publish} + * @see {@link publishLast} + * @see {@link publishBehavior} + * @see {@link publishReplay} + * @see {@link share} + * @see {@link shareReplay} + * + * @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 input Observable or + * ConnectableObservable returned by the operator. + * @param {Function} [selector] - Optional selector function that can use the input stream + * as many times as needed, without causing multiple subscriptions to the source stream. + * Subscribers to the input source will receive all notifications of the source from the + * time of the subscription forward. + * @return {Observable|ConnectableObservable} An Observable that emits the results of invoking the selector + * on the source stream or a special {@link ConnectableObservable}, if selector was not provided. + * + * @method multicast + * @owner Observable + */ +export function multicast(subjectOrSubjectFactory, selector) { + return higherOrder(subjectOrSubjectFactory, selector)(this); +} +//# sourceMappingURL=multicast.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/multicast.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/multicast.js.map new file mode 100644 index 00000000000000..a49f8707e0c9fb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/multicast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"multicast.js","sourceRoot":"","sources":["../../src/operator/multicast.ts"],"names":[],"mappings":"OAGO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAOjE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AACH,0BAAqD,uBAAwD,EAC7E,QAAmD;IACjF,MAAM,CAAC,WAAW,CAAM,uBAAuB,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/observeOn.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/observeOn.js new file mode 100644 index 00000000000000..d11bb876dc949d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/observeOn.js @@ -0,0 +1,51 @@ +import { observeOn as higherOrder } from '../operators/observeOn'; +/** + * + * 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. + * const intervals = Rx.Observable.interval(10); // Intervals are scheduled + * // with async scheduler by default... + * + * intervals + * .observeOn(Rx.Scheduler.animationFrame) // ...but we will observe on animationFrame + * .subscribe(val => { // scheduler to ensure smooth animation. + * someDiv.style.height = val + 'px'; + * }); + * + * @see {@link delay} + * + * @param {IScheduler} 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, delay = 0) { + return higherOrder(scheduler, delay)(this); +} +//# sourceMappingURL=observeOn.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/observeOn.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/observeOn.js.map new file mode 100644 index 00000000000000..afc4b8090d1242 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/observeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observeOn.js","sourceRoot":"","sources":["../../src/operator/observeOn.ts"],"names":[],"mappings":"OAEO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,0BAAkD,SAAqB,EAAE,KAAK,GAAW,CAAC;IACxF,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,IAAI,CAAkB,CAAC;AAC9D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/onErrorResumeNext.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/onErrorResumeNext.js new file mode 100644 index 00000000000000..5e3b8fc534a003 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/onErrorResumeNext.js @@ -0,0 +1,67 @@ +import { onErrorResumeNext as higherOrder } from '../operators/onErrorResumeNext'; +/* 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` 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 subscribe}. If you want to take + * specific actions based on what error was emitted by an Observable, you should try out {@link catch} instead. + * + * + * @example Subscribe to the next Observable after map fails + * Rx.Observable.of(1, 2, 3, 0) + * .map(x => { + * if (x === 0) { throw Error(); } + return 10 / x; + * }) + * .onErrorResumeNext(Rx.Observable.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 catch} + * + * @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) { + return higherOrder(...nextSources)(this); +} +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/onErrorResumeNext.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/onErrorResumeNext.js.map new file mode 100644 index 00000000000000..00a55ed77cda78 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sourceRoot":"","sources":["../../src/operator/onErrorResumeNext.ts"],"names":[],"mappings":"OACO,EAAE,iBAAiB,IAAI,WAAW,EAAE,MAAM,gCAAgC;AAUjF,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,kCAA6D,GAAG,WAEsB;IACpF,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pairwise.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pairwise.js new file mode 100644 index 00000000000000..88a7b120ae1cc9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pairwise.js @@ -0,0 +1,40 @@ +import { pairwise as higherOrder } from '../operators/pairwise'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var pairs = clicks.pairwise(); + * var distance = pairs.map(pair => { + * var x0 = pair[0].clientX; + * var y0 = pair[0].clientY; + * var x1 = pair[1].clientX; + * var 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() { + return higherOrder()(this); +} +//# sourceMappingURL=pairwise.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pairwise.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pairwise.js.map new file mode 100644 index 00000000000000..0125b7e419dfd4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pairwise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairwise.js","sourceRoot":"","sources":["../../src/operator/pairwise.ts"],"names":[],"mappings":"OACO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,uBAAuB;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH;IACE,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAuB,CAAC;AACnD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/partition.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/partition.js new file mode 100644 index 00000000000000..e43abed4aca910 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/partition.js @@ -0,0 +1,46 @@ +import { partition as higherOrder } from '../operators/partition'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var parts = clicks.partition(ev => ev.target.tagName === 'DIV'); + * var clicksOnDivs = parts[0]; + * var 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 + */ +export function partition(predicate, thisArg) { + return higherOrder(predicate, thisArg)(this); +} +//# sourceMappingURL=partition.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/partition.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/partition.js.map new file mode 100644 index 00000000000000..be6723b50743bd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/partition.js.map @@ -0,0 +1 @@ +{"version":3,"file":"partition.js","sourceRoot":"","sources":["../../src/operator/partition.ts"],"names":[],"mappings":"OACO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AACjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,0BAAkD,SAA+C,EAAE,OAAa;IAC9G,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pluck.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pluck.js new file mode 100644 index 00000000000000..4170185373829b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pluck.js @@ -0,0 +1,31 @@ +import { pluck as higherOrder } from '../operators/pluck'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var tagNames = clicks.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) { + return higherOrder(...properties)(this); +} +//# sourceMappingURL=pluck.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pluck.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pluck.js.map new file mode 100644 index 00000000000000..e6e425a31d9f60 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/pluck.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pluck.js","sourceRoot":"","sources":["../../src/operator/pluck.ts"],"names":[],"mappings":"OACO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,sBAAiD,GAAG,UAAoB;IACtE,MAAM,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAkB,CAAC;AAC3D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publish.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publish.js new file mode 100644 index 00000000000000..75baacf46f79ef --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publish.js @@ -0,0 +1,19 @@ +import { publish as higherOrder } from '../operators/publish'; +/* 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. + * + * + * + * @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) { + return higherOrder(selector)(this); +} +//# sourceMappingURL=publish.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publish.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publish.js.map new file mode 100644 index 00000000000000..ff81d8e76c8f94 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publish.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/operator/publish.ts"],"names":[],"mappings":"OAGO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB;AAM7D,mCAAmC;AAEnC;;;;;;;;;;;;GAYG;AACH,wBAAmD,QAAmD;IACpG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishBehavior.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishBehavior.js new file mode 100644 index 00000000000000..ec2457ac46705c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishBehavior.js @@ -0,0 +1,11 @@ +import { publishBehavior as higherOrder } from '../operators/publishBehavior'; +/** + * @param value + * @return {ConnectableObservable} + * @method publishBehavior + * @owner Observable + */ +export function publishBehavior(value) { + return higherOrder(value)(this); +} +//# sourceMappingURL=publishBehavior.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishBehavior.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishBehavior.js.map new file mode 100644 index 00000000000000..5aaa9e1764d4cc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishBehavior.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishBehavior.js","sourceRoot":"","sources":["../../src/operator/publishBehavior.ts"],"names":[],"mappings":"OAEO,EAAE,eAAe,IAAI,WAAW,EAAE,MAAM,8BAA8B;AAE7E;;;;;GAKG;AACH,gCAAwD,KAAQ;IAC9D,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishLast.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishLast.js new file mode 100644 index 00000000000000..591426904bfa38 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishLast.js @@ -0,0 +1,11 @@ +import { publishLast as higherOrder } from '../operators/publishLast'; +/** + * @return {ConnectableObservable} + * @method publishLast + * @owner Observable + */ +export function publishLast() { + //TODO(benlesh): correct type-flow through here. + return higherOrder()(this); +} +//# sourceMappingURL=publishLast.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishLast.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishLast.js.map new file mode 100644 index 00000000000000..cbe23e1dd2b144 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishLast.js","sourceRoot":"","sources":["../../src/operator/publishLast.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,0BAA0B;AACrE;;;;GAIG;AACH;IACE,gDAAgD;IAChD,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAA6B,CAAC;AACzD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishReplay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishReplay.js new file mode 100644 index 00000000000000..bdf4c4c1446964 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishReplay.js @@ -0,0 +1,15 @@ +import { publishReplay as higherOrder } from '../operators/publishReplay'; +/* tslint:enable:max-line-length */ +/** + * @param bufferSize + * @param windowTime + * @param selectorOrScheduler + * @param scheduler + * @return {Observable | ConnectableObservable} + * @method publishReplay + * @owner Observable + */ +export function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { + return higherOrder(bufferSize, windowTime, selectorOrScheduler, scheduler)(this); +} +//# sourceMappingURL=publishReplay.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishReplay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishReplay.js.map new file mode 100644 index 00000000000000..56fb525a1ef8b0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/publishReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishReplay.js","sourceRoot":"","sources":["../../src/operator/publishReplay.ts"],"names":[],"mappings":"OAGO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,4BAA4B;AAOzE,mCAAmC;AAEnC;;;;;;;;GAQG;AACH,8BAAyD,UAAmB,EACxC,UAAmB,EACnB,mBAAyD,EACzD,SAAsB;IAExD,MAAM,CAAC,WAAW,CAAO,UAAU,EAAE,UAAU,EAAE,mBAA0B,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AAChG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/race.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/race.js new file mode 100644 index 00000000000000..42b0644c6f666c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/race.js @@ -0,0 +1,16 @@ +import { race as higherOrder } from '../operators/race'; +// NOTE: to support backwards compatability with 5.4.* and lower +export { race as raceStatic } from '../observable/race'; +/* tslint:enable:max-line-length */ +/** + * Returns an Observable that mirrors the first source Observable to emit an item + * 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 + */ +export function race(...observables) { + return higherOrder(...observables)(this); +} +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/race.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/race.js.map new file mode 100644 index 00000000000000..57e43d6bdbfb18 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sourceRoot":"","sources":["../../src/operator/race.ts"],"names":[],"mappings":"OACO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,mBAAmB;AAEvD,gEAAgE;AAChE,SAAS,IAAI,IAAI,UAAU,QAAQ,oBAAoB,CAAC;AAOxD,mCAAmC;AAEnC;;;;;;;GAOG;AACH,qBAA6C,GAAG,WAAwD;IACtG,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/reduce.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/reduce.js new file mode 100644 index 00000000000000..7fcabf7d220f74 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/reduce.js @@ -0,0 +1,58 @@ +import { reduce as higherOrderReduce } from '../operators/reduce'; +/* 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. + * + * + * + * 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 + * var clicksInFiveSeconds = Rx.Observable.fromEvent(document, 'click') + * .takeUntil(Rx.Observable.interval(5000)); + * var ones = clicksInFiveSeconds.mapTo(1); + * var seed = 0; + * var count = ones.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, seed) { + // 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 higherOrderReduce(accumulator, seed)(this); + } + return higherOrderReduce(accumulator)(this); +} +//# sourceMappingURL=reduce.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/reduce.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/reduce.js.map new file mode 100644 index 00000000000000..fd5b66521fa276 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/reduce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reduce.js","sourceRoot":"","sources":["../../src/operator/reduce.ts"],"names":[],"mappings":"OACO,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,qBAAqB;AAMjE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,uBAAkD,WAAoD,EAAE,IAAQ;IAC9G,gEAAgE;IAChE,qDAAqD;IACrD,sEAAsE;IACtE,oEAAoE;IACpE,+EAA+E;IAC/E,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeat.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeat.js new file mode 100644 index 00000000000000..9b52c4cda39c0f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeat.js @@ -0,0 +1,17 @@ +import { repeat as higherOrder } from '../operators/repeat'; +/** + * Returns an Observable that repeats the stream of items emitted by the source Observable at most count times. + * + * + * + * @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 repeats the stream of items emitted by the source Observable at most + * count times. + * @method repeat + * @owner Observable + */ +export function repeat(count = -1) { + return higherOrder(count)(this); +} +//# sourceMappingURL=repeat.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeat.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeat.js.map new file mode 100644 index 00000000000000..b7288b2b160a29 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeat.js","sourceRoot":"","sources":["../../src/operator/repeat.ts"],"names":[],"mappings":"OAEO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,qBAAqB;AAE3D;;;;;;;;;;;GAWG;AACH,uBAA+C,KAAK,GAAW,CAAC,CAAC;IAC/D,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,CAAC;AACnD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeatWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeatWhen.js new file mode 100644 index 00000000000000..a5dc97b7b299ad --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeatWhen.js @@ -0,0 +1,19 @@ +import { repeatWhen as higherOrder } from '../operators/repeatWhen'; +/** + * 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. + * + * + * + * @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) { + return higherOrder(notifier)(this); +} +//# sourceMappingURL=repeatWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeatWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeatWhen.js.map new file mode 100644 index 00000000000000..43940c9784837a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/repeatWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeatWhen.js","sourceRoot":"","sources":["../../src/operator/repeatWhen.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,yBAAyB;AAEnE;;;;;;;;;;;;;GAaG;AACH,2BAAmD,QAA6D;IAC9G,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAkB,CAAC;AACtD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retry.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retry.js new file mode 100644 index 00000000000000..e4bf386e212b19 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retry.js @@ -0,0 +1,21 @@ +import { retry as higherOrder } from '../operators/retry'; +/** + * 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. + * + * + * + * 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`]. + * @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 = -1) { + return higherOrder(count)(this); +} +//# sourceMappingURL=retry.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retry.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retry.js.map new file mode 100644 index 00000000000000..7711381fd744c6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retry.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/operator/retry.ts"],"names":[],"mappings":"OACO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB;AAEzD;;;;;;;;;;;;;;;GAeG;AACH,sBAA8C,KAAK,GAAW,CAAC,CAAC;IAC9D,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,CAAC;AACnD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retryWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retryWhen.js new file mode 100644 index 00000000000000..3c7b20856609bc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retryWhen.js @@ -0,0 +1,19 @@ +import { retryWhen as higherOrder } from '../operators/retryWhen'; +/** + * 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. + * + * + * + * @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) { + return higherOrder(notifier)(this); +} +//# sourceMappingURL=retryWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retryWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retryWhen.js.map new file mode 100644 index 00000000000000..2dda0455eecc05 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/retryWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retryWhen.js","sourceRoot":"","sources":["../../src/operator/retryWhen.ts"],"names":[],"mappings":"OACO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AACjE;;;;;;;;;;;;;GAaG;AACH,0BAAkD,QAAsD;IACtG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAkB,CAAC;AACtD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sample.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sample.js new file mode 100644 index 00000000000000..82cd108e16c789 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sample.js @@ -0,0 +1,39 @@ +import { sample as higherOrder } from '../operators/sample'; +/** + * 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. + * + * + * + * 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 + * var seconds = Rx.Observable.interval(1000); + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = seconds.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) { + return higherOrder(notifier)(this); +} +//# sourceMappingURL=sample.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sample.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sample.js.map new file mode 100644 index 00000000000000..034c1e8a8a5110 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sample.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sample.js","sourceRoot":"","sources":["../../src/operator/sample.ts"],"names":[],"mappings":"OACO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,qBAAqB;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,uBAA+C,QAAyB;IACtE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAkB,CAAC;AACtD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sampleTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sampleTime.js new file mode 100644 index 00000000000000..43dcc392b3f8d1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sampleTime.js @@ -0,0 +1,42 @@ +import { async } from '../scheduler/async'; +import { sampleTime as higherOrder } from '../operators/sampleTime'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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 {Scheduler} [scheduler=async] The {@link IScheduler} 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, scheduler = async) { + return higherOrder(period, scheduler)(this); +} +//# sourceMappingURL=sampleTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sampleTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sampleTime.js.map new file mode 100644 index 00000000000000..b39d922a9f8629 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sampleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sampleTime.js","sourceRoot":"","sources":["../../src/operator/sampleTime.ts"],"names":[],"mappings":"OAEO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OACnC,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,yBAAyB;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,2BAAmD,MAAc,EAAE,SAAS,GAAe,KAAK;IAC9F,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAkB,CAAC;AAC/D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/scan.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/scan.js new file mode 100644 index 00000000000000..61c1027c7c7e46 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/scan.js @@ -0,0 +1,46 @@ +import { scan as higherOrderScan } from '../operators/scan'; +/* 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var ones = clicks.mapTo(1); + * var seed = 0; + * var count = ones.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, seed) { + if (arguments.length >= 2) { + return higherOrderScan(accumulator, seed)(this); + } + return higherOrderScan(accumulator)(this); +} +//# sourceMappingURL=scan.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/scan.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/scan.js.map new file mode 100644 index 00000000000000..8b964f4ef8b28e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/scan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/operator/scan.ts"],"names":[],"mappings":"OAEO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,mBAAmB;AAM3D,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAgD,WAAmD,EAAE,IAAY;IAC/G,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAkB,CAAC;IACnE,CAAC;IACD,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sequenceEqual.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sequenceEqual.js new file mode 100644 index 00000000000000..0382adecca09dc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sequenceEqual.js @@ -0,0 +1,57 @@ +import { sequenceEqual as higherOrder } from '../operators/sequenceEqual'; +/** + * Compares all values of two observables in sequence using an optional comparor 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` 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 + * var code = Rx.Observable.from([ + * "ArrowUp", + * "ArrowUp", + * "ArrowDown", + * "ArrowDown", + * "ArrowLeft", + * "ArrowRight", + * "ArrowLeft", + * "ArrowRight", + * "KeyB", + * "KeyA", + * "Enter" // no start key, clearly. + * ]); + * + * var keys = Rx.Observable.fromEvent(document, 'keyup') + * .map(e => e.code); + * var matches = keys.bufferCount(11, 1) + * .mergeMap( + * last11 => + * Rx.Observable.from(last11) + * .sequenceEqual(code) + * ); + * 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} [comparor] 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, comparor) { + return higherOrder(compareTo, comparor)(this); +} +//# sourceMappingURL=sequenceEqual.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sequenceEqual.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sequenceEqual.js.map new file mode 100644 index 00000000000000..ab2b05f16352e2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/sequenceEqual.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sequenceEqual.js","sourceRoot":"","sources":["../../src/operator/sequenceEqual.ts"],"names":[],"mappings":"OACO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,4BAA4B;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,8BAAsD,SAAwB,EAC7C,QAAkC;IACjE,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/share.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/share.js new file mode 100644 index 00000000000000..4d61305398d769 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/share.js @@ -0,0 +1,22 @@ +import { share as higherOrder } from '../operators/share'; +/** + * 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 behaves similarly to .publish().refCount(), with a behavior difference when the source observable emits complete. + * .publish().refCount() will not resubscribe to the original source, however .share() will resubscribe to the original source. + * Observable.of("test").publish().refCount() will not re-emit "test" on new subscriptions, Observable.of("test").share() will + * re-emit "test" to new subscriptions. + * + * + * + * @return {Observable} An Observable that upon connection causes the source Observable to emit items to its Observers. + * @method share + * @owner Observable + */ +export function share() { + return higherOrder()(this); +} +; +//# sourceMappingURL=share.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/share.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/share.js.map new file mode 100644 index 00000000000000..2ad3b80be453d8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/share.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share.js","sourceRoot":"","sources":["../../src/operator/share.ts"],"names":[],"mappings":"OACO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB;AAEzD;;;;;;;;;;;;;;;GAeG;AACH;IACE,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAkB,CAAC;AAC9C,CAAC;AAAA,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/shareReplay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/shareReplay.js new file mode 100644 index 00000000000000..4802820e770a72 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/shareReplay.js @@ -0,0 +1,10 @@ +import { shareReplay as higherOrder } from '../operators/shareReplay'; +/** + * @method shareReplay + * @owner Observable + */ +export function shareReplay(bufferSize, windowTime, scheduler) { + return higherOrder(bufferSize, windowTime, scheduler)(this); +} +; +//# sourceMappingURL=shareReplay.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/shareReplay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/shareReplay.js.map new file mode 100644 index 00000000000000..1b12e061c4eafb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/shareReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shareReplay.js","sourceRoot":"","sources":["../../src/operator/shareReplay.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,0BAA0B;AAErE;;;GAGG;AACH,4BAAoD,UAAmB,EAAE,UAAmB,EAAE,SAAsB;IAElH,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,CAAkB,CAAC;AAC/E,CAAC;AAAA,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/single.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/single.js new file mode 100644 index 00000000000000..fb005578c58d1d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/single.js @@ -0,0 +1,21 @@ +import { single as higherOrder } from '../operators/single'; +/** + * 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 + * such items, notify of an IllegalArgumentException or NoSuchElementException respectively. + * + * + * + * @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. + . + * @method single + * @owner Observable + */ +export function single(predicate) { + return higherOrder(predicate)(this); +} +//# sourceMappingURL=single.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/single.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/single.js.map new file mode 100644 index 00000000000000..2a63ee04618a75 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/single.js.map @@ -0,0 +1 @@ +{"version":3,"file":"single.js","sourceRoot":"","sources":["../../src/operator/single.ts"],"names":[],"mappings":"OACO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,qBAAqB;AAE3D;;;;;;;;;;;;;;;GAeG;AACH,uBAA+C,SAAuE;IACpH,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skip.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skip.js new file mode 100644 index 00000000000000..7d57d54cd35868 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skip.js @@ -0,0 +1,16 @@ +import { skip as higherOrder } from '../operators/skip'; +/** + * Returns an Observable that skips the first `count` items emitted by the source Observable. + * + * + * + * @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) { + return higherOrder(count)(this); +} +//# sourceMappingURL=skip.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skip.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skip.js.map new file mode 100644 index 00000000000000..2ec7e832394f45 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skip.js","sourceRoot":"","sources":["../../src/operator/skip.ts"],"names":[],"mappings":"OACO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,mBAAmB;AAEvD;;;;;;;;;;GAUG;AACH,qBAA6C,KAAa;IACxD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,CAAC;AACnD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipLast.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipLast.js new file mode 100644 index 00000000000000..8ee8c718e85e40 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipLast.js @@ -0,0 +1,37 @@ +import { skipLast as higherOrder } from '../operators/skipLast'; +/** + * Skip the last `count` values emitted by the source Observable. + * + * + * + * `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 + * var many = Rx.Observable.range(1, 5); + * var skipLastTwo = many.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) { + return higherOrder(count)(this); +} +//# sourceMappingURL=skipLast.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipLast.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipLast.js.map new file mode 100644 index 00000000000000..1da25f8da39c91 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipLast.js","sourceRoot":"","sources":["../../src/operator/skipLast.ts"],"names":[],"mappings":"OACO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,uBAAuB;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,yBAAiD,KAAa;IAC5D,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,CAAC;AACnD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipUntil.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipUntil.js new file mode 100644 index 00000000000000..bae28171c01df2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipUntil.js @@ -0,0 +1,17 @@ +import { skipUntil as higherOrder } from '../operators/skipUntil'; +/** + * Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item. + * + * + * + * @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) { + return higherOrder(notifier)(this); +} +//# sourceMappingURL=skipUntil.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipUntil.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipUntil.js.map new file mode 100644 index 00000000000000..c33e186f018df1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipUntil.js","sourceRoot":"","sources":["../../src/operator/skipUntil.ts"],"names":[],"mappings":"OACO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAEjE;;;;;;;;;;;GAWG;AACH,0BAAkD,QAAyB;IACzE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAkB,CAAC;AACtD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipWhile.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipWhile.js new file mode 100644 index 00000000000000..a0f962d150ebca --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipWhile.js @@ -0,0 +1,17 @@ +import { skipWhile as higherOrder } from '../operators/skipWhile'; +/** + * 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. + * + * + * + * @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) { + return higherOrder(predicate)(this); +} +//# sourceMappingURL=skipWhile.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipWhile.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipWhile.js.map new file mode 100644 index 00000000000000..72698c9fb5d95f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/skipWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipWhile.js","sourceRoot":"","sources":["../../src/operator/skipWhile.ts"],"names":[],"mappings":"OACO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAEjE;;;;;;;;;;;GAWG;AACH,0BAAkD,SAA+C;IAC/F,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/startWith.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/startWith.js new file mode 100644 index 00000000000000..c00656c55eb5d5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/startWith.js @@ -0,0 +1,20 @@ +import { startWith as higherOrder } from '../operators/startWith'; +/* 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. + * + * + * + * @param {...T} values - Items you want the modified Observable to emit first. + * @param {Scheduler} [scheduler] - A {@link IScheduler} 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) { + return higherOrder(...array)(this); +} +//# sourceMappingURL=startWith.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/startWith.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/startWith.js.map new file mode 100644 index 00000000000000..dcae40e6d6de36 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/startWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"startWith.js","sourceRoot":"","sources":["../../src/operator/startWith.ts"],"names":[],"mappings":"OAEO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAUjE,mCAAmC;AAEnC;;;;;;;;;;;;;GAaG;AACH,0BAAkD,GAAG,KAA4B;IAC/E,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/subscribeOn.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/subscribeOn.js new file mode 100644 index 00000000000000..e54785b3086b03 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/subscribeOn.js @@ -0,0 +1,16 @@ +import { subscribeOn as higherOrder } from '../operators/subscribeOn'; +/** + * Asynchronously subscribes Observers to this Observable on the specified IScheduler. + * + * + * + * @param {Scheduler} scheduler - The IScheduler to perform subscription actions on. + * @return {Observable} The source Observable modified so that its subscriptions happen on the specified IScheduler. + . + * @method subscribeOn + * @owner Observable + */ +export function subscribeOn(scheduler, delay = 0) { + return higherOrder(scheduler, delay)(this); +} +//# sourceMappingURL=subscribeOn.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/subscribeOn.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/subscribeOn.js.map new file mode 100644 index 00000000000000..02463b5dd28843 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/subscribeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeOn.js","sourceRoot":"","sources":["../../src/operator/subscribeOn.ts"],"names":[],"mappings":"OAGO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,0BAA0B;AAErE;;;;;;;;;;GAUG;AACH,4BAAoD,SAAqB,EAAE,KAAK,GAAW,CAAC;IAC1F,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,IAAI,CAAkB,CAAC;AAC9D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switch.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switch.js new file mode 100644 index 00000000000000..bc78aa18979c89 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switch.js @@ -0,0 +1,47 @@ +import { switchAll as higherOrder } from '../operators/switchAll'; +/** + * Converts a higher-order Observable into a first-order Observable by + * subscribing to only the most recently emitted of those inner Observables. + * + * Flattens an Observable-of-Observables by dropping the + * previous inner Observable once a new one appears. + * + * + * + * `switch` 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 subscribes to the inner Observable and + * begins emitting the items emitted by that. So far, it behaves + * like {@link mergeAll}. However, when a new inner Observable is emitted, + * `switch` unsubscribes from the earlier-emitted inner Observable and + * subscribes to the new inner Observable and begins emitting items from it. It + * continues to behave like this for subsequent inner Observables. + * + * @example Rerun an interval Observable on every click event + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * // Each click event is mapped to an Observable that ticks every second + * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000)); + * var switched = higherOrder.switch(); + * // The outcome is that `switched` is essentially a timer that restarts + * // on every click. The interval Observables from older clicks do not merge + * // with the current interval Observable. + * switched.subscribe(x => console.log(x)); + * + * @see {@link combineAll} + * @see {@link concatAll} + * @see {@link exhaust} + * @see {@link mergeAll} + * @see {@link switchMap} + * @see {@link switchMapTo} + * @see {@link zipAll} + * + * @return {Observable} An Observable that emits the items emitted by the + * Observable most recently emitted by the source Observable. + * @method switch + * @name switch + * @owner Observable + */ +export function _switch() { + return higherOrder()(this); +} +//# sourceMappingURL=switch.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switch.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switch.js.map new file mode 100644 index 00000000000000..3e9a6a83ee6b94 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../src/operator/switch.ts"],"names":[],"mappings":"OACO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH;IACE,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAkB,CAAC;AAC9C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMap.js new file mode 100644 index 00000000000000..b01f240d263b3b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMap.js @@ -0,0 +1,53 @@ +import { switchMap as higherOrderSwitchMap } from '../operators/switchMap'; +/* 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 using {@link switch}. + * + * + * + * 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 Rerun an interval Observable on every click event + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.switchMap((ev) => Rx.Observable.interval(1000)); + * result.subscribe(x => console.log(x)); + * + * @see {@link concatMap} + * @see {@link exhaustMap} + * @see {@link mergeMap} + * @see {@link switch} + * @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. + * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected Observable + * @return {Observable} An Observable that emits the result of applying the + * projection function (and the optional `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, resultSelector) { + return higherOrderSwitchMap(project, resultSelector)(this); +} +//# sourceMappingURL=switchMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMap.js.map new file mode 100644 index 00000000000000..44999cd1618935 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMap.js","sourceRoot":"","sources":["../../src/operator/switchMap.ts"],"names":[],"mappings":"OAEO,EAAE,SAAS,IAAI,oBAAoB,EAAE,MAAM,wBAAwB;AAK1E,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,0BAAwD,OAAwD,EAC7E,cAA4F;IAC7H,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMapTo.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMapTo.js new file mode 100644 index 00000000000000..7c2ca013efb4e8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMapTo.js @@ -0,0 +1,48 @@ +import { switchMapTo as higherOrder } from '../operators/switchMapTo'; +/* tslint:enable:max-line-length */ +/** + * Projects each source value to the same Observable which is flattened multiple + * times with {@link switch} in the output Observable. + * + * It's like {@link switchMap}, but maps each value + * always to the same inner Observable. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.switchMapTo(Rx.Observable.interval(1000)); + * result.subscribe(x => console.log(x)); + * + * @see {@link concatMapTo} + * @see {@link switch} + * @see {@link switchMap} + * @see {@link mergeMapTo} + * + * @param {ObservableInput} innerObservable An Observable to replace each value from + * the source Observable. + * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected Observable + * @return {Observable} An Observable that emits items from the given + * `innerObservable` (and optionally transformed through `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, resultSelector) { + return higherOrder(innerObservable, resultSelector)(this); +} +//# sourceMappingURL=switchMapTo.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMapTo.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMapTo.js.map new file mode 100644 index 00000000000000..0ca61c30f64e52 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/switchMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMapTo.js","sourceRoot":"","sources":["../../src/operator/switchMapTo.ts"],"names":[],"mappings":"OACO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,0BAA0B;AAKrE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,4BAA0D,eAA8B,EACnD,cAG0C;IAC7E,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/take.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/take.js new file mode 100644 index 00000000000000..89d7c7d66f4c31 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/take.js @@ -0,0 +1,38 @@ +import { take as higherOrder } from '../operators/take'; +/** + * Emits only the first `count` values emitted by the source Observable. + * + * Takes the first `count` values from the source, then + * completes. + * + * + * + * `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 + * var interval = Rx.Observable.interval(1000); + * var five = interval.take(5); + * five.subscribe(x => console.log(x)); + * + * @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) { + return higherOrder(count)(this); +} +//# sourceMappingURL=take.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/take.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/take.js.map new file mode 100644 index 00000000000000..c9fdda7f29585f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/take.js.map @@ -0,0 +1 @@ +{"version":3,"file":"take.js","sourceRoot":"","sources":["../../src/operator/take.ts"],"names":[],"mappings":"OACO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,mBAAmB;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAA6C,KAAa;IACxD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,CAAC;AACnD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeLast.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeLast.js new file mode 100644 index 00000000000000..fa059619e8bb12 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeLast.js @@ -0,0 +1,41 @@ +import { takeLast as higherOrderTakeLast } from '../operators/takeLast'; +/** + * 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` 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 + * var many = Rx.Observable.range(1, 100); + * var lastThree = many.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) { + return higherOrderTakeLast(count)(this); +} +//# sourceMappingURL=takeLast.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeLast.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeLast.js.map new file mode 100644 index 00000000000000..68763fdca9ebba --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeLast.js","sourceRoot":"","sources":["../../src/operator/takeLast.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,uBAAuB;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,yBAAiD,KAAa;IAC5D,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAkB,CAAC;AAC3D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeUntil.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeUntil.js new file mode 100644 index 00000000000000..6acaa40eea8ff1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeUntil.js @@ -0,0 +1,38 @@ +import { takeUntil as higherOrder } from '../operators/takeUntil'; +/** + * Emits the values emitted by the source Observable until a `notifier` + * Observable emits a value. + * + * Lets values pass until a second Observable, + * `notifier`, emits something. Then, it completes. + * + * + * + * `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. + * + * @example Tick every second until the first click happens + * var interval = Rx.Observable.interval(1000); + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = interval.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) { + return higherOrder(notifier)(this); +} +//# sourceMappingURL=takeUntil.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeUntil.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeUntil.js.map new file mode 100644 index 00000000000000..c5c1087c8b268e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeUntil.js","sourceRoot":"","sources":["../../src/operator/takeUntil.ts"],"names":[],"mappings":"OACO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,0BAAkD,QAAyB;IACzE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAkB,CAAC;AACtD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeWhile.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeWhile.js new file mode 100644 index 00000000000000..9d6bcb3c113c70 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeWhile.js @@ -0,0 +1,41 @@ +import { takeWhile as higherOrder } from '../operators/takeWhile'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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. + * @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) { + return higherOrder(predicate)(this); +} +//# sourceMappingURL=takeWhile.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeWhile.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeWhile.js.map new file mode 100644 index 00000000000000..c24d891d53c429 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/takeWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeWhile.js","sourceRoot":"","sources":["../../src/operator/takeWhile.ts"],"names":[],"mappings":"OACO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,0BAAkD,SAA+C;IAC/F,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttle.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttle.js new file mode 100644 index 00000000000000..1244f94dc25d30 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttle.js @@ -0,0 +1,45 @@ +import { throttle as higherOrder, defaultThrottleConfig } from '../operators/throttle'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.throttle(ev => Rx.Observable.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, config = defaultThrottleConfig) { + return higherOrder(durationSelector, config)(this); +} +//# sourceMappingURL=throttle.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttle.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttle.js.map new file mode 100644 index 00000000000000..dafc1df35cde92 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../src/operator/throttle.ts"],"names":[],"mappings":"OACO,EAAE,QAAQ,IAAI,WAAW,EAAkB,qBAAqB,EAAE,MAAM,uBAAuB;AAEtG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,yBAC4B,gBAA6D,EAC7D,MAAM,GAAmB,qBAAqB;IACxE,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttleTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttleTime.js new file mode 100644 index 00000000000000..bbad2cb98dba24 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttleTime.js @@ -0,0 +1,46 @@ +import { async } from '../scheduler/async'; +import { defaultThrottleConfig } from '../operators/throttle'; +import { throttleTime as higherOrder } from '../operators/throttleTime'; +/** + * 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` 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 IScheduler} for managing timers. + * + * @example Emit clicks at a rate of at most one click per second + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.throttleTime(1000); + * result.subscribe(x => console.log(x)); + * + * @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 {Scheduler} [scheduler=async] The {@link IScheduler} to use for + * managing the timers that handle the throttling. + * @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, scheduler = async, config = defaultThrottleConfig) { + return higherOrder(duration, scheduler, config)(this); +} +//# sourceMappingURL=throttleTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttleTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttleTime.js.map new file mode 100644 index 00000000000000..bcbfd96f7e8958 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/throttleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttleTime.js","sourceRoot":"","sources":["../../src/operator/throttleTime.ts"],"names":[],"mappings":"OAEO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OACnC,EAAkB,qBAAqB,EAAE,MAAM,uBAAuB;OACtE,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,2BAA2B;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,6BACgC,QAAgB,EAChB,SAAS,GAAe,KAAK,EAC7B,MAAM,GAAmB,qBAAqB;IAC5E,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAkB,CAAC;AACzE,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeInterval.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeInterval.js new file mode 100644 index 00000000000000..499fe76a4ed438 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeInterval.js @@ -0,0 +1,13 @@ +import { async } from '../scheduler/async'; +import { timeInterval as higherOrder, TimeInterval } from '../operators/timeInterval'; +export { TimeInterval }; +/** + * @param scheduler + * @return {Observable>|WebSocketSubject|Observable} + * @method timeInterval + * @owner Observable + */ +export function timeInterval(scheduler = async) { + return higherOrder(scheduler)(this); +} +//# sourceMappingURL=timeInterval.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeInterval.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeInterval.js.map new file mode 100644 index 00000000000000..05842d769c1224 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeInterval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeInterval.js","sourceRoot":"","sources":["../../src/operator/timeInterval.ts"],"names":[],"mappings":"OAEO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OACnC,EAAE,YAAY,IAAI,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B;AACrF,SAAQ,YAAY,GAAE;AAEtB;;;;;GAKG;AACH,6BAAqD,SAAS,GAAe,KAAK;IAChF,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAgC,CAAC;AACrE,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeout.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeout.js new file mode 100644 index 00000000000000..41781f33b8ec19 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeout.js @@ -0,0 +1,71 @@ +import { async } from '../scheduler/async'; +import { timeout as higherOrder } from '../operators/timeout'; +/** + * + * Errors if Observable does not emit a value in given time span. + * + * Timeouts on Observable that doesn't emit values fast enough. + * + * + * + * `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. + * + * @example Check if ticks are emitted within certain timespan + * const seconds = Rx.Observable.interval(1000); + * + * seconds.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.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. + * ); + * + * @example Use Date to check if Observable completed + * const seconds = Rx.Observable.interval(1000); + * + * seconds.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 {Scheduler} [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, scheduler = async) { + return higherOrder(due, scheduler)(this); +} +//# sourceMappingURL=timeout.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeout.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeout.js.map new file mode 100644 index 00000000000000..33e3b1da303574 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/operator/timeout.ts"],"names":[],"mappings":"OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OAGnC,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,wBAC2B,GAAkB,EAClB,SAAS,GAAe,KAAK;IACtD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAkB,CAAC;AAC5D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeoutWith.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeoutWith.js new file mode 100644 index 00000000000000..6fb8a3228921b7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeoutWith.js @@ -0,0 +1,54 @@ +import { async } from '../scheduler/async'; +import { timeoutWith as higherOrder } from '../operators/timeoutWith'; +/* 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` 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 + * const seconds = Rx.Observable.interval(1000); + * const minutes = Rx.Observable.interval(60 * 1000); + * + * seconds.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 {Scheduler} [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, withObservable, scheduler = async) { + return higherOrder(due, withObservable, scheduler)(this); +} +//# sourceMappingURL=timeoutWith.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeoutWith.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeoutWith.js.map new file mode 100644 index 00000000000000..7df90c9289460b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timeoutWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeoutWith.js","sourceRoot":"","sources":["../../src/operator/timeoutWith.ts"],"names":[],"mappings":"OACO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OAEnC,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,0BAA0B;AAKrE,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,4BAAuD,GAAkB,EACvC,cAAkC,EAClC,SAAS,GAAe,KAAK;IAC7D,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,IAAW,CAAC,CAAC;AAClE,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timestamp.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timestamp.js new file mode 100644 index 00000000000000..328bbeeb7c24c1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timestamp.js @@ -0,0 +1,12 @@ +import { async } from '../scheduler/async'; +import { timestamp as higherOrder } from '../operators/timestamp'; +/** + * @param scheduler + * @return {Observable>|WebSocketSubject|Observable} + * @method timestamp + * @owner Observable + */ +export function timestamp(scheduler = async) { + return higherOrder(scheduler)(this); +} +//# sourceMappingURL=timestamp.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timestamp.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timestamp.js.map new file mode 100644 index 00000000000000..adb29c32c49cd7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/timestamp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../src/operator/timestamp.ts"],"names":[],"mappings":"OAEO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OACnC,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,wBAAwB;AAEjE;;;;;GAKG;AACH,0BAAkD,SAAS,GAAe,KAAK;IAC7E,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAA6B,CAAC;AAClE,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toArray.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toArray.js new file mode 100644 index 00000000000000..5c111a20bb2add --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toArray.js @@ -0,0 +1,28 @@ +import { toArray as higherOrder } from '../operators/toArray'; +/** + * 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` 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 Create array from input + * const input = Rx.Observable.interval(100).take(4); + * + * input.toArray() + * .subscribe(arr => console.log(arr)); // [0,1,2,3] + * + * @see {@link buffer} + * + * @return {Observable|WebSocketSubject|Observable} + * @method toArray + * @owner Observable + */ +export function toArray() { + return higherOrder()(this); +} +//# sourceMappingURL=toArray.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toArray.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toArray.js.map new file mode 100644 index 00000000000000..c501b6d9215513 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toArray.js","sourceRoot":"","sources":["../../src/operator/toArray.ts"],"names":[],"mappings":"OAEO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB;AAE7D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;IACE,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAoB,CAAC;AAChD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toPromise.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toPromise.js new file mode 100644 index 00000000000000..e1eb75df8731cf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toPromise.js @@ -0,0 +1,5 @@ +import { Observable } from '../Observable'; +// HACK: this is here for backward compatability +// TODO(benlesh): remove this in v6. +export const toPromise = Observable.prototype.toPromise; +//# sourceMappingURL=toPromise.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toPromise.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toPromise.js.map new file mode 100644 index 00000000000000..07182d1bee6d2c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/toPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toPromise.js","sourceRoot":"","sources":["../../src/operator/toPromise.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,eAAe;AAE1C,gDAAgD;AAChD,oCAAoC;AACpC,OAAO,MAAM,SAAS,GAA0C,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/window.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/window.js new file mode 100644 index 00000000000000..7338f1fd36211a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/window.js @@ -0,0 +1,41 @@ +import { window as higherOrder } from '../operators/window'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var interval = Rx.Observable.interval(1000); + * var result = clicks.window(interval) + * .map(win => win.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) { + return higherOrder(windowBoundaries)(this); +} +//# sourceMappingURL=window.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/window.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/window.js.map new file mode 100644 index 00000000000000..887a435bbb0364 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/window.js.map @@ -0,0 +1 @@ +{"version":3,"file":"window.js","sourceRoot":"","sources":["../../src/operator/window.ts"],"names":[],"mappings":"OAEO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,qBAAqB;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,uBAA+C,gBAAiC;IAC9E,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAA8B,CAAC;AAC1E,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowCount.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowCount.js new file mode 100644 index 00000000000000..e2cce8f639044f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowCount.js @@ -0,0 +1,53 @@ +import { windowCount as higherOrder } from '../operators/windowCount'; +/** + * 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. + * + * + * + * 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`. + * + * @example Ignore every 3rd click event, starting from the first one + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.windowCount(3) + * .map(win => win.skip(1)) // skip first of every 3 clicks + * .mergeAll(); // flatten the Observable-of-Observables + * result.subscribe(x => console.log(x)); + * + * @example Ignore every 3rd click event, starting from the third one + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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, startWindowEvery = 0) { + return higherOrder(windowSize, startWindowEvery)(this); +} +//# sourceMappingURL=windowCount.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowCount.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowCount.js.map new file mode 100644 index 00000000000000..189873f4c9ad61 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowCount.js","sourceRoot":"","sources":["../../src/operator/windowCount.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,0BAA0B;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,4BAAoD,UAAkB,EACvC,gBAAgB,GAAW,CAAC;IACzD,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAA8B,CAAC;AACtF,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowTime.js new file mode 100644 index 00000000000000..d095e64701e2e3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowTime.js @@ -0,0 +1,26 @@ +import { async } from '../scheduler/async'; +import { isNumeric } from '../util/isNumeric'; +import { isScheduler } from '../util/isScheduler'; +import { windowTime as higherOrder } from '../operators/windowTime'; +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 = arguments[2]; + } + if (isScheduler(arguments[1])) { + scheduler = arguments[1]; + } + else if (isNumeric(arguments[1])) { + windowCreationInterval = arguments[1]; + } + return higherOrder(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler)(this); +} +//# sourceMappingURL=windowTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowTime.js.map new file mode 100644 index 00000000000000..62e9203eef99c2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowTime.js","sourceRoot":"","sources":["../../src/operator/windowTime.ts"],"names":[],"mappings":"OACO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OAEnC,EAAE,SAAS,EAAE,MAAM,mBAAmB;OACtC,EAAE,WAAW,EAAE,MAAM,qBAAqB;OAC1C,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,yBAAyB;AAwEnE,2BAC8B,cAAsB;IAElD,IAAI,SAAS,GAAe,KAAK,CAAC;IAClC,IAAI,sBAAsB,GAAW,IAAI,CAAC;IAC1C,IAAI,aAAa,GAAW,MAAM,CAAC,iBAAiB,CAAC;IAErD,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,sBAAsB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,sBAAsB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,IAAI,CAA8B,CAAC;AAC1H,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowToggle.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowToggle.js new file mode 100644 index 00000000000000..0b25088d6b6a73 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowToggle.js @@ -0,0 +1,46 @@ +import { windowToggle as higherOrder } from '../operators/windowToggle'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var openings = Rx.Observable.interval(1000); + * var result = clicks.windowToggle(openings, i => + * i % 2 ? Rx.Observable.interval(500) : Rx.Observable.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, closingSelector) { + return higherOrder(openings, closingSelector)(this); +} +//# sourceMappingURL=windowToggle.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowToggle.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowToggle.js.map new file mode 100644 index 00000000000000..76d54b95f66bb6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowToggle.js","sourceRoot":"","sources":["../../src/operator/windowToggle.ts"],"names":[],"mappings":"OAEO,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,2BAA2B;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,6BAAwD,QAAuB,EAC5C,eAAkD;IACnF,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,IAAI,CAA8B,CAAC;AACnF,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowWhen.js new file mode 100644 index 00000000000000..7f0f7a0f5a5be3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowWhen.js @@ -0,0 +1,43 @@ +import { windowWhen as higherOrder } from '../operators/windowWhen'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks + * .windowWhen(() => Rx.Observable.interval(1000 + Math.random() * 4000)) + * .map(win => win.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) { + return higherOrder(closingSelector)(this); +} +//# sourceMappingURL=windowWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowWhen.js.map new file mode 100644 index 00000000000000..3cde5312921e0a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/windowWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowWhen.js","sourceRoot":"","sources":["../../src/operator/windowWhen.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,yBAAyB;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,2BAAmD,eAAsC;IACvF,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CAA8B,CAAC;AACzE,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/withLatestFrom.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/withLatestFrom.js new file mode 100644 index 00000000000000..693366e3303949 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/withLatestFrom.js @@ -0,0 +1,44 @@ +import { withLatestFrom as higherOrder } from '../operators/withLatestFrom'; +/* 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var timer = Rx.Observable.interval(1000); + * var result = clicks.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.withLatestFrom(b, c, (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) { + return higherOrder(...args)(this); +} +//# sourceMappingURL=withLatestFrom.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/withLatestFrom.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/withLatestFrom.js.map new file mode 100644 index 00000000000000..646b7ada748160 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/withLatestFrom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"withLatestFrom.js","sourceRoot":"","sources":["../../src/operator/withLatestFrom.ts"],"names":[],"mappings":"OACO,EAAE,cAAc,IAAI,WAAW,EAAE,MAAM,6BAA6B;AAiB3E,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,+BAA0D,GAAG,IAAkE;IAC7H,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zip.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zip.js new file mode 100644 index 00000000000000..3246d2a369ee59 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zip.js @@ -0,0 +1,12 @@ +import { zip as higherOrder } from '../operators/zip'; +/* tslint:enable:max-line-length */ +/** + * @param observables + * @return {Observable} + * @method zip + * @owner Observable + */ +export function zipProto(...observables) { + return higherOrder(...observables)(this); +} +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zip.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zip.js.map new file mode 100644 index 00000000000000..8bc90145267fec --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sourceRoot":"","sources":["../../src/operator/zip.ts"],"names":[],"mappings":"OACO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,kBAAkB;AAkBrD,mCAAmC;AAEnC;;;;;GAKG;AACH,yBAAoD,GAAG,WAAyE;IAC9H,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zipAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zipAll.js new file mode 100644 index 00000000000000..25522bfc481c4e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zipAll.js @@ -0,0 +1,11 @@ +import { zipAll as higherOrder } from '../operators/zipAll'; +/** + * @param project + * @return {Observable|WebSocketSubject|Observable} + * @method zipAll + * @owner Observable + */ +export function zipAll(project) { + return higherOrder(project)(this); +} +//# sourceMappingURL=zipAll.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zipAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zipAll.js.map new file mode 100644 index 00000000000000..24ffff49df62f8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operator/zipAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zipAll.js","sourceRoot":"","sources":["../../src/operator/zipAll.ts"],"names":[],"mappings":"OACO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,qBAAqB;AAE3D;;;;;GAKG;AACH,uBAAkD,OAAsC;IACtF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators.js new file mode 100644 index 00000000000000..fab19497604ccc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators.js @@ -0,0 +1,109 @@ +export { audit } from './operators/audit'; +export { auditTime } from './operators/auditTime'; +export { buffer } from './operators/buffer'; +export { bufferCount } from './operators/bufferCount'; +export { bufferTime } from './operators/bufferTime'; +export { bufferToggle } from './operators/bufferToggle'; +export { bufferWhen } from './operators/bufferWhen'; +export { catchError } from './operators/catchError'; +export { combineAll } from './operators/combineAll'; +export { combineLatest } from './operators/combineLatest'; +export { concat } from './operators/concat'; +export { concatAll } from './operators/concatAll'; +export { concatMap } from './operators/concatMap'; +export { concatMapTo } from './operators/concatMapTo'; +export { count } from './operators/count'; +export { debounce } from './operators/debounce'; +export { debounceTime } from './operators/debounceTime'; +export { defaultIfEmpty } from './operators/defaultIfEmpty'; +export { delay } from './operators/delay'; +export { delayWhen } from './operators/delayWhen'; +export { dematerialize } from './operators/dematerialize'; +export { distinct } from './operators/distinct'; +export { distinctUntilChanged } from './operators/distinctUntilChanged'; +export { distinctUntilKeyChanged } from './operators/distinctUntilKeyChanged'; +export { elementAt } from './operators/elementAt'; +export { every } from './operators/every'; +export { exhaust } from './operators/exhaust'; +export { exhaustMap } from './operators/exhaustMap'; +export { expand } from './operators/expand'; +export { filter } from './operators/filter'; +export { finalize } from './operators/finalize'; +export { find } from './operators/find'; +export { findIndex } from './operators/findIndex'; +export { first } from './operators/first'; +export { groupBy } from './operators/groupBy'; +export { ignoreElements } from './operators/ignoreElements'; +export { isEmpty } from './operators/isEmpty'; +export { last } from './operators/last'; +export { map } from './operators/map'; +export { mapTo } from './operators/mapTo'; +export { materialize } from './operators/materialize'; +export { max } from './operators/max'; +export { merge } from './operators/merge'; +export { mergeAll } from './operators/mergeAll'; +export { mergeMap } from './operators/mergeMap'; +export { mergeMap as flatMap } from './operators/mergeMap'; +export { mergeMapTo } from './operators/mergeMapTo'; +export { mergeScan } from './operators/mergeScan'; +export { min } from './operators/min'; +export { multicast } from './operators/multicast'; +export { observeOn } from './operators/observeOn'; +export { onErrorResumeNext } from './operators/onErrorResumeNext'; +export { pairwise } from './operators/pairwise'; +export { partition } from './operators/partition'; +export { pluck } from './operators/pluck'; +export { publish } from './operators/publish'; +export { publishBehavior } from './operators/publishBehavior'; +export { publishLast } from './operators/publishLast'; +export { publishReplay } from './operators/publishReplay'; +export { race } from './operators/race'; +export { reduce } from './operators/reduce'; +export { repeat } from './operators/repeat'; +export { repeatWhen } from './operators/repeatWhen'; +export { retry } from './operators/retry'; +export { retryWhen } from './operators/retryWhen'; +export { refCount } from './operators/refCount'; +export { sample } from './operators/sample'; +export { sampleTime } from './operators/sampleTime'; +export { scan } from './operators/scan'; +export { sequenceEqual } from './operators/sequenceEqual'; +export { share } from './operators/share'; +export { shareReplay } from './operators/shareReplay'; +export { single } from './operators/single'; +export { skip } from './operators/skip'; +export { skipLast } from './operators/skipLast'; +export { skipUntil } from './operators/skipUntil'; +export { skipWhile } from './operators/skipWhile'; +export { startWith } from './operators/startWith'; +/** + * TODO(https://github.com/ReactiveX/rxjs/issues/2900): Add back subscribeOn once it can be + * treeshaken. Currently if this export is added back, it + * forces apps to bring in asap scheduler along with + * Immediate, root, and other supporting code. + */ +// export { subscribeOn } from './operators/subscribeOn'; +export { switchAll } from './operators/switchAll'; +export { switchMap } from './operators/switchMap'; +export { switchMapTo } from './operators/switchMapTo'; +export { take } from './operators/take'; +export { takeLast } from './operators/takeLast'; +export { takeUntil } from './operators/takeUntil'; +export { takeWhile } from './operators/takeWhile'; +export { tap } from './operators/tap'; +export { throttle } from './operators/throttle'; +export { throttleTime } from './operators/throttleTime'; +export { timeInterval } from './operators/timeInterval'; +export { timeout } from './operators/timeout'; +export { timeoutWith } from './operators/timeoutWith'; +export { timestamp } from './operators/timestamp'; +export { toArray } from './operators/toArray'; +export { window } from './operators/window'; +export { windowCount } from './operators/windowCount'; +export { windowTime } from './operators/windowTime'; +export { windowToggle } from './operators/windowToggle'; +export { windowWhen } from './operators/windowWhen'; +export { withLatestFrom } from './operators/withLatestFrom'; +export { zip } from './operators/zip'; +export { zipAll } from './operators/zipAll'; +//# sourceMappingURL=operators.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators.js.map new file mode 100644 index 00000000000000..ad74b90bd03597 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators.js.map @@ -0,0 +1 @@ +{"version":3,"file":"operators.js","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/audit.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/audit.js new file mode 100644 index 00000000000000..dd54c90653db52 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/audit.js @@ -0,0 +1,108 @@ +import { tryCatch } from '../util/tryCatch'; +import { errorObject } from '../util/errorObject'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.audit(ev => Rx.Observable.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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class AuditSubscriber extends OuterSubscriber { + constructor(destination, durationSelector) { + super(destination); + this.durationSelector = durationSelector; + this.hasValue = false; + } + _next(value) { + this.value = value; + this.hasValue = true; + if (!this.throttled) { + const duration = tryCatch(this.durationSelector)(value); + if (duration === errorObject) { + this.destination.error(errorObject.e); + } + else { + const innerSubscription = subscribeToResult(this, duration); + if (innerSubscription.closed) { + this.clearThrottle(); + } + else { + this.add(this.throttled = innerSubscription); + } + } + } + } + clearThrottle() { + const { value, hasValue, throttled } = this; + if (throttled) { + this.remove(throttled); + this.throttled = null; + throttled.unsubscribe(); + } + if (hasValue) { + this.value = null; + this.hasValue = false; + this.destination.next(value); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex) { + this.clearThrottle(); + } + notifyComplete() { + this.clearThrottle(); + } +} +//# sourceMappingURL=audit.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/audit.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/audit.js.map new file mode 100644 index 00000000000000..6f363137aebed0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/audit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/operators/audit.ts"],"names":[],"mappings":"OAKO,EAAE,QAAQ,EAAE,MAAM,kBAAkB;OACpC,EAAE,WAAW,EAAE,MAAM,qBAAqB;OAC1C,EAAE,eAAe,EAAE,MAAM,oBAAoB;OAC7C,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,sBAAyB,gBAA0D;IACjF,MAAM,CAAC,+BAA+B,MAAqB;QACzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,YAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,gBAAgB,CAA0C;IAC9E,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAO,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,8BAAoC,eAAe;IAMjD,YAAY,WAA0B,EAClB,gBAA0D;QAC5E,MAAM,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,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACpB,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC;YACxD,EAAE,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC5D,EAAE,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,aAAa;QACX,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC5C,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC;QACD,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAAE,UAAkB,EAAE,UAAkB;QAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/auditTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/auditTime.js new file mode 100644 index 00000000000000..ea2b0d30827a23 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/auditTime.js @@ -0,0 +1,49 @@ +import { async } from '../scheduler/async'; +import { audit } from './audit'; +import { timer } from '../observable/timer'; +/** + * 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 values, it ignores that plus + * the next ones for `duration` milliseconds, and then it emits the most recent + * value from the source. + * + * + * + * `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 IScheduler} for managing timers. + * + * @example Emit clicks at a rate of at most one click per second + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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 {Scheduler} [scheduler=async] The {@link IScheduler} 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, scheduler = async) { + return audit(() => timer(duration, scheduler)); +} +//# sourceMappingURL=auditTime.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/auditTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/auditTime.js.map new file mode 100644 index 00000000000000..34699b0a205cf1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/auditTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auditTime.js","sourceRoot":"","sources":["../../src/operators/auditTime.ts"],"names":[],"mappings":"OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OAEnC,EAAE,KAAK,EAAE,MAAM,SAAS;OACxB,EAAE,KAAK,EAAE,MAAM,qBAAqB;AAG3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,0BAA6B,QAAgB,EAAE,SAAS,GAAe,KAAK;IAC1E,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACjD,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/buffer.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/buffer.js new file mode 100644 index 00000000000000..9241dab4457b25 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/buffer.js @@ -0,0 +1,68 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var interval = Rx.Observable.interval(1000); + * var buffered = interval.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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class BufferSubscriber extends OuterSubscriber { + constructor(destination, closingNotifier) { + super(destination); + this.buffer = []; + this.add(subscribeToResult(this, closingNotifier)); + } + _next(value) { + this.buffer.push(value); + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + const buffer = this.buffer; + this.buffer = []; + this.destination.next(buffer); + } +} +//# sourceMappingURL=buffer.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/buffer.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/buffer.js.map new file mode 100644 index 00000000000000..e3d47615f31ae1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/buffer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/operators/buffer.ts"],"names":[],"mappings":"OAGO,EAAE,eAAe,EAAE,MAAM,oBAAoB;OAE7C,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,uBAA0B,eAAgC;IACxD,MAAM,CAAC,gCAAgC,MAAqB;QAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,eAAe,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;IAEE,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IACpD,CAAC;IAED,IAAI,CAAC,UAA2B,EAAE,MAAW;QAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,+BAAkC,eAAe;IAG/C,YAAY,WAA4B,EAAE,eAAgC;QACxE,MAAM,WAAW,CAAC,CAAC;QAHb,WAAM,GAAQ,EAAE,CAAC;QAIvB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IACrD,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAe,EAC9B,UAAkB,EAAE,UAAkB,EACtC,QAAiC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferCount.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferCount.js new file mode 100644 index 00000000000000..3d7f1784332b4f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferCount.js @@ -0,0 +1,129 @@ +import { Subscriber } from '../Subscriber'; +/** + * 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`. + * + * + * + * 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. + * + * @example Emit the last two click events as an array + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var buffered = clicks.bufferCount(2); + * buffered.subscribe(x => console.log(x)); + * + * @example On every click, emit the last two click events as an array + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var buffered = clicks.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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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(); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferCount.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferCount.js.map new file mode 100644 index 00000000000000..6490ba2015d11a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferCount.js","sourceRoot":"","sources":["../../src/operators/bufferCount.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferTime.js new file mode 100644 index 00000000000000..09a49a1b61e51d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferTime.js @@ -0,0 +1,190 @@ +import { async } from '../scheduler/async'; +import { Subscriber } from '../Subscriber'; +import { isScheduler } from '../util/isScheduler'; +/* 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. + * + * + * + * 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. + * + * @example Every second, emit an array of the recent click events + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var buffered = clicks.bufferTime(1000); + * buffered.subscribe(x => console.log(x)); + * + * @example Every 5 seconds, emit the click events from the next 2 seconds + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var buffered = clicks.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 {Scheduler} [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) { + 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 = []; + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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(); + } + /** @deprecated internal use only */ _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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferTime.js.map new file mode 100644 index 00000000000000..1bca1e657d03d2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferTime.js","sourceRoot":"","sources":["../../src/operators/bufferTime.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferToggle.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferToggle.js new file mode 100644 index 00000000000000..54a4165cf2beba --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferToggle.js @@ -0,0 +1,144 @@ +import { Subscription } from '../Subscription'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { OuterSubscriber } from '../OuterSubscriber'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var openings = Rx.Observable.interval(1000); + * var buffered = clicks.bufferToggle(openings, i => + * i % 2 ? Rx.Observable.interval(500) : Rx.Observable.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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class BufferToggleSubscriber extends OuterSubscriber { + constructor(destination, openings, closingSelector) { + super(destination); + this.openings = openings; + 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, outerIndex, innerIndex, innerSub) { + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferToggle.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferToggle.js.map new file mode 100644 index 00000000000000..3ffd53d8f2f524 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferToggle.js","sourceRoot":"","sources":["../../src/operators/bufferToggle.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferWhen.js new file mode 100644 index 00000000000000..0c9b6dcaf080c6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferWhen.js @@ -0,0 +1,114 @@ +import { Subscription } from '../Subscription'; +import { tryCatch } from '../util/tryCatch'; +import { errorObject } from '../util/errorObject'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var buffered = clicks.bufferWhen(() => + * Rx.Observable.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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class BufferWhenSubscriber extends OuterSubscriber { + 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(); + } + /** @deprecated internal use only */ _unsubscribe() { + this.buffer = null; + this.subscribing = false; + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + 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 = []; + const closingNotifier = tryCatch(this.closingSelector)(); + if (closingNotifier === errorObject) { + this.error(errorObject.e); + } + else { + closingSubscription = new Subscription(); + this.closingSubscription = closingSubscription; + this.add(closingSubscription); + this.subscribing = true; + closingSubscription.add(subscribeToResult(this, closingNotifier)); + this.subscribing = false; + } + } +} +//# sourceMappingURL=bufferWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferWhen.js.map new file mode 100644 index 00000000000000..00355da77f2d8a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/bufferWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferWhen.js","sourceRoot":"","sources":["../../src/operators/bufferWhen.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/catchError.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/catchError.js new file mode 100644 index 00000000000000..7a32d7ea043103 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/catchError.js @@ -0,0 +1,106 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * Catches errors on the observable to be handled by returning a new observable or throwing an error. + * + * + * + * @example Continues with a different Observable when there's an error + * + * Observable.of(1, 2, 3, 4, 5) + * .map(n => { + * if (n == 4) { + * throw 'four!'; + * } + * return n; + * }) + * .catch(err => Observable.of('I', 'II', 'III', 'IV', 'V')) + * .subscribe(x => console.log(x)); + * // 1, 2, 3, I, II, III, IV, V + * + * @example Retries the caught source Observable again in case of error, similar to retry() operator + * + * Observable.of(1, 2, 3, 4, 5) + * .map(n => { + * if (n === 4) { + * throw 'four!'; + * } + * return n; + * }) + * .catch((err, caught) => caught) + * .take(30) + * .subscribe(x => console.log(x)); + * // 1, 2, 3, 1, 2, 3, ... + * + * @example Throws a new error when the source Observable throws an error + * + * Observable.of(1, 2, 3, 4, 5) + * .map(n => { + * if (n == 4) { + * throw 'four!'; + * } + * return n; + * }) + * .catch(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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class CatchSubscriber extends OuterSubscriber { + constructor(destination, selector, caught) { + super(destination); + this.selector = selector; + this.caught = caught; + } + // 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) { + if (!this.isStopped) { + let result; + try { + result = this.selector(err, this.caught); + } + catch (err2) { + super.error(err2); + return; + } + this._unsubscribeAndRecycle(); + this.add(subscribeToResult(this, result)); + } + } +} +//# sourceMappingURL=catchError.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/catchError.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/catchError.js.map new file mode 100644 index 00000000000000..dbf7fcb25d8e7c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/catchError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"catchError.js","sourceRoot":"","sources":["../../src/operators/catchError.ts"],"names":[],"mappings":"OAIO,EAAE,eAAe,EAAE,MAAM,oBAAoB;OAC7C,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,2BAAiC,QAAiE;IAChG,MAAM,CAAC,oCAAoC,MAAqB;QAC9D,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAuB,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED;IAGE,YAAoB,QAAqE;QAArE,aAAQ,GAAR,QAAQ,CAA6D;IACzF,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,8BAAoC,eAAe;IACjD,YAAY,WAA4B,EACpB,QAAqE,EACrE,MAAqB;QACvC,MAAM,WAAW,CAAC,CAAC;QAFD,aAAQ,GAAR,QAAQ,CAA6D;QACrE,WAAM,GAAN,MAAM,CAAe;IAEzC,CAAC;IAED,qEAAqE;IACrE,qEAAqE;IACrE,qEAAqE;IACrE,oEAAoE;IACpE,yCAAyC;IACzC,KAAK,CAAC,GAAQ;QACZ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACpB,IAAI,MAAW,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAE;YAAA,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACd,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClB,MAAM,CAAC;YACT,CAAC;YACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineAll.js new file mode 100644 index 00000000000000..aa581e7ca7ced6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineAll.js @@ -0,0 +1,5 @@ +import { CombineLatestOperator } from '../operators/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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineAll.js.map new file mode 100644 index 00000000000000..60a319f5c02052 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineAll.js","sourceRoot":"","sources":["../../src/operators/combineAll.ts"],"names":[],"mappings":"OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B;AAIlE,2BAAiC,OAAsC;IACrE,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AACpF,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineLatest.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineLatest.js new file mode 100644 index 00000000000000..a5b8d0043e2a00 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineLatest.js @@ -0,0 +1,135 @@ +import { ArrayObservable } from '../observable/ArrayObservable'; +import { isArray } from '../util/isArray'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +const none = {}; +/* 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` combines the values from this Observable with values from + * Observables passed as arguments. This is done by subscribing to each + * Observable, in order, and collecting an array of each of the most recent + * values any time any of the input Observables emits, then either taking that + * array and passing it as arguments to an optional `project` function and + * emitting the return value of that, or just emitting the array of recent + * values directly if there is no `project` function. + * + * @example Dynamically calculate the Body-Mass Index from an Observable of weight and one for height + * var weight = Rx.Observable.of(70, 72, 76, 79, 75); + * var height = Rx.Observable.of(1.76, 1.77, 1.78); + * var bmi = weight.combineLatest(height, (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} other An input Observable to combine with the source + * Observable. More than one input Observables may be given as argument. + * @param {function} [project] An optional function to project the values from + * the combined latest values into a new value 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 combineLatest + * @owner Observable + */ +export function combineLatest(...observables) { + let project = null; + if (typeof observables[observables.length - 1] === 'function') { + project = 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) => source.lift.call(new ArrayObservable([source, ...observables]), new CombineLatestOperator(project)); +} +export class CombineLatestOperator { + constructor(project) { + this.project = project; + } + call(subscriber, source) { + return source.subscribe(new CombineLatestSubscriber(subscriber, this.project)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class CombineLatestSubscriber extends OuterSubscriber { + constructor(destination, project) { + super(destination); + this.project = project; + 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, observable, i)); + } + } + } + notifyComplete(unused) { + if ((this.active -= 1) === 0) { + this.destination.complete(); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + 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.project) { + this._tryProject(values); + } + else { + this.destination.next(values.slice()); + } + } + } + _tryProject(values) { + let result; + try { + result = this.project.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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineLatest.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineLatest.js.map new file mode 100644 index 00000000000000..a36d2a18a8867c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sourceRoot":"","sources":["../../src/operators/combineLatest.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concat.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concat.js new file mode 100644 index 00000000000000..5784eb6e8f3f25 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concat.js @@ -0,0 +1,56 @@ +import { concat as concatStatic } from '../observable/concat'; +export { concat as concatStatic } from '../observable/concat'; +/* tslint:enable:max-line-length */ +/** + * Creates an output Observable which sequentially emits all values from every + * given input Observable after the current Observable. + * + * Concatenates multiple Observables together by + * sequentially emitting their values, one Observable after the other. + * + * + * + * Joins this Observable with multiple other Observables by subscribing to them + * one at a time, starting with the source, and merging their results into the + * output Observable. Will wait for each Observable to complete before moving + * on to the next. + * + * @example Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10 + * var timer = Rx.Observable.interval(1000).take(4); + * var sequence = Rx.Observable.range(1, 10); + * var result = timer.concat(sequence); + * result.subscribe(x => console.log(x)); + * + * // results in: + * // 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10 + * + * @example Concatenate 3 Observables + * var timer1 = Rx.Observable.interval(1000).take(10); + * var timer2 = Rx.Observable.interval(2000).take(6); + * var timer3 = Rx.Observable.interval(500).take(10); + * var result = timer1.concat(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 + * + * @see {@link concatAll} + * @see {@link concatMap} + * @see {@link concatMapTo} + * + * @param {ObservableInput} other An input Observable to concatenate after the source + * Observable. More than one input Observables may be given as argument. + * @param {Scheduler} [scheduler=null] An optional IScheduler to schedule each + * Observable subscription on. + * @return {Observable} All values of each passed Observable merged into a + * single Observable, in order, in serial fashion. + * @method concat + * @owner Observable + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concat.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concat.js.map new file mode 100644 index 00000000000000..043a4e9fa6622e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sourceRoot":"","sources":["../../src/operators/concat.ts"],"names":[],"mappings":"OAGO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,sBAAsB;AAE7D,SAAS,MAAM,IAAI,YAAY,QAAQ,sBAAsB,CAAC;AAW9D,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,uBAA6B,GAAG,WAAqD;IACnF,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAO,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;AACjG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatAll.js new file mode 100644 index 00000000000000..07ace5b0d7620d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatAll.js @@ -0,0 +1,53 @@ +import { mergeAll } from './mergeAll'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var higherOrder = clicks.map(ev => Rx.Observable.interval(1000).take(4)); + * var firstOrder = higherOrder.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 switch} + * @see {@link zipAll} + * + * @return {Observable} An Observable emitting values from all the inner + * Observables concatenated. + * @method concatAll + * @owner Observable + */ +export function concatAll() { + return mergeAll(1); +} +//# sourceMappingURL=concatAll.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatAll.js.map new file mode 100644 index 00000000000000..a45ad9ffa9b374 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatAll.js","sourceRoot":"","sources":["../../src/operators/concatAll.ts"],"names":[],"mappings":"OACO,EAAE,QAAQ,EAAE,MAAM,YAAY;AAGrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH;IACE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMap.js new file mode 100644 index 00000000000000..efce943458ed08 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMap.js @@ -0,0 +1,65 @@ +import { mergeMap } from './mergeMap'; +/* 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}. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.concatMap(ev => Rx.Observable.interval(1000).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. + * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected Observable + * @return {Observable} An Observable that emits the result of applying the + * projection function (and the optional `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, resultSelector) { + return mergeMap(project, resultSelector, 1); +} +//# sourceMappingURL=concatMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMap.js.map new file mode 100644 index 00000000000000..c7ffe1b67e3880 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMap.js","sourceRoot":"","sources":["../../src/operators/concatMap.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY;AAOrC,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,0BAAmC,OAAyD,EACzD,cAA4F;IAC7H,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMapTo.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMapTo.js new file mode 100644 index 00000000000000..48a3d047fabbdf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMapTo.js @@ -0,0 +1,62 @@ +import { concatMap } from './concatMap'; +/* 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.concatMapTo(Rx.Observable.interval(1000).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. + * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected 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, resultSelector) { + return concatMap(() => innerObservable, resultSelector); +} +//# sourceMappingURL=concatMapTo.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMapTo.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMapTo.js.map new file mode 100644 index 00000000000000..f827b97df5021d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/concatMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMapTo.js","sourceRoot":"","sources":["../../src/operators/concatMapTo.ts"],"names":[],"mappings":"OACO,EAAE,SAAS,EAAE,MAAM,aAAa;AAMvC,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,4BACE,eAA8B,EAC9B,cAA4F;IAE5F,MAAM,CAAC,SAAS,CAAC,MAAM,eAAe,EAAE,cAAc,CAAC,CAAC;AAC1D,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/count.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/count.js new file mode 100644 index 00000000000000..b46e7070c2f811 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/count.js @@ -0,0 +1,101 @@ +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` 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`. + * + * @example Counts how many seconds have passed before the first click happened + * var seconds = Rx.Observable.interval(1000); + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var secondsBeforeClick = seconds.takeUntil(clicks); + * var result = secondsBeforeClick.count(); + * result.subscribe(x => console.log(x)); + * + * @example Counts how many odd numbers are there between 1 and 7 + * var numbers = Rx.Observable.range(1, 7); + * var result = numbers.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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/count.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/count.js.map new file mode 100644 index 00000000000000..40cd82318dd133 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/count.js.map @@ -0,0 +1 @@ +{"version":3,"file":"count.js","sourceRoot":"","sources":["../../src/operators/count.ts"],"names":[],"mappings":"OAGO,EAAE,UAAU,EAAE,MAAM,eAAe;AAG1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,sBAAyB,SAAuE;IAC9F,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACtF,CAAC;AAED;IACE,YAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,IAAI,CAAC,UAA8B,EAAE,MAAW;QAC9C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,8BAAiC,UAAU;IAIzC,YAAY,WAA6B,EACrB,SAAuE,EACvE,MAAsB;QACxC,MAAM,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,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAQ;QAC5B,IAAI,MAAW,CAAC;QAEhB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;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;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounce.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounce.js new file mode 100644 index 00000000000000..27cd9deffb7a3a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounce.js @@ -0,0 +1,117 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.debounce(() => Rx.Observable.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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class DebounceSubscriber extends OuterSubscriber { + constructor(destination, durationSelector) { + super(destination); + this.durationSelector = durationSelector; + this.hasValue = false; + this.durationSubscription = null; + } + _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 = subscribeToResult(this, duration); + if (!subscription.closed) { + this.add(this.durationSubscription = subscription); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.emitValue(); + } + notifyComplete() { + this.emitValue(); + } + emitValue() { + if (this.hasValue) { + const value = this.value; + const subscription = this.durationSubscription; + if (subscription) { + this.durationSubscription = null; + subscription.unsubscribe(); + this.remove(subscription); + } + this.value = null; + this.hasValue = false; + super._next(value); + } + } +} +//# sourceMappingURL=debounce.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounce.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounce.js.map new file mode 100644 index 00000000000000..8f6bb36177cdad --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/operators/debounce.ts"],"names":[],"mappings":"OAKO,EAAE,eAAe,EAAE,MAAM,oBAAoB;OAE7C,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,yBAA4B,gBAA6D;IACvF,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;IACE,YAAoB,gBAA6D;QAA7D,qBAAgB,GAAhB,gBAAgB,CAA6C;IACjF,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,iCAAuC,eAAe;IAKpD,YAAY,WAA0B,EAClB,gBAA6D;QAC/E,MAAM,WAAW,CAAC,CAAC;QADD,qBAAgB,GAAhB,gBAAgB,CAA6C;QAJzE,aAAQ,GAAY,KAAK,CAAC;QAC1B,yBAAoB,GAAiB,IAAI,CAAC;IAKlD,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEvD,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/B,CAAC;QACH,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEO,QAAQ,CAAC,KAAQ,EAAE,QAAuC;QAChE,IAAI,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YACjB,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;QAED,YAAY,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjD,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACP,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAC/C,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounceTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounceTime.js new file mode 100644 index 00000000000000..fbe84af3b0973f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounceTime.js @@ -0,0 +1,105 @@ +import { Subscriber } from '../Subscriber'; +import { async } from '../scheduler/async'; +/** + * 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` 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 IScheduler} for + * managing timers. + * + * @example Emit the most recent click after a burst of clicks + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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 {Scheduler} [scheduler=async] The {@link IScheduler} 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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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) { + this.destination.next(this.lastValue); + this.lastValue = null; + this.hasValue = false; + } + } + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounceTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounceTime.js.map new file mode 100644 index 00000000000000..6d482a7c9fcead --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/debounceTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounceTime.js","sourceRoot":"","sources":["../../src/operators/debounceTime.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;OAGnC,EAAE,KAAK,EAAE,MAAM,oBAAoB;AAG1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,6BAAgC,OAAe,EAAE,SAAS,GAAe,KAAK;IAC5E,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED;IACE,YAAoB,OAAe,EAAU,SAAqB;QAA9C,YAAO,GAAP,OAAO,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAY;IAClE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,qCAAwC,UAAU;IAKhD,YAAY,WAA0B,EAClB,OAAe,EACf,SAAqB;QACvC,MAAM,WAAW,CAAC,CAAC;QAFD,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAY;QANjC,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,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAEzD,EAAE,CAAC,CAAC,qBAAqB,KAAK,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACnC,qBAAqB,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC;AAED,sBAAsB,UAAuC;IAC3D,UAAU,CAAC,aAAa,EAAE,CAAC;AAC7B,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/defaultIfEmpty.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/defaultIfEmpty.js new file mode 100644 index 00000000000000..1b0b255e2f88fb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/defaultIfEmpty.js @@ -0,0 +1,66 @@ +import { Subscriber } from '../Subscriber'; +/* 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` 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" + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var clicksBeforeFive = clicks.takeUntil(Rx.Observable.interval(5000)); + * var result = clicksBeforeFive.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 = 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/defaultIfEmpty.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/defaultIfEmpty.js.map new file mode 100644 index 00000000000000..ee93ac5da61ddb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/defaultIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defaultIfEmpty.js","sourceRoot":"","sources":["../../src/operators/defaultIfEmpty.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;AAM1C,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,+BAAqC,YAAY,GAAM,IAAI;IACzD,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAsB,CAAC;AAC/G,CAAC;AAED;IAEE,YAAoB,YAAe;QAAf,iBAAY,GAAZ,YAAY,CAAG;IACnC,CAAC;IAED,IAAI,CAAC,UAA6B,EAAE,MAAW;QAC7C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,uCAA6C,UAAU;IAGrD,YAAY,WAA8B,EAAU,YAAe;QACjE,MAAM,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,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delay.js new file mode 100644 index 00000000000000..e01e4bd4948883 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delay.js @@ -0,0 +1,124 @@ +import { async } from '../scheduler/async'; +import { isDate } from '../util/isDate'; +import { Subscriber } from '../Subscriber'; +import { Notification } from '../Notification'; +/** + * 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. + * + * + * + * 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. + * + * @example Delay each click by one second + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var delayedClicks = clicks.delay(1000); // each click emitted after 1 second + * delayedClicks.subscribe(x => console.log(x)); + * + * @example Delay all clicks until a future date happens + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var date = new Date('March 15, 2050 12:00:00'); // in the future + * var delayedClicks = clicks.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 {Scheduler} [scheduler=async] The IScheduler 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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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; + this.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); + } + _complete() { + this.scheduleNotification(Notification.createComplete()); + } +} +class DelayMessage { + constructor(time, notification) { + this.time = time; + this.notification = notification; + } +} +//# sourceMappingURL=delay.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delay.js.map new file mode 100644 index 00000000000000..bcd4e78b40a504 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delay.js","sourceRoot":"","sources":["../../src/operators/delay.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delayWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delayWhen.js new file mode 100644 index 00000000000000..d2b97c9a9a35e2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delayWhen.js @@ -0,0 +1,178 @@ +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * 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` 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. + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var delayedClicks = clicks.delayWhen(event => + * Rx.Observable.interval(Math.random() * 5000) + * ); + * delayedClicks.subscribe(x => console.log(x)); + * + * @see {@link debounce} + * @see {@link delay} + * + * @param {function(value: T): 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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class DelayWhenSubscriber extends OuterSubscriber { + constructor(destination, delayDurationSelector) { + super(destination); + this.delayDurationSelector = delayDurationSelector; + this.completed = false; + this.delayNotifierSubscriptions = []; + this.values = []; + } + 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) { + try { + const delayNotifier = this.delayDurationSelector(value); + if (delayNotifier) { + this.tryDelay(delayNotifier, value); + } + } + catch (err) { + this.destination.error(err); + } + } + _complete() { + this.completed = true; + this.tryComplete(); + } + removeSubscription(subscription) { + subscription.unsubscribe(); + const subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription); + let value = null; + if (subscriptionIdx !== -1) { + value = this.values[subscriptionIdx]; + this.delayNotifierSubscriptions.splice(subscriptionIdx, 1); + this.values.splice(subscriptionIdx, 1); + } + return value; + } + tryDelay(delayNotifier, value) { + const notifierSubscription = subscribeToResult(this, delayNotifier, value); + if (notifierSubscription && !notifierSubscription.closed) { + this.add(notifierSubscription); + this.delayNotifierSubscriptions.push(notifierSubscription); + } + this.values.push(value); + } + tryComplete() { + 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(/** @deprecated internal use only */ source, subscriptionDelay) { + super(); + this.source = source; + this.subscriptionDelay = subscriptionDelay; + } + /** @deprecated internal use only */ _subscribe(subscriber) { + this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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.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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delayWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delayWhen.js.map new file mode 100644 index 00000000000000..0b57e8adeaf605 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/delayWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delayWhen.js","sourceRoot":"","sources":["../../src/operators/delayWhen.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/dematerialize.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/dematerialize.js new file mode 100644 index 00000000000000..fa1dcd4733efc1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/dematerialize.js @@ -0,0 +1,65 @@ +import { Subscriber } from '../Subscriber'; +/** + * 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` 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 + * var notifA = new Rx.Notification('N', 'A'); + * var notifB = new Rx.Notification('N', 'B'); + * var notifE = new Rx.Notification('E', void 0, + * new TypeError('x.toUpperCase is not a function') + * ); + * var materialized = Rx.Observable.of(notifA, notifB, notifE); + * var upperCase = materialized.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() { + return function dematerializeOperatorFunction(source) { + return source.lift(new DeMaterializeOperator()); + }; +} +class DeMaterializeOperator { + call(subscriber, source) { + return source.subscribe(new DeMaterializeSubscriber(subscriber)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/dematerialize.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/dematerialize.js.map new file mode 100644 index 00000000000000..286b1abf333e51 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/dematerialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dematerialize.js","sourceRoot":"","sources":["../../src/operators/dematerialize.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH;IACE,MAAM,CAAC,uCAAuC,MAAmC;QAC/E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAED;IACE,IAAI,CAAC,UAA2B,EAAE,MAAW;QAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,sCAAmE,UAAU;IAC3E,YAAY,WAA4B;QACtC,MAAM,WAAW,CAAC,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinct.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinct.js new file mode 100644 index 00000000000000..f54b53b72ef6cb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinct.js @@ -0,0 +1,109 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { Set } from '../util/Set'; +/** + * 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. + * + * @example A simple example with numbers + * Observable.of(1, 1, 2, 2, 2, 1, 2, 3, 4, 3, 2, 1) + * .distinct() + * .subscribe(x => console.log(x)); // 1, 2, 3, 4 + * + * @example An example using a keySelector function + * interface Person { + * age: number, + * name: string + * } + * + * Observable.of( + * { age: 4, name: 'Foo'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo'}) + * .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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class DistinctSubscriber extends OuterSubscriber { + constructor(destination, keySelector, flushes) { + super(destination); + this.keySelector = keySelector; + this.values = new Set(); + if (flushes) { + this.add(subscribeToResult(this, flushes)); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.values.clear(); + } + notifyError(error, innerSub) { + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinct.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinct.js.map new file mode 100644 index 00000000000000..8dbba1e8d23235 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinct.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinct.js","sourceRoot":"","sources":["../../src/operators/distinct.ts"],"names":[],"mappings":"OAIO,EAAE,eAAe,EAAE,MAAM,oBAAoB;OAE7C,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;OACtD,EAAQ,GAAG,EAAE,MAAM,aAAa;AAGvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,yBAA+B,WAA6B,EAC7B,OAAyB;IACtD,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED;IACE,YAAoB,WAA4B,EAAU,OAAwB;QAA9D,gBAAW,GAAX,WAAW,CAAiB;QAAU,YAAO,GAAP,OAAO,CAAiB;IAClF,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,wCAA8C,eAAe;IAG3D,YAAY,WAA0B,EAAU,WAA4B,EAAE,OAAwB;QACpG,MAAM,WAAW,CAAC,CAAC;QAD2B,gBAAW,GAAX,WAAW,CAAiB;QAFpE,WAAM,GAAY,IAAI,GAAG,EAAK,CAAC;QAKrC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,QAA+B;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,KAAQ;QAC9B,IAAI,GAAM,CAAC;QACX,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,CAAC;QACT,CAAC;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,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;AAEH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilChanged.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilChanged.js new file mode 100644 index 00000000000000..370ed5884af981 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilChanged.js @@ -0,0 +1,98 @@ +import { Subscriber } from '../Subscriber'; +import { tryCatch } from '../util/tryCatch'; +import { errorObject } from '../util/errorObject'; +/* 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 + * Observable.of(1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 4) + * .distinctUntilChanged() + * .subscribe(x => console.log(x)); // 1, 2, 1, 2, 3, 4 + * + * @example An example using a compare function + * interface Person { + * age: number, + * name: string + * } + * + * Observable.of( + * { age: 4, name: 'Foo'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo'}) + * { age: 6, name: 'Foo'}) + * .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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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) { + const keySelector = this.keySelector; + let key = value; + if (keySelector) { + key = tryCatch(this.keySelector)(value); + if (key === errorObject) { + return this.destination.error(errorObject.e); + } + } + let result = false; + if (this.hasKey) { + result = tryCatch(this.compare)(this.key, key); + if (result === errorObject) { + return this.destination.error(errorObject.e); + } + } + else { + this.hasKey = true; + } + if (Boolean(result) === false) { + this.key = key; + this.destination.next(value); + } + } +} +//# sourceMappingURL=distinctUntilChanged.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilChanged.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilChanged.js.map new file mode 100644 index 00000000000000..e18f740b4b250d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilChanged.js","sourceRoot":"","sources":["../../src/operators/distinctUntilChanged.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,QAAQ,EAAE,MAAM,kBAAkB;OACpC,EAAE,WAAW,EAAE,MAAM,qBAAqB;AAQjD,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qCAA2C,OAAiC,EAAE,WAAyB;IACrG,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,4BAA4B,CAAO,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED;IACE,YAAoB,OAAgC,EAChC,WAAwB;QADxB,YAAO,GAAP,OAAO,CAAyB;QAChC,gBAAW,GAAX,WAAW,CAAa;IAC5C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,8BAA8B,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,6CAAmD,UAAU;IAI3D,YAAY,WAA0B,EAC1B,OAAgC,EACxB,WAAwB;QAC1C,MAAM,WAAW,CAAC,CAAC;QADD,gBAAW,GAAX,WAAW,CAAa;QAJpC,WAAM,GAAY,KAAK,CAAC;QAM9B,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,CAAM,EAAE,CAAM;QAC5B,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,KAAQ;QAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,GAAG,GAAQ,KAAK,CAAC;QAErB,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAChB,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;YACxC,EAAE,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,IAAI,MAAM,GAAQ,KAAK,CAAC;QAExB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilKeyChanged.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilKeyChanged.js new file mode 100644 index 00000000000000..805724999788a7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilKeyChanged.js @@ -0,0 +1,63 @@ +import { distinctUntilChanged } from './distinctUntilChanged'; +/* 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. + * + * @example An example comparing the name of persons + * + * interface Person { + * age: number, + * name: string + * } + * + * Observable.of( + * { age: 4, name: 'Foo'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo'}, + * { age: 6, name: 'Foo'}) + * .distinctUntilKeyChanged('name') + * .subscribe(x => console.log(x)); + * + * // displays: + * // { age: 4, name: 'Foo' } + * // { age: 7, name: 'Bar' } + * // { age: 5, name: 'Foo' } + * + * @example An example comparing the first letters of the name + * + * interface Person { + * age: number, + * name: string + * } + * + * Observable.of( + * { age: 4, name: 'Foo1'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo2'}, + * { age: 6, name: 'Foo3'}) + * .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, 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilKeyChanged.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilKeyChanged.js.map new file mode 100644 index 00000000000000..9fd0b3b68da628 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/distinctUntilKeyChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilKeyChanged.js","sourceRoot":"","sources":["../../src/operators/distinctUntilKeyChanged.ts"],"names":[],"mappings":"OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB;AAM7D,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,wCAA2C,GAAW,EAAE,OAAiC;IACvF,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAI,EAAE,CAAI,KAAK,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/elementAt.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/elementAt.js new file mode 100644 index 00000000000000..968333e60f43aa --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/elementAt.js @@ -0,0 +1,90 @@ +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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, defaultValue) { + return (source) => source.lift(new ElementAtOperator(index, defaultValue)); +} +class ElementAtOperator { + constructor(index, defaultValue) { + this.index = index; + this.defaultValue = defaultValue; + if (index < 0) { + throw new ArgumentOutOfRangeError; + } + } + call(subscriber, source) { + return source.subscribe(new ElementAtSubscriber(subscriber, this.index, this.defaultValue)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class ElementAtSubscriber extends Subscriber { + constructor(destination, index, defaultValue) { + super(destination); + this.index = index; + this.defaultValue = defaultValue; + } + _next(x) { + if (this.index-- === 0) { + this.destination.next(x); + this.destination.complete(); + } + } + _complete() { + const destination = this.destination; + if (this.index >= 0) { + if (typeof this.defaultValue !== 'undefined') { + destination.next(this.defaultValue); + } + else { + destination.error(new ArgumentOutOfRangeError); + } + } + destination.complete(); + } +} +//# sourceMappingURL=elementAt.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/elementAt.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/elementAt.js.map new file mode 100644 index 00000000000000..db04cdfe782582 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/elementAt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"elementAt.js","sourceRoot":"","sources":["../../src/operators/elementAt.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,uBAAuB,EAAE,MAAM,iCAAiC;AAKzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,0BAA6B,KAAa,EAAE,YAAgB;IAC1D,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED;IAEE,YAAoB,KAAa,EAAU,YAAgB;QAAvC,UAAK,GAAL,KAAK,CAAQ;QAAU,iBAAY,GAAZ,YAAY,CAAI;QACzD,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACd,MAAM,IAAI,uBAAuB,CAAC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,kCAAqC,UAAU;IAE7C,YAAY,WAA0B,EAAU,KAAa,EAAU,YAAgB;QACrF,MAAM,WAAW,CAAC,CAAC;QAD2B,UAAK,GAAL,KAAK,CAAQ;QAAU,iBAAY,GAAZ,YAAY,CAAI;IAEvF,CAAC;IAES,KAAK,CAAC,CAAI;QAClB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAES,SAAS;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC;gBAC7C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,WAAW,CAAC,KAAK,CAAC,IAAI,uBAAuB,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/every.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/every.js new file mode 100644 index 00000000000000..c05243d0a3ff15 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/every.js @@ -0,0 +1,64 @@ +import { Subscriber } from '../Subscriber'; +/** + * 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 + * Observable.of(1, 2, 3, 4, 5, 6) + * .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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/every.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/every.js.map new file mode 100644 index 00000000000000..f68f4ecef1d618 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/every.js.map @@ -0,0 +1 @@ +{"version":3,"file":"every.js","sourceRoot":"","sources":["../../src/operators/every.ts"],"names":[],"mappings":"OAGO,EAAE,UAAU,EAAE,MAAM,eAAe;AAG1C;;;;;;;;;;;;;GAaG;AACH,sBAAyB,SAAsE,EACtE,OAAa;IACpC,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED;IACE,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,MAAM,CAAC,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;AACH,CAAC;AAED;;;;GAIG;AACH,8BAAiC,UAAU;IAGzC,YAAY,WAA8B,EACtB,SAAsE,EACtE,OAAY,EACZ,MAAsB;QACxC,MAAM,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,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/E,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaust.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaust.js new file mode 100644 index 00000000000000..5b403308bd35cd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaust.js @@ -0,0 +1,77 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000).take(5)); + * var result = higherOrder.exhaust(); + * result.subscribe(x => console.log(x)); + * + * @see {@link combineAll} + * @see {@link concatAll} + * @see {@link switch} + * @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() { + return (source) => source.lift(new SwitchFirstOperator()); +} +class SwitchFirstOperator { + call(subscriber, source) { + return source.subscribe(new SwitchFirstSubscriber(subscriber)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SwitchFirstSubscriber extends OuterSubscriber { + constructor(destination) { + super(destination); + this.hasCompleted = false; + this.hasSubscription = false; + } + _next(value) { + if (!this.hasSubscription) { + this.hasSubscription = true; + this.add(subscribeToResult(this, value)); + } + } + _complete() { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + } + notifyComplete(innerSub) { + this.remove(innerSub); + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + } +} +//# sourceMappingURL=exhaust.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaust.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaust.js.map new file mode 100644 index 00000000000000..5adec09ad302bd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaust.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaust.js","sourceRoot":"","sources":["../../src/operators/exhaust.ts"],"names":[],"mappings":"OAIO,EAAE,eAAe,EAAE,MAAM,oBAAoB;OAC7C,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH;IACE,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAK,CAAC,CAAC;AAC9E,CAAC;AAED;IACE,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,oCAAuC,eAAe;IAIpD,YAAY,WAA0B;QACpC,MAAM,WAAW,CAAC,CAAC;QAJb,iBAAY,GAAY,KAAK,CAAC;QAC9B,oBAAe,GAAY,KAAK,CAAC;IAIzC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,cAAc,CAAC,QAAsB;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaustMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaustMap.js new file mode 100644 index 00000000000000..5cc403bab766a0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaustMap.js @@ -0,0 +1,128 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/* 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}. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.exhaustMap((ev) => Rx.Observable.interval(1000).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. + * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected 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, resultSelector) { + return (source) => source.lift(new SwitchFirstMapOperator(project, resultSelector)); +} +class SwitchFirstMapOperator { + constructor(project, resultSelector) { + this.project = project; + this.resultSelector = resultSelector; + } + call(subscriber, source) { + return source.subscribe(new SwitchFirstMapSubscriber(subscriber, this.project, this.resultSelector)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SwitchFirstMapSubscriber extends OuterSubscriber { + constructor(destination, project, resultSelector) { + super(destination); + this.project = project; + this.resultSelector = resultSelector; + this.hasSubscription = false; + this.hasCompleted = false; + this.index = 0; + } + _next(value) { + if (!this.hasSubscription) { + this.tryNext(value); + } + } + tryNext(value) { + const index = this.index++; + const destination = this.destination; + try { + const result = this.project(value, index); + this.hasSubscription = true; + this.add(subscribeToResult(this, result, value, index)); + } + catch (err) { + destination.error(err); + } + } + _complete() { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + const { resultSelector, destination } = this; + if (resultSelector) { + this.trySelectResult(outerValue, innerValue, outerIndex, innerIndex); + } + else { + destination.next(innerValue); + } + } + trySelectResult(outerValue, innerValue, outerIndex, innerIndex) { + const { resultSelector, destination } = this; + try { + const result = resultSelector(outerValue, innerValue, outerIndex, innerIndex); + destination.next(result); + } + catch (err) { + destination.error(err); + } + } + notifyError(err) { + this.destination.error(err); + } + notifyComplete(innerSub) { + this.remove(innerSub); + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + } +} +//# sourceMappingURL=exhaustMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaustMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaustMap.js.map new file mode 100644 index 00000000000000..5f1c28f6d21814 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/exhaustMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaustMap.js","sourceRoot":"","sources":["../../src/operators/exhaustMap.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/expand.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/expand.js new file mode 100644 index 00000000000000..1dd88fd5a9bb82 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/expand.js @@ -0,0 +1,137 @@ +import { tryCatch } from '../util/tryCatch'; +import { errorObject } from '../util/errorObject'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/* 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var powersOfTwo = clicks + * .mapTo(1) + * .expand(x => Rx.Observable.of(2 * x).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 {Scheduler} [scheduler=null] The IScheduler 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, concurrent = Number.POSITIVE_INFINITY, scheduler = undefined) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class ExpandSubscriber extends OuterSubscriber { + 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); + let result = tryCatch(this.project)(value, index); + if (result === errorObject) { + destination.error(errorObject.e); + } + else if (!this.scheduler) { + this.subscribeToProjection(result, value, index); + } + else { + const state = { subscriber: this, result, value, index }; + this.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); + } + } + else { + this.buffer.push(value); + } + } + subscribeToProjection(result, value, index) { + this.active++; + this.add(subscribeToResult(this, result, value, index)); + } + _complete() { + this.hasCompleted = true; + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this._next(innerValue); + } + notifyComplete(innerSub) { + const buffer = this.buffer; + this.remove(innerSub); + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/expand.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/expand.js.map new file mode 100644 index 00000000000000..4940e9c04f5c4a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/expand.js.map @@ -0,0 +1 @@ +{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../src/operators/expand.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/filter.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/filter.js new file mode 100644 index 00000000000000..e4ac7e61353bf7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/filter.js @@ -0,0 +1,84 @@ +import { Subscriber } from '../Subscriber'; +/* 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var clicksOnDivs = clicks.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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class FilterSubscriber extends Subscriber { + constructor(destination, predicate, thisArg) { + super(destination); + this.predicate = predicate; + this.thisArg = thisArg; + this.count = 0; + } + // the try catch block below is left specifically for + // optimization and perf reasons. a tryCatcher is not necessary here. + _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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/filter.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/filter.js.map new file mode 100644 index 00000000000000..f36f38f82b6e50 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/operators/filter.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;AAU1C,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,uBAA0B,SAA+C,EAC/C,OAAa;IACrC,MAAM,CAAC,gCAAgC,MAAqB;QAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,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,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,+BAAkC,UAAU;IAI1C,YAAY,WAA0B,EAClB,SAA+C,EAC/C,OAAY;QAC9B,MAAM,WAAW,CAAC,CAAC;QAFD,cAAS,GAAT,SAAS,CAAsC;QAC/C,YAAO,GAAP,OAAO,CAAK;QAJhC,UAAK,GAAW,CAAC,CAAC;IAMlB,CAAC;IAED,qDAAqD;IACrD,qEAAqE;IAC3D,KAAK,CAAC,KAAQ;QACtB,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAClE,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC;QACT,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/finalize.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/finalize.js new file mode 100644 index 00000000000000..c0662f3d607cdc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/finalize.js @@ -0,0 +1,33 @@ +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +/** + * 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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/finalize.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/finalize.js.map new file mode 100644 index 00000000000000..036d8249ec9bc2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/finalize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"finalize.js","sourceRoot":"","sources":["../../src/operators/finalize.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,YAAY,EAAiB,MAAM,iBAAiB;AAI7D;;;;;;;GAOG;AACH,yBAA4B,QAAoB;IAC9C,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;IACE,YAAoB,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;IACxC,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,gCAAmC,UAAU;IAC3C,YAAY,WAA0B,EAAE,QAAoB;QAC1D,MAAM,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/find.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/find.js new file mode 100644 index 00000000000000..645ba6d86de815 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/find.js @@ -0,0 +1,88 @@ +import { Subscriber } from '../Subscriber'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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(); + } + _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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/find.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/find.js.map new file mode 100644 index 00000000000000..ac74dbbfc933ff --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/find.js.map @@ -0,0 +1 @@ +{"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/operators/find.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;AAW1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAwB,SAAsE,EACtE,OAAa;IACnC,EAAE,CAAC,CAAC,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1G,CAAC;AAED;IACE,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,MAAM,CAAC,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;AACH,CAAC;AAED;;;;GAIG;AACH,yCAA4C,UAAU;IAGpD,YAAY,WAA0B,EAClB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAC/B,MAAM,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;IACzB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1E,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;YACvD,CAAC;QACH,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/findIndex.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/findIndex.js new file mode 100644 index 00000000000000..7703e713729ab1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/findIndex.js @@ -0,0 +1,39 @@ +import { FindValueOperator } from '../operators/find'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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, thisArg) { + return (source) => source.lift(new FindValueOperator(predicate, source, true, thisArg)); +} +//# sourceMappingURL=findIndex.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/findIndex.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/findIndex.js.map new file mode 100644 index 00000000000000..458d0a10cc5d0a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/findIndex.js.map @@ -0,0 +1 @@ +{"version":3,"file":"findIndex.js","sourceRoot":"","sources":["../../src/operators/findIndex.ts"],"names":[],"mappings":"OACO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,0BAA6B,SAAsE,EACtE,OAAa;IACxC,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAoB,CAAC;AAC5H,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/first.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/first.js new file mode 100644 index 00000000000000..6b012f08e320fa --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/first.js @@ -0,0 +1,142 @@ +import { Subscriber } from '../Subscriber'; +import { EmptyError } from '../util/EmptyError'; +/** + * 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. + * + * + * + * 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 `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. + * + * @example Emit only the first click that happens on the DOM + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.first(); + * result.subscribe(x => console.log(x)); + * + * @example Emits the first click that happens on a DIV + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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 {function(value: T, index: number): R} [resultSelector] A function to + * produce the value on the output Observable based on the values + * and the indices of the source Observable. The arguments passed to this + * function are: + * - `value`: the value that was emitted on the source. + * - `index`: the "index" of the value from the source. + * @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, resultSelector, defaultValue) { + return (source) => source.lift(new FirstOperator(predicate, resultSelector, defaultValue, source)); +} +class FirstOperator { + constructor(predicate, resultSelector, defaultValue, source) { + this.predicate = predicate; + this.resultSelector = resultSelector; + this.defaultValue = defaultValue; + this.source = source; + } + call(observer, source) { + return source.subscribe(new FirstSubscriber(observer, this.predicate, this.resultSelector, this.defaultValue, this.source)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class FirstSubscriber extends Subscriber { + constructor(destination, predicate, resultSelector, defaultValue, source) { + super(destination); + this.predicate = predicate; + this.resultSelector = resultSelector; + this.defaultValue = defaultValue; + this.source = source; + this.index = 0; + this.hasCompleted = false; + this._emitted = false; + } + _next(value) { + const index = this.index++; + if (this.predicate) { + this._tryPredicate(value, index); + } + else { + this._emit(value, index); + } + } + _tryPredicate(value, index) { + let result; + try { + result = this.predicate(value, index, this.source); + } + catch (err) { + this.destination.error(err); + return; + } + if (result) { + this._emit(value, index); + } + } + _emit(value, index) { + if (this.resultSelector) { + this._tryResultSelector(value, index); + return; + } + this._emitFinal(value); + } + _tryResultSelector(value, index) { + let result; + try { + result = this.resultSelector(value, index); + } + catch (err) { + this.destination.error(err); + return; + } + this._emitFinal(result); + } + _emitFinal(value) { + const destination = this.destination; + if (!this._emitted) { + this._emitted = true; + destination.next(value); + destination.complete(); + this.hasCompleted = true; + } + } + _complete() { + const destination = this.destination; + if (!this.hasCompleted && typeof this.defaultValue !== 'undefined') { + destination.next(this.defaultValue); + destination.complete(); + } + else if (!this.hasCompleted) { + destination.error(new EmptyError); + } + } +} +//# sourceMappingURL=first.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/first.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/first.js.map new file mode 100644 index 00000000000000..f019f1652837b5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/first.js.map @@ -0,0 +1 @@ +{"version":3,"file":"first.js","sourceRoot":"","sources":["../../src/operators/first.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/groupBy.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/groupBy.js new file mode 100644 index 00000000000000..c5b0177ea77c1b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/groupBy.js @@ -0,0 +1,257 @@ +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { Observable } from '../Observable'; +import { Subject } from '../Subject'; +import { Map } from '../util/Map'; +import { FastMap } from '../util/FastMap'; +/* 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. + * + * + * + * @example Group objects by id and return as array + * Observable.of({id: 1, name: 'aze1'}, + * {id: 2, name: 'sf2'}, + * {id: 2, name: 'dg2'}, + * {id: 1, name: 'erg1'}, + * {id: 1, name: 'df1'}, + * {id: 2, name: 'sfqfb2'}, + * {id: 3, name: 'qfs3'}, + * {id: 2, name: 'qsgqsfg2'} + * ) + * .groupBy(p => p.id) + * .flatMap( (group$) => group$.reduce((acc, cur) => [...acc, cur], [])) + * .subscribe(p => console.log(p)); + * + * // displays: + * // [ { id: 1, name: 'aze1' }, + * // { id: 1, name: 'erg1' }, + * // { id: 1, name: 'df1' } ] + * // + * // [ { id: 2, name: 'sf2' }, + * // { id: 2, name: 'dg2' }, + * // { id: 2, name: 'sfqfb2' }, + * // { id: 2, name: 'qsgqsfg2' } ] + * // + * // [ { id: 3, name: 'qfs3' } ] + * + * @example Pivot data on the id field + * Observable.of({id: 1, name: 'aze1'}, + * {id: 2, name: 'sf2'}, + * {id: 2, name: 'dg2'}, + * {id: 1, name: 'erg1'}, + * {id: 1, name: 'df1'}, + * {id: 2, name: 'sfqfb2'}, + * {id: 3, name: 'qfs1'}, + * {id: 2, name: 'qsgqsfg2'} + * ) + * .groupBy(p => p.id, p => p.name) + * .flatMap( (group$) => group$.reduce((acc, cur) => [...acc, cur], ["" + group$.key])) + * .map(arr => ({'id': parseInt(arr[0]), 'values': arr.slice(1)})) + * .subscribe(p => console.log(p)); + * + * // displays: + * // { id: 1, values: [ 'aze1', 'erg1', 'df1' ] } + * // { id: 2, values: [ 'sf2', 'dg2', 'sfqfb2', 'qsgqsfg2' ] } + * // { id: 3, values: [ 'qfs1' ] } + * + * @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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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 = typeof key === 'string' ? new FastMap() : 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(); + } + } + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class GroupDurationSubscriber extends Subscriber { + constructor(key, group, parent) { + super(group); + this.key = key; + this.group = group; + this.parent = parent; + } + _next(value) { + this.complete(); + } + /** @deprecated internal use only */ _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 { + constructor(key, groupSubject, refCountSubscription) { + super(); + this.key = key; + this.groupSubject = groupSubject; + this.refCountSubscription = refCountSubscription; + } + /** @deprecated internal use only */ _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; + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/groupBy.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/groupBy.js.map new file mode 100644 index 00000000000000..3a55fb7e231c4e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/groupBy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"groupBy.js","sourceRoot":"","sources":["../../src/operators/groupBy.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/ignoreElements.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/ignoreElements.js new file mode 100644 index 00000000000000..8569612a00ed9b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/ignoreElements.js @@ -0,0 +1,33 @@ +import { Subscriber } from '../Subscriber'; +import { noop } from '../util/noop'; +/** + * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`. + * + * + * + * @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() { + return function ignoreElementsOperatorFunction(source) { + return source.lift(new IgnoreElementsOperator()); + }; +} +class IgnoreElementsOperator { + call(subscriber, source) { + return source.subscribe(new IgnoreElementsSubscriber(subscriber)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class IgnoreElementsSubscriber extends Subscriber { + _next(unused) { + noop(); + } +} +//# sourceMappingURL=ignoreElements.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/ignoreElements.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/ignoreElements.js.map new file mode 100644 index 00000000000000..667d020ce285bf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/ignoreElements.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ignoreElements.js","sourceRoot":"","sources":["../../src/operators/ignoreElements.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,IAAI,EAAE,MAAM,cAAc;AAGnC;;;;;;;;;GASG;AACH;IACE,MAAM,CAAC,wCAAwC,MAAqB;QAClE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED;IACE,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,uCAA0C,UAAU;IACxC,KAAK,CAAC,MAAS;QACvB,IAAI,EAAE,CAAC;IACT,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/isEmpty.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/isEmpty.js new file mode 100644 index 00000000000000..1f33bcf7610582 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/isEmpty.js @@ -0,0 +1,31 @@ +import { Subscriber } from '../Subscriber'; +export function isEmpty() { + return (source) => source.lift(new IsEmptyOperator()); +} +class IsEmptyOperator { + call(observer, source) { + return source.subscribe(new IsEmptySubscriber(observer)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/isEmpty.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/isEmpty.js.map new file mode 100644 index 00000000000000..ebf2307c92056f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/isEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isEmpty.js","sourceRoot":"","sources":["../../src/operators/isEmpty.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;AAI1C;IACE,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;IACE,IAAI,CAAE,QAA6B,EAAE,MAAW;QAC9C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,gCAAgC,UAAU;IACxC,YAAY,WAAgC;QAC1C,MAAM,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;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/last.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/last.js new file mode 100644 index 00000000000000..0dedbdad20a78a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/last.js @@ -0,0 +1,109 @@ +import { Subscriber } from '../Subscriber'; +import { EmptyError } from '../util/EmptyError'; +/* 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. + * + * + * + * @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. + * @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. + * @method last + * @owner Observable + */ +export function last(predicate, resultSelector, defaultValue) { + return (source) => source.lift(new LastOperator(predicate, resultSelector, defaultValue, source)); +} +class LastOperator { + constructor(predicate, resultSelector, defaultValue, source) { + this.predicate = predicate; + this.resultSelector = resultSelector; + this.defaultValue = defaultValue; + this.source = source; + } + call(observer, source) { + return source.subscribe(new LastSubscriber(observer, this.predicate, this.resultSelector, this.defaultValue, this.source)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class LastSubscriber extends Subscriber { + constructor(destination, predicate, resultSelector, defaultValue, source) { + super(destination); + this.predicate = predicate; + this.resultSelector = resultSelector; + this.defaultValue = defaultValue; + this.source = source; + this.hasValue = false; + this.index = 0; + if (typeof defaultValue !== 'undefined') { + this.lastValue = defaultValue; + this.hasValue = true; + } + } + _next(value) { + const index = this.index++; + if (this.predicate) { + this._tryPredicate(value, index); + } + else { + if (this.resultSelector) { + this._tryResultSelector(value, index); + return; + } + this.lastValue = value; + this.hasValue = true; + } + } + _tryPredicate(value, index) { + let result; + try { + result = this.predicate(value, index, this.source); + } + catch (err) { + this.destination.error(err); + return; + } + if (result) { + if (this.resultSelector) { + this._tryResultSelector(value, index); + return; + } + this.lastValue = value; + this.hasValue = true; + } + } + _tryResultSelector(value, index) { + let result; + try { + result = this.resultSelector(value, index); + } + catch (err) { + this.destination.error(err); + return; + } + this.lastValue = result; + this.hasValue = true; + } + _complete() { + const destination = this.destination; + if (this.hasValue) { + destination.next(this.lastValue); + destination.complete(); + } + else { + destination.error(new EmptyError); + } + } +} +//# sourceMappingURL=last.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/last.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/last.js.map new file mode 100644 index 00000000000000..6d787392e3c733 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/last.js.map @@ -0,0 +1 @@ +{"version":3,"file":"last.js","sourceRoot":"","sources":["../../src/operators/last.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/map.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/map.js new file mode 100644 index 00000000000000..835e3c37ead5da --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/map.js @@ -0,0 +1,78 @@ +import { Subscriber } from '../Subscriber'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var positions = clicks.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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class MapSubscriber extends Subscriber { + constructor(destination, project, thisArg) { + super(destination); + this.project = project; + this.count = 0; + this.thisArg = thisArg || this; + } + // NOTE: This looks unoptimized, but it's actually purposefully NOT + // using try/catch optimizations. + _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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/map.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/map.js.map new file mode 100644 index 00000000000000..e469120dd9a8ed --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/map.js.map @@ -0,0 +1 @@ +{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/operators/map.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,oBAA0B,OAAuC,EAAE,OAAa;IAC9E,MAAM,CAAC,sBAAsB,MAAqB;QAChD,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AAED;IACE,YAAoB,OAAuC,EAAU,OAAY;QAA7D,YAAO,GAAP,OAAO,CAAgC;QAAU,YAAO,GAAP,OAAO,CAAK;IACjF,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,4BAAkC,UAAU;IAI1C,YAAY,WAA0B,EAClB,OAAuC,EAC/C,OAAY;QACtB,MAAM,WAAW,CAAC,CAAC;QAFD,YAAO,GAAP,OAAO,CAAgC;QAJ3D,UAAK,GAAW,CAAC,CAAC;QAOhB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC;IACjC,CAAC;IAED,mEAAmE;IACnE,iCAAiC;IACvB,KAAK,CAAC,KAAQ;QACtB,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChE,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC;QACT,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mapTo.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mapTo.js new file mode 100644 index 00000000000000..cacf1c0268136f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mapTo.js @@ -0,0 +1,53 @@ +import { Subscriber } from '../Subscriber'; +/** + * 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. + * + * + * + * 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' + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var greetings = clicks.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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mapTo.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mapTo.js.map new file mode 100644 index 00000000000000..36c323ecc20866 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mapTo.js","sourceRoot":"","sources":["../../src/operators/mapTo.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,sBAA4B,KAAQ;IAClC,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;IAIE,YAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,8BAAoC,UAAU;IAI5C,YAAY,WAA0B,EAAE,KAAQ;QAC9C,MAAM,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;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/materialize.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/materialize.js new file mode 100644 index 00000000000000..46cb8bd4093225 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/materialize.js @@ -0,0 +1,80 @@ +import { Subscriber } from '../Subscriber'; +import { Notification } from '../Notification'; +/** + * 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` 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 + * var letters = Rx.Observable.of('a', 'b', 13, 'd'); + * var upperCase = letters.map(x => x.toUpperCase()); + * var materialized = upperCase.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() { + return function materializeOperatorFunction(source) { + return source.lift(new MaterializeOperator()); + }; +} +class MaterializeOperator { + call(subscriber, source) { + return source.subscribe(new MaterializeSubscriber(subscriber)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/materialize.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/materialize.js.map new file mode 100644 index 00000000000000..9ae3d046c53e68 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/materialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"materialize.js","sourceRoot":"","sources":["../../src/operators/materialize.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,YAAY,EAAE,MAAM,iBAAiB;AAG9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH;IACE,MAAM,CAAC,qCAAqC,MAAqB;QAC/D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED;IACE,IAAI,CAAC,UAAuC,EAAE,MAAW;QACvD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,oCAAuC,UAAU;IAC/C,YAAY,WAAwC;QAClD,MAAM,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;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/max.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/max.js new file mode 100644 index 00000000000000..e144fd51e489ea --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/max.js @@ -0,0 +1,39 @@ +import { reduce } from './reduce'; +/** + * 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. + * + * + * + * @example Get the maximal value of a series of numbers + * Rx.Observable.of(5, 4, 7, 2, 8) + * .max() + * .subscribe(x => console.log(x)); // -> 8 + * + * @example Use a comparer function to get the maximal item + * interface Person { + * age: number, + * name: string + * } + * Observable.of({age: 7, name: 'Foo'}, + * {age: 5, name: 'Bar'}, + * {age: 9, name: 'Beer'}) + * .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) { + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/max.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/max.js.map new file mode 100644 index 00000000000000..19a6c48e7f2713 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/max.js.map @@ -0,0 +1 @@ +{"version":3,"file":"max.js","sourceRoot":"","sources":["../../src/operators/max.ts"],"names":[],"mappings":"OAAO,EAAE,MAAM,EAAE,MAAM,UAAU;AAGjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,oBAAuB,QAAiC;IACtD,MAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;UAC3D,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;UACpC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE5B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/merge.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/merge.js new file mode 100644 index 00000000000000..d032c77e56ddf2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/merge.js @@ -0,0 +1,53 @@ +import { merge as mergeStatic } from '../observable/merge'; +export { merge as mergeStatic } from '../observable/merge'; +/* 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` subscribes to each given input Observable (either the source or an + * Observable given as argument), 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. + * + * @example Merge together two Observables: 1s interval and clicks + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var timer = Rx.Observable.interval(1000); + * var clicksOrTimer = clicks.merge(timer); + * clicksOrTimer.subscribe(x => console.log(x)); + * + * @example Merge together 3 Observables, but only 2 run concurrently + * var timer1 = Rx.Observable.interval(1000).take(10); + * var timer2 = Rx.Observable.interval(2000).take(6); + * var timer3 = Rx.Observable.interval(500).take(10); + * var concurrent = 2; // the argument + * var merged = timer1.merge(timer2, timer3, concurrent); + * merged.subscribe(x => console.log(x)); + * + * @see {@link mergeAll} + * @see {@link mergeMap} + * @see {@link mergeMapTo} + * @see {@link mergeScan} + * + * @param {ObservableInput} other An input Observable to merge with the source + * Observable. More than one input Observables may be given as argument. + * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input + * Observables being subscribed to concurrently. + * @param {Scheduler} [scheduler=null] The IScheduler to use for managing + * concurrency of input Observables. + * @return {Observable} An Observable that emits items that are the result of + * every input Observable. + * @method merge + * @owner Observable + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/merge.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/merge.js.map new file mode 100644 index 00000000000000..78f26ad86b1438 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/operators/merge.ts"],"names":[],"mappings":"OAGO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,qBAAqB;AAE1D,SAAS,KAAK,IAAI,WAAW,QAAQ,qBAAqB,CAAC;AAiB3D,mCAAmC;AACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,sBAA4B,GAAG,WAA8D;IAC3F,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;AAC1F,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeAll.js new file mode 100644 index 00000000000000..98d0ba15fcf5cf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeAll.js @@ -0,0 +1,50 @@ +import { mergeMap } from './mergeMap'; +import { identity } from '../util/identity'; +/** + * 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` 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. + * + * @example Spawn a new interval Observable for each click event, and blend their outputs as one Observable + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000)); + * var firstOrder = higherOrder.mergeAll(); + * firstOrder.subscribe(x => console.log(x)); + * + * @example Count from 0 to 9 every second for each click, but only allow 2 concurrent timers + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000).take(10)); + * var firstOrder = higherOrder.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 switch} + * @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.POSITIVE_INFINITY) { + return mergeMap(identity, null, concurrent); +} +//# sourceMappingURL=mergeAll.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeAll.js.map new file mode 100644 index 00000000000000..77557282e01c7e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeAll.js","sourceRoot":"","sources":["../../src/operators/mergeAll.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,MAAM,YAAY;OAC9B,EAAE,QAAQ,EAAE,MAAM,kBAAkB;AAG3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,yBAA4B,UAAU,GAAW,MAAM,CAAC,iBAAiB;IACvE,MAAM,CAAC,QAAQ,CAAC,QAA4D,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAClG,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMap.js new file mode 100644 index 00000000000000..17163f059e47d7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMap.js @@ -0,0 +1,158 @@ +import { subscribeToResult } from '../util/subscribeToResult'; +import { OuterSubscriber } from '../OuterSubscriber'; +/* 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}. + * + * + * + * 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 + * var letters = Rx.Observable.of('a', 'b', 'c'); + * var result = letters.mergeMap(x => + * Rx.Observable.interval(1000).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 {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected 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 `resultSelector`) to each item emitted + * by the source Observable and merging the results of the Observables obtained + * from this transformation. + * @method mergeMap + * @owner Observable + */ +export function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) { + return function mergeMapOperatorFunction(source) { + if (typeof resultSelector === 'number') { + concurrent = resultSelector; + resultSelector = null; + } + return source.lift(new MergeMapOperator(project, resultSelector, concurrent)); + }; +} +export class MergeMapOperator { + constructor(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) { + this.project = project; + this.resultSelector = resultSelector; + this.concurrent = concurrent; + } + call(observer, source) { + return source.subscribe(new MergeMapSubscriber(observer, this.project, this.resultSelector, this.concurrent)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class MergeMapSubscriber extends OuterSubscriber { + constructor(destination, project, resultSelector, concurrent = Number.POSITIVE_INFINITY) { + super(destination); + this.project = project; + this.resultSelector = resultSelector; + 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, value, index); + } + _innerSub(ish, value, index) { + this.add(subscribeToResult(this, ish, value, index)); + } + _complete() { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + this.destination.complete(); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + if (this.resultSelector) { + this._notifyResultSelector(outerValue, innerValue, outerIndex, innerIndex); + } + else { + this.destination.next(innerValue); + } + } + _notifyResultSelector(outerValue, innerValue, outerIndex, innerIndex) { + let result; + try { + result = this.resultSelector(outerValue, innerValue, outerIndex, innerIndex); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + } + notifyComplete(innerSub) { + const buffer = this.buffer; + this.remove(innerSub); + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + this.destination.complete(); + } + } +} +//# sourceMappingURL=mergeMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMap.js.map new file mode 100644 index 00000000000000..29bb824e9ea057 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMap.js","sourceRoot":"","sources":["../../src/operators/mergeMap.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMapTo.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMapTo.js new file mode 100644 index 00000000000000..560b3fc4822c44 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMapTo.js @@ -0,0 +1,140 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/* 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.mergeMapTo(Rx.Observable.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 {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected 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` (and optionally transformed through `resultSelector`) every + * time a value is emitted on the source Observable. + * @method mergeMapTo + * @owner Observable + */ +export function mergeMapTo(innerObservable, resultSelector, concurrent = Number.POSITIVE_INFINITY) { + if (typeof resultSelector === 'number') { + concurrent = resultSelector; + resultSelector = null; + } + return (source) => source.lift(new MergeMapToOperator(innerObservable, resultSelector, concurrent)); +} +// TODO: Figure out correct signature here: an Operator, R> +// needs to implement call(observer: Subscriber): Subscriber> +export class MergeMapToOperator { + constructor(ish, resultSelector, concurrent = Number.POSITIVE_INFINITY) { + this.ish = ish; + this.resultSelector = resultSelector; + this.concurrent = concurrent; + } + call(observer, source) { + return source.subscribe(new MergeMapToSubscriber(observer, this.ish, this.resultSelector, this.concurrent)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class MergeMapToSubscriber extends OuterSubscriber { + constructor(destination, ish, resultSelector, concurrent = Number.POSITIVE_INFINITY) { + super(destination); + this.ish = ish; + this.resultSelector = resultSelector; + this.concurrent = concurrent; + this.hasCompleted = false; + this.buffer = []; + this.active = 0; + this.index = 0; + } + _next(value) { + if (this.active < this.concurrent) { + const resultSelector = this.resultSelector; + const index = this.index++; + const ish = this.ish; + const destination = this.destination; + this.active++; + this._innerSub(ish, destination, resultSelector, value, index); + } + else { + this.buffer.push(value); + } + } + _innerSub(ish, destination, resultSelector, value, index) { + this.add(subscribeToResult(this, ish, value, index)); + } + _complete() { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + this.destination.complete(); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + const { resultSelector, destination } = this; + if (resultSelector) { + this.trySelectResult(outerValue, innerValue, outerIndex, innerIndex); + } + else { + destination.next(innerValue); + } + } + trySelectResult(outerValue, innerValue, outerIndex, innerIndex) { + const { resultSelector, destination } = this; + let result; + try { + result = resultSelector(outerValue, innerValue, outerIndex, innerIndex); + } + catch (err) { + destination.error(err); + return; + } + destination.next(result); + } + notifyError(err) { + this.destination.error(err); + } + notifyComplete(innerSub) { + const buffer = this.buffer; + this.remove(innerSub); + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + this.destination.complete(); + } + } +} +//# sourceMappingURL=mergeMapTo.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMapTo.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMapTo.js.map new file mode 100644 index 00000000000000..c636d6e4406eda --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMapTo.js","sourceRoot":"","sources":["../../src/operators/mergeMapTo.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeScan.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeScan.js new file mode 100644 index 00000000000000..fde77092f993ed --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeScan.js @@ -0,0 +1,116 @@ +import { tryCatch } from '../util/tryCatch'; +import { errorObject } from '../util/errorObject'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { OuterSubscriber } from '../OuterSubscriber'; +/** + * 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 + * const click$ = Rx.Observable.fromEvent(document, 'click'); + * const one$ = click$.mapTo(1); + * const seed = 0; + * const count$ = one$.mergeScan((acc, one) => Rx.Observable.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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class MergeScanSubscriber extends OuterSubscriber { + 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 ish = tryCatch(this.accumulator)(this.acc, value); + const destination = this.destination; + if (ish === errorObject) { + destination.error(errorObject.e); + } + else { + this.active++; + this._innerSub(ish, value, index); + } + } + else { + this.buffer.push(value); + } + } + _innerSub(ish, value, index) { + this.add(subscribeToResult(this, ish, value, index)); + } + _complete() { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + if (this.hasValue === false) { + this.destination.next(this.acc); + } + this.destination.complete(); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + const { destination } = this; + this.acc = innerValue; + this.hasValue = true; + destination.next(innerValue); + } + notifyComplete(innerSub) { + const buffer = this.buffer; + this.remove(innerSub); + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeScan.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeScan.js.map new file mode 100644 index 00000000000000..22288fdb9cc1d2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/mergeScan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeScan.js","sourceRoot":"","sources":["../../src/operators/mergeScan.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/min.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/min.js new file mode 100644 index 00000000000000..bf9b018402be5b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/min.js @@ -0,0 +1,39 @@ +import { reduce } from './reduce'; +/** + * 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. + * + * + * + * @example Get the minimal value of a series of numbers + * Rx.Observable.of(5, 4, 7, 2, 8) + * .min() + * .subscribe(x => console.log(x)); // -> 2 + * + * @example Use a comparer function to get the minimal item + * interface Person { + * age: number, + * name: string + * } + * Observable.of({age: 7, name: 'Foo'}, + * {age: 5, name: 'Bar'}, + * {age: 9, name: 'Beer'}) + * .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) { + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/min.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/min.js.map new file mode 100644 index 00000000000000..3fb0f52762f979 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"min.js","sourceRoot":"","sources":["../../src/operators/min.ts"],"names":[],"mappings":"OAAO,EAAE,MAAM,EAAE,MAAM,UAAU;AAGjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,oBAAuB,QAAiC;IACtD,MAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;UAC3D,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;UACpC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/multicast.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/multicast.js new file mode 100644 index 00000000000000..c675695cf9a05c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/multicast.js @@ -0,0 +1,55 @@ +import { connectableObservableDescriptor } from '../observable/ConnectableObservable'; +/* 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. + * + * + * + * @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, 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/multicast.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/multicast.js.map new file mode 100644 index 00000000000000..247e4f0cfa1bfc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/multicast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"multicast.js","sourceRoot":"","sources":["../../src/operators/multicast.ts"],"names":[],"mappings":"OAIO,EAAyB,+BAA+B,EAAE,MAAM,qCAAqC;AAO5G,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;GAkBG;AACH,0BAAgC,uBAAwD,EACxD,QAAmD;IACjF,MAAM,CAAC,mCAAmC,MAAqB;QAC7D,IAAI,cAAgC,CAAC;QACrC,EAAE,CAAC,CAAC,OAAO,uBAAuB,KAAK,UAAU,CAAC,CAAC,CAAC;YAClD,cAAc,GAAqB,uBAAuB,CAAC;QAC7D,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,cAAc,GAAG;gBACf,MAAM,CAAa,uBAAuB,CAAC;YAC7C,CAAC,CAAC;QACJ,CAAC;QAED,EAAE,CAAC,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtE,CAAC;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,MAAM,CAA4B,WAAW,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED;IACE,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,MAAM,CAAC,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/observeOn.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/observeOn.js new file mode 100644 index 00000000000000..52eab99654cfb1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/observeOn.js @@ -0,0 +1,98 @@ +import { Subscriber } from '../Subscriber'; +import { Notification } from '../Notification'; +/** + * + * 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. + * const intervals = Rx.Observable.interval(10); // Intervals are scheduled + * // with async scheduler by default... + * + * intervals + * .observeOn(Rx.Scheduler.animationFrame) // ...but we will observe on animationFrame + * .subscribe(val => { // scheduler to ensure smooth animation. + * someDiv.style.height = val + 'px'; + * }); + * + * @see {@link delay} + * + * @param {IScheduler} 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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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) { + this.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)); + } + _complete() { + this.scheduleMessage(Notification.createComplete()); + } +} +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/observeOn.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/observeOn.js.map new file mode 100644 index 00000000000000..3492a8c8c98af5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/observeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observeOn.js","sourceRoot":"","sources":["../../src/operators/observeOn.ts"],"names":[],"mappings":"OAIO,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,YAAY,EAAE,MAAM,iBAAiB;AAK9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,0BAA6B,SAAqB,EAAE,KAAK,GAAW,CAAC;IACnE,MAAM,CAAC,mCAAmC,MAAqB;QAC7D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,YAAoB,SAAqB,EAAU,KAAK,GAAW,CAAC;QAAhD,cAAS,GAAT,SAAS,CAAY;QAAU,UAAK,GAAL,KAAK,CAAY;IACpE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,yCAA4C,UAAU;IAOpD,YAAY,WAA0B,EAClB,SAAqB,EACrB,KAAK,GAAW,CAAC;QACnC,MAAM,WAAW,CAAC,CAAC;QAFD,cAAS,GAAT,SAAS,CAAY;QACrB,UAAK,GAAL,KAAK,CAAY;IAErC,CAAC;IAVD,OAAO,QAAQ,CAAiC,GAAqB;QACnE,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,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC9B,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;IACtD,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED;IACE,YAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/onErrorResumeNext.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/onErrorResumeNext.js new file mode 100644 index 00000000000000..dd96f13a088872 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/onErrorResumeNext.js @@ -0,0 +1,118 @@ +import { FromObservable } from '../observable/FromObservable'; +import { isArray } from '../util/isArray'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/* 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` 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 subscribe}. If you want to take + * specific actions based on what error was emitted by an Observable, you should try out {@link catch} instead. + * + * + * @example Subscribe to the next Observable after map fails + * Rx.Observable.of(1, 2, 3, 0) + * .map(x => { + * if (x === 0) { throw Error(); } + return 10 / x; + * }) + * .onErrorResumeNext(Rx.Observable.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 catch} + * + * @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) { + if (nextSources.length === 1 && isArray(nextSources[0])) { + nextSources = nextSources[0]; + } + return (source) => source.lift(new OnErrorResumeNextOperator(nextSources)); +} +/* tslint:enable:max-line-length */ +export function onErrorResumeNextStatic(...nextSources) { + let source = null; + if (nextSources.length === 1 && isArray(nextSources[0])) { + nextSources = nextSources[0]; + } + source = nextSources.shift(); + return new FromObservable(source, null).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 OuterSubscriber { + constructor(destination, nextSources) { + super(destination); + this.destination = destination; + this.nextSources = nextSources; + } + notifyError(error, innerSub) { + this.subscribeToNextSource(); + } + notifyComplete(innerSub) { + this.subscribeToNextSource(); + } + _error(err) { + this.subscribeToNextSource(); + } + _complete() { + this.subscribeToNextSource(); + } + subscribeToNextSource() { + const next = this.nextSources.shift(); + if (next) { + this.add(subscribeToResult(this, next)); + } + else { + this.destination.complete(); + } + } +} +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/onErrorResumeNext.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/onErrorResumeNext.js.map new file mode 100644 index 00000000000000..0bdc2c9cf832f8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sourceRoot":"","sources":["../../src/operators/onErrorResumeNext.ts"],"names":[],"mappings":"OACO,EAAE,cAAc,EAAE,MAAM,8BAA8B;OAGtD,EAAE,OAAO,EAAE,MAAM,iBAAiB;OAClC,EAAE,eAAe,EAAE,MAAM,oBAAoB;OAE7C,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;AAW7D,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,kCAAwC,GAAG,WAE2C;IACpF,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,WAAW,GAA2B,WAAW,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,CAAC;AAClG,CAAC;AAWD,mCAAmC;AAEnC,wCAA8C,GAAG,WAE4C;IAC3F,IAAI,MAAM,GAAyB,IAAI,CAAC;IAExC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,WAAW,GAAgC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;IAE7B,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,CAAC;AACjG,CAAC;AAED;IACE,YAAoB,WAAwC;QAAxC,gBAAW,GAAX,WAAW,CAA6B;IAC5D,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED,0CAAgD,eAAe;IAC7D,YAAsB,WAA0B,EAC5B,WAAwC;QAC1D,MAAM,WAAW,CAAC,CAAC;QAFC,gBAAW,GAAX,WAAW,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAA6B;IAE5D,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,QAAiC;QACvD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,QAAiC;QAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,qBAAqB;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACtC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACT,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pairwise.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pairwise.js new file mode 100644 index 00000000000000..902389800dc34d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pairwise.js @@ -0,0 +1,65 @@ +import { Subscriber } from '../Subscriber'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var pairs = clicks.pairwise(); + * var distance = pairs.map(pair => { + * var x0 = pair[0].clientX; + * var y0 = pair[0].clientY; + * var x1 = pair[1].clientX; + * var 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() { + return (source) => source.lift(new PairwiseOperator()); +} +class PairwiseOperator { + call(subscriber, source) { + return source.subscribe(new PairwiseSubscriber(subscriber)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class PairwiseSubscriber extends Subscriber { + constructor(destination) { + super(destination); + this.hasPrev = false; + } + _next(value) { + if (this.hasPrev) { + this.destination.next([this.prev, value]); + } + else { + this.hasPrev = true; + } + this.prev = value; + } +} +//# sourceMappingURL=pairwise.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pairwise.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pairwise.js.map new file mode 100644 index 00000000000000..73f357d562fd69 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pairwise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairwise.js","sourceRoot":"","sources":["../../src/operators/pairwise.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;AAG1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH;IACE,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;IACE,IAAI,CAAC,UAA8B,EAAE,MAAW;QAC9C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,iCAAoC,UAAU;IAI5C,YAAY,WAA+B;QACzC,MAAM,WAAW,CAAC,CAAC;QAHb,YAAO,GAAY,KAAK,CAAC;IAIjC,CAAC;IAED,KAAK,CAAC,KAAQ;QACZ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/partition.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/partition.js new file mode 100644 index 00000000000000..f3e626b0f0f83f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/partition.js @@ -0,0 +1,50 @@ +import { not } from '../util/not'; +import { filter } from './filter'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var parts = clicks.partition(ev => ev.target.tagName === 'DIV'); + * var clicksOnDivs = parts[0]; + * var 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 + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/partition.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/partition.js.map new file mode 100644 index 00000000000000..8f9b187c954619 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/partition.js.map @@ -0,0 +1 @@ +{"version":3,"file":"partition.js","sourceRoot":"","sources":["../../src/operators/partition.ts"],"names":[],"mappings":"OAAO,EAAE,GAAG,EAAE,MAAM,aAAa;OAC1B,EAAE,MAAM,EAAE,MAAM,UAAU;AAIjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,0BAA6B,SAA+C,EAC/C,OAAa;IACxC,MAAM,CAAC,CAAC,MAAqB,KAAK;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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pluck.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pluck.js new file mode 100644 index 00000000000000..913de442e64d12 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pluck.js @@ -0,0 +1,51 @@ +import { map } from './map'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var tagNames = clicks.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) { + 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[props[i]]; + if (typeof p !== 'undefined') { + currentProp = p; + } + else { + return undefined; + } + } + return currentProp; + }; + return mapper; +} +//# sourceMappingURL=pluck.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pluck.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pluck.js.map new file mode 100644 index 00000000000000..5db6dae8422292 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/pluck.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pluck.js","sourceRoot":"","sources":["../../src/operators/pluck.ts"],"names":[],"mappings":"OACO,EAAE,GAAG,EAAE,MAAM,OAAO;AAG3B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,sBAA4B,GAAG,UAAoB;IACjD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,CAAC,CAAC,MAAqB,KAAK,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAa,CAAC,CAAC;AACpF,CAAC;AAED,iBAAiB,KAAe,EAAE,MAAc;IAC9C,MAAM,MAAM,GAAG,CAAC,CAAS;QACvB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC;gBAC7B,WAAW,GAAG,CAAC,CAAC;YAClB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,MAAM,CAAC,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,MAAM,CAAC,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC;AAChB,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publish.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publish.js new file mode 100644 index 00000000000000..1c4bdd8d06eec0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publish.js @@ -0,0 +1,22 @@ +import { Subject } from '../Subject'; +import { multicast } from './multicast'; +/* 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. + * + * + * + * @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) { + return selector ? + multicast(() => new Subject(), selector) : + multicast(new Subject()); +} +//# sourceMappingURL=publish.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publish.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publish.js.map new file mode 100644 index 00000000000000..4ce39761a06234 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publish.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/operators/publish.ts"],"names":[],"mappings":"OACO,EAAE,OAAO,EAAE,MAAM,YAAY;OAC7B,EAAE,SAAS,EAAE,MAAM,aAAa;AAQvC,mCAAmC;AAEnC;;;;;;;;;;;;GAYG;AACH,wBAA8B,QAAiC;IAC7D,MAAM,CAAC,QAAQ;QACb,SAAS,CAAC,MAAM,IAAI,OAAO,EAAK,EAAE,QAAQ,CAAC;QAC3C,SAAS,CAAC,IAAI,OAAO,EAAK,CAAC,CAAC;AAChC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishBehavior.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishBehavior.js new file mode 100644 index 00000000000000..ecb2b93bc5e2f2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishBehavior.js @@ -0,0 +1,12 @@ +import { BehaviorSubject } from '../BehaviorSubject'; +import { multicast } from './multicast'; +/** + * @param value + * @return {ConnectableObservable} + * @method publishBehavior + * @owner Observable + */ +export function publishBehavior(value) { + return (source) => multicast(new BehaviorSubject(value))(source); +} +//# sourceMappingURL=publishBehavior.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishBehavior.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishBehavior.js.map new file mode 100644 index 00000000000000..c1b9669abf76aa --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishBehavior.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishBehavior.js","sourceRoot":"","sources":["../../src/operators/publishBehavior.ts"],"names":[],"mappings":"OACO,EAAE,eAAe,EAAE,MAAM,oBAAoB;OAC7C,EAAE,SAAS,EAAE,MAAM,aAAa;AAIvC;;;;;GAKG;AACH,gCAAmC,KAAQ;IACzC,MAAM,CAAC,CAAC,MAAqB,KAAK,SAAS,CAAC,IAAI,eAAe,CAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAA6B,CAAC;AACjH,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishLast.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishLast.js new file mode 100644 index 00000000000000..5d4ea44694e960 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishLast.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishLast.js.map new file mode 100644 index 00000000000000..049b13c98b6865 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishLast.js","sourceRoot":"","sources":["../../src/operators/publishLast.ts"],"names":[],"mappings":"OACO,EAAE,YAAY,EAAE,MAAM,iBAAiB;OACvC,EAAE,SAAS,EAAE,MAAM,aAAa;AAIvC;IACE,MAAM,CAAC,CAAC,MAAqB,KAAK,SAAS,CAAC,IAAI,YAAY,EAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7E,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishReplay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishReplay.js new file mode 100644 index 00000000000000..0372c04ba89d00 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishReplay.js @@ -0,0 +1,12 @@ +import { ReplaySubject } from '../ReplaySubject'; +import { multicast } from './multicast'; +/* tslint:enable:max-line-length */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishReplay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishReplay.js.map new file mode 100644 index 00000000000000..8fd644a9ab00f0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/publishReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishReplay.js","sourceRoot":"","sources":["../../src/operators/publishReplay.ts"],"names":[],"mappings":"OACO,EAAE,aAAa,EAAE,MAAM,kBAAkB;OAEzC,EAAE,SAAS,EAAE,MAAM,aAAa;AAQvC,mCAAmC;AAEnC,8BAAoC,UAAmB,EACnB,UAAmB,EACnB,mBAAyD,EACzD,SAAsB;IAExD,EAAE,CAAC,CAAC,mBAAmB,IAAI,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC;QACrE,SAAS,GAAG,mBAAmB,CAAC;IAClC,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,mBAAmB,KAAK,UAAU,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAC7F,MAAM,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAExE,MAAM,CAAC,CAAC,MAAqB,KAAK,SAAS,CAAC,MAAM,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAA6C,CAAC;AAC3H,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/race.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/race.js new file mode 100644 index 00000000000000..dfbcf9e456ea4d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/race.js @@ -0,0 +1,22 @@ +import { isArray } from '../util/isArray'; +import { race as raceStatic } from '../observable/race'; +/* tslint:enable:max-line-length */ +/** + * Returns an Observable that mirrors the first source Observable to emit an item + * 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 + */ +export function race(...observables) { + return function raceOperatorFunction(source) { + // 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]; + } + return source.lift.call(raceStatic(source, ...observables)); + }; +} +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/race.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/race.js.map new file mode 100644 index 00000000000000..5541fca008e033 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sourceRoot":"","sources":["../../src/operators/race.ts"],"names":[],"mappings":"OACO,EAAE,OAAO,EAAE,MAAM,iBAAiB;OAElC,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,oBAAoB;AAOvD,mCAAmC;AAEnC;;;;;;;GAOG;AACH,qBAAwB,GAAG,WAAwD;IACjF,MAAM,CAAC,8BAA8B,MAAqB;QACxD,mEAAmE;QACnE,4BAA4B;QAC5B,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,WAAW,GAAyB,WAAW,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAI,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/reduce.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/reduce.js new file mode 100644 index 00000000000000..e9f3b36def7300 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/reduce.js @@ -0,0 +1,67 @@ +import { scan } from './scan'; +import { takeLast } from './takeLast'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { pipe } from '../util/pipe'; +/* 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. + * + * + * + * 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 + * var clicksInFiveSeconds = Rx.Observable.fromEvent(document, 'click') + * .takeUntil(Rx.Observable.interval(5000)); + * var ones = clicksInFiveSeconds.mapTo(1); + * var seed = 0; + * var count = ones.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, seed) { + // 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) { + return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source); + }; + } + return function reduceOperatorFunction(source) { + return pipe(scan((acc, value, index) => { + return accumulator(acc, value, index + 1); + }), takeLast(1))(source); + }; +} +//# sourceMappingURL=reduce.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/reduce.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/reduce.js.map new file mode 100644 index 00000000000000..5e423dd5957eb2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/reduce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reduce.js","sourceRoot":"","sources":["../../src/operators/reduce.ts"],"names":[],"mappings":"OACO,EAAE,IAAI,EAAE,MAAM,QAAQ;OACtB,EAAE,QAAQ,EAAE,MAAM,YAAY;OAC9B,EAAE,cAAc,EAAE,MAAM,kBAAkB;OAE1C,EAAE,IAAI,EAAE,MAAM,cAAc;AAMnC,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,uBAA6B,WAAoD,EAAE,IAAQ;IACzF,gEAAgE;IAChE,qDAAqD;IACrD,sEAAsE;IACtE,oEAAoE;IACpE,+EAA+E;IAC/E,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,wCAAwC,MAAqB;YAClE,MAAM,CAAC,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;IACJ,CAAC;IACD,MAAM,CAAC,gCAAgC,MAAqB;QAC1D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK;YAC3C,MAAM,CAAC,WAAW,CAAI,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAkB,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/refCount.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/refCount.js new file mode 100644 index 00000000000000..c6c92efee169a3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/refCount.js @@ -0,0 +1,75 @@ +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; + } + /** @deprecated internal use only */ _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: + // ``` + // Observable.range(0, 10) + // .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(); + } + } +} +//# sourceMappingURL=refCount.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/refCount.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/refCount.js.map new file mode 100644 index 00000000000000..7148a0fd49fc06 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/refCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"refCount.js","sourceRoot":"","sources":["../../src/operators/refCount.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;AAM1C;IACE,MAAM,CAAC,kCAAkC,MAAgC;QACvE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED;IACE,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,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,UAAW,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,CAAC,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED,iCAAoC,UAAU;IAI5C,YAAY,WAA0B,EAClB,WAAqC;QACvD,MAAM,WAAW,CAAC,CAAC;QADD,gBAAW,GAAX,WAAW,CAA0B;IAEzD,CAAC;IAED,oCAAoC,CAAC,YAAY;QAE/C,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,QAAQ,GAAU,WAAY,CAAC,SAAS,CAAC;QAC/C,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,MAAM,CAAC;QACT,CAAC;QAEM,WAAY,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC7C,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,MAAM,CAAC;QACT,CAAC;QAED,GAAG;QACH,wEAAwE;QACxE,wEAAwE;QACxE,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,yEAAyE;QACzE,eAAe;QACf,MAAM;QACN,0BAA0B;QAC1B,eAAe;QACf,gBAAgB;QAChB,aAAa;QACb,kBAAkB;QAClB,MAAM;QACN,4EAA4E;QAC5E,oEAAoE;QACpE,gDAAgD;QAChD,4EAA4E;QAC5E,6BAA6B;QAC7B,2EAA2E;QAC3E,6CAA6C;QAC7C,GAAG;QACH,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAC5B,MAAM,gBAAgB,GAAU,WAAY,CAAC,WAAW,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,EAAE,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,UAAU,IAAI,gBAAgB,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;YACzE,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeat.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeat.js new file mode 100644 index 00000000000000..3f73a20c3209ed --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeat.js @@ -0,0 +1,61 @@ +import { Subscriber } from '../Subscriber'; +import { EmptyObservable } from '../observable/EmptyObservable'; +/** + * Returns an Observable that repeats the stream of items emitted by the source Observable at most count times. + * + * + * + * @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 repeats the stream of items emitted by the source Observable at most + * count times. + * @method repeat + * @owner Observable + */ +export function repeat(count = -1) { + return (source) => { + if (count === 0) { + return new EmptyObservable(); + } + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeat.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeat.js.map new file mode 100644 index 00000000000000..d2476f67b48b9d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeat.js","sourceRoot":"","sources":["../../src/operators/repeat.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;OAEnC,EAAE,eAAe,EAAE,MAAM,+BAA+B;AAI/D;;;;;;;;;;;GAWG;AACH,uBAA0B,KAAK,GAAW,CAAC,CAAC;IAC1C,MAAM,CAAC,CAAC,MAAqB;QAC3B,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,eAAe,EAAK,CAAC;QAClC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,YAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IACD,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,+BAAkC,UAAU;IAC1C,YAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QACvC,MAAM,WAAW,CAAC,CAAC;QAFD,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IAEzC,CAAC;IACD,QAAQ;QACN,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACpB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAC/B,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChB,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1B,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;YACzB,CAAC;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeatWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeatWhen.js new file mode 100644 index 00000000000000..a8afb7f61c1ebd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeatWhen.js @@ -0,0 +1,98 @@ +import { Subject } from '../Subject'; +import { tryCatch } from '../util/tryCatch'; +import { errorObject } from '../util/errorObject'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * 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. + * + * + * + * @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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class RepeatWhenSubscriber extends OuterSubscriber { + constructor(destination, notifier, source) { + super(destination); + this.notifier = notifier; + this.source = source; + this.sourceIsBeingSubscribedTo = true; + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.sourceIsBeingSubscribedTo = true; + this.source.subscribe(this); + } + notifyComplete(innerSub) { + 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(); + } + } + /** @deprecated internal use only */ _unsubscribe() { + const { notifications, retriesSubscription } = this; + if (notifications) { + notifications.unsubscribe(); + this.notifications = null; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = null; + } + this.retries = null; + } + /** @deprecated internal use only */ _unsubscribeAndRecycle() { + const { notifications, retries, retriesSubscription } = this; + this.notifications = null; + this.retries = null; + this.retriesSubscription = null; + super._unsubscribeAndRecycle(); + this.notifications = notifications; + this.retries = retries; + this.retriesSubscription = retriesSubscription; + return this; + } + subscribeToRetries() { + this.notifications = new Subject(); + const retries = tryCatch(this.notifier)(this.notifications); + if (retries === errorObject) { + return super.complete(); + } + this.retries = retries; + this.retriesSubscription = subscribeToResult(this, retries); + } +} +//# sourceMappingURL=repeatWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeatWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeatWhen.js.map new file mode 100644 index 00000000000000..de388d3ffa64bf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/repeatWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeatWhen.js","sourceRoot":"","sources":["../../src/operators/repeatWhen.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retry.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retry.js new file mode 100644 index 00000000000000..ba2f70b81604c0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retry.js @@ -0,0 +1,54 @@ +import { Subscriber } from '../Subscriber'; +/** + * 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. + * + * + * + * 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`]. + * @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 = -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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retry.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retry.js.map new file mode 100644 index 00000000000000..a0116274c879c4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retry.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/operators/retry.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;AAM1C;;;;;;;;;;;;;;;GAeG;AACH,sBAAyB,KAAK,GAAW,CAAC,CAAC;IACzC,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;IACE,YAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,8BAAiC,UAAU;IACzC,YAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QACvC,MAAM,WAAW,CAAC,CAAC;QAFD,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IAEzC,CAAC;IACD,KAAK,CAAC,GAAQ;QACZ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACpB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAC/B,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;YACzB,CAAC;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retryWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retryWhen.js new file mode 100644 index 00000000000000..f923bce0ddde96 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retryWhen.js @@ -0,0 +1,91 @@ +import { Subject } from '../Subject'; +import { tryCatch } from '../util/tryCatch'; +import { errorObject } from '../util/errorObject'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * 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. + * + * + * + * @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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class RetryWhenSubscriber extends OuterSubscriber { + 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(); + retries = tryCatch(this.notifier)(errors); + if (retries === errorObject) { + return super.error(errorObject.e); + } + retriesSubscription = subscribeToResult(this, retries); + } + else { + this.errors = null; + this.retriesSubscription = null; + } + this._unsubscribeAndRecycle(); + this.errors = errors; + this.retries = retries; + this.retriesSubscription = retriesSubscription; + errors.next(err); + } + } + /** @deprecated internal use only */ _unsubscribe() { + const { errors, retriesSubscription } = this; + if (errors) { + errors.unsubscribe(); + this.errors = null; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = null; + } + this.retries = null; + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + const { errors, retries, retriesSubscription } = this; + this.errors = null; + this.retries = null; + this.retriesSubscription = null; + this._unsubscribeAndRecycle(); + this.errors = errors; + this.retries = retries; + this.retriesSubscription = retriesSubscription; + this.source.subscribe(this); + } +} +//# sourceMappingURL=retryWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retryWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retryWhen.js.map new file mode 100644 index 00000000000000..eb64e71f34d00c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/retryWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retryWhen.js","sourceRoot":"","sources":["../../src/operators/retryWhen.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sample.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sample.js new file mode 100644 index 00000000000000..a04bf4ec3f828b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sample.js @@ -0,0 +1,78 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * 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. + * + * + * + * 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 + * var seconds = Rx.Observable.interval(1000); + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = seconds.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) { + 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(subscribeToResult(sampleSubscriber, this.notifier)); + return subscription; + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SampleSubscriber extends OuterSubscriber { + constructor() { + super(...arguments); + this.hasValue = false; + } + _next(value) { + this.value = value; + this.hasValue = true; + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sample.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sample.js.map new file mode 100644 index 00000000000000..49c1f2f5f400ee --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sample.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sample.js","sourceRoot":"","sources":["../../src/operators/sample.ts"],"names":[],"mappings":"OAIO,EAAE,eAAe,EAAE,MAAM,oBAAoB;OAE7C,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;AAI7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,uBAA0B,QAAyB;IACjD,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;IACE,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,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,+BAAqC,eAAe;IAApD;QAAqC,oBAAqB;QAEhD,aAAQ,GAAY,KAAK,CAAC;IAuBpC,CAAC;IArBW,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACP,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sampleTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sampleTime.js new file mode 100644 index 00000000000000..29f97e2e66a4fa --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sampleTime.js @@ -0,0 +1,80 @@ +import { Subscriber } from '../Subscriber'; +import { async } from '../scheduler/async'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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 {Scheduler} [scheduler=async] The {@link IScheduler} 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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sampleTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sampleTime.js.map new file mode 100644 index 00000000000000..f46989f4fd83d0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sampleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sampleTime.js","sourceRoot":"","sources":["../../src/operators/sampleTime.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;OAGnC,EAAE,KAAK,EAAE,MAAM,oBAAoB;AAK1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,2BAA8B,MAAc,EAAE,SAAS,GAAe,KAAK;IACzE,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;IACE,YAAoB,MAAc,EACd,SAAqB;QADrB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAY;IACzC,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,mCAAsC,UAAU;IAI9C,YAAY,WAA0B,EAClB,MAAc,EACd,SAAqB;QACvC,MAAM,WAAW,CAAC,CAAC;QAFD,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAY;QAJzC,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,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;AACH,CAAC;AAED,8BAAoD,KAAU;IAC5D,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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/scan.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/scan.js new file mode 100644 index 00000000000000..68bd3ab0de0d22 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/scan.js @@ -0,0 +1,106 @@ +import { Subscriber } from '../Subscriber'; +/* 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var ones = clicks.mapTo(1); + * var seed = 0; + * var count = ones.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, seed) { + 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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/scan.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/scan.js.map new file mode 100644 index 00000000000000..a1059860826fff --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/scan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/operators/scan.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;AAO1C,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAA2B,WAAmD,EAAE,IAAY;IAC1F,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,gEAAgE;IAChE,qDAAqD;IACrD,sEAAsE;IACtE,oEAAoE;IACpE,+EAA+E;IAC/E,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,8BAA8B,MAAqB;QACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAED;IACE,YAAoB,WAAmD,EAAU,IAAY,EAAU,OAAO,GAAY,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,MAAM,CAAC,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;AACH,CAAC;AAED;;;;GAIG;AACH,6BAAmC,UAAU;IAY3C,YAAY,WAA0B,EAAU,WAAmD,EAAU,KAAY,EACrG,OAAgB;QAClC,MAAM,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,MAAM,CAAC,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,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,KAAQ;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,WAAW,CAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxD,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sequenceEqual.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sequenceEqual.js new file mode 100644 index 00000000000000..bcfff05ffc1eda --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sequenceEqual.js @@ -0,0 +1,150 @@ +import { Subscriber } from '../Subscriber'; +import { tryCatch } from '../util/tryCatch'; +import { errorObject } from '../util/errorObject'; +/** + * Compares all values of two observables in sequence using an optional comparor 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` 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 + * var code = Rx.Observable.from([ + * "ArrowUp", + * "ArrowUp", + * "ArrowDown", + * "ArrowDown", + * "ArrowLeft", + * "ArrowRight", + * "ArrowLeft", + * "ArrowRight", + * "KeyB", + * "KeyA", + * "Enter" // no start key, clearly. + * ]); + * + * var keys = Rx.Observable.fromEvent(document, 'keyup') + * .map(e => e.code); + * var matches = keys.bufferCount(11, 1) + * .mergeMap( + * last11 => + * Rx.Observable.from(last11) + * .sequenceEqual(code) + * ); + * 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} [comparor] 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, comparor) { + return (source) => source.lift(new SequenceEqualOperator(compareTo, comparor)); +} +export class SequenceEqualOperator { + constructor(compareTo, comparor) { + this.compareTo = compareTo; + this.comparor = comparor; + } + call(subscriber, source) { + return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparor)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class SequenceEqualSubscriber extends Subscriber { + constructor(destination, compareTo, comparor) { + super(destination); + this.compareTo = compareTo; + this.comparor = comparor; + this._a = []; + this._b = []; + this._oneComplete = false; + this.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; + } + } + checkValues() { + const { _a, _b, comparor } = this; + while (_a.length > 0 && _b.length > 0) { + let a = _a.shift(); + let b = _b.shift(); + let areEqual = false; + if (comparor) { + areEqual = tryCatch(comparor)(a, b); + if (areEqual === errorObject) { + this.destination.error(errorObject.e); + } + } + else { + areEqual = a === b; + } + 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(); + } + } +} +class SequenceEqualCompareToSubscriber extends Subscriber { + constructor(destination, parent) { + super(destination); + this.parent = parent; + } + _next(value) { + this.parent.nextB(value); + } + _error(err) { + this.parent.error(err); + } + _complete() { + this.parent._complete(); + } +} +//# sourceMappingURL=sequenceEqual.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sequenceEqual.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sequenceEqual.js.map new file mode 100644 index 00000000000000..89a111c4a3fa7d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/sequenceEqual.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sequenceEqual.js","sourceRoot":"","sources":["../../src/operators/sequenceEqual.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/share.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/share.js new file mode 100644 index 00000000000000..88c8c1807f27d5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/share.js @@ -0,0 +1,23 @@ +import { multicast } from './multicast'; +import { refCount } from './refCount'; +import { Subject } from '../Subject'; +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(). + * + * + * + * @return {Observable} An Observable that upon connection causes the source Observable to emit items to its Observers. + * @method share + * @owner Observable + */ +export function share() { + return (source) => refCount()(multicast(shareSubjectFactory)(source)); +} +; +//# sourceMappingURL=share.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/share.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/share.js.map new file mode 100644 index 00000000000000..dad030cbca9914 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/share.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share.js","sourceRoot":"","sources":["../../src/operators/share.ts"],"names":[],"mappings":"OACO,EAAE,SAAS,EAAE,MAAM,aAAa;OAChC,EAAE,QAAQ,EAAE,MAAM,YAAY;OAC9B,EAAE,OAAO,EAAE,MAAM,YAAY;AAIpC;IACE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;GAWG;AACH;IACE,MAAM,CAAC,CAAC,MAAqB,KAAK,QAAQ,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAkB,CAAC;AACxG,CAAC;AAAA,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/shareReplay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/shareReplay.js new file mode 100644 index 00000000000000..d971c83e9e49f8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/shareReplay.js @@ -0,0 +1,43 @@ +import { ReplaySubject } from '../ReplaySubject'; +/** + * @method shareReplay + * @owner Observable + */ +export function shareReplay(bufferSize, windowTime, scheduler) { + return (source) => source.lift(shareReplayOperator(bufferSize, windowTime, scheduler)); +} +function shareReplayOperator(bufferSize, windowTime, scheduler) { + let subject; + let refCount = 0; + let subscription; + let hasError = false; + let isComplete = false; + return function shareReplayOperation(source) { + refCount++; + if (!subject || hasError) { + hasError = false; + subject = new ReplaySubject(bufferSize, windowTime, scheduler); + subscription = source.subscribe({ + next(value) { subject.next(value); }, + error(err) { + hasError = true; + subject.error(err); + }, + complete() { + isComplete = true; + subject.complete(); + }, + }); + } + const innerSub = subject.subscribe(this); + return () => { + refCount--; + innerSub.unsubscribe(); + if (subscription && refCount === 0 && isComplete) { + subscription.unsubscribe(); + } + }; + }; +} +; +//# sourceMappingURL=shareReplay.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/shareReplay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/shareReplay.js.map new file mode 100644 index 00000000000000..04a3c14ddcca00 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/shareReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shareReplay.js","sourceRoot":"","sources":["../../src/operators/shareReplay.ts"],"names":[],"mappings":"OACO,EAAE,aAAa,EAAE,MAAM,kBAAkB;AAMhD;;;GAGG;AACH,4BAA+B,UAAmB,EAAE,UAAmB,EAAE,SAAsB;IAC7F,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AACxG,CAAC;AAED,6BAAgC,UAAmB,EAAE,UAAmB,EAAE,SAAsB;IAC9F,IAAI,OAAyB,CAAC;IAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAA0B,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,MAAM,CAAC,8BAAmD,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC;YACzB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,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,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEzC,MAAM,CAAC;YACL,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,EAAE,CAAC,CAAC,YAAY,IAAI,QAAQ,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;gBACjD,YAAY,CAAC,WAAW,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAAA,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/single.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/single.js new file mode 100644 index 00000000000000..712d019634ee36 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/single.js @@ -0,0 +1,83 @@ +import { Subscriber } from '../Subscriber'; +import { EmptyError } from '../util/EmptyError'; +/** + * 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 + * such items, notify of an IllegalArgumentException or NoSuchElementException respectively. + * + * + * + * @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. + . + * @method single + * @owner Observable + */ +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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/single.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/single.js.map new file mode 100644 index 00000000000000..01bf23c940c63f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/single.js.map @@ -0,0 +1 @@ +{"version":3,"file":"single.js","sourceRoot":"","sources":["../../src/operators/single.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;OAEnC,EAAE,UAAU,EAAE,MAAM,oBAAoB;AAK/C;;;;;;;;;;;;;;;GAeG;AACH,uBAA0B,SAAuE;IAC/F,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACvF,CAAC;AAED;IACE,YAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,+BAAkC,UAAU;IAK1C,YAAY,WAAwB,EAChB,SAAuE,EACvE,MAAsB;QACxC,MAAM,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,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACpE,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,KAAQ,EAAE,KAAa;QACrC,IAAI,CAAC;YACH,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAES,SAAS;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACnB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;YAChE,WAAW,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,WAAW,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skip.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skip.js new file mode 100644 index 00000000000000..35c212986a9d88 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skip.js @@ -0,0 +1,41 @@ +import { Subscriber } from '../Subscriber'; +/** + * Returns an Observable that skips the first `count` items emitted by the source Observable. + * + * + * + * @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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skip.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skip.js.map new file mode 100644 index 00000000000000..5535cacb926a42 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skip.js","sourceRoot":"","sources":["../../src/operators/skip.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;AAK1C;;;;;;;;;;GAUG;AACH,qBAAwB,KAAa;IACnC,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;IACE,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,6BAAgC,UAAU;IAGxC,YAAY,WAA0B,EAAU,KAAa;QAC3D,MAAM,WAAW,CAAC,CAAC;QAD2B,UAAK,GAAL,KAAK,CAAQ;QAF7D,UAAK,GAAW,CAAC,CAAC;IAIlB,CAAC;IAES,KAAK,CAAC,CAAI;QAClB,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipLast.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipLast.js new file mode 100644 index 00000000000000..a724fdcae957ba --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipLast.js @@ -0,0 +1,83 @@ +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +/** + * Skip the last `count` values emitted by the source Observable. + * + * + * + * `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 + * var many = Rx.Observable.range(1, 5); + * var skipLastTwo = many.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) { + 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) { + // 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 { + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipLast.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipLast.js.map new file mode 100644 index 00000000000000..4ca5c381acff90 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipLast.js","sourceRoot":"","sources":["../../src/operators/skipLast.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,uBAAuB,EAAE,MAAM,iCAAiC;AAKzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,yBAA4B,KAAa;IACvC,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED;IACE,YAAoB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QACpC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,IAAI,uBAAuB,CAAC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,0DAA0D;YAC1D,2CAA2C;YAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,iCAAoC,UAAU;IAI5C,YAAY,WAA0B,EAAU,UAAkB;QAChE,MAAM,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,EAAE,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,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;QAClC,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipUntil.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipUntil.js new file mode 100644 index 00000000000000..267cd39da0ec0d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipUntil.js @@ -0,0 +1,61 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item. + * + * + * + * @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) { + return (source) => source.lift(new SkipUntilOperator(notifier)); +} +class SkipUntilOperator { + constructor(notifier) { + this.notifier = notifier; + } + call(subscriber, source) { + return source.subscribe(new SkipUntilSubscriber(subscriber, this.notifier)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SkipUntilSubscriber extends OuterSubscriber { + constructor(destination, notifier) { + super(destination); + this.hasValue = false; + this.isInnerStopped = false; + this.add(subscribeToResult(this, notifier)); + } + _next(value) { + if (this.hasValue) { + super._next(value); + } + } + _complete() { + if (this.isInnerStopped) { + super._complete(); + } + else { + this.unsubscribe(); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.hasValue = true; + } + notifyComplete() { + this.isInnerStopped = true; + if (this.isStopped) { + super._complete(); + } + } +} +//# sourceMappingURL=skipUntil.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipUntil.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipUntil.js.map new file mode 100644 index 00000000000000..1437ff8a138956 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipUntil.js","sourceRoot":"","sources":["../../src/operators/skipUntil.ts"],"names":[],"mappings":"OAIO,EAAE,eAAe,EAAE,MAAM,oBAAoB;OAE7C,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;AAG7D;;;;;;;;;;;GAWG;AACH,0BAA6B,QAAyB;IACpD,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjF,CAAC;AAED;IACE,YAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,kCAAwC,eAAe;IAKrD,YAAY,WAA4B,EAC5B,QAAyB;QACnC,MAAM,WAAW,CAAC,CAAC;QALb,aAAQ,GAAY,KAAK,CAAC;QAC1B,mBAAc,GAAY,KAAK,CAAC;QAKtC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9C,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAES,SAAS;QACjB,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACxB,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACnB,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipWhile.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipWhile.js new file mode 100644 index 00000000000000..e6cfc49ea87b73 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipWhile.js @@ -0,0 +1,56 @@ +import { Subscriber } from '../Subscriber'; +/** + * 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. + * + * + * + * @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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipWhile.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipWhile.js.map new file mode 100644 index 00000000000000..604f14cb8dc095 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/skipWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipWhile.js","sourceRoot":"","sources":["../../src/operators/skipWhile.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;AAI1C;;;;;;;;;;;GAWG;AACH,0BAA6B,SAA+C;IAC1E,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;IACE,YAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,kCAAqC,UAAU;IAI7C,YAAY,WAA0B,EAClB,SAA+C;QACjE,MAAM,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,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,KAAQ;QAC/B,IAAI,CAAC;YACH,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;QAClC,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/startWith.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/startWith.js new file mode 100644 index 00000000000000..189a877c5cf3b7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/startWith.js @@ -0,0 +1,42 @@ +import { ArrayObservable } from '../observable/ArrayObservable'; +import { ScalarObservable } from '../observable/ScalarObservable'; +import { EmptyObservable } from '../observable/EmptyObservable'; +import { concat as concatStatic } from '../observable/concat'; +import { isScheduler } from '../util/isScheduler'; +/* 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. + * + * + * + * @param {...T} values - Items you want the modified Observable to emit first. + * @param {Scheduler} [scheduler] - A {@link IScheduler} 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) { + return (source) => { + let scheduler = array[array.length - 1]; + if (isScheduler(scheduler)) { + array.pop(); + } + else { + scheduler = null; + } + const len = array.length; + if (len === 1) { + return concatStatic(new ScalarObservable(array[0], scheduler), source); + } + else if (len > 1) { + return concatStatic(new ArrayObservable(array, scheduler), source); + } + else { + return concatStatic(new EmptyObservable(scheduler), source); + } + }; +} +//# sourceMappingURL=startWith.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/startWith.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/startWith.js.map new file mode 100644 index 00000000000000..5fb55188dfaadc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/startWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"startWith.js","sourceRoot":"","sources":["../../src/operators/startWith.ts"],"names":[],"mappings":"OAEO,EAAE,eAAe,EAAE,MAAM,+BAA+B;OACxD,EAAE,gBAAgB,EAAE,MAAM,gCAAgC;OAC1D,EAAE,eAAe,EAAE,MAAM,+BAA+B;OACxD,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,sBAAsB;OACtD,EAAE,WAAW,EAAE,MAAM,qBAAqB;AAWjD,mCAAmC;AAEnC;;;;;;;;;;;;;GAaG;AACH,0BAA6B,GAAG,KAA4B;IAC1D,MAAM,CAAC,CAAC,MAAqB;QAC3B,IAAI,SAAS,GAAe,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;QACzB,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,YAAY,CAAC,IAAI,gBAAgB,CAAO,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/E,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,YAAY,CAAC,IAAI,eAAe,CAAS,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7E,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,YAAY,CAAC,IAAI,eAAe,CAAI,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/subscribeOn.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/subscribeOn.js new file mode 100644 index 00000000000000..66258b63573167 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/subscribeOn.js @@ -0,0 +1,27 @@ +import { SubscribeOnObservable } from '../observable/SubscribeOnObservable'; +/** + * Asynchronously subscribes Observers to this Observable on the specified IScheduler. + * + * + * + * @param {Scheduler} scheduler - The IScheduler to perform subscription actions on. + * @return {Observable} The source Observable modified so that its subscriptions happen on the specified IScheduler. + . + * @method subscribeOn + * @owner Observable + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/subscribeOn.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/subscribeOn.js.map new file mode 100644 index 00000000000000..81845f1fa8e446 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/subscribeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeOn.js","sourceRoot":"","sources":["../../src/operators/subscribeOn.ts"],"names":[],"mappings":"OAKO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC;AAG3E;;;;;;;;;;GAUG;AACH,4BAA+B,SAAqB,EAAE,KAAK,GAAW,CAAC;IACrE,MAAM,CAAC,qCAAqC,MAAqB;QAC/D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAI,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAED;IACE,YAAoB,SAAqB,EACrB,KAAa;QADb,cAAS,GAAT,SAAS,CAAY;QACrB,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IACD,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,IAAI,qBAAqB,CAC9B,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CACnC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchAll.js new file mode 100644 index 00000000000000..f0db5993c97395 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchAll.js.map new file mode 100644 index 00000000000000..dfde7a2e5be415 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchAll.js","sourceRoot":"","sources":["../../src/operators/switchAll.ts"],"names":[],"mappings":"OAEO,EAAE,SAAS,EAAE,MAAM,aAAa;OAChC,EAAE,QAAQ,EAAE,MAAM,kBAAkB;AAE3C;IACE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMap.js new file mode 100644 index 00000000000000..6d8d03c9da8235 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMap.js @@ -0,0 +1,132 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/* 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 using {@link switch}. + * + * + * + * 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 Rerun an interval Observable on every click event + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.switchMap((ev) => Rx.Observable.interval(1000)); + * result.subscribe(x => console.log(x)); + * + * @see {@link concatMap} + * @see {@link exhaustMap} + * @see {@link mergeMap} + * @see {@link switch} + * @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. + * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected Observable + * @return {Observable} An Observable that emits the result of applying the + * projection function (and the optional `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, resultSelector) { + return function switchMapOperatorFunction(source) { + return source.lift(new SwitchMapOperator(project, resultSelector)); + }; +} +class SwitchMapOperator { + constructor(project, resultSelector) { + this.project = project; + this.resultSelector = resultSelector; + } + call(subscriber, source) { + return source.subscribe(new SwitchMapSubscriber(subscriber, this.project, this.resultSelector)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SwitchMapSubscriber extends OuterSubscriber { + constructor(destination, project, resultSelector) { + super(destination); + this.project = project; + this.resultSelector = resultSelector; + 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, value, index); + } + _innerSub(result, value, index) { + const innerSubscription = this.innerSubscription; + if (innerSubscription) { + innerSubscription.unsubscribe(); + } + this.add(this.innerSubscription = subscribeToResult(this, result, value, index)); + } + _complete() { + const { innerSubscription } = this; + if (!innerSubscription || innerSubscription.closed) { + super._complete(); + } + } + /** @deprecated internal use only */ _unsubscribe() { + this.innerSubscription = null; + } + notifyComplete(innerSub) { + this.remove(innerSub); + this.innerSubscription = null; + if (this.isStopped) { + super._complete(); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + if (this.resultSelector) { + this._tryNotifyNext(outerValue, innerValue, outerIndex, innerIndex); + } + else { + this.destination.next(innerValue); + } + } + _tryNotifyNext(outerValue, innerValue, outerIndex, innerIndex) { + let result; + try { + result = this.resultSelector(outerValue, innerValue, outerIndex, innerIndex); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + } +} +//# sourceMappingURL=switchMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMap.js.map new file mode 100644 index 00000000000000..02b36cdae2cc06 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMap.js","sourceRoot":"","sources":["../../src/operators/switchMap.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMapTo.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMapTo.js new file mode 100644 index 00000000000000..85bd34194d67aa --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMapTo.js @@ -0,0 +1,115 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/* tslint:enable:max-line-length */ +/** + * Projects each source value to the same Observable which is flattened multiple + * times with {@link switch} in the output Observable. + * + * It's like {@link switchMap}, but maps each value + * always to the same inner Observable. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.switchMapTo(Rx.Observable.interval(1000)); + * result.subscribe(x => console.log(x)); + * + * @see {@link concatMapTo} + * @see {@link switch} + * @see {@link switchMap} + * @see {@link mergeMapTo} + * + * @param {ObservableInput} innerObservable An Observable to replace each value from + * the source Observable. + * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector] + * A function to produce the value on the output Observable based on the values + * and the indices of the source (outer) emission and the inner Observable + * emission. The arguments passed to this function are: + * - `outerValue`: the value that came from the source + * - `innerValue`: the value that came from the projected Observable + * - `outerIndex`: the "index" of the value that came from the source + * - `innerIndex`: the "index" of the value from the projected Observable + * @return {Observable} An Observable that emits items from the given + * `innerObservable` (and optionally transformed through `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, resultSelector) { + return (source) => source.lift(new SwitchMapToOperator(innerObservable, resultSelector)); +} +class SwitchMapToOperator { + constructor(observable, resultSelector) { + this.observable = observable; + this.resultSelector = resultSelector; + } + call(subscriber, source) { + return source.subscribe(new SwitchMapToSubscriber(subscriber, this.observable, this.resultSelector)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SwitchMapToSubscriber extends OuterSubscriber { + constructor(destination, inner, resultSelector) { + super(destination); + this.inner = inner; + this.resultSelector = resultSelector; + this.index = 0; + } + _next(value) { + const innerSubscription = this.innerSubscription; + if (innerSubscription) { + innerSubscription.unsubscribe(); + } + this.add(this.innerSubscription = subscribeToResult(this, this.inner, value, this.index++)); + } + _complete() { + const { innerSubscription } = this; + if (!innerSubscription || innerSubscription.closed) { + super._complete(); + } + } + /** @deprecated internal use only */ _unsubscribe() { + this.innerSubscription = null; + } + notifyComplete(innerSub) { + this.remove(innerSub); + this.innerSubscription = null; + if (this.isStopped) { + super._complete(); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + const { resultSelector, destination } = this; + if (resultSelector) { + this.tryResultSelector(outerValue, innerValue, outerIndex, innerIndex); + } + else { + destination.next(innerValue); + } + } + tryResultSelector(outerValue, innerValue, outerIndex, innerIndex) { + const { resultSelector, destination } = this; + let result; + try { + result = resultSelector(outerValue, innerValue, outerIndex, innerIndex); + } + catch (err) { + destination.error(err); + return; + } + destination.next(result); + } +} +//# sourceMappingURL=switchMapTo.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMapTo.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMapTo.js.map new file mode 100644 index 00000000000000..a34e3b3af324a1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/switchMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMapTo.js","sourceRoot":"","sources":["../../src/operators/switchMapTo.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/take.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/take.js new file mode 100644 index 00000000000000..482f77bfcb6f60 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/take.js @@ -0,0 +1,81 @@ +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +import { EmptyObservable } from '../observable/EmptyObservable'; +/** + * Emits only the first `count` values emitted by the source Observable. + * + * Takes the first `count` values from the source, then + * completes. + * + * + * + * `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 + * var interval = Rx.Observable.interval(1000); + * var five = interval.take(5); + * five.subscribe(x => console.log(x)); + * + * @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) { + return (source) => { + if (count === 0) { + return new EmptyObservable(); + } + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/take.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/take.js.map new file mode 100644 index 00000000000000..7771a92e14e864 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/take.js.map @@ -0,0 +1 @@ +{"version":3,"file":"take.js","sourceRoot":"","sources":["../../src/operators/take.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,uBAAuB,EAAE,MAAM,iCAAiC;OAClE,EAAE,eAAe,EAAE,MAAM,+BAA+B;AAK/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAwB,KAAa;IACnC,MAAM,CAAC,CAAC,MAAqB;QAC3B,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,eAAe,EAAK,CAAC;QAClC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,uBAAuB,CAAC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,6BAAgC,UAAU;IAGxC,YAAY,WAA0B,EAAU,KAAa;QAC3D,MAAM,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,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,EAAE,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeLast.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeLast.js new file mode 100644 index 00000000000000..f0c69b2d85f7bd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeLast.js @@ -0,0 +1,99 @@ +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +import { EmptyObservable } from '../observable/EmptyObservable'; +/** + * 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` 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 + * var many = Rx.Observable.range(1, 100); + * var lastThree = many.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) { + return function takeLastOperatorFunction(source) { + if (count === 0) { + return new EmptyObservable(); + } + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeLast.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeLast.js.map new file mode 100644 index 00000000000000..917a7f69a8e295 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeLast.js","sourceRoot":"","sources":["../../src/operators/takeLast.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,uBAAuB,EAAE,MAAM,iCAAiC;OAClE,EAAE,eAAe,EAAE,MAAM,+BAA+B;AAK/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,yBAA4B,KAAa;IACvC,MAAM,CAAC,kCAAkC,MAAqB;QAC5D,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,eAAe,EAAK,CAAC;QAClC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,uBAAuB,CAAC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,iCAAoC,UAAU;IAI5C,YAAY,WAA0B,EAAU,KAAa;QAC3D,MAAM,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,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAES,SAAS;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvB,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACjE,MAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC;YAExB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeUntil.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeUntil.js new file mode 100644 index 00000000000000..ea93a4bd883041 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeUntil.js @@ -0,0 +1,65 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * Emits the values emitted by the source Observable until a `notifier` + * Observable emits a value. + * + * Lets values pass until a second Observable, + * `notifier`, emits something. Then, it completes. + * + * + * + * `takeUntil` subscribes and begins mirroring the source Observable. It also + * monitors a second Observable, `notifier` that you provide. If the `notifier` + * emits a value or a complete notification, the output Observable stops + * mirroring the source Observable and completes. + * + * @example Tick every second until the first click happens + * var interval = Rx.Observable.interval(1000); + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = interval.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) { + return (source) => source.lift(new TakeUntilOperator(notifier)); +} +class TakeUntilOperator { + constructor(notifier) { + this.notifier = notifier; + } + call(subscriber, source) { + return source.subscribe(new TakeUntilSubscriber(subscriber, this.notifier)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class TakeUntilSubscriber extends OuterSubscriber { + constructor(destination, notifier) { + super(destination); + this.notifier = notifier; + this.add(subscribeToResult(this, notifier)); + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.complete(); + } + notifyComplete() { + // noop + } +} +//# sourceMappingURL=takeUntil.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeUntil.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeUntil.js.map new file mode 100644 index 00000000000000..13ae4bbbcc2647 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeUntil.js","sourceRoot":"","sources":["../../src/operators/takeUntil.ts"],"names":[],"mappings":"OAKO,EAAE,eAAe,EAAE,MAAM,oBAAoB;OAE7C,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;AAI7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,0BAA6B,QAAyB;IACpD,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjF,CAAC;AAED;IACE,YAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,kCAAwC,eAAe;IAErD,YAAY,WAA4B,EACpB,QAAyB;QAC3C,MAAM,WAAW,CAAC,CAAC;QADD,aAAQ,GAAR,QAAQ,CAAiB;QAE3C,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,cAAc;QACZ,OAAO;IACT,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeWhile.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeWhile.js new file mode 100644 index 00000000000000..ee891716ec0f0e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeWhile.js @@ -0,0 +1,82 @@ +import { Subscriber } from '../Subscriber'; +/** + * 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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. + * @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) { + return (source) => source.lift(new TakeWhileOperator(predicate)); +} +class TakeWhileOperator { + constructor(predicate) { + this.predicate = predicate; + } + call(subscriber, source) { + return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class TakeWhileSubscriber extends Subscriber { + constructor(destination, predicate) { + super(destination); + this.predicate = predicate; + 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 { + destination.complete(); + } + } +} +//# sourceMappingURL=takeWhile.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeWhile.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeWhile.js.map new file mode 100644 index 00000000000000..1f6b8649e75c62 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/takeWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeWhile.js","sourceRoot":"","sources":["../../src/operators/takeWhile.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,0BAA6B,SAA+C;IAC1E,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;IACE,YAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,kCAAqC,UAAU;IAG7C,YAAY,WAA0B,EAClB,SAA+C;QACjE,MAAM,WAAW,CAAC,CAAC;QADD,cAAS,GAAT,SAAS,CAAsC;QAH3D,UAAK,GAAW,CAAC,CAAC;IAK1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAE;QAAA,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,CAAC;QACT,CAAC;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,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,WAAW,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/tap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/tap.js new file mode 100644 index 00000000000000..d3fad212f96437 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/tap.js @@ -0,0 +1,103 @@ +import { Subscriber } from '../Subscriber'; +/* 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. + * + * + * + * 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 `do` is not subscribed, the side effects specified by the + * Observer will never happen. `do` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var positions = clicks + * .do(ev => console.log(ev)) + * .map(ev => ev.clientX); + * positions.subscribe(x => console.log(x)); + * + * @see {@link map} + * @see {@link 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, 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 DoSubscriber(subscriber, this.nextOrObserver, this.error, this.complete)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class DoSubscriber extends Subscriber { + constructor(destination, nextOrObserver, error, complete) { + super(destination); + const safeSubscriber = new Subscriber(nextOrObserver, error, complete); + safeSubscriber.syncErrorThrowable = true; + this.add(safeSubscriber); + this.safeSubscriber = safeSubscriber; + } + _next(value) { + const { safeSubscriber } = this; + safeSubscriber.next(value); + if (safeSubscriber.syncErrorThrown) { + this.destination.error(safeSubscriber.syncErrorValue); + } + else { + this.destination.next(value); + } + } + _error(err) { + const { safeSubscriber } = this; + safeSubscriber.error(err); + if (safeSubscriber.syncErrorThrown) { + this.destination.error(safeSubscriber.syncErrorValue); + } + else { + this.destination.error(err); + } + } + _complete() { + const { safeSubscriber } = this; + safeSubscriber.complete(); + if (safeSubscriber.syncErrorThrown) { + this.destination.error(safeSubscriber.syncErrorValue); + } + else { + this.destination.complete(); + } + } +} +//# sourceMappingURL=tap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/tap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/tap.js.map new file mode 100644 index 00000000000000..aea8425480e8e9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/tap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tap.js","sourceRoot":"","sources":["../../src/operators/tap.ts"],"names":[],"mappings":"OACO,EAAE,UAAU,EAAE,MAAM,eAAe;AAS1C,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,oBAAuB,cAAsD,EACtD,KAAwB,EACxB,QAAqB;IAC1C,MAAM,CAAC,6BAA6B,MAAqB;QACvD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC;AACJ,CAAC;AAED;IACE,YAAoB,cAAsD,EACtD,KAAwB,EACxB,QAAqB;QAFrB,mBAAc,GAAd,cAAc,CAAwC;QACtD,UAAK,GAAL,KAAK,CAAmB;QACxB,aAAQ,GAAR,QAAQ,CAAa;IACzC,CAAC;IACD,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxG,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,2BAA8B,UAAU;IAItC,YAAY,WAA0B,EAC1B,cAAsD,EACtD,KAAwB,EACxB,QAAqB;QAC/B,MAAM,WAAW,CAAC,CAAC;QAEnB,MAAM,cAAc,GAAG,IAAI,UAAU,CAAI,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1E,cAAc,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAChC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,EAAE,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAChC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,EAAE,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAES,SAAS;QACjB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAChC,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC1B,EAAE,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttle.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttle.js new file mode 100644 index 00000000000000..6b49b029cfede7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttle.js @@ -0,0 +1,131 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +export const defaultThrottleConfig = { + 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.throttle(ev => Rx.Observable.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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc + * @ignore + * @extends {Ignored} + */ +class ThrottleSubscriber extends OuterSubscriber { + constructor(destination, durationSelector, _leading, _trailing) { + super(destination); + this.destination = destination; + this.durationSelector = durationSelector; + this._leading = _leading; + this._trailing = _trailing; + this._hasTrailingValue = false; + } + _next(value) { + if (this.throttled) { + if (this._trailing) { + this._hasTrailingValue = true; + this._trailingValue = value; + } + } + else { + const duration = this.tryDurationSelector(value); + if (duration) { + this.add(this.throttled = subscribeToResult(this, duration)); + } + if (this._leading) { + this.destination.next(value); + if (this._trailing) { + this._hasTrailingValue = true; + this._trailingValue = value; + } + } + } + } + tryDurationSelector(value) { + try { + return this.durationSelector(value); + } + catch (err) { + this.destination.error(err); + return null; + } + } + /** @deprecated internal use only */ _unsubscribe() { + const { throttled, _trailingValue, _hasTrailingValue, _trailing } = this; + this._trailingValue = null; + this._hasTrailingValue = false; + if (throttled) { + this.remove(throttled); + this.throttled = null; + throttled.unsubscribe(); + } + } + _sendTrailing() { + const { destination, throttled, _trailing, _trailingValue, _hasTrailingValue } = this; + if (throttled && _trailing && _hasTrailingValue) { + destination.next(_trailingValue); + this._trailingValue = null; + this._hasTrailingValue = false; + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this._sendTrailing(); + this._unsubscribe(); + } + notifyComplete() { + this._sendTrailing(); + this._unsubscribe(); + } +} +//# sourceMappingURL=throttle.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttle.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttle.js.map new file mode 100644 index 00000000000000..dcdc96ba5e2225 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../src/operators/throttle.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttleTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttleTime.js new file mode 100644 index 00000000000000..67f2f1bf8e1626 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttleTime.js @@ -0,0 +1,104 @@ +import { Subscriber } from '../Subscriber'; +import { async } from '../scheduler/async'; +import { defaultThrottleConfig } from './throttle'; +/** + * 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` 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 IScheduler} for managing timers. + * + * @example Emit clicks at a rate of at most one click per second + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.throttleTime(1000); + * result.subscribe(x => console.log(x)); + * + * @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 {Scheduler} [scheduler=async] The {@link IScheduler} to use for + * managing the timers that handle the throttling. + * @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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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); + } + } + } + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttleTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttleTime.js.map new file mode 100644 index 00000000000000..ae54cc19726513 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/throttleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttleTime.js","sourceRoot":"","sources":["../../src/operators/throttleTime.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeInterval.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeInterval.js new file mode 100644 index 00000000000000..c9e5c972fb4086 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeInterval.js @@ -0,0 +1,40 @@ +import { Subscriber } from '../Subscriber'; +import { async } from '../scheduler/async'; +export function timeInterval(scheduler = async) { + return (source) => source.lift(new TimeIntervalOperator(scheduler)); +} +export class TimeInterval { + constructor(value, interval) { + this.value = value; + this.interval = interval; + } +} +; +class TimeIntervalOperator { + constructor(scheduler) { + this.scheduler = scheduler; + } + call(observer, source) { + return source.subscribe(new TimeIntervalSubscriber(observer, this.scheduler)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class TimeIntervalSubscriber extends Subscriber { + constructor(destination, scheduler) { + super(destination); + this.scheduler = scheduler; + this.lastTime = 0; + this.lastTime = scheduler.now(); + } + _next(value) { + let now = this.scheduler.now(); + let span = now - this.lastTime; + this.lastTime = now; + this.destination.next(new TimeInterval(value, span)); + } +} +//# sourceMappingURL=timeInterval.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeInterval.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeInterval.js.map new file mode 100644 index 00000000000000..bd5bf4432960a7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeInterval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeInterval.js","sourceRoot":"","sources":["../../src/operators/timeInterval.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,MAAM,eAAe;OAEnC,EAAE,KAAK,EAAE,MAAM,oBAAoB;AAG1C,6BAAgC,SAAS,GAAe,KAAK;IAC3D,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;AACrF,CAAC;AAED;IACE,YAAmB,KAAQ,EAAS,QAAgB;QAAjC,UAAK,GAAL,KAAK,CAAG;QAAS,aAAQ,GAAR,QAAQ,CAAQ;IAEpD,CAAC;AACH,CAAC;AAAA,CAAC;AAEF;IACE,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAEzC,CAAC;IAED,IAAI,CAAC,QAAqC,EAAE,MAAW;QACrD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,qCAAwC,UAAU;IAGhD,YAAY,WAAwC,EAAU,SAAqB;QACjF,MAAM,WAAW,CAAC,CAAC;QADyC,cAAS,GAAT,SAAS,CAAY;QAF3E,aAAQ,GAAW,CAAC,CAAC;QAK3B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;IAClC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QAEpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeout.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeout.js new file mode 100644 index 00000000000000..5f50513fa78d4f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeout.js @@ -0,0 +1,130 @@ +import { async } from '../scheduler/async'; +import { isDate } from '../util/isDate'; +import { Subscriber } from '../Subscriber'; +import { TimeoutError } from '../util/TimeoutError'; +/** + * + * Errors if Observable does not emit a value in given time span. + * + * Timeouts on Observable that doesn't emit values fast enough. + * + * + * + * `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. + * + * @example Check if ticks are emitted within certain timespan + * const seconds = Rx.Observable.interval(1000); + * + * seconds.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.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. + * ); + * + * @example Use Date to check if Observable completed + * const seconds = Rx.Observable.interval(1000); + * + * seconds.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 {Scheduler} [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, scheduler = async) { + const absoluteTimeout = isDate(due); + const waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due); + return (source) => source.lift(new TimeoutOperator(waitFor, absoluteTimeout, scheduler, new TimeoutError())); +} +class TimeoutOperator { + constructor(waitFor, absoluteTimeout, scheduler, errorInstance) { + this.waitFor = waitFor; + this.absoluteTimeout = absoluteTimeout; + this.scheduler = scheduler; + this.errorInstance = errorInstance; + } + call(subscriber, source) { + return source.subscribe(new TimeoutSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.scheduler, this.errorInstance)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class TimeoutSubscriber extends Subscriber { + constructor(destination, absoluteTimeout, waitFor, scheduler, errorInstance) { + super(destination); + this.absoluteTimeout = absoluteTimeout; + this.waitFor = waitFor; + this.scheduler = scheduler; + this.errorInstance = errorInstance; + this.action = null; + this.scheduleTimeout(); + } + static dispatchTimeout(subscriber) { + subscriber.error(subscriber.errorInstance); + } + scheduleTimeout() { + 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(TimeoutSubscriber.dispatchTimeout, this.waitFor, this)); + } + } + _next(value) { + if (!this.absoluteTimeout) { + this.scheduleTimeout(); + } + super._next(value); + } + /** @deprecated internal use only */ _unsubscribe() { + this.action = null; + this.scheduler = null; + this.errorInstance = null; + } +} +//# sourceMappingURL=timeout.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeout.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeout.js.map new file mode 100644 index 00000000000000..2fb2925da4f626 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/operators/timeout.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeoutWith.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeoutWith.js new file mode 100644 index 00000000000000..211ef8ba01b652 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeoutWith.js @@ -0,0 +1,117 @@ +import { async } from '../scheduler/async'; +import { isDate } from '../util/isDate'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/* 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` 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 + * const seconds = Rx.Observable.interval(1000); + * const minutes = Rx.Observable.interval(60 * 1000); + * + * seconds.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 {Scheduler} [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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class TimeoutWithSubscriber extends OuterSubscriber { + constructor(destination, absoluteTimeout, waitFor, withObservable, scheduler) { + super(destination); + this.absoluteTimeout = absoluteTimeout; + this.waitFor = waitFor; + this.withObservable = withObservable; + this.scheduler = scheduler; + this.action = null; + this.scheduleTimeout(); + } + static dispatchTimeout(subscriber) { + const { withObservable } = subscriber; + subscriber._unsubscribeAndRecycle(); + subscriber.add(subscribeToResult(subscriber, withObservable)); + } + scheduleTimeout() { + 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, this.waitFor, this)); + } + } + _next(value) { + if (!this.absoluteTimeout) { + this.scheduleTimeout(); + } + super._next(value); + } + /** @deprecated internal use only */ _unsubscribe() { + this.action = null; + this.scheduler = null; + this.withObservable = null; + } +} +//# sourceMappingURL=timeoutWith.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeoutWith.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeoutWith.js.map new file mode 100644 index 00000000000000..9e11823e72dcb0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timeoutWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeoutWith.js","sourceRoot":"","sources":["../../src/operators/timeoutWith.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timestamp.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timestamp.js new file mode 100644 index 00000000000000..fe36bbaf87bd64 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timestamp.js @@ -0,0 +1,20 @@ +import { async } from '../scheduler/async'; +import { map } from './map'; +/** + * @param scheduler + * @return {Observable>|WebSocketSubject|Observable} + * @method timestamp + * @owner Observable + */ +export function timestamp(scheduler = async) { + return map((value) => new Timestamp(value, scheduler.now())); + // return (source: Observable) => source.lift(new TimestampOperator(scheduler)); +} +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timestamp.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timestamp.js.map new file mode 100644 index 00000000000000..3aa794457e5378 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/timestamp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../src/operators/timestamp.ts"],"names":[],"mappings":"OAEO,EAAE,KAAK,EAAE,MAAM,oBAAoB;OAEnC,EAAE,GAAG,EAAE,MAAM,OAAO;AAE3B;;;;;GAKG;AACH,0BAA6B,SAAS,GAAe,KAAK;IACxD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAQ,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAChE,mFAAmF;AACrF,CAAC;AAED;IACE,YAAmB,KAAQ,EAAS,SAAiB;QAAlC,UAAK,GAAL,KAAK,CAAG;QAAS,cAAS,GAAT,SAAS,CAAQ;IACrD,CAAC;AACH,CAAC;AAAA,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/toArray.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/toArray.js new file mode 100644 index 00000000000000..98effe76e07def --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/toArray.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/toArray.js.map new file mode 100644 index 00000000000000..692afd0b49262e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/toArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toArray.js","sourceRoot":"","sources":["../../src/operators/toArray.ts"],"names":[],"mappings":"OAAO,EAAE,MAAM,EAAE,MAAM,UAAU;AAGjC,wBAA2B,GAAQ,EAAE,IAAO,EAAE,KAAa;IACzD,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,MAAM,CAAC,GAAG,CAAC;AACb,CAAC;AAED;IACE,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAA6B,CAAC;AAChE,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/window.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/window.js new file mode 100644 index 00000000000000..22ec6f40275caa --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/window.js @@ -0,0 +1,102 @@ +import { Subject } from '../Subject'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var interval = Rx.Observable.interval(1000); + * var result = clicks.window(interval) + * .map(win => win.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) { + 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(subscribeToResult(windowSubscriber, this.windowBoundaries)); + } + return sourceSubscription; + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class WindowSubscriber extends OuterSubscriber { + constructor(destination) { + super(destination); + this.window = new Subject(); + destination.next(this.window); + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.openWindow(); + } + notifyError(error, innerSub) { + this._error(error); + } + notifyComplete(innerSub) { + 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(); + } + /** @deprecated internal use only */ _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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/window.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/window.js.map new file mode 100644 index 00000000000000..2fc04838b60553 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/window.js.map @@ -0,0 +1 @@ +{"version":3,"file":"window.js","sourceRoot":"","sources":["../../src/operators/window.ts"],"names":[],"mappings":"OAEO,EAAE,OAAO,EAAE,MAAM,YAAY;OAE7B,EAAE,eAAe,EAAE,MAAM,oBAAoB;OAE7C,EAAE,iBAAiB,EAAE,MAAM,2BAA2B;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,uBAA0B,gBAAiC;IACzD,MAAM,CAAC,gCAAgC,MAAqB;QAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC;AAED;IAEE,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,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/B,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,CAAC,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,+BAAkC,eAAe;IAI/C,YAAY,WAAsC;QAChD,MAAM,WAAW,CAAC,CAAC;QAHb,WAAM,GAAe,IAAI,OAAO,EAAK,CAAC;QAI5C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAe,EAC9B,UAAkB,EAAE,UAAkB,EACtC,QAAiC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,QAAiC;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,cAAc,CAAC,QAAiC;QAC9C,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,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,oCAAoC,CAAC,YAAY;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAEO,UAAU;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACf,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,EAAK,CAAC;QACjD,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowCount.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowCount.js new file mode 100644 index 00000000000000..8f137bcd52a754 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowCount.js @@ -0,0 +1,122 @@ +import { Subscriber } from '../Subscriber'; +import { Subject } from '../Subject'; +/** + * 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. + * + * + * + * 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`. + * + * @example Ignore every 3rd click event, starting from the first one + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.windowCount(3) + * .map(win => win.skip(1)) // skip first of every 3 clicks + * .mergeAll(); // flatten the Observable-of-Observables + * result.subscribe(x => console.log(x)); + * + * @example Ignore every 3rd click event, starting from the third one + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks.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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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(); + } + /** @deprecated internal use only */ _unsubscribe() { + this.count = 0; + this.windows = null; + } +} +//# sourceMappingURL=windowCount.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowCount.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowCount.js.map new file mode 100644 index 00000000000000..5caf405c57423b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowCount.js","sourceRoot":"","sources":["../../src/operators/windowCount.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowTime.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowTime.js new file mode 100644 index 00000000000000..50eedef7fe4fb6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowTime.js @@ -0,0 +1,147 @@ +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 = arguments[2]; + } + if (isScheduler(arguments[1])) { + scheduler = arguments[1]; + } + else if (isNumeric(arguments[1])) { + windowCreationInterval = 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; + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowTime.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowTime.js.map new file mode 100644 index 00000000000000..ecb7df056ecd2f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowTime.js","sourceRoot":"","sources":["../../src/operators/windowTime.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowToggle.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowToggle.js new file mode 100644 index 00000000000000..9446b646f2f453 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowToggle.js @@ -0,0 +1,170 @@ +import { Subject } from '../Subject'; +import { Subscription } from '../Subscription'; +import { tryCatch } from '../util/tryCatch'; +import { errorObject } from '../util/errorObject'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var openings = Rx.Observable.interval(1000); + * var result = clicks.windowToggle(openings, i => + * i % 2 ? Rx.Observable.interval(500) : Rx.Observable.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, 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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(); + } + /** @deprecated internal use only */ _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) { + const { closingSelector } = this; + const closingNotifier = tryCatch(closingSelector)(innerValue); + if (closingNotifier === errorObject) { + return this.error(errorObject.e); + } + else { + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowToggle.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowToggle.js.map new file mode 100644 index 00000000000000..0ea554fa44eb11 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowToggle.js","sourceRoot":"","sources":["../../src/operators/windowToggle.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowWhen.js new file mode 100644 index 00000000000000..922ff048e89a10 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowWhen.js @@ -0,0 +1,118 @@ +import { Subject } from '../Subject'; +import { tryCatch } from '../util/tryCatch'; +import { errorObject } from '../util/errorObject'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/** + * 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. + * + * + * + * 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var result = clicks + * .windowWhen(() => Rx.Observable.interval(1000 + Math.random() * 4000)) + * .map(win => win.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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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, innerSub) { + 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); + const closingNotifier = tryCatch(this.closingSelector)(); + if (closingNotifier === errorObject) { + const err = errorObject.e; + this.destination.error(err); + this.window.error(err); + } + else { + this.add(this.closingNotification = subscribeToResult(this, closingNotifier)); + } + } +} +//# sourceMappingURL=windowWhen.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowWhen.js.map new file mode 100644 index 00000000000000..41aa23b143da2e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/windowWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowWhen.js","sourceRoot":"","sources":["../../src/operators/windowWhen.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/withLatestFrom.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/withLatestFrom.js new file mode 100644 index 00000000000000..7916b1ef4708c8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/withLatestFrom.js @@ -0,0 +1,118 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +/* 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` 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 + * var clicks = Rx.Observable.fromEvent(document, 'click'); + * var timer = Rx.Observable.interval(1000); + * var result = clicks.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.withLatestFrom(b, c, (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) { + 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)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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, observable, i)); + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + 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 + } + _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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/withLatestFrom.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/withLatestFrom.js.map new file mode 100644 index 00000000000000..b7fa614c115d65 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/withLatestFrom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"withLatestFrom.js","sourceRoot":"","sources":["../../src/operators/withLatestFrom.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zip.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zip.js new file mode 100644 index 00000000000000..3eaf3a69c6ba6b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zip.js @@ -0,0 +1,255 @@ +import { ArrayObservable } from '../observable/ArrayObservable'; +import { isArray } from '../util/isArray'; +import { Subscriber } from '../Subscriber'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { iterator as Symbol_iterator } from '../symbol/iterator'; +/* tslint:enable:max-line-length */ +/** + * @param observables + * @return {Observable} + * @method zip + * @owner Observable + */ +export function zip(...observables) { + return function zipOperatorFunction(source) { + return source.lift.call(zipStatic(source, ...observables)); + }; +} +/* 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 latest 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 + * + * let age$ = Observable.of(27, 25, 29); + * let name$ = Observable.of('Foo', 'Bar', 'Beer'); + * let isDev$ = Observable.of(true, true, false); + * + * Observable + * .zip(age$, + * name$, + * isDev$, + * (age: number, name: string, isDev: boolean) => ({ 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 zipStatic(...observables) { + const project = observables[observables.length - 1]; + if (typeof project === 'function') { + observables.pop(); + } + return new ArrayObservable(observables).lift(new ZipOperator(project)); +} +export class ZipOperator { + constructor(project) { + this.project = project; + } + call(subscriber, source) { + return source.subscribe(new ZipSubscriber(subscriber, this.project)); + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class ZipSubscriber extends Subscriber { + constructor(destination, project, values = Object.create(null)) { + super(destination); + this.iterators = []; + this.active = 0; + this.project = (typeof project === 'function') ? project : null; + this.values = values; + } + _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; + if (len === 0) { + this.destination.complete(); + return; + } + this.active = len; + for (let i = 0; i < len; i++) { + let iterator = iterators[i]; + if (iterator.stillUnsubscribed) { + this.add(iterator.subscribe(iterator, i)); + } + 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 = []; + 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.project) { + this._tryProject(args); + } + else { + destination.next(args); + } + if (shouldComplete) { + destination.complete(); + } + } + _tryProject(args) { + let result; + try { + result = this.project.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 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; + } +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class ZipBufferIterator extends OuterSubscriber { + constructor(destination, parent, observable) { + super(destination); + this.parent = parent; + this.observable = observable; + this.stillUnsubscribed = true; + this.buffer = []; + this.isComplete = false; + } + [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() { + 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(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.buffer.push(innerValue); + this.parent.checkIterators(); + } + subscribe(value, index) { + return subscribeToResult(this, this.observable, this, index); + } +} +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zip.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zip.js.map new file mode 100644 index 00000000000000..7641d5f1f8ae0f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sourceRoot":"","sources":["../../src/operators/zip.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zipAll.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zipAll.js new file mode 100644 index 00000000000000..f6d40749cb88c5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zipAll.js @@ -0,0 +1,5 @@ +import { ZipOperator } from './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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zipAll.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zipAll.js.map new file mode 100644 index 00000000000000..b65b43ce5491f1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/operators/zipAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zipAll.js","sourceRoot":"","sources":["../../src/operators/zipAll.ts"],"names":[],"mappings":"OAAO,EAAE,WAAW,EAAE,MAAM,OAAO;AAInC,uBAA6B,OAAsC;IACjE,MAAM,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1E,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/path-mapping.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/path-mapping.js new file mode 100644 index 00000000000000..c261c234f03769 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/path-mapping.js @@ -0,0 +1,465 @@ + +"use strict" + +var path = require('path'); +var dir = path.resolve(__dirname); + +module.exports = function() { + return { + "rxjs/util/tryCatch": path.join(dir, "util/tryCatch.js"), + "rxjs/util/toSubscriber": path.join(dir, "util/toSubscriber.js"), + "rxjs/util/subscribeToResult": path.join(dir, "util/subscribeToResult.js"), + "rxjs/util/root": path.join(dir, "util/root.js"), + "rxjs/util/pipe": path.join(dir, "util/pipe.js"), + "rxjs/util/not": path.join(dir, "util/not.js"), + "rxjs/util/noop": path.join(dir, "util/noop.js"), + "rxjs/util/isScheduler": path.join(dir, "util/isScheduler.js"), + "rxjs/util/isPromise": path.join(dir, "util/isPromise.js"), + "rxjs/util/isObject": path.join(dir, "util/isObject.js"), + "rxjs/util/isNumeric": path.join(dir, "util/isNumeric.js"), + "rxjs/util/isFunction": path.join(dir, "util/isFunction.js"), + "rxjs/util/isDate": path.join(dir, "util/isDate.js"), + "rxjs/util/isArrayLike": path.join(dir, "util/isArrayLike.js"), + "rxjs/util/isArray": path.join(dir, "util/isArray.js"), + "rxjs/util/identity": path.join(dir, "util/identity.js"), + "rxjs/util/errorObject": path.join(dir, "util/errorObject.js"), + "rxjs/util/assign": path.join(dir, "util/assign.js"), + "rxjs/util/applyMixins": path.join(dir, "util/applyMixins.js"), + "rxjs/util/UnsubscriptionError": path.join(dir, "util/UnsubscriptionError.js"), + "rxjs/util/TimeoutError": path.join(dir, "util/TimeoutError.js"), + "rxjs/util/Set": path.join(dir, "util/Set.js"), + "rxjs/util/ObjectUnsubscribedError": path.join(dir, "util/ObjectUnsubscribedError.js"), + "rxjs/util/MapPolyfill": path.join(dir, "util/MapPolyfill.js"), + "rxjs/util/Map": path.join(dir, "util/Map.js"), + "rxjs/util/Immediate": path.join(dir, "util/Immediate.js"), + "rxjs/util/FastMap": path.join(dir, "util/FastMap.js"), + "rxjs/util/EmptyError": path.join(dir, "util/EmptyError.js"), + "rxjs/util/ArgumentOutOfRangeError": path.join(dir, "util/ArgumentOutOfRangeError.js"), + "rxjs/util/AnimationFrame": path.join(dir, "util/AnimationFrame.js"), + "rxjs/testing/TestScheduler": path.join(dir, "testing/TestScheduler.js"), + "rxjs/testing/TestMessage": path.join(dir, "testing/TestMessage.js"), + "rxjs/testing/SubscriptionLoggable": path.join(dir, "testing/SubscriptionLoggable.js"), + "rxjs/testing/SubscriptionLog": path.join(dir, "testing/SubscriptionLog.js"), + "rxjs/testing/HotObservable": path.join(dir, "testing/HotObservable.js"), + "rxjs/testing/ColdObservable": path.join(dir, "testing/ColdObservable.js"), + "rxjs/symbol/rxSubscriber": path.join(dir, "symbol/rxSubscriber.js"), + "rxjs/symbol/observable": path.join(dir, "symbol/observable.js"), + "rxjs/symbol/iterator": path.join(dir, "symbol/iterator.js"), + "rxjs/scheduler/queue": path.join(dir, "scheduler/queue.js"), + "rxjs/scheduler/async": path.join(dir, "scheduler/async.js"), + "rxjs/scheduler/asap": path.join(dir, "scheduler/asap.js"), + "rxjs/scheduler/animationFrame": path.join(dir, "scheduler/animationFrame.js"), + "rxjs/scheduler/VirtualTimeScheduler": path.join(dir, "scheduler/VirtualTimeScheduler.js"), + "rxjs/scheduler/QueueScheduler": path.join(dir, "scheduler/QueueScheduler.js"), + "rxjs/scheduler/QueueAction": path.join(dir, "scheduler/QueueAction.js"), + "rxjs/scheduler/AsyncScheduler": path.join(dir, "scheduler/AsyncScheduler.js"), + "rxjs/scheduler/AsyncAction": path.join(dir, "scheduler/AsyncAction.js"), + "rxjs/scheduler/AsapScheduler": path.join(dir, "scheduler/AsapScheduler.js"), + "rxjs/scheduler/AsapAction": path.join(dir, "scheduler/AsapAction.js"), + "rxjs/scheduler/AnimationFrameScheduler": path.join(dir, "scheduler/AnimationFrameScheduler.js"), + "rxjs/scheduler/AnimationFrameAction": path.join(dir, "scheduler/AnimationFrameAction.js"), + "rxjs/scheduler/Action": path.join(dir, "scheduler/Action.js"), + "rxjs/operators/zipAll": path.join(dir, "operators/zipAll.js"), + "rxjs/operators/zip": path.join(dir, "operators/zip.js"), + "rxjs/operators/withLatestFrom": path.join(dir, "operators/withLatestFrom.js"), + "rxjs/operators/windowWhen": path.join(dir, "operators/windowWhen.js"), + "rxjs/operators/windowToggle": path.join(dir, "operators/windowToggle.js"), + "rxjs/operators/windowTime": path.join(dir, "operators/windowTime.js"), + "rxjs/operators/windowCount": path.join(dir, "operators/windowCount.js"), + "rxjs/operators/window": path.join(dir, "operators/window.js"), + "rxjs/operators/toArray": path.join(dir, "operators/toArray.js"), + "rxjs/operators/timestamp": path.join(dir, "operators/timestamp.js"), + "rxjs/operators/timeoutWith": path.join(dir, "operators/timeoutWith.js"), + "rxjs/operators/timeout": path.join(dir, "operators/timeout.js"), + "rxjs/operators/timeInterval": path.join(dir, "operators/timeInterval.js"), + "rxjs/operators/throttleTime": path.join(dir, "operators/throttleTime.js"), + "rxjs/operators/throttle": path.join(dir, "operators/throttle.js"), + "rxjs/operators/tap": path.join(dir, "operators/tap.js"), + "rxjs/operators/takeWhile": path.join(dir, "operators/takeWhile.js"), + "rxjs/operators/takeUntil": path.join(dir, "operators/takeUntil.js"), + "rxjs/operators/takeLast": path.join(dir, "operators/takeLast.js"), + "rxjs/operators/take": path.join(dir, "operators/take.js"), + "rxjs/operators/switchMapTo": path.join(dir, "operators/switchMapTo.js"), + "rxjs/operators/switchMap": path.join(dir, "operators/switchMap.js"), + "rxjs/operators/switchAll": path.join(dir, "operators/switchAll.js"), + "rxjs/operators/subscribeOn": path.join(dir, "operators/subscribeOn.js"), + "rxjs/operators/startWith": path.join(dir, "operators/startWith.js"), + "rxjs/operators/skipWhile": path.join(dir, "operators/skipWhile.js"), + "rxjs/operators/skipUntil": path.join(dir, "operators/skipUntil.js"), + "rxjs/operators/skipLast": path.join(dir, "operators/skipLast.js"), + "rxjs/operators/skip": path.join(dir, "operators/skip.js"), + "rxjs/operators/single": path.join(dir, "operators/single.js"), + "rxjs/operators/shareReplay": path.join(dir, "operators/shareReplay.js"), + "rxjs/operators/share": path.join(dir, "operators/share.js"), + "rxjs/operators/sequenceEqual": path.join(dir, "operators/sequenceEqual.js"), + "rxjs/operators/scan": path.join(dir, "operators/scan.js"), + "rxjs/operators/sampleTime": path.join(dir, "operators/sampleTime.js"), + "rxjs/operators/sample": path.join(dir, "operators/sample.js"), + "rxjs/operators/retryWhen": path.join(dir, "operators/retryWhen.js"), + "rxjs/operators/retry": path.join(dir, "operators/retry.js"), + "rxjs/operators/repeatWhen": path.join(dir, "operators/repeatWhen.js"), + "rxjs/operators/repeat": path.join(dir, "operators/repeat.js"), + "rxjs/operators/refCount": path.join(dir, "operators/refCount.js"), + "rxjs/operators/reduce": path.join(dir, "operators/reduce.js"), + "rxjs/operators/race": path.join(dir, "operators/race.js"), + "rxjs/operators/publishReplay": path.join(dir, "operators/publishReplay.js"), + "rxjs/operators/publishLast": path.join(dir, "operators/publishLast.js"), + "rxjs/operators/publishBehavior": path.join(dir, "operators/publishBehavior.js"), + "rxjs/operators/publish": path.join(dir, "operators/publish.js"), + "rxjs/operators/pluck": path.join(dir, "operators/pluck.js"), + "rxjs/operators/partition": path.join(dir, "operators/partition.js"), + "rxjs/operators/pairwise": path.join(dir, "operators/pairwise.js"), + "rxjs/operators/onErrorResumeNext": path.join(dir, "operators/onErrorResumeNext.js"), + "rxjs/operators/observeOn": path.join(dir, "operators/observeOn.js"), + "rxjs/operators/multicast": path.join(dir, "operators/multicast.js"), + "rxjs/operators/min": path.join(dir, "operators/min.js"), + "rxjs/operators/mergeScan": path.join(dir, "operators/mergeScan.js"), + "rxjs/operators/mergeMapTo": path.join(dir, "operators/mergeMapTo.js"), + "rxjs/operators/mergeMap": path.join(dir, "operators/mergeMap.js"), + "rxjs/operators/mergeAll": path.join(dir, "operators/mergeAll.js"), + "rxjs/operators/merge": path.join(dir, "operators/merge.js"), + "rxjs/operators/max": path.join(dir, "operators/max.js"), + "rxjs/operators/materialize": path.join(dir, "operators/materialize.js"), + "rxjs/operators/mapTo": path.join(dir, "operators/mapTo.js"), + "rxjs/operators/map": path.join(dir, "operators/map.js"), + "rxjs/operators/last": path.join(dir, "operators/last.js"), + "rxjs/operators/isEmpty": path.join(dir, "operators/isEmpty.js"), + "rxjs/operators/ignoreElements": path.join(dir, "operators/ignoreElements.js"), + "rxjs/operators/groupBy": path.join(dir, "operators/groupBy.js"), + "rxjs/operators/first": path.join(dir, "operators/first.js"), + "rxjs/operators/findIndex": path.join(dir, "operators/findIndex.js"), + "rxjs/operators/find": path.join(dir, "operators/find.js"), + "rxjs/operators/finalize": path.join(dir, "operators/finalize.js"), + "rxjs/operators/filter": path.join(dir, "operators/filter.js"), + "rxjs/operators/expand": path.join(dir, "operators/expand.js"), + "rxjs/operators/exhaustMap": path.join(dir, "operators/exhaustMap.js"), + "rxjs/operators/exhaust": path.join(dir, "operators/exhaust.js"), + "rxjs/operators/every": path.join(dir, "operators/every.js"), + "rxjs/operators/elementAt": path.join(dir, "operators/elementAt.js"), + "rxjs/operators/distinctUntilKeyChanged": path.join(dir, "operators/distinctUntilKeyChanged.js"), + "rxjs/operators/distinctUntilChanged": path.join(dir, "operators/distinctUntilChanged.js"), + "rxjs/operators/distinct": path.join(dir, "operators/distinct.js"), + "rxjs/operators/dematerialize": path.join(dir, "operators/dematerialize.js"), + "rxjs/operators/delayWhen": path.join(dir, "operators/delayWhen.js"), + "rxjs/operators/delay": path.join(dir, "operators/delay.js"), + "rxjs/operators/defaultIfEmpty": path.join(dir, "operators/defaultIfEmpty.js"), + "rxjs/operators/debounceTime": path.join(dir, "operators/debounceTime.js"), + "rxjs/operators/debounce": path.join(dir, "operators/debounce.js"), + "rxjs/operators/count": path.join(dir, "operators/count.js"), + "rxjs/operators/concatMapTo": path.join(dir, "operators/concatMapTo.js"), + "rxjs/operators/concatMap": path.join(dir, "operators/concatMap.js"), + "rxjs/operators/concatAll": path.join(dir, "operators/concatAll.js"), + "rxjs/operators/concat": path.join(dir, "operators/concat.js"), + "rxjs/operators/combineLatest": path.join(dir, "operators/combineLatest.js"), + "rxjs/operators/combineAll": path.join(dir, "operators/combineAll.js"), + "rxjs/operators/catchError": path.join(dir, "operators/catchError.js"), + "rxjs/operators/bufferWhen": path.join(dir, "operators/bufferWhen.js"), + "rxjs/operators/bufferToggle": path.join(dir, "operators/bufferToggle.js"), + "rxjs/operators/bufferTime": path.join(dir, "operators/bufferTime.js"), + "rxjs/operators/bufferCount": path.join(dir, "operators/bufferCount.js"), + "rxjs/operators/buffer": path.join(dir, "operators/buffer.js"), + "rxjs/operators/auditTime": path.join(dir, "operators/auditTime.js"), + "rxjs/operators/audit": path.join(dir, "operators/audit.js"), + "rxjs/operators": path.join(dir, "operators.js"), + "rxjs/operator/zipAll": path.join(dir, "operator/zipAll.js"), + "rxjs/operator/zip": path.join(dir, "operator/zip.js"), + "rxjs/operator/withLatestFrom": path.join(dir, "operator/withLatestFrom.js"), + "rxjs/operator/windowWhen": path.join(dir, "operator/windowWhen.js"), + "rxjs/operator/windowToggle": path.join(dir, "operator/windowToggle.js"), + "rxjs/operator/windowTime": path.join(dir, "operator/windowTime.js"), + "rxjs/operator/windowCount": path.join(dir, "operator/windowCount.js"), + "rxjs/operator/window": path.join(dir, "operator/window.js"), + "rxjs/operator/toPromise": path.join(dir, "operator/toPromise.js"), + "rxjs/operator/toArray": path.join(dir, "operator/toArray.js"), + "rxjs/operator/timestamp": path.join(dir, "operator/timestamp.js"), + "rxjs/operator/timeoutWith": path.join(dir, "operator/timeoutWith.js"), + "rxjs/operator/timeout": path.join(dir, "operator/timeout.js"), + "rxjs/operator/timeInterval": path.join(dir, "operator/timeInterval.js"), + "rxjs/operator/throttleTime": path.join(dir, "operator/throttleTime.js"), + "rxjs/operator/throttle": path.join(dir, "operator/throttle.js"), + "rxjs/operator/takeWhile": path.join(dir, "operator/takeWhile.js"), + "rxjs/operator/takeUntil": path.join(dir, "operator/takeUntil.js"), + "rxjs/operator/takeLast": path.join(dir, "operator/takeLast.js"), + "rxjs/operator/take": path.join(dir, "operator/take.js"), + "rxjs/operator/switchMapTo": path.join(dir, "operator/switchMapTo.js"), + "rxjs/operator/switchMap": path.join(dir, "operator/switchMap.js"), + "rxjs/operator/switch": path.join(dir, "operator/switch.js"), + "rxjs/operator/subscribeOn": path.join(dir, "operator/subscribeOn.js"), + "rxjs/operator/startWith": path.join(dir, "operator/startWith.js"), + "rxjs/operator/skipWhile": path.join(dir, "operator/skipWhile.js"), + "rxjs/operator/skipUntil": path.join(dir, "operator/skipUntil.js"), + "rxjs/operator/skipLast": path.join(dir, "operator/skipLast.js"), + "rxjs/operator/skip": path.join(dir, "operator/skip.js"), + "rxjs/operator/single": path.join(dir, "operator/single.js"), + "rxjs/operator/shareReplay": path.join(dir, "operator/shareReplay.js"), + "rxjs/operator/share": path.join(dir, "operator/share.js"), + "rxjs/operator/sequenceEqual": path.join(dir, "operator/sequenceEqual.js"), + "rxjs/operator/scan": path.join(dir, "operator/scan.js"), + "rxjs/operator/sampleTime": path.join(dir, "operator/sampleTime.js"), + "rxjs/operator/sample": path.join(dir, "operator/sample.js"), + "rxjs/operator/retryWhen": path.join(dir, "operator/retryWhen.js"), + "rxjs/operator/retry": path.join(dir, "operator/retry.js"), + "rxjs/operator/repeatWhen": path.join(dir, "operator/repeatWhen.js"), + "rxjs/operator/repeat": path.join(dir, "operator/repeat.js"), + "rxjs/operator/reduce": path.join(dir, "operator/reduce.js"), + "rxjs/operator/race": path.join(dir, "operator/race.js"), + "rxjs/operator/publishReplay": path.join(dir, "operator/publishReplay.js"), + "rxjs/operator/publishLast": path.join(dir, "operator/publishLast.js"), + "rxjs/operator/publishBehavior": path.join(dir, "operator/publishBehavior.js"), + "rxjs/operator/publish": path.join(dir, "operator/publish.js"), + "rxjs/operator/pluck": path.join(dir, "operator/pluck.js"), + "rxjs/operator/partition": path.join(dir, "operator/partition.js"), + "rxjs/operator/pairwise": path.join(dir, "operator/pairwise.js"), + "rxjs/operator/onErrorResumeNext": path.join(dir, "operator/onErrorResumeNext.js"), + "rxjs/operator/observeOn": path.join(dir, "operator/observeOn.js"), + "rxjs/operator/multicast": path.join(dir, "operator/multicast.js"), + "rxjs/operator/min": path.join(dir, "operator/min.js"), + "rxjs/operator/mergeScan": path.join(dir, "operator/mergeScan.js"), + "rxjs/operator/mergeMapTo": path.join(dir, "operator/mergeMapTo.js"), + "rxjs/operator/mergeMap": path.join(dir, "operator/mergeMap.js"), + "rxjs/operator/mergeAll": path.join(dir, "operator/mergeAll.js"), + "rxjs/operator/merge": path.join(dir, "operator/merge.js"), + "rxjs/operator/max": path.join(dir, "operator/max.js"), + "rxjs/operator/materialize": path.join(dir, "operator/materialize.js"), + "rxjs/operator/mapTo": path.join(dir, "operator/mapTo.js"), + "rxjs/operator/map": path.join(dir, "operator/map.js"), + "rxjs/operator/let": path.join(dir, "operator/let.js"), + "rxjs/operator/last": path.join(dir, "operator/last.js"), + "rxjs/operator/isEmpty": path.join(dir, "operator/isEmpty.js"), + "rxjs/operator/ignoreElements": path.join(dir, "operator/ignoreElements.js"), + "rxjs/operator/groupBy": path.join(dir, "operator/groupBy.js"), + "rxjs/operator/first": path.join(dir, "operator/first.js"), + "rxjs/operator/findIndex": path.join(dir, "operator/findIndex.js"), + "rxjs/operator/find": path.join(dir, "operator/find.js"), + "rxjs/operator/finally": path.join(dir, "operator/finally.js"), + "rxjs/operator/filter": path.join(dir, "operator/filter.js"), + "rxjs/operator/expand": path.join(dir, "operator/expand.js"), + "rxjs/operator/exhaustMap": path.join(dir, "operator/exhaustMap.js"), + "rxjs/operator/exhaust": path.join(dir, "operator/exhaust.js"), + "rxjs/operator/every": path.join(dir, "operator/every.js"), + "rxjs/operator/elementAt": path.join(dir, "operator/elementAt.js"), + "rxjs/operator/do": path.join(dir, "operator/do.js"), + "rxjs/operator/distinctUntilKeyChanged": path.join(dir, "operator/distinctUntilKeyChanged.js"), + "rxjs/operator/distinctUntilChanged": path.join(dir, "operator/distinctUntilChanged.js"), + "rxjs/operator/distinct": path.join(dir, "operator/distinct.js"), + "rxjs/operator/dematerialize": path.join(dir, "operator/dematerialize.js"), + "rxjs/operator/delayWhen": path.join(dir, "operator/delayWhen.js"), + "rxjs/operator/delay": path.join(dir, "operator/delay.js"), + "rxjs/operator/defaultIfEmpty": path.join(dir, "operator/defaultIfEmpty.js"), + "rxjs/operator/debounceTime": path.join(dir, "operator/debounceTime.js"), + "rxjs/operator/debounce": path.join(dir, "operator/debounce.js"), + "rxjs/operator/count": path.join(dir, "operator/count.js"), + "rxjs/operator/concatMapTo": path.join(dir, "operator/concatMapTo.js"), + "rxjs/operator/concatMap": path.join(dir, "operator/concatMap.js"), + "rxjs/operator/concatAll": path.join(dir, "operator/concatAll.js"), + "rxjs/operator/concat": path.join(dir, "operator/concat.js"), + "rxjs/operator/combineLatest": path.join(dir, "operator/combineLatest.js"), + "rxjs/operator/combineAll": path.join(dir, "operator/combineAll.js"), + "rxjs/operator/catch": path.join(dir, "operator/catch.js"), + "rxjs/operator/bufferWhen": path.join(dir, "operator/bufferWhen.js"), + "rxjs/operator/bufferToggle": path.join(dir, "operator/bufferToggle.js"), + "rxjs/operator/bufferTime": path.join(dir, "operator/bufferTime.js"), + "rxjs/operator/bufferCount": path.join(dir, "operator/bufferCount.js"), + "rxjs/operator/buffer": path.join(dir, "operator/buffer.js"), + "rxjs/operator/auditTime": path.join(dir, "operator/auditTime.js"), + "rxjs/operator/audit": path.join(dir, "operator/audit.js"), + "rxjs/observable/zip": path.join(dir, "observable/zip.js"), + "rxjs/observable/using": path.join(dir, "observable/using.js"), + "rxjs/observable/timer": path.join(dir, "observable/timer.js"), + "rxjs/observable/throw": path.join(dir, "observable/throw.js"), + "rxjs/observable/range": path.join(dir, "observable/range.js"), + "rxjs/observable/race": path.join(dir, "observable/race.js"), + "rxjs/observable/pairs": path.join(dir, "observable/pairs.js"), + "rxjs/observable/onErrorResumeNext": path.join(dir, "observable/onErrorResumeNext.js"), + "rxjs/observable/of": path.join(dir, "observable/of.js"), + "rxjs/observable/never": path.join(dir, "observable/never.js"), + "rxjs/observable/merge": path.join(dir, "observable/merge.js"), + "rxjs/observable/interval": path.join(dir, "observable/interval.js"), + "rxjs/observable/if": path.join(dir, "observable/if.js"), + "rxjs/observable/generate": path.join(dir, "observable/generate.js"), + "rxjs/observable/fromPromise": path.join(dir, "observable/fromPromise.js"), + "rxjs/observable/fromEventPattern": path.join(dir, "observable/fromEventPattern.js"), + "rxjs/observable/fromEvent": path.join(dir, "observable/fromEvent.js"), + "rxjs/observable/from": path.join(dir, "observable/from.js"), + "rxjs/observable/forkJoin": path.join(dir, "observable/forkJoin.js"), + "rxjs/observable/empty": path.join(dir, "observable/empty.js"), + "rxjs/observable/dom/webSocket": path.join(dir, "observable/dom/webSocket.js"), + "rxjs/observable/dom/ajax": path.join(dir, "observable/dom/ajax.js"), + "rxjs/observable/dom/WebSocketSubject": path.join(dir, "observable/dom/WebSocketSubject.js"), + "rxjs/observable/dom/AjaxObservable": path.join(dir, "observable/dom/AjaxObservable.js"), + "rxjs/observable/defer": path.join(dir, "observable/defer.js"), + "rxjs/observable/concat": path.join(dir, "observable/concat.js"), + "rxjs/observable/combineLatest": path.join(dir, "observable/combineLatest.js"), + "rxjs/observable/bindNodeCallback": path.join(dir, "observable/bindNodeCallback.js"), + "rxjs/observable/bindCallback": path.join(dir, "observable/bindCallback.js"), + "rxjs/observable/UsingObservable": path.join(dir, "observable/UsingObservable.js"), + "rxjs/observable/TimerObservable": path.join(dir, "observable/TimerObservable.js"), + "rxjs/observable/SubscribeOnObservable": path.join(dir, "observable/SubscribeOnObservable.js"), + "rxjs/observable/ScalarObservable": path.join(dir, "observable/ScalarObservable.js"), + "rxjs/observable/RangeObservable": path.join(dir, "observable/RangeObservable.js"), + "rxjs/observable/PromiseObservable": path.join(dir, "observable/PromiseObservable.js"), + "rxjs/observable/PairsObservable": path.join(dir, "observable/PairsObservable.js"), + "rxjs/observable/NeverObservable": path.join(dir, "observable/NeverObservable.js"), + "rxjs/observable/IteratorObservable": path.join(dir, "observable/IteratorObservable.js"), + "rxjs/observable/IntervalObservable": path.join(dir, "observable/IntervalObservable.js"), + "rxjs/observable/IfObservable": path.join(dir, "observable/IfObservable.js"), + "rxjs/observable/GenerateObservable": path.join(dir, "observable/GenerateObservable.js"), + "rxjs/observable/FromObservable": path.join(dir, "observable/FromObservable.js"), + "rxjs/observable/FromEventPatternObservable": path.join(dir, "observable/FromEventPatternObservable.js"), + "rxjs/observable/FromEventObservable": path.join(dir, "observable/FromEventObservable.js"), + "rxjs/observable/ForkJoinObservable": path.join(dir, "observable/ForkJoinObservable.js"), + "rxjs/observable/ErrorObservable": path.join(dir, "observable/ErrorObservable.js"), + "rxjs/observable/EmptyObservable": path.join(dir, "observable/EmptyObservable.js"), + "rxjs/observable/DeferObservable": path.join(dir, "observable/DeferObservable.js"), + "rxjs/observable/ConnectableObservable": path.join(dir, "observable/ConnectableObservable.js"), + "rxjs/observable/BoundNodeCallbackObservable": path.join(dir, "observable/BoundNodeCallbackObservable.js"), + "rxjs/observable/BoundCallbackObservable": path.join(dir, "observable/BoundCallbackObservable.js"), + "rxjs/observable/ArrayObservable": path.join(dir, "observable/ArrayObservable.js"), + "rxjs/observable/ArrayLikeObservable": path.join(dir, "observable/ArrayLikeObservable.js"), + "rxjs/interfaces": path.join(dir, "interfaces.js"), + "rxjs/add/operator/zipAll": path.join(dir, "add/operator/zipAll.js"), + "rxjs/add/operator/zip": path.join(dir, "add/operator/zip.js"), + "rxjs/add/operator/withLatestFrom": path.join(dir, "add/operator/withLatestFrom.js"), + "rxjs/add/operator/windowWhen": path.join(dir, "add/operator/windowWhen.js"), + "rxjs/add/operator/windowToggle": path.join(dir, "add/operator/windowToggle.js"), + "rxjs/add/operator/windowTime": path.join(dir, "add/operator/windowTime.js"), + "rxjs/add/operator/windowCount": path.join(dir, "add/operator/windowCount.js"), + "rxjs/add/operator/window": path.join(dir, "add/operator/window.js"), + "rxjs/add/operator/toPromise": path.join(dir, "add/operator/toPromise.js"), + "rxjs/add/operator/toArray": path.join(dir, "add/operator/toArray.js"), + "rxjs/add/operator/timestamp": path.join(dir, "add/operator/timestamp.js"), + "rxjs/add/operator/timeoutWith": path.join(dir, "add/operator/timeoutWith.js"), + "rxjs/add/operator/timeout": path.join(dir, "add/operator/timeout.js"), + "rxjs/add/operator/timeInterval": path.join(dir, "add/operator/timeInterval.js"), + "rxjs/add/operator/throttleTime": path.join(dir, "add/operator/throttleTime.js"), + "rxjs/add/operator/throttle": path.join(dir, "add/operator/throttle.js"), + "rxjs/add/operator/takeWhile": path.join(dir, "add/operator/takeWhile.js"), + "rxjs/add/operator/takeUntil": path.join(dir, "add/operator/takeUntil.js"), + "rxjs/add/operator/takeLast": path.join(dir, "add/operator/takeLast.js"), + "rxjs/add/operator/take": path.join(dir, "add/operator/take.js"), + "rxjs/add/operator/switchMapTo": path.join(dir, "add/operator/switchMapTo.js"), + "rxjs/add/operator/switchMap": path.join(dir, "add/operator/switchMap.js"), + "rxjs/add/operator/switch": path.join(dir, "add/operator/switch.js"), + "rxjs/add/operator/subscribeOn": path.join(dir, "add/operator/subscribeOn.js"), + "rxjs/add/operator/startWith": path.join(dir, "add/operator/startWith.js"), + "rxjs/add/operator/skipWhile": path.join(dir, "add/operator/skipWhile.js"), + "rxjs/add/operator/skipUntil": path.join(dir, "add/operator/skipUntil.js"), + "rxjs/add/operator/skipLast": path.join(dir, "add/operator/skipLast.js"), + "rxjs/add/operator/skip": path.join(dir, "add/operator/skip.js"), + "rxjs/add/operator/single": path.join(dir, "add/operator/single.js"), + "rxjs/add/operator/shareReplay": path.join(dir, "add/operator/shareReplay.js"), + "rxjs/add/operator/share": path.join(dir, "add/operator/share.js"), + "rxjs/add/operator/sequenceEqual": path.join(dir, "add/operator/sequenceEqual.js"), + "rxjs/add/operator/scan": path.join(dir, "add/operator/scan.js"), + "rxjs/add/operator/sampleTime": path.join(dir, "add/operator/sampleTime.js"), + "rxjs/add/operator/sample": path.join(dir, "add/operator/sample.js"), + "rxjs/add/operator/retryWhen": path.join(dir, "add/operator/retryWhen.js"), + "rxjs/add/operator/retry": path.join(dir, "add/operator/retry.js"), + "rxjs/add/operator/repeatWhen": path.join(dir, "add/operator/repeatWhen.js"), + "rxjs/add/operator/repeat": path.join(dir, "add/operator/repeat.js"), + "rxjs/add/operator/reduce": path.join(dir, "add/operator/reduce.js"), + "rxjs/add/operator/race": path.join(dir, "add/operator/race.js"), + "rxjs/add/operator/publishReplay": path.join(dir, "add/operator/publishReplay.js"), + "rxjs/add/operator/publishLast": path.join(dir, "add/operator/publishLast.js"), + "rxjs/add/operator/publishBehavior": path.join(dir, "add/operator/publishBehavior.js"), + "rxjs/add/operator/publish": path.join(dir, "add/operator/publish.js"), + "rxjs/add/operator/pluck": path.join(dir, "add/operator/pluck.js"), + "rxjs/add/operator/partition": path.join(dir, "add/operator/partition.js"), + "rxjs/add/operator/pairwise": path.join(dir, "add/operator/pairwise.js"), + "rxjs/add/operator/onErrorResumeNext": path.join(dir, "add/operator/onErrorResumeNext.js"), + "rxjs/add/operator/observeOn": path.join(dir, "add/operator/observeOn.js"), + "rxjs/add/operator/multicast": path.join(dir, "add/operator/multicast.js"), + "rxjs/add/operator/min": path.join(dir, "add/operator/min.js"), + "rxjs/add/operator/mergeScan": path.join(dir, "add/operator/mergeScan.js"), + "rxjs/add/operator/mergeMapTo": path.join(dir, "add/operator/mergeMapTo.js"), + "rxjs/add/operator/mergeMap": path.join(dir, "add/operator/mergeMap.js"), + "rxjs/add/operator/mergeAll": path.join(dir, "add/operator/mergeAll.js"), + "rxjs/add/operator/merge": path.join(dir, "add/operator/merge.js"), + "rxjs/add/operator/max": path.join(dir, "add/operator/max.js"), + "rxjs/add/operator/materialize": path.join(dir, "add/operator/materialize.js"), + "rxjs/add/operator/mapTo": path.join(dir, "add/operator/mapTo.js"), + "rxjs/add/operator/map": path.join(dir, "add/operator/map.js"), + "rxjs/add/operator/let": path.join(dir, "add/operator/let.js"), + "rxjs/add/operator/last": path.join(dir, "add/operator/last.js"), + "rxjs/add/operator/isEmpty": path.join(dir, "add/operator/isEmpty.js"), + "rxjs/add/operator/ignoreElements": path.join(dir, "add/operator/ignoreElements.js"), + "rxjs/add/operator/groupBy": path.join(dir, "add/operator/groupBy.js"), + "rxjs/add/operator/first": path.join(dir, "add/operator/first.js"), + "rxjs/add/operator/findIndex": path.join(dir, "add/operator/findIndex.js"), + "rxjs/add/operator/find": path.join(dir, "add/operator/find.js"), + "rxjs/add/operator/finally": path.join(dir, "add/operator/finally.js"), + "rxjs/add/operator/filter": path.join(dir, "add/operator/filter.js"), + "rxjs/add/operator/expand": path.join(dir, "add/operator/expand.js"), + "rxjs/add/operator/exhaustMap": path.join(dir, "add/operator/exhaustMap.js"), + "rxjs/add/operator/exhaust": path.join(dir, "add/operator/exhaust.js"), + "rxjs/add/operator/every": path.join(dir, "add/operator/every.js"), + "rxjs/add/operator/elementAt": path.join(dir, "add/operator/elementAt.js"), + "rxjs/add/operator/do": path.join(dir, "add/operator/do.js"), + "rxjs/add/operator/distinctUntilKeyChanged": path.join(dir, "add/operator/distinctUntilKeyChanged.js"), + "rxjs/add/operator/distinctUntilChanged": path.join(dir, "add/operator/distinctUntilChanged.js"), + "rxjs/add/operator/distinct": path.join(dir, "add/operator/distinct.js"), + "rxjs/add/operator/dematerialize": path.join(dir, "add/operator/dematerialize.js"), + "rxjs/add/operator/delayWhen": path.join(dir, "add/operator/delayWhen.js"), + "rxjs/add/operator/delay": path.join(dir, "add/operator/delay.js"), + "rxjs/add/operator/defaultIfEmpty": path.join(dir, "add/operator/defaultIfEmpty.js"), + "rxjs/add/operator/debounceTime": path.join(dir, "add/operator/debounceTime.js"), + "rxjs/add/operator/debounce": path.join(dir, "add/operator/debounce.js"), + "rxjs/add/operator/count": path.join(dir, "add/operator/count.js"), + "rxjs/add/operator/concatMapTo": path.join(dir, "add/operator/concatMapTo.js"), + "rxjs/add/operator/concatMap": path.join(dir, "add/operator/concatMap.js"), + "rxjs/add/operator/concatAll": path.join(dir, "add/operator/concatAll.js"), + "rxjs/add/operator/concat": path.join(dir, "add/operator/concat.js"), + "rxjs/add/operator/combineLatest": path.join(dir, "add/operator/combineLatest.js"), + "rxjs/add/operator/combineAll": path.join(dir, "add/operator/combineAll.js"), + "rxjs/add/operator/catch": path.join(dir, "add/operator/catch.js"), + "rxjs/add/operator/bufferWhen": path.join(dir, "add/operator/bufferWhen.js"), + "rxjs/add/operator/bufferToggle": path.join(dir, "add/operator/bufferToggle.js"), + "rxjs/add/operator/bufferTime": path.join(dir, "add/operator/bufferTime.js"), + "rxjs/add/operator/bufferCount": path.join(dir, "add/operator/bufferCount.js"), + "rxjs/add/operator/buffer": path.join(dir, "add/operator/buffer.js"), + "rxjs/add/operator/auditTime": path.join(dir, "add/operator/auditTime.js"), + "rxjs/add/operator/audit": path.join(dir, "add/operator/audit.js"), + "rxjs/add/observable/zip": path.join(dir, "add/observable/zip.js"), + "rxjs/add/observable/using": path.join(dir, "add/observable/using.js"), + "rxjs/add/observable/timer": path.join(dir, "add/observable/timer.js"), + "rxjs/add/observable/throw": path.join(dir, "add/observable/throw.js"), + "rxjs/add/observable/range": path.join(dir, "add/observable/range.js"), + "rxjs/add/observable/race": path.join(dir, "add/observable/race.js"), + "rxjs/add/observable/pairs": path.join(dir, "add/observable/pairs.js"), + "rxjs/add/observable/onErrorResumeNext": path.join(dir, "add/observable/onErrorResumeNext.js"), + "rxjs/add/observable/of": path.join(dir, "add/observable/of.js"), + "rxjs/add/observable/never": path.join(dir, "add/observable/never.js"), + "rxjs/add/observable/merge": path.join(dir, "add/observable/merge.js"), + "rxjs/add/observable/interval": path.join(dir, "add/observable/interval.js"), + "rxjs/add/observable/if": path.join(dir, "add/observable/if.js"), + "rxjs/add/observable/generate": path.join(dir, "add/observable/generate.js"), + "rxjs/add/observable/fromPromise": path.join(dir, "add/observable/fromPromise.js"), + "rxjs/add/observable/fromEventPattern": path.join(dir, "add/observable/fromEventPattern.js"), + "rxjs/add/observable/fromEvent": path.join(dir, "add/observable/fromEvent.js"), + "rxjs/add/observable/from": path.join(dir, "add/observable/from.js"), + "rxjs/add/observable/forkJoin": path.join(dir, "add/observable/forkJoin.js"), + "rxjs/add/observable/empty": path.join(dir, "add/observable/empty.js"), + "rxjs/add/observable/dom/webSocket": path.join(dir, "add/observable/dom/webSocket.js"), + "rxjs/add/observable/dom/ajax": path.join(dir, "add/observable/dom/ajax.js"), + "rxjs/add/observable/defer": path.join(dir, "add/observable/defer.js"), + "rxjs/add/observable/concat": path.join(dir, "add/observable/concat.js"), + "rxjs/add/observable/combineLatest": path.join(dir, "add/observable/combineLatest.js"), + "rxjs/add/observable/bindNodeCallback": path.join(dir, "add/observable/bindNodeCallback.js"), + "rxjs/add/observable/bindCallback": path.join(dir, "add/observable/bindCallback.js"), + "rxjs/Subscription": path.join(dir, "Subscription.js"), + "rxjs/Subscriber": path.join(dir, "Subscriber.js"), + "rxjs/SubjectSubscription": path.join(dir, "SubjectSubscription.js"), + "rxjs/Subject": path.join(dir, "Subject.js"), + "rxjs/Scheduler": path.join(dir, "Scheduler.js"), + "rxjs/Rx": path.join(dir, "Rx.js"), + "rxjs/ReplaySubject": path.join(dir, "ReplaySubject.js"), + "rxjs/OuterSubscriber": path.join(dir, "OuterSubscriber.js"), + "rxjs/Operator": path.join(dir, "Operator.js"), + "rxjs/Observer": path.join(dir, "Observer.js"), + "rxjs/Observable": path.join(dir, "Observable.js"), + "rxjs/Notification": path.join(dir, "Notification.js"), + "rxjs/InnerSubscriber": path.join(dir, "InnerSubscriber.js"), + "rxjs/BehaviorSubject": path.join(dir, "BehaviorSubject.js"), + "rxjs/AsyncSubject": path.join(dir, "AsyncSubject.js") +}; +} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/Action.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/Action.js new file mode 100644 index 00000000000000..9041748c661304 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/Action.js @@ -0,0 +1,34 @@ +import { Subscription } from '../Subscription'; +/** + * A unit of work to be executed in a {@link Scheduler}. An action is typically + * created from within a Scheduler 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, work) { + super(); + } + /** + * Schedules this action on its parent Scheduler 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, delay = 0) { + return this; + } +} +//# sourceMappingURL=Action.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/Action.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/Action.js.map new file mode 100644 index 00000000000000..a20818ab4b814f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/Action.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Action.js","sourceRoot":"","sources":["../../src/scheduler/Action.ts"],"names":[],"mappings":"OACO,EAAE,YAAY,EAAE,MAAM,iBAAiB;AAE9C;;;;;;;;;;;;;GAaG;AACH,4BAA+B,YAAY;IACzC,YAAY,SAAoB,EAAE,IAA0C;QAC1E,OAAO,CAAC;IACV,CAAC;IACD;;;;;;;;;OASG;IACI,QAAQ,CAAC,KAAS,EAAE,KAAK,GAAW,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameAction.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameAction.js new file mode 100644 index 00000000000000..87a3ea6a479e2d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameAction.js @@ -0,0 +1,44 @@ +import { AsyncAction } from './AsyncAction'; +import { AnimationFrame } from '../util/AnimationFrame'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class AnimationFrameAction extends AsyncAction { + constructor(scheduler, work) { + super(scheduler, work); + this.scheduler = scheduler; + this.work = work; + } + requestAsyncId(scheduler, id, delay = 0) { + // 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 = AnimationFrame.requestAnimationFrame(scheduler.flush.bind(scheduler, null))); + } + recycleAsyncId(scheduler, id, delay = 0) { + // 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) { + AnimationFrame.cancelAnimationFrame(id); + scheduler.scheduled = undefined; + } + // Return undefined so the action knows to request a new async id if it's rescheduled. + return undefined; + } +} +//# sourceMappingURL=AnimationFrameAction.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameAction.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameAction.js.map new file mode 100644 index 00000000000000..e188c88d87da12 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AnimationFrameAction.js","sourceRoot":"","sources":["../../src/scheduler/AnimationFrameAction.ts"],"names":[],"mappings":"OAAO,EAAE,WAAW,EAAE,MAAM,eAAe;OACpC,EAAE,cAAc,EAAE,MAAM,wBAAwB;AAGvD;;;;GAIG;AACH,0CAA6C,WAAW;IAEtD,YAAsB,SAAkC,EAClC,IAAwD;QAC5E,MAAM,SAAS,EAAE,IAAI,CAAC,CAAC;QAFH,cAAS,GAAT,SAAS,CAAyB;QAClC,SAAI,GAAJ,IAAI,CAAoD;IAE9E,CAAC;IAES,cAAc,CAAC,SAAkC,EAAE,EAAQ,EAAE,KAAK,GAAW,CAAC;QACtF,0DAA0D;QAC1D,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,qDAAqD;QACrD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,0EAA0E;QAC1E,4EAA4E;QAC5E,0CAA0C;QAC1C,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,cAAc,CAAC,qBAAqB,CACvF,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CACtC,CAAC,CAAC;IACL,CAAC;IACS,cAAc,CAAC,SAAkC,EAAE,EAAQ,EAAE,KAAK,GAAW,CAAC;QACtF,sEAAsE;QACtE,sEAAsE;QACtE,2CAA2C;QAC3C,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,4EAA4E;QAC5E,4EAA4E;QAC5E,mBAAmB;QACnB,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,cAAc,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACxC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,CAAC;QACD,sFAAsF;QACtF,MAAM,CAAC,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameScheduler.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameScheduler.js new file mode 100644 index 00000000000000..cb658cb4c37347 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameScheduler.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameScheduler.js.map new file mode 100644 index 00000000000000..f5b9dd033b5f9e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AnimationFrameScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AnimationFrameScheduler.js","sourceRoot":"","sources":["../../src/scheduler/AnimationFrameScheduler.ts"],"names":[],"mappings":"OACO,EAAE,cAAc,EAAE,MAAM,kBAAkB;AAEjD,6CAA6C,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,CAAC;YACF,EAAE,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,CAAC;QACH,CAAC,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACV,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;gBACrD,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapAction.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapAction.js new file mode 100644 index 00000000000000..fad75da77e9abb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapAction.js @@ -0,0 +1,44 @@ +import { Immediate } from '../util/Immediate'; +import { AsyncAction } from './AsyncAction'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class AsapAction extends AsyncAction { + constructor(scheduler, work) { + super(scheduler, work); + this.scheduler = scheduler; + this.work = work; + } + requestAsyncId(scheduler, id, delay = 0) { + // 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))); + } + recycleAsyncId(scheduler, id, delay = 0) { + // 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; + } +} +//# sourceMappingURL=AsapAction.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapAction.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapAction.js.map new file mode 100644 index 00000000000000..13de9b010e90d2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsapAction.js","sourceRoot":"","sources":["../../src/scheduler/AsapAction.ts"],"names":[],"mappings":"OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB;OACtC,EAAE,WAAW,EAAE,MAAM,eAAe;AAG3C;;;;GAIG;AACH,gCAAmC,WAAW;IAE5C,YAAsB,SAAwB,EACxB,IAA8C;QAClE,MAAM,SAAS,EAAE,IAAI,CAAC,CAAC;QAFH,cAAS,GAAT,SAAS,CAAe;QACxB,SAAI,GAAJ,IAAI,CAA0C;IAEpE,CAAC;IAES,cAAc,CAAC,SAAwB,EAAE,EAAQ,EAAE,KAAK,GAAW,CAAC;QAC5E,0DAA0D;QAC1D,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,qDAAqD;QACrD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,oEAAoE;QACpE,0EAA0E;QAC1E,sCAAsC;QACtC,MAAM,CAAC,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,KAAK,GAAW,CAAC;QAC5E,sEAAsE;QACtE,sEAAsE;QACtE,2CAA2C;QAC3C,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,sEAAsE;QACtE,2EAA2E;QAC3E,WAAW;QACX,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC7B,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,CAAC;QACD,sFAAsF;QACtF,MAAM,CAAC,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapScheduler.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapScheduler.js new file mode 100644 index 00000000000000..d4f637de989efb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapScheduler.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapScheduler.js.map new file mode 100644 index 00000000000000..c94e4ce59deaf4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsapScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsapScheduler.js","sourceRoot":"","sources":["../../src/scheduler/AsapScheduler.ts"],"names":[],"mappings":"OACO,EAAE,cAAc,EAAE,MAAM,kBAAkB;AAEjD,mCAAmC,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,CAAC;YACF,EAAE,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,CAAC;QACH,CAAC,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACV,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;gBACrD,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncAction.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncAction.js new file mode 100644 index 00000000000000..3945f4d162b026 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncAction.js @@ -0,0 +1,130 @@ +import { root } from '../util/root'; +import { Action } from './Action'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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; + } + // Always replace the current state with the new state. + this.state = state; + // Set the pending flag indicating that this action has been scheduled, or + // has recursively rescheduled itself. + this.pending = true; + 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); + } + 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; + } + requestAsyncId(scheduler, id, delay = 0) { + return root.setInterval(scheduler.flush.bind(scheduler, this), delay); + } + recycleAsyncId(scheduler, id, delay = 0) { + // 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 + return root.clearInterval(id) && undefined || undefined; + } + /** + * Immediately executes this action and the `work` it contains. + * @return {any} + */ + 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) { + // 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); + } + } + _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; + } + } + /** @deprecated internal use only */ _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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncAction.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncAction.js.map new file mode 100644 index 00000000000000..38d8ec1e96c0bd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncAction.js","sourceRoot":"","sources":["../../src/scheduler/AsyncAction.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncScheduler.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncScheduler.js new file mode 100644 index 00000000000000..059afe1e1ab460 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncScheduler.js @@ -0,0 +1,42 @@ +import { Scheduler } from '../Scheduler'; +export class AsyncScheduler extends Scheduler { + constructor() { + super(...arguments); + this.actions = []; + /** + * A flag to indicate whether the Scheduler is currently executing a batch of + * queued actions. + * @type {boolean} + */ + this.active = false; + /** + * An internal ID used to track the latest asynchronous task such as those + * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and + * others. + * @type {any} + */ + this.scheduled = undefined; + } + 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()); // exhaust the scheduler queue + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncScheduler.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncScheduler.js.map new file mode 100644 index 00000000000000..0ee89044d17a03 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/AsyncScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncScheduler.js","sourceRoot":"","sources":["../../src/scheduler/AsyncScheduler.ts"],"names":[],"mappings":"OAAO,EAAE,SAAS,EAAE,MAAM,cAAc;AAGxC,oCAAoC,SAAS;IAA7C;QAAoC,oBAAS;QACpC,YAAO,GAA4B,EAAE,CAAC;QAC7C;;;;WAIG;QACI,WAAM,GAAY,KAAK,CAAC;QAC/B;;;;;WAKG;QACI,cAAS,GAAQ,SAAS,CAAC;IA6BpC,CAAC;IA3BQ,KAAK,CAAC,MAAwB;QAEnC,MAAM,EAAC,OAAO,EAAC,GAAG,IAAI,CAAC;QAEvB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,KAAU,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,GAAG,CAAC;YACF,EAAE,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvD,KAAK,CAAC;YACR,CAAC;QACH,CAAC,QAAQ,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B;QAElE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACV,OAAO,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBAChC,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueAction.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueAction.js new file mode 100644 index 00000000000000..d36421638aa532 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueAction.js @@ -0,0 +1,38 @@ +import { AsyncAction } from './AsyncAction'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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 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); + } +} +//# sourceMappingURL=QueueAction.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueAction.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueAction.js.map new file mode 100644 index 00000000000000..04050e5da35f55 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"QueueAction.js","sourceRoot":"","sources":["../../src/scheduler/QueueAction.ts"],"names":[],"mappings":"OAAO,EAAE,WAAW,EAAE,MAAM,eAAe;AAI3C;;;;GAIG;AACH,iCAAoC,WAAW;IAE7C,YAAsB,SAAyB,EACzB,IAA+C;QACnE,MAAM,SAAS,EAAE,IAAI,CAAC,CAAC;QAFH,cAAS,GAAT,SAAS,CAAgB;QACzB,SAAI,GAAJ,IAAI,CAA2C;IAErE,CAAC;IAEM,QAAQ,CAAC,KAAS,EAAE,KAAK,GAAW,CAAC;QAC1C,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;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,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAEM,OAAO,CAAC,KAAQ,EAAE,KAAa;QACpC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;YAC/B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAE;IACjC,CAAC;IAES,cAAc,CAAC,SAAyB,EAAE,EAAQ,EAAE,KAAK,GAAW,CAAC;QAC7E,sEAAsE;QACtE,sEAAsE;QACtE,2CAA2C;QAC3C,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,2DAA2D;QAC3D,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueScheduler.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueScheduler.js new file mode 100644 index 00000000000000..cc1fb4d50f6e2d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueScheduler.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueScheduler.js.map new file mode 100644 index 00000000000000..cf4147fcbc263b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/QueueScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"QueueScheduler.js","sourceRoot":"","sources":["../../src/scheduler/QueueScheduler.ts"],"names":[],"mappings":"OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB;AAEjD,oCAAoC,cAAc;AAClD,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/VirtualTimeScheduler.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/VirtualTimeScheduler.js new file mode 100644 index 00000000000000..0e6af1ded83434 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/VirtualTimeScheduler.js @@ -0,0 +1,94 @@ +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; + } + /** + * Prompt the Scheduler to execute all of its queued actions, therefore + * clearing its queue. + * @return {void} + */ + flush() { + const { actions, maxFrames } = this; + let error, action; + while ((action = actions.shift()) && (this.frame = action.delay) <= maxFrames) { + if (error = action.execute(action.state, action.delay)) { + break; + } + } + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + } +} +VirtualTimeScheduler.frameTimeFactor = 10; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +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; + // 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); + } + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/VirtualTimeScheduler.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/VirtualTimeScheduler.js.map new file mode 100644 index 00000000000000..174a91ee290f86 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/VirtualTimeScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"VirtualTimeScheduler.js","sourceRoot":"","sources":["../../src/scheduler/VirtualTimeScheduler.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/animationFrame.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/animationFrame.js new file mode 100644 index 00000000000000..a438fb54455458 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/animationFrame.js @@ -0,0 +1,34 @@ +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 async} 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 + * const div = document.querySelector('.some-div'); + * + * Rx.Scheduler.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 .some-div element growing in height + * + * + * @static true + * @name animationFrame + * @owner Scheduler + */ +export const animationFrame = new AnimationFrameScheduler(AnimationFrameAction); +//# sourceMappingURL=animationFrame.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/animationFrame.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/animationFrame.js.map new file mode 100644 index 00000000000000..1860229ef1de41 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/animationFrame.js.map @@ -0,0 +1 @@ +{"version":3,"file":"animationFrame.js","sourceRoot":"","sources":["../../src/scheduler/animationFrame.ts"],"names":[],"mappings":"OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB;OACtD,EAAE,uBAAuB,EAAE,MAAM,2BAA2B;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,MAAM,cAAc,GAAG,IAAI,uBAAuB,CAAC,oBAAoB,CAAC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/asap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/asap.js new file mode 100644 index 00000000000000..0352430838f7c5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/asap.js @@ -0,0 +1,38 @@ +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 async} 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 + * + * Rx.Scheduler.async.schedule(() => console.log('async')); // scheduling 'async' first... + * Rx.Scheduler.asap.schedule(() => console.log('asap')); + * + * // Logs: + * // "asap" + * // "async" + * // ... but 'asap' goes first! + * + * @static true + * @name asap + * @owner Scheduler + */ +export const asap = new AsapScheduler(AsapAction); +//# sourceMappingURL=asap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/asap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/asap.js.map new file mode 100644 index 00000000000000..0dcdbd90da6405 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/asap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"asap.js","sourceRoot":"","sources":["../../src/scheduler/asap.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,cAAc;OAClC,EAAE,aAAa,EAAE,MAAM,iBAAiB;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/async.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/async.js new file mode 100644 index 00000000000000..ead77af2cbdd4b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/async.js @@ -0,0 +1,46 @@ +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 asap} scheduler. + * + * @example Use async scheduler to delay task + * const task = () => console.log('it works!'); + * + * Rx.Scheduler.async.schedule(task, 2000); + * + * // After 2 seconds logs: + * // "it works!" + * + * + * @example Use async scheduler to repeat task in intervals + * function task(state) { + * console.log(state); + * this.schedule(state + 1, 1000); // `this` references currently executing Action, + * // which we reschedule with new state and delay + * } + * + * Rx.Scheduler.async.schedule(task, 3000, 0); + * + * // Logs: + * // 0 after 3s + * // 1 after 4s + * // 2 after 5s + * // 3 after 6s + * + * @static true + * @name async + * @owner Scheduler + */ +export const async = new AsyncScheduler(AsyncAction); +//# sourceMappingURL=async.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/async.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/async.js.map new file mode 100644 index 00000000000000..17d999f3e0fd73 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/async.js.map @@ -0,0 +1 @@ +{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/scheduler/async.ts"],"names":[],"mappings":"OAAO,EAAE,WAAW,EAAE,MAAM,eAAe;OACpC,EAAE,cAAc,EAAE,MAAM,kBAAkB;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/queue.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/queue.js new file mode 100644 index 00000000000000..379be46a6aebdd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/queue.js @@ -0,0 +1,65 @@ +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 async} 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 + * + * Rx.Scheduler.queue.schedule(() => { + * Rx.Scheduler.queue.schedule(() => console.log('second')); // will not happen now, but will be put on a queue + * + * console.log('first'); + * }); + * + * // Logs: + * // "first" + * // "second" + * + * + * @example Reschedule itself recursively + * + * Rx.Scheduler.queue.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 + * + * + * @static true + * @name queue + * @owner Scheduler + */ +export const queue = new QueueScheduler(QueueAction); +//# sourceMappingURL=queue.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/queue.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/queue.js.map new file mode 100644 index 00000000000000..62ac9511f986a3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/scheduler/queue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/scheduler/queue.ts"],"names":[],"mappings":"OAAO,EAAE,WAAW,EAAE,MAAM,eAAe;OACpC,EAAE,cAAc,EAAE,MAAM,kBAAkB;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,OAAO,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/iterator.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/iterator.js new file mode 100644 index 00000000000000..01a5b6784a4fae --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/iterator.js @@ -0,0 +1,36 @@ +import { root } from '../util/root'; +export function symbolIteratorPonyfill(root) { + const Symbol = root.Symbol; + if (typeof Symbol === 'function') { + if (!Symbol.iterator) { + Symbol.iterator = Symbol('iterator polyfill'); + } + return Symbol.iterator; + } + else { + // [for Mozilla Gecko 27-35:](https://mzl.la/2ewE1zC) + const { Set } = root; + if (Set && typeof new Set()['@@iterator'] === 'function') { + return '@@iterator'; + } + const { Map } = root; + // required for compatability with es6-shim + if (Map) { + let keys = Object.getOwnPropertyNames(Map.prototype); + for (let i = 0; i < keys.length; ++i) { + let key = keys[i]; + // according to spec, Map.prototype[@@iterator] and Map.orototype.entries must be equal. + if (key !== 'entries' && key !== 'size' && Map.prototype[key] === Map.prototype['entries']) { + return key; + } + } + } + return '@@iterator'; + } +} +export const iterator = symbolIteratorPonyfill(root); +/** + * @deprecated use iterator instead + */ +export const $$iterator = iterator; +//# sourceMappingURL=iterator.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/iterator.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/iterator.js.map new file mode 100644 index 00000000000000..f03cb83f78d96a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/iterator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"iterator.js","sourceRoot":"","sources":["../../src/symbol/iterator.ts"],"names":[],"mappings":"OAAO,EAAE,IAAI,EAAE,MAAM,cAAc;AAEnC,uCAAuC,IAAS;IAC9C,MAAM,MAAM,GAAQ,IAAI,CAAC,MAAM,CAAC;IAEhC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC;QACjC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,qDAAqD;QACrD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,2CAA2C;QAC3C,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACR,IAAI,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBACrC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,wFAAwF;gBACxF,EAAE,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC3F,MAAM,CAAC,GAAG,CAAC;gBACb,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED,OAAO,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAErD;;GAEG;AACH,OAAO,MAAM,UAAU,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/observable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/observable.js new file mode 100644 index 00000000000000..9ae6dd9597c761 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/observable.js @@ -0,0 +1,24 @@ +import { root } from '../util/root'; +export function getSymbolObservable(context) { + let $$observable; + let Symbol = context.Symbol; + if (typeof Symbol === 'function') { + if (Symbol.observable) { + $$observable = Symbol.observable; + } + else { + $$observable = Symbol('observable'); + Symbol.observable = $$observable; + } + } + else { + $$observable = '@@observable'; + } + return $$observable; +} +export const observable = getSymbolObservable(root); +/** + * @deprecated use observable instead + */ +export const $$observable = observable; +//# sourceMappingURL=observable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/observable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/observable.js.map new file mode 100644 index 00000000000000..f94361beb91b35 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/observable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observable.js","sourceRoot":"","sources":["../../src/symbol/observable.ts"],"names":[],"mappings":"OAAO,EAAE,IAAI,EAAE,MAAM,cAAc;AAEnC,oCAAoC,OAAY;IAC9C,IAAI,YAAiB,CAAC;IACtB,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE5B,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC;QACjC,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACtB,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC;QACnC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;YACpC,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC;QACrC,CAAC;IACH,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,YAAY,GAAG,cAAc,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,YAAY,CAAC;AACtB,CAAC;AAED,OAAO,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAEpD;;GAEG;AACH,OAAO,MAAM,YAAY,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/rxSubscriber.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/rxSubscriber.js new file mode 100644 index 00000000000000..c1cf01405b7b56 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/rxSubscriber.js @@ -0,0 +1,9 @@ +import { root } from '../util/root'; +const Symbol = root.Symbol; +export const rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') ? + Symbol.for('rxSubscriber') : '@@rxSubscriber'; +/** + * @deprecated use rxSubscriber instead + */ +export const $$rxSubscriber = rxSubscriber; +//# sourceMappingURL=rxSubscriber.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/rxSubscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/rxSubscriber.js.map new file mode 100644 index 00000000000000..99a1185cbd9352 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/symbol/rxSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"rxSubscriber.js","sourceRoot":"","sources":["../../src/symbol/rxSubscriber.ts"],"names":[],"mappings":"OAAO,EAAE,IAAI,EAAE,MAAM,cAAc;AAEnC,MAAM,MAAM,GAAQ,IAAI,CAAC,MAAM,CAAC;AAEhC,OAAO,MAAM,YAAY,GAAG,CAAC,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU,CAAC;IAC5F,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAAC;AAEhD;;GAEG;AACH,OAAO,MAAM,cAAc,GAAG,YAAY,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/ColdObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/ColdObservable.js new file mode 100644 index 00000000000000..7976f930c27bed --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/ColdObservable.js @@ -0,0 +1,34 @@ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { SubscriptionLoggable } from './SubscriptionLoggable'; +import { applyMixins } from '../util/applyMixins'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class ColdObservable extends Observable { + constructor(messages, scheduler) { + super(function (subscriber) { + const observable = this; + const index = observable.logSubscribedFrame(); + subscriber.add(new Subscription(() => { + observable.logUnsubscribedFrame(index); + })); + observable.scheduleMessages(subscriber); + return subscriber; + }); + 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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/ColdObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/ColdObservable.js.map new file mode 100644 index 00000000000000..bd0f2269e0127e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/ColdObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ColdObservable.js","sourceRoot":"","sources":["../../src/testing/ColdObservable.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE,MAAM,eAAe;OACnC,EAAE,YAAY,EAAE,MAAM,iBAAiB;OAIvC,EAAE,oBAAoB,EAAE,MAAM,wBAAwB;OACtD,EAAE,WAAW,EAAE,MAAM,qBAAqB;AAGjD;;;;GAIG;AACH,oCAAuC,UAAU;IAM/C,YAAmB,QAAuB,EAC9B,SAAoB;QAC9B,MAAM,UAAmC,UAA2B;YAClE,MAAM,UAAU,GAAsB,IAAI,CAAC;YAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC9C,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;gBAC9B,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC,CAAC;YACJ,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;QAVc,aAAQ,GAAR,QAAQ,CAAe;QALnC,kBAAa,GAAsB,EAAE,CAAC;QAgB3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,UAA2B;QAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,UAAU,CAAC,GAAG,CACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAC,OAAO,EAAE,UAAU,EAAC,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAC9F,OAAO,CAAC,KAAK,EACb,EAAC,OAAO,EAAE,UAAU,EAAC,CAAC,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AACD,WAAW,CAAC,cAAc,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/HotObservable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/HotObservable.js new file mode 100644 index 00000000000000..85e9cef3d2a9c8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/HotObservable.js @@ -0,0 +1,39 @@ +import { Subject } from '../Subject'; +import { Subscription } from '../Subscription'; +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 { + constructor(messages, scheduler) { + super(); + this.messages = messages; + this.subscriptions = []; + this.scheduler = scheduler; + } + /** @deprecated internal use only */ _subscribe(subscriber) { + const subject = this; + const index = subject.logSubscribedFrame(); + subscriber.add(new Subscription(() => { + subject.logUnsubscribedFrame(index); + })); + return super._subscribe(subscriber); + } + 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]); +//# sourceMappingURL=HotObservable.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/HotObservable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/HotObservable.js.map new file mode 100644 index 00000000000000..a1afdd85ea542a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/HotObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"HotObservable.js","sourceRoot":"","sources":["../../src/testing/HotObservable.ts"],"names":[],"mappings":"OAAO,EAAE,OAAO,EAAE,MAAM,YAAY;OAE7B,EAAE,YAAY,EAAE,MAAM,iBAAiB;OAIvC,EAAE,oBAAoB,EAAE,MAAM,wBAAwB;OACtD,EAAE,WAAW,EAAE,MAAM,qBAAqB;AAEjD;;;;GAIG;AACH,mCAAsC,OAAO;IAM3C,YAAmB,QAAuB,EAC9B,SAAoB;QAC9B,OAAO,CAAC;QAFS,aAAQ,GAAR,QAAQ,CAAe;QALnC,kBAAa,GAAsB,EAAE,CAAC;QAQ3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,oCAAoC,CAAC,UAAU,CAAC,UAA2B;QACzE,MAAM,OAAO,GAAqB,IAAI,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC3C,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;YAC9B,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,KAAK;QACH,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC/C,mCAAmC;QACnC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,CAAC;gBACC,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACvC,mBAAmB;gBACd,OAAO,CAAC,SAAS,CAAC,QAAQ,CACxB,QAAQ,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAChD,OAAO,CAAC,KAAK,CACd,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;IACH,CAAC;AACH,CAAC;AACD,WAAW,CAAC,aAAa,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLog.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLog.js new file mode 100644 index 00000000000000..c421751b2f1ea2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLog.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLog.js.map new file mode 100644 index 00000000000000..289ca5b305fb85 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLog.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscriptionLog.js","sourceRoot":"","sources":["../../src/testing/SubscriptionLog.ts"],"names":[],"mappings":"AAAA;IACE,YAAmB,eAAuB,EACvB,iBAAiB,GAAW,MAAM,CAAC,iBAAiB;QADpD,oBAAe,GAAf,eAAe,CAAQ;QACvB,sBAAiB,GAAjB,iBAAiB,CAAmC;IACvE,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLoggable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLoggable.js new file mode 100644 index 00000000000000..08a00d72fa646e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/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/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLoggable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLoggable.js.map new file mode 100644 index 00000000000000..8f77dbf7510920 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/SubscriptionLoggable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscriptionLoggable.js","sourceRoot":"","sources":["../../src/testing/SubscriptionLoggable.ts"],"names":[],"mappings":"OACO,EAAE,eAAe,EAAE,MAAM,mBAAmB;AAEnD;IAAA;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,MAAM,CAAC,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;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestMessage.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestMessage.js new file mode 100644 index 00000000000000..908175c73a0c21 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestMessage.js @@ -0,0 +1 @@ +//# sourceMappingURL=TestMessage.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestMessage.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestMessage.js.map new file mode 100644 index 00000000000000..33ebfba42994af --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestMessage.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TestMessage.js","sourceRoot":"","sources":["../../src/testing/TestMessage.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestScheduler.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestScheduler.js new file mode 100644 index 00000000000000..5f0fa8ac6e4c8a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestScheduler.js @@ -0,0 +1,208 @@ +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'; +const defaultMaxFrame = 750; +export class TestScheduler extends VirtualTimeScheduler { + constructor(assertDeepEqual) { + super(VirtualAction, defaultMaxFrame); + this.assertDeepEqual = assertDeepEqual; + this.hotObservables = []; + this.coldObservables = []; + this.flushTests = []; + } + 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); + 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); + 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, unsubscriptionMarbles = null) { + const actual = []; + const flushTest = { actual, ready: false }; + const unsubscriptionFrame = TestScheduler + .parseMarblesAsSubscriptions(unsubscriptionMarbles).unsubscribedFrame; + let 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() }); + }); + }, 0); + if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) { + this.schedule(() => subscription.unsubscribe(), unsubscriptionFrame); + } + this.flushTests.push(flushTest); + return { + toBe(marbles, values, errorValue) { + flushTest.ready = true; + flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true); + } + }; + } + expectSubscriptions(actualSubscriptionLogs) { + const flushTest = { actual: actualSubscriptionLogs, ready: false }; + this.flushTests.push(flushTest); + return { + toBe(marbles) { + const marblesArray = (typeof marbles === 'string') ? [marbles] : marbles; + flushTest.ready = true; + flushTest.expected = marblesArray.map(marbles => TestScheduler.parseMarblesAsSubscriptions(marbles)); + } + }; + } + flush() { + const hotObservables = this.hotObservables; + while (hotObservables.length > 0) { + hotObservables.shift().setup(); + } + super.flush(); + const readyFlushTests = this.flushTests.filter(test => test.ready); + while (readyFlushTests.length > 0) { + const test = readyFlushTests.shift(); + this.assertDeepEqual(test.actual, test.expected); + } + } + static parseMarblesAsSubscriptions(marbles) { + 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; + for (let i = 0; i < len; i++) { + const frame = i * this.frameTimeFactor; + const c = marbles[i]; + switch (c) { + case '-': + case ' ': + break; + case '(': + groupStart = frame; + break; + case ')': + groupStart = -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; + 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: + throw new Error('there can only be \'^\' and \'!\' markers in a ' + + 'subscription marble diagram. Found instead \'' + c + '\'.'); + } + } + if (unsubscriptionFrame < 0) { + return new SubscriptionLog(subscriptionFrame); + } + else { + return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame); + } + } + static parseMarbles(marbles, values, errorValue, materializeInnerObservables = false) { + if (marbles.indexOf('!') !== -1) { + throw new Error('conventional marble diagrams cannot have the ' + + 'unsubscription marker "!"'); + } + const len = marbles.length; + const testMessages = []; + const subIndex = marbles.indexOf('^'); + const frameOffset = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor); + const getValue = typeof values !== 'object' ? + (x) => x : + (x) => { + // 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++) { + const frame = i * this.frameTimeFactor + frameOffset; + let notification; + const c = marbles[i]; + switch (c) { + case '-': + case ' ': + break; + case '(': + groupStart = frame; + break; + case ')': + groupStart = -1; + break; + case '|': + notification = Notification.createComplete(); + break; + case '^': + break; + case '#': + notification = Notification.createError(errorValue || 'error'); + break; + default: + notification = Notification.createNext(getValue(c)); + break; + } + if (notification) { + testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification }); + } + } + return testMessages; + } +} +//# sourceMappingURL=TestScheduler.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestScheduler.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestScheduler.js.map new file mode 100644 index 00000000000000..8deed433893c20 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/testing/TestScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TestScheduler.js","sourceRoot":"","sources":["../../src/testing/TestScheduler.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/AnimationFrame.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/AnimationFrame.js new file mode 100644 index 00000000000000..5bdac9f3a23841 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/AnimationFrame.js @@ -0,0 +1,31 @@ +import { root } from './root'; +export class RequestAnimationFrameDefinition { + constructor(root) { + if (root.requestAnimationFrame) { + this.cancelAnimationFrame = root.cancelAnimationFrame.bind(root); + this.requestAnimationFrame = root.requestAnimationFrame.bind(root); + } + else if (root.mozRequestAnimationFrame) { + this.cancelAnimationFrame = root.mozCancelAnimationFrame.bind(root); + this.requestAnimationFrame = root.mozRequestAnimationFrame.bind(root); + } + else if (root.webkitRequestAnimationFrame) { + this.cancelAnimationFrame = root.webkitCancelAnimationFrame.bind(root); + this.requestAnimationFrame = root.webkitRequestAnimationFrame.bind(root); + } + else if (root.msRequestAnimationFrame) { + this.cancelAnimationFrame = root.msCancelAnimationFrame.bind(root); + this.requestAnimationFrame = root.msRequestAnimationFrame.bind(root); + } + else if (root.oRequestAnimationFrame) { + this.cancelAnimationFrame = root.oCancelAnimationFrame.bind(root); + this.requestAnimationFrame = root.oRequestAnimationFrame.bind(root); + } + else { + this.cancelAnimationFrame = root.clearTimeout.bind(root); + this.requestAnimationFrame = function (cb) { return root.setTimeout(cb, 1000 / 60); }; + } + } +} +export const AnimationFrame = new RequestAnimationFrameDefinition(root); +//# sourceMappingURL=AnimationFrame.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/AnimationFrame.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/AnimationFrame.js.map new file mode 100644 index 00000000000000..359bbf4ad01f1b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/AnimationFrame.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AnimationFrame.js","sourceRoot":"","sources":["../../src/util/AnimationFrame.ts"],"names":[],"mappings":"OAAO,EAAG,IAAI,EAAG,MAAM,QAAQ;AAE/B;IAGE,YAAY,IAAS;QACnB,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,qBAAqB,GAAG,UAAS,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;AACH,CAAC;AAED,OAAO,MAAM,cAAc,GAAG,IAAI,+BAA+B,CAAC,IAAI,CAAC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/ArgumentOutOfRangeError.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/ArgumentOutOfRangeError.js new file mode 100644 index 00000000000000..6757804b9e968e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/ArgumentOutOfRangeError.js @@ -0,0 +1,19 @@ +/** + * 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 class ArgumentOutOfRangeError extends Error { + constructor() { + const err = super('argument out of range'); + this.name = err.name = 'ArgumentOutOfRangeError'; + this.stack = err.stack; + this.message = err.message; + } +} +//# sourceMappingURL=ArgumentOutOfRangeError.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/ArgumentOutOfRangeError.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/ArgumentOutOfRangeError.js.map new file mode 100644 index 00000000000000..3764615bd375d6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/ArgumentOutOfRangeError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ArgumentOutOfRangeError.js","sourceRoot":"","sources":["../../src/util/ArgumentOutOfRangeError.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,6CAA6C,KAAK;IAChD;QACE,MAAM,GAAG,GAAQ,MAAM,uBAAuB,CAAC,CAAC;QACzC,IAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,yBAAyB,CAAC;QAClD,IAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACxB,IAAK,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IACrC,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/EmptyError.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/EmptyError.js new file mode 100644 index 00000000000000..26c40235dd1a21 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/EmptyError.js @@ -0,0 +1,19 @@ +/** + * 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 class EmptyError extends Error { + constructor() { + const err = super('no elements in sequence'); + this.name = err.name = 'EmptyError'; + this.stack = err.stack; + this.message = err.message; + } +} +//# sourceMappingURL=EmptyError.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/EmptyError.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/EmptyError.js.map new file mode 100644 index 00000000000000..0776cd2aeb3c04 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/EmptyError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EmptyError.js","sourceRoot":"","sources":["../../src/util/EmptyError.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,gCAAgC,KAAK;IACnC;QACE,MAAM,GAAG,GAAQ,MAAM,yBAAyB,CAAC,CAAC;QAC3C,IAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;QACrC,IAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACxB,IAAK,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IACrC,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/FastMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/FastMap.js new file mode 100644 index 00000000000000..615849ee418f24 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/FastMap.js @@ -0,0 +1,28 @@ +export class FastMap { + constructor() { + this.values = {}; + } + delete(key) { + this.values[key] = null; + return true; + } + set(key, value) { + this.values[key] = value; + return this; + } + get(key) { + return this.values[key]; + } + forEach(cb, thisArg) { + const values = this.values; + for (let key in values) { + if (values.hasOwnProperty(key) && values[key] !== null) { + cb.call(thisArg, values[key], key); + } + } + } + clear() { + this.values = {}; + } +} +//# sourceMappingURL=FastMap.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/FastMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/FastMap.js.map new file mode 100644 index 00000000000000..fac9c8f12f1af5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/FastMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FastMap.js","sourceRoot":"","sources":["../../src/util/FastMap.ts"],"names":[],"mappings":"AAAA;IAAA;QACU,WAAM,GAAW,EAAE,CAAC;IA4B9B,CAAC;IA1BC,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAU;QACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,EAAkC,EAAE,OAAa;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC;YACvB,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACvD,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAAA"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/Immediate.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/Immediate.js new file mode 100644 index 00000000000000..6e3876b55b2f83 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/util/Immediate.js @@ -0,0 +1,201 @@ +/** +Some credit for this helper goes to http://github.com/YuzuJS/setImmediate +*/ +import { root } from './root'; +export class ImmediateDefinition { + constructor(root) { + this.root = root; + if (root.setImmediate && typeof root.setImmediate === 'function') { + this.setImmediate = root.setImmediate.bind(root); + this.clearImmediate = root.clearImmediate.bind(root); + } + else { + this.nextHandle = 1; + this.tasksByHandle = {}; + this.currentlyRunningATask = false; + // Don't get fooled by e.g. browserify environments. + if (this.canUseProcessNextTick()) { + // For Node.js before 0.9 + this.setImmediate = this.createProcessNextTickSetImmediate(); + } + else if (this.canUsePostMessage()) { + // For non-IE10 modern browsers + this.setImmediate = this.createPostMessageSetImmediate(); + } + else if (this.canUseMessageChannel()) { + // For web workers, where supported + this.setImmediate = this.createMessageChannelSetImmediate(); + } + else if (this.canUseReadyStateChange()) { + // For IE 6–8 + this.setImmediate = this.createReadyStateChangeSetImmediate(); + } + else { + // For older browsers + this.setImmediate = this.createSetTimeoutSetImmediate(); + } + let ci = function clearImmediate(handle) { + delete clearImmediate.instance.tasksByHandle[handle]; + }; + ci.instance = this; + this.clearImmediate = ci; + } + } + identify(o) { + return this.root.Object.prototype.toString.call(o); + } + canUseProcessNextTick() { + return this.identify(this.root.process) === '[object process]'; + } + canUseMessageChannel() { + return Boolean(this.root.MessageChannel); + } + canUseReadyStateChange() { + const document = this.root.document; + return Boolean(document && 'onreadystatechange' in document.createElement('script')); + } + canUsePostMessage() { + const root = this.root; + // The test against `importScripts` prevents this implementation from being installed inside a web worker, + // where `root.postMessage` means something completely different and can't be used for this purpose. + if (root.postMessage && !root.importScripts) { + let postMessageIsAsynchronous = true; + let oldOnMessage = root.onmessage; + root.onmessage = function () { + postMessageIsAsynchronous = false; + }; + root.postMessage('', '*'); + root.onmessage = oldOnMessage; + return postMessageIsAsynchronous; + } + return false; + } + // This function accepts the same arguments as setImmediate, but + // returns a function that requires no arguments. + partiallyApplied(handler, ...args) { + let fn = function result() { + const { handler, args } = result; + if (typeof handler === 'function') { + handler.apply(undefined, args); + } + else { + (new Function('' + handler))(); + } + }; + fn.handler = handler; + fn.args = args; + return fn; + } + addFromSetImmediateArguments(args) { + this.tasksByHandle[this.nextHandle] = this.partiallyApplied.apply(undefined, args); + return this.nextHandle++; + } + createProcessNextTickSetImmediate() { + let fn = function setImmediate() { + const { instance } = setImmediate; + let handle = instance.addFromSetImmediateArguments(arguments); + instance.root.process.nextTick(instance.partiallyApplied(instance.runIfPresent, handle)); + return handle; + }; + fn.instance = this; + return fn; + } + createPostMessageSetImmediate() { + // Installs an event handler on `global` for the `message` event: see + // * https://developer.mozilla.org/en/DOM/window.postMessage + // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages + const root = this.root; + let messagePrefix = 'setImmediate$' + root.Math.random() + '$'; + let onGlobalMessage = function globalMessageHandler(event) { + const instance = globalMessageHandler.instance; + if (event.source === root && + typeof event.data === 'string' && + event.data.indexOf(messagePrefix) === 0) { + instance.runIfPresent(+event.data.slice(messagePrefix.length)); + } + }; + onGlobalMessage.instance = this; + root.addEventListener('message', onGlobalMessage, false); + let fn = function setImmediate() { + const { messagePrefix, instance } = setImmediate; + let handle = instance.addFromSetImmediateArguments(arguments); + instance.root.postMessage(messagePrefix + handle, '*'); + return handle; + }; + fn.instance = this; + fn.messagePrefix = messagePrefix; + return fn; + } + runIfPresent(handle) { + // From the spec: 'Wait until any invocations of this algorithm started before this one have completed.' + // So if we're currently running a task, we'll need to delay this invocation. + if (this.currentlyRunningATask) { + // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a + // 'too much recursion' error. + this.root.setTimeout(this.partiallyApplied(this.runIfPresent, handle), 0); + } + else { + let task = this.tasksByHandle[handle]; + if (task) { + this.currentlyRunningATask = true; + try { + task(); + } + finally { + this.clearImmediate(handle); + this.currentlyRunningATask = false; + } + } + } + } + createMessageChannelSetImmediate() { + let channel = new this.root.MessageChannel(); + channel.port1.onmessage = (event) => { + let handle = event.data; + this.runIfPresent(handle); + }; + let fn = function setImmediate() { + const { channel, instance } = setImmediate; + let handle = instance.addFromSetImmediateArguments(arguments); + channel.port2.postMessage(handle); + return handle; + }; + fn.channel = channel; + fn.instance = this; + return fn; + } + createReadyStateChangeSetImmediate() { + let fn = function setImmediate() { + const instance = setImmediate.instance; + const root = instance.root; + const doc = root.document; + const html = doc.documentElement; + let handle = instance.addFromSetImmediateArguments(arguments); + // Create a + +To load in a CommonJS (Node.js) environment, first install with npm by running on the command line: + + npm install uri-js + +Then, in your code, load it using: + + const URI = require("uri-js"); + +If you are writing your code in ES6+ (ESNEXT) or TypeScript, you would load it using: + + import * as URI from "uri-js"; + +Or you can load just what you need using named exports: + + import { parse, serialize, resolve, resolveComponents, normalize, equal, removeDotSegments, pctEncChar, pctDecChars, escapeComponent, unescapeComponent } from "uri-js"; + +## Breaking changes + +### Breaking changes from 3.x + +URN parsing has been completely changed to better align with the specification. Scheme is now always `urn`, but has two new properties: `nid` which contains the Namspace Identifier, and `nss` which contains the Namespace Specific String. The `nss` property will be removed by higher order scheme handlers, such as the UUID URN scheme handler. + +The UUID of a URN can now be found in the `uuid` property. + +### Breaking changes from 2.x + +URI validation has been removed as it was slow, exposed a vulnerabilty, and was generally not useful. + +### Breaking changes from 1.x + +The `errors` array on parsed components is now an `error` string. + +## License ([Simplified BSD](http://en.wikipedia.org/wiki/BSD_licenses#2-clause)) + +Copyright 2011 Gary Court. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY GARY COURT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Gary Court. diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.d.ts b/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.d.ts new file mode 100644 index 00000000000000..320f53417f1e85 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.d.ts @@ -0,0 +1,59 @@ +export interface URIComponents { + scheme?: string; + userinfo?: string; + host?: string; + port?: number | string; + path?: string; + query?: string; + fragment?: string; + reference?: string; + error?: string; +} +export interface URIOptions { + scheme?: string; + reference?: string; + tolerant?: boolean; + absolutePath?: boolean; + iri?: boolean; + unicodeSupport?: boolean; + domainHost?: boolean; +} +export interface URISchemeHandler { + scheme: string; + parse(components: ParentComponents, options: Options): Components; + serialize(components: Components, options: Options): ParentComponents; + unicodeSupport?: boolean; + domainHost?: boolean; + absolutePath?: boolean; +} +export interface URIRegExps { + NOT_SCHEME: RegExp; + NOT_USERINFO: RegExp; + NOT_HOST: RegExp; + NOT_PATH: RegExp; + NOT_PATH_NOSCHEME: RegExp; + NOT_QUERY: RegExp; + NOT_FRAGMENT: RegExp; + ESCAPE: RegExp; + UNRESERVED: RegExp; + OTHER_CHARS: RegExp; + PCT_ENCODED: RegExp; + IPV4ADDRESS: RegExp; + IPV6ADDRESS: RegExp; +} +export declare const SCHEMES: { + [scheme: string]: URISchemeHandler; +}; +export declare function pctEncChar(chr: string): string; +export declare function pctDecChars(str: string): string; +export declare function parse(uriString: string, options?: URIOptions): URIComponents; +export declare function removeDotSegments(input: string): string; +export declare function serialize(components: URIComponents, options?: URIOptions): string; +export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents; +export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string; +export declare function normalize(uri: string, options?: URIOptions): string; +export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents; +export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean; +export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean; +export declare function escapeComponent(str: string, options?: URIOptions): string; +export declare function unescapeComponent(str: string, options?: URIOptions): string; diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.js b/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.js new file mode 100644 index 00000000000000..2df06091a638f7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.js @@ -0,0 +1,1389 @@ +/** @license URI.js v4.2.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (factory((global.URI = global.URI || {}))); +}(this, (function (exports) { 'use strict'; + +function merge() { + for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) { + sets[_key] = arguments[_key]; + } + + if (sets.length > 1) { + sets[0] = sets[0].slice(0, -1); + var xl = sets.length - 1; + for (var x = 1; x < xl; ++x) { + sets[x] = sets[x].slice(1, -1); + } + sets[xl] = sets[xl].slice(1); + return sets.join(''); + } else { + return sets[0]; + } +} +function subexp(str) { + return "(?:" + str + ")"; +} +function typeOf(o) { + return o === undefined ? "undefined" : o === null ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase(); +} +function toUpperCase(str) { + return str.toUpperCase(); +} +function toArray(obj) { + return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== "number" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : []; +} +function assign(target, source) { + var obj = target; + if (source) { + for (var key in source) { + obj[key] = source[key]; + } + } + return obj; +} + +function buildExps(isIRI) { + var ALPHA$$ = "[A-Za-z]", + CR$ = "[\\x0D]", + DIGIT$$ = "[0-9]", + DQUOTE$$ = "[\\x22]", + HEXDIG$$ = merge(DIGIT$$, "[A-Fa-f]"), + //case-insensitive + LF$$ = "[\\x0A]", + SP$$ = "[\\x20]", + PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)), + //expanded + GEN_DELIMS$$ = "[\\:\\/\\?\\#\\[\\]\\@]", + SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", + RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$), + UCSCHAR$$ = isIRI ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]", + //subset, excludes bidi control characters + IPRIVATE$$ = isIRI ? "[\\uE000-\\uF8FF]" : "[]", + //subset + UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$), + SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"), + USERINFO$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]")) + "*"), + DEC_OCTET$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("[1-9]" + DIGIT$$) + "|" + DIGIT$$), + DEC_OCTET_RELAXED$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("0?[1-9]" + DIGIT$$) + "|0?0?" + DIGIT$$), + //relaxed parsing rules + IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$), + H16$ = subexp(HEXDIG$$ + "{1,4}"), + LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$), + IPV6ADDRESS1$ = subexp(subexp(H16$ + "\\:") + "{6}" + LS32$), + // 6( h16 ":" ) ls32 + IPV6ADDRESS2$ = subexp("\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$), + // "::" 5( h16 ":" ) ls32 + IPV6ADDRESS3$ = subexp(subexp(H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$), + //[ h16 ] "::" 4( h16 ":" ) ls32 + IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$), + //[ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32 + IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$), + //[ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32 + IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$), + //[ *3( h16 ":" ) h16 ] "::" h16 ":" ls32 + IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$), + //[ *4( h16 ":" ) h16 ] "::" ls32 + IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$), + //[ *5( h16 ":" ) h16 ] "::" h16 + IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:"), + //[ *6( h16 ":" ) h16 ] "::" + IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join("|")), + ZONEID$ = subexp(subexp(UNRESERVED$$ + "|" + PCT_ENCODED$) + "+"), + //RFC 6874 + IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$), + //RFC 6874 + IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + ZONEID$), + //RFC 6874, with relaxed parsing rules + IPVFUTURE$ = subexp("[vV]" + HEXDIG$$ + "+\\." + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]") + "+"), + IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"), + //RFC 6874 + REG_NAME$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$)) + "*"), + HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")" + "|" + REG_NAME$), + PORT$ = subexp(DIGIT$$ + "*"), + AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"), + PCHAR$ = subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@]")), + SEGMENT$ = subexp(PCHAR$ + "*"), + SEGMENT_NZ$ = subexp(PCHAR$ + "+"), + SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\@]")) + "+"), + PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"), + PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"), + //simplified + PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), + //simplified + PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), + //simplified + PATH_EMPTY$ = "(?!" + PCHAR$ + ")", + PATH$ = subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), + QUERY$ = subexp(subexp(PCHAR$ + "|" + merge("[\\/\\?]", IPRIVATE$$)) + "*"), + FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"), + HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), + URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), + RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$), + RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), + URI_REFERENCE$ = subexp(URI$ + "|" + RELATIVE$), + ABSOLUTE_URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"), + GENERIC_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", + RELATIVE_REF$ = "^(){0}" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", + ABSOLUTE_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?$", + SAMEDOC_REF$ = "^" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", + AUTHORITY_REF$ = "^" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?$"; + return { + NOT_SCHEME: new RegExp(merge("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"), + NOT_USERINFO: new RegExp(merge("[^\\%\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_HOST: new RegExp(merge("[^\\%\\[\\]\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_PATH: new RegExp(merge("[^\\%\\/\\:\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_PATH_NOSCHEME: new RegExp(merge("[^\\%\\/\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_QUERY: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"), + NOT_FRAGMENT: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"), + ESCAPE: new RegExp(merge("[^]", UNRESERVED$$, SUB_DELIMS$$), "g"), + UNRESERVED: new RegExp(UNRESERVED$$, "g"), + OTHER_CHARS: new RegExp(merge("[^\\%]", UNRESERVED$$, RESERVED$$), "g"), + PCT_ENCODED: new RegExp(PCT_ENCODED$, "g"), + IPV4ADDRESS: new RegExp("^(" + IPV4ADDRESS$ + ")$"), + IPV6ADDRESS: new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$") //RFC 6874, with relaxed parsing rules + }; +} +var URI_PROTOCOL = buildExps(false); + +var IRI_PROTOCOL = buildExps(true); + +var slicedToArray = function () { + function sliceIterator(arr, i) { + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"]) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; + } + + return function (arr, i) { + if (Array.isArray(arr)) { + return arr; + } else if (Symbol.iterator in Object(arr)) { + return sliceIterator(arr, i); + } else { + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + } + }; +}(); + + + + + + + + + + + + + +var toConsumableArray = function (arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; + + return arr2; + } else { + return Array.from(arr); + } +}; + +/** Highest positive signed 32-bit float value */ + +var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 + +/** Bootstring parameters */ +var base = 36; +var tMin = 1; +var tMax = 26; +var skew = 38; +var damp = 700; +var initialBias = 72; +var initialN = 128; // 0x80 +var delimiter = '-'; // '\x2D' + +/** Regular expressions */ +var regexPunycode = /^xn--/; +var regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars +var regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators + +/** Error messages */ +var errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' +}; + +/** Convenience shortcuts */ +var baseMinusTMin = base - tMin; +var floor = Math.floor; +var stringFromCharCode = String.fromCharCode; + +/*--------------------------------------------------------------------------*/ + +/** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ +function error$1(type) { + throw new RangeError(errors[type]); +} + +/** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ +function map(array, fn) { + var result = []; + var length = array.length; + while (length--) { + result[length] = fn(array[length]); + } + return result; +} + +/** + * A simple `Array#map`-like wrapper to work with domain name strings or email + * addresses. + * @private + * @param {String} domain The domain name or email address. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ +function mapDomain(string, fn) { + var parts = string.split('@'); + var result = ''; + if (parts.length > 1) { + // In email addresses, only the domain name should be punycoded. Leave + // the local part (i.e. everything up to `@`) intact. + result = parts[0] + '@'; + string = parts[1]; + } + // Avoid `split(regex)` for IE8 compatibility. See #17. + string = string.replace(regexSeparators, '\x2E'); + var labels = string.split('.'); + var encoded = map(labels, fn).join('.'); + return result + encoded; +} + +/** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ +function ucs2decode(string) { + var output = []; + var counter = 0; + var length = string.length; + while (counter < length) { + var value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // It's a high surrogate, and there is a next character. + var extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { + // Low surrogate. + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // It's an unmatched surrogate; only append this code unit, in case the + // next code unit is the high surrogate of a surrogate pair. + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; +} + +/** + * Creates a string based on an array of numeric code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of numeric code points. + * @returns {String} The new Unicode string (UCS-2). + */ +var ucs2encode = function ucs2encode(array) { + return String.fromCodePoint.apply(String, toConsumableArray(array)); +}; + +/** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic numeric code point value. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ +var basicToDigit = function basicToDigit(codePoint) { + if (codePoint - 0x30 < 0x0A) { + return codePoint - 0x16; + } + if (codePoint - 0x41 < 0x1A) { + return codePoint - 0x41; + } + if (codePoint - 0x61 < 0x1A) { + return codePoint - 0x61; + } + return base; +}; + +/** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ +var digitToBasic = function digitToBasic(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); +}; + +/** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ +var adapt = function adapt(delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); +}; + +/** + * Converts a Punycode string of ASCII-only symbols to a string of Unicode + * symbols. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII-only symbols. + * @returns {String} The resulting string of Unicode symbols. + */ +var decode = function decode(input) { + // Don't use UCS-2. + var output = []; + var inputLength = input.length; + var i = 0; + var n = initialN; + var bias = initialBias; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + var basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (var j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error$1('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{ + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + var oldi = i; + for (var w = 1, k = base;; /* no condition */k += base) { + + if (index >= inputLength) { + error$1('invalid-input'); + } + + var digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error$1('overflow'); + } + + i += digit * w; + var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + + if (digit < t) { + break; + } + + var baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error$1('overflow'); + } + + w *= baseMinusT; + } + + var out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error$1('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output. + output.splice(i++, 0, n); + } + + return String.fromCodePoint.apply(String, output); +}; + +/** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ +var encode = function encode(input) { + var output = []; + + // Convert the input in UCS-2 to an array of Unicode code points. + input = ucs2decode(input); + + // Cache the length. + var inputLength = input.length; + + // Initialize the state. + var n = initialN; + var delta = 0; + var bias = initialBias; + + // Handle the basic code points. + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var _currentValue2 = _step.value; + + if (_currentValue2 < 0x80) { + output.push(stringFromCharCode(_currentValue2)); + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + var basicLength = output.length; + var handledCPCount = basicLength; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string with a delimiter unless it's empty. + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + var m = maxInt; + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var currentValue = _step2.value; + + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow. + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + var handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error$1('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; + + try { + for (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var _currentValue = _step3.value; + + if (_currentValue < n && ++delta > maxInt) { + error$1('overflow'); + } + if (_currentValue == n) { + // Represent delta as a generalized variable-length integer. + var q = delta; + for (var k = base;; /* no condition */k += base) { + var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + if (q < t) { + break; + } + var qMinusT = q - t; + var baseMinusT = base - t; + output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3.return) { + _iterator3.return(); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + + ++delta; + ++n; + } + return output.join(''); +}; + +/** + * Converts a Punycode string representing a domain name or an email address + * to Unicode. Only the Punycoded parts of the input will be converted, i.e. + * it doesn't matter if you call it on a string that has already been + * converted to Unicode. + * @memberOf punycode + * @param {String} input The Punycoded domain name or email address to + * convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ +var toUnicode = function toUnicode(input) { + return mapDomain(input, function (string) { + return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string; + }); +}; + +/** + * Converts a Unicode string representing a domain name or an email address to + * Punycode. Only the non-ASCII parts of the domain name will be converted, + * i.e. it doesn't matter if you call it with a domain that's already in + * ASCII. + * @memberOf punycode + * @param {String} input The domain name or email address to convert, as a + * Unicode string. + * @returns {String} The Punycode representation of the given domain name or + * email address. + */ +var toASCII = function toASCII(input) { + return mapDomain(input, function (string) { + return regexNonASCII.test(string) ? 'xn--' + encode(string) : string; + }); +}; + +/*--------------------------------------------------------------------------*/ + +/** Define the public API */ +var punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '2.1.0', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode +}; + +/** + * URI.js + * + * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript. + * @author Gary Court + * @see http://github.com/garycourt/uri-js + */ +/** + * Copyright 2011 Gary Court. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of Gary Court. + */ +var SCHEMES = {}; +function pctEncChar(chr) { + var c = chr.charCodeAt(0); + var e = void 0; + if (c < 16) e = "%0" + c.toString(16).toUpperCase();else if (c < 128) e = "%" + c.toString(16).toUpperCase();else if (c < 2048) e = "%" + (c >> 6 | 192).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase();else e = "%" + (c >> 12 | 224).toString(16).toUpperCase() + "%" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase(); + return e; +} +function pctDecChars(str) { + var newStr = ""; + var i = 0; + var il = str.length; + while (i < il) { + var c = parseInt(str.substr(i + 1, 2), 16); + if (c < 128) { + newStr += String.fromCharCode(c); + i += 3; + } else if (c >= 194 && c < 224) { + if (il - i >= 6) { + var c2 = parseInt(str.substr(i + 4, 2), 16); + newStr += String.fromCharCode((c & 31) << 6 | c2 & 63); + } else { + newStr += str.substr(i, 6); + } + i += 6; + } else if (c >= 224) { + if (il - i >= 9) { + var _c = parseInt(str.substr(i + 4, 2), 16); + var c3 = parseInt(str.substr(i + 7, 2), 16); + newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63); + } else { + newStr += str.substr(i, 9); + } + i += 9; + } else { + newStr += str.substr(i, 3); + i += 3; + } + } + return newStr; +} +function _normalizeComponentEncoding(components, protocol) { + function decodeUnreserved(str) { + var decStr = pctDecChars(str); + return !decStr.match(protocol.UNRESERVED) ? str : decStr; + } + if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, ""); + if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + return components; +} + +function _stripLeadingZeros(str) { + return str.replace(/^0*(.*)/, "$1") || "0"; +} +function _normalizeIPv4(host, protocol) { + var matches = host.match(protocol.IPV4ADDRESS) || []; + + var _matches = slicedToArray(matches, 2), + address = _matches[1]; + + if (address) { + return address.split(".").map(_stripLeadingZeros).join("."); + } else { + return host; + } +} +function _normalizeIPv6(host, protocol) { + var matches = host.match(protocol.IPV6ADDRESS) || []; + + var _matches2 = slicedToArray(matches, 3), + address = _matches2[1], + zone = _matches2[2]; + + if (address) { + var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(), + _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2), + last = _address$toLowerCase$2[0], + first = _address$toLowerCase$2[1]; + + var firstFields = first ? first.split(":").map(_stripLeadingZeros) : []; + var lastFields = last.split(":").map(_stripLeadingZeros); + var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]); + var fieldCount = isLastFieldIPv4Address ? 7 : 8; + var lastFieldsStart = lastFields.length - fieldCount; + var fields = Array(fieldCount); + for (var x = 0; x < fieldCount; ++x) { + fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || ''; + } + if (isLastFieldIPv4Address) { + fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol); + } + var allZeroFields = fields.reduce(function (acc, field, index) { + if (!field || field === "0") { + var lastLongest = acc[acc.length - 1]; + if (lastLongest && lastLongest.index + lastLongest.length === index) { + lastLongest.length++; + } else { + acc.push({ index: index, length: 1 }); + } + } + return acc; + }, []); + var longestZeroFields = allZeroFields.sort(function (a, b) { + return b.length - a.length; + })[0]; + var newHost = void 0; + if (longestZeroFields && longestZeroFields.length > 1) { + var newFirst = fields.slice(0, longestZeroFields.index); + var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length); + newHost = newFirst.join(":") + "::" + newLast.join(":"); + } else { + newHost = fields.join(":"); + } + if (zone) { + newHost += "%" + zone; + } + return newHost; + } else { + return host; + } +} +var URI_PARSE = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i; +var NO_MATCH_IS_UNDEFINED = "".match(/(){0}/)[1] === undefined; +function parse(uriString) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var components = {}; + var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL; + if (options.reference === "suffix") uriString = (options.scheme ? options.scheme + ":" : "") + "//" + uriString; + var matches = uriString.match(URI_PARSE); + if (matches) { + if (NO_MATCH_IS_UNDEFINED) { + //store each component + components.scheme = matches[1]; + components.userinfo = matches[3]; + components.host = matches[4]; + components.port = parseInt(matches[5], 10); + components.path = matches[6] || ""; + components.query = matches[7]; + components.fragment = matches[8]; + //fix port number + if (isNaN(components.port)) { + components.port = matches[5]; + } + } else { + //IE FIX for improper RegExp matching + //store each component + components.scheme = matches[1] || undefined; + components.userinfo = uriString.indexOf("@") !== -1 ? matches[3] : undefined; + components.host = uriString.indexOf("//") !== -1 ? matches[4] : undefined; + components.port = parseInt(matches[5], 10); + components.path = matches[6] || ""; + components.query = uriString.indexOf("?") !== -1 ? matches[7] : undefined; + components.fragment = uriString.indexOf("#") !== -1 ? matches[8] : undefined; + //fix port number + if (isNaN(components.port)) { + components.port = uriString.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? matches[4] : undefined; + } + } + if (components.host) { + //normalize IP hosts + components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol); + } + //determine reference type + if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) { + components.reference = "same-document"; + } else if (components.scheme === undefined) { + components.reference = "relative"; + } else if (components.fragment === undefined) { + components.reference = "absolute"; + } else { + components.reference = "uri"; + } + //check for reference errors + if (options.reference && options.reference !== "suffix" && options.reference !== components.reference) { + components.error = components.error || "URI is not a " + options.reference + " reference."; + } + //find scheme handler + var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()]; + //check if scheme can't handle IRIs + if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) { + //if host component is a domain name + if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) { + //convert Unicode IDN -> ASCII IDN + try { + components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()); + } catch (e) { + components.error = components.error || "Host's domain name can not be converted to ASCII via punycode: " + e; + } + } + //convert IRI -> URI + _normalizeComponentEncoding(components, URI_PROTOCOL); + } else { + //normalize encodings + _normalizeComponentEncoding(components, protocol); + } + //perform scheme specific parsing + if (schemeHandler && schemeHandler.parse) { + schemeHandler.parse(components, options); + } + } else { + components.error = components.error || "URI can not be parsed."; + } + return components; +} + +function _recomposeAuthority(components, options) { + var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL; + var uriTokens = []; + if (components.userinfo !== undefined) { + uriTokens.push(components.userinfo); + uriTokens.push("@"); + } + if (components.host !== undefined) { + //normalize IP hosts, add brackets and escape zone separator for IPv6 + uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) { + return "[" + $1 + ($2 ? "%25" + $2 : "") + "]"; + })); + } + if (typeof components.port === "number") { + uriTokens.push(":"); + uriTokens.push(components.port.toString(10)); + } + return uriTokens.length ? uriTokens.join("") : undefined; +} + +var RDS1 = /^\.\.?\//; +var RDS2 = /^\/\.(\/|$)/; +var RDS3 = /^\/\.\.(\/|$)/; +var RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/; +function removeDotSegments(input) { + var output = []; + while (input.length) { + if (input.match(RDS1)) { + input = input.replace(RDS1, ""); + } else if (input.match(RDS2)) { + input = input.replace(RDS2, "/"); + } else if (input.match(RDS3)) { + input = input.replace(RDS3, "/"); + output.pop(); + } else if (input === "." || input === "..") { + input = ""; + } else { + var im = input.match(RDS5); + if (im) { + var s = im[0]; + input = input.slice(s.length); + output.push(s); + } else { + throw new Error("Unexpected dot segment condition"); + } + } + } + return output.join(""); +} + +function serialize(components) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL; + var uriTokens = []; + //find scheme handler + var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()]; + //perform scheme specific serialization + if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options); + if (components.host) { + //if host component is an IPv6 address + if (protocol.IPV6ADDRESS.test(components.host)) {} + //TODO: normalize IPv6 address as per RFC 5952 + + //if host component is a domain name + else if (options.domainHost || schemeHandler && schemeHandler.domainHost) { + //convert IDN via punycode + try { + components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host); + } catch (e) { + components.error = components.error || "Host's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e; + } + } + } + //normalize encoding + _normalizeComponentEncoding(components, protocol); + if (options.reference !== "suffix" && components.scheme) { + uriTokens.push(components.scheme); + uriTokens.push(":"); + } + var authority = _recomposeAuthority(components, options); + if (authority !== undefined) { + if (options.reference !== "suffix") { + uriTokens.push("//"); + } + uriTokens.push(authority); + if (components.path && components.path.charAt(0) !== "/") { + uriTokens.push("/"); + } + } + if (components.path !== undefined) { + var s = components.path; + if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) { + s = removeDotSegments(s); + } + if (authority === undefined) { + s = s.replace(/^\/\//, "/%2F"); //don't allow the path to start with "//" + } + uriTokens.push(s); + } + if (components.query !== undefined) { + uriTokens.push("?"); + uriTokens.push(components.query); + } + if (components.fragment !== undefined) { + uriTokens.push("#"); + uriTokens.push(components.fragment); + } + return uriTokens.join(""); //merge tokens into a string +} + +function resolveComponents(base, relative) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var skipNormalization = arguments[3]; + + var target = {}; + if (!skipNormalization) { + base = parse(serialize(base, options), options); //normalize base components + relative = parse(serialize(relative, options), options); //normalize relative components + } + options = options || {}; + if (!options.tolerant && relative.scheme) { + target.scheme = relative.scheme; + //target.authority = relative.authority; + target.userinfo = relative.userinfo; + target.host = relative.host; + target.port = relative.port; + target.path = removeDotSegments(relative.path || ""); + target.query = relative.query; + } else { + if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) { + //target.authority = relative.authority; + target.userinfo = relative.userinfo; + target.host = relative.host; + target.port = relative.port; + target.path = removeDotSegments(relative.path || ""); + target.query = relative.query; + } else { + if (!relative.path) { + target.path = base.path; + if (relative.query !== undefined) { + target.query = relative.query; + } else { + target.query = base.query; + } + } else { + if (relative.path.charAt(0) === "/") { + target.path = removeDotSegments(relative.path); + } else { + if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) { + target.path = "/" + relative.path; + } else if (!base.path) { + target.path = relative.path; + } else { + target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative.path; + } + target.path = removeDotSegments(target.path); + } + target.query = relative.query; + } + //target.authority = base.authority; + target.userinfo = base.userinfo; + target.host = base.host; + target.port = base.port; + } + target.scheme = base.scheme; + } + target.fragment = relative.fragment; + return target; +} + +function resolve(baseURI, relativeURI, options) { + var schemelessOptions = assign({ scheme: 'null' }, options); + return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions); +} + +function normalize(uri, options) { + if (typeof uri === "string") { + uri = serialize(parse(uri, options), options); + } else if (typeOf(uri) === "object") { + uri = parse(serialize(uri, options), options); + } + return uri; +} + +function equal(uriA, uriB, options) { + if (typeof uriA === "string") { + uriA = serialize(parse(uriA, options), options); + } else if (typeOf(uriA) === "object") { + uriA = serialize(uriA, options); + } + if (typeof uriB === "string") { + uriB = serialize(parse(uriB, options), options); + } else if (typeOf(uriB) === "object") { + uriB = serialize(uriB, options); + } + return uriA === uriB; +} + +function escapeComponent(str, options) { + return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar); +} + +function unescapeComponent(str, options) { + return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars); +} + +var handler = { + scheme: "http", + domainHost: true, + parse: function parse(components, options) { + //report missing host + if (!components.host) { + components.error = components.error || "HTTP URIs must have a host."; + } + return components; + }, + serialize: function serialize(components, options) { + //normalize the default port + if (components.port === (String(components.scheme).toLowerCase() !== "https" ? 80 : 443) || components.port === "") { + components.port = undefined; + } + //normalize the empty path + if (!components.path) { + components.path = "/"; + } + //NOTE: We do not parse query strings for HTTP URIs + //as WWW Form Url Encoded query strings are part of the HTML4+ spec, + //and not the HTTP spec. + return components; + } +}; + +var handler$1 = { + scheme: "https", + domainHost: handler.domainHost, + parse: handler.parse, + serialize: handler.serialize +}; + +var O = {}; +var isIRI = true; +//RFC 3986 +var UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + (isIRI ? "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" : "") + "]"; +var HEXDIG$$ = "[0-9A-Fa-f]"; //case-insensitive +var PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)); //expanded +//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; = +//const ATEXT$$ = "[A-Za-z0-9\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]"; +//const WSP$$ = "[\\x20\\x09]"; +//const OBS_QTEXT$$ = "[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]"; //(%d1-8 / %d11-12 / %d14-31 / %d127) +//const QTEXT$$ = merge("[\\x21\\x23-\\x5B\\x5D-\\x7E]", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext +//const VCHAR$$ = "[\\x21-\\x7E]"; +//const WSP$$ = "[\\x20\\x09]"; +//const OBS_QP$ = subexp("\\\\" + merge("[\\x00\\x0D\\x0A]", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext +//const FWS$ = subexp(subexp(WSP$$ + "*" + "\\x0D\\x0A") + "?" + WSP$$ + "+"); +//const QUOTED_PAIR$ = subexp(subexp("\\\\" + subexp(VCHAR$$ + "|" + WSP$$)) + "|" + OBS_QP$); +//const QUOTED_STRING$ = subexp('\\"' + subexp(FWS$ + "?" + QCONTENT$) + "*" + FWS$ + "?" + '\\"'); +var ATEXT$$ = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]"; +var QTEXT$$ = "[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]"; +var VCHAR$$ = merge(QTEXT$$, "[\\\"\\\\]"); +var SOME_DELIMS$$ = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"; +var UNRESERVED = new RegExp(UNRESERVED$$, "g"); +var PCT_ENCODED = new RegExp(PCT_ENCODED$, "g"); +var NOT_LOCAL_PART = new RegExp(merge("[^]", ATEXT$$, "[\\.]", '[\\"]', VCHAR$$), "g"); +var NOT_HFNAME = new RegExp(merge("[^]", UNRESERVED$$, SOME_DELIMS$$), "g"); +var NOT_HFVALUE = NOT_HFNAME; +function decodeUnreserved(str) { + var decStr = pctDecChars(str); + return !decStr.match(UNRESERVED) ? str : decStr; +} +var handler$2 = { + scheme: "mailto", + parse: function parse$$1(components, options) { + var mailtoComponents = components; + var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(",") : []; + mailtoComponents.path = undefined; + if (mailtoComponents.query) { + var unknownHeaders = false; + var headers = {}; + var hfields = mailtoComponents.query.split("&"); + for (var x = 0, xl = hfields.length; x < xl; ++x) { + var hfield = hfields[x].split("="); + switch (hfield[0]) { + case "to": + var toAddrs = hfield[1].split(","); + for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) { + to.push(toAddrs[_x]); + } + break; + case "subject": + mailtoComponents.subject = unescapeComponent(hfield[1], options); + break; + case "body": + mailtoComponents.body = unescapeComponent(hfield[1], options); + break; + default: + unknownHeaders = true; + headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options); + break; + } + } + if (unknownHeaders) mailtoComponents.headers = headers; + } + mailtoComponents.query = undefined; + for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) { + var addr = to[_x2].split("@"); + addr[0] = unescapeComponent(addr[0]); + if (!options.unicodeSupport) { + //convert Unicode IDN -> ASCII IDN + try { + addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase()); + } catch (e) { + mailtoComponents.error = mailtoComponents.error || "Email address's domain name can not be converted to ASCII via punycode: " + e; + } + } else { + addr[1] = unescapeComponent(addr[1], options).toLowerCase(); + } + to[_x2] = addr.join("@"); + } + return mailtoComponents; + }, + serialize: function serialize$$1(mailtoComponents, options) { + var components = mailtoComponents; + var to = toArray(mailtoComponents.to); + if (to) { + for (var x = 0, xl = to.length; x < xl; ++x) { + var toAddr = String(to[x]); + var atIdx = toAddr.lastIndexOf("@"); + var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar); + var domain = toAddr.slice(atIdx + 1); + //convert IDN via punycode + try { + domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain); + } catch (e) { + components.error = components.error || "Email address's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e; + } + to[x] = localPart + "@" + domain; + } + components.path = to.join(","); + } + var headers = mailtoComponents.headers = mailtoComponents.headers || {}; + if (mailtoComponents.subject) headers["subject"] = mailtoComponents.subject; + if (mailtoComponents.body) headers["body"] = mailtoComponents.body; + var fields = []; + for (var name in headers) { + if (headers[name] !== O[name]) { + fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + "=" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)); + } + } + if (fields.length) { + components.query = fields.join("&"); + } + return components; + } +}; + +var URN_PARSE = /^([^\:]+)\:(.*)/; +//RFC 2141 +var handler$3 = { + scheme: "urn", + parse: function parse$$1(components, options) { + var matches = components.path && components.path.match(URN_PARSE); + var urnComponents = components; + if (matches) { + var scheme = options.scheme || urnComponents.scheme || "urn"; + var nid = matches[1].toLowerCase(); + var nss = matches[2]; + var urnScheme = scheme + ":" + (options.nid || nid); + var schemeHandler = SCHEMES[urnScheme]; + urnComponents.nid = nid; + urnComponents.nss = nss; + urnComponents.path = undefined; + if (schemeHandler) { + urnComponents = schemeHandler.parse(urnComponents, options); + } + } else { + urnComponents.error = urnComponents.error || "URN can not be parsed."; + } + return urnComponents; + }, + serialize: function serialize$$1(urnComponents, options) { + var scheme = options.scheme || urnComponents.scheme || "urn"; + var nid = urnComponents.nid; + var urnScheme = scheme + ":" + (options.nid || nid); + var schemeHandler = SCHEMES[urnScheme]; + if (schemeHandler) { + urnComponents = schemeHandler.serialize(urnComponents, options); + } + var uriComponents = urnComponents; + var nss = urnComponents.nss; + uriComponents.path = (nid || options.nid) + ":" + nss; + return uriComponents; + } +}; + +var UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/; +//RFC 4122 +var handler$4 = { + scheme: "urn:uuid", + parse: function parse(urnComponents, options) { + var uuidComponents = urnComponents; + uuidComponents.uuid = uuidComponents.nss; + uuidComponents.nss = undefined; + if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) { + uuidComponents.error = uuidComponents.error || "UUID is not valid."; + } + return uuidComponents; + }, + serialize: function serialize(uuidComponents, options) { + var urnComponents = uuidComponents; + //normalize UUID + urnComponents.nss = (uuidComponents.uuid || "").toLowerCase(); + return urnComponents; + } +}; + +SCHEMES[handler.scheme] = handler; +SCHEMES[handler$1.scheme] = handler$1; +SCHEMES[handler$2.scheme] = handler$2; +SCHEMES[handler$3.scheme] = handler$3; +SCHEMES[handler$4.scheme] = handler$4; + +exports.SCHEMES = SCHEMES; +exports.pctEncChar = pctEncChar; +exports.pctDecChars = pctDecChars; +exports.parse = parse; +exports.removeDotSegments = removeDotSegments; +exports.serialize = serialize; +exports.resolveComponents = resolveComponents; +exports.resolve = resolve; +exports.normalize = normalize; +exports.equal = equal; +exports.escapeComponent = escapeComponent; +exports.unescapeComponent = unescapeComponent; + +Object.defineProperty(exports, '__esModule', { value: true }); + +}))); +//# sourceMappingURL=uri.all.js.map diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.js.map b/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.js.map new file mode 100644 index 00000000000000..536ffa8815efdd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.js.map @@ -0,0 +1 @@ +{"version":3,"file":"uri.all.js","sources":["../../src/index.ts","../../src/schemes/urn-uuid.ts","../../src/schemes/urn.ts","../../src/schemes/mailto.ts","../../src/schemes/https.ts","../../src/schemes/http.ts","../../src/uri.ts","../../node_modules/punycode/punycode.es6.js","../../src/regexps-iri.ts","../../src/regexps-uri.ts","../../src/util.ts"],"sourcesContent":["import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (components.port === (String(components.scheme).toLowerCase() !== \"https\" ? 80 : 443) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(components.port.toString(10));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","export function merge(...sets:Array):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}"],"names":["SCHEMES","uuid","scheme","urn","mailto","https","http","urnComponents","nss","uuidComponents","toLowerCase","options","error","tolerant","match","UUID","undefined","handler","uriComponents","path","nid","schemeHandler","serialize","urnScheme","parse","matches","components","URN_PARSE","query","fields","join","length","push","name","replace","PCT_ENCODED","decodeUnreserved","toUpperCase","NOT_HFNAME","pctEncChar","headers","NOT_HFVALUE","O","mailtoComponents","body","subject","to","x","localPart","domain","iri","e","punycode","toASCII","unescapeComponent","toUnicode","toAddr","slice","atIdx","NOT_LOCAL_PART","lastIndexOf","String","xl","toArray","addr","unicodeSupport","split","unknownHeaders","hfield","toAddrs","hfields","decStr","UNRESERVED","str","pctDecChars","RegExp","merge","UNRESERVED$$","SOME_DELIMS$$","ATEXT$$","VCHAR$$","PCT_ENCODED$","QTEXT$$","subexp","HEXDIG$$","isIRI","domainHost","port","host","toString","URI_PROTOCOL","IRI_PROTOCOL","ESCAPE","escapeComponent","uriA","uriB","typeOf","equal","uri","normalize","resolveComponents","baseURI","schemelessOptions","relativeURI","assign","resolve","target","fragment","relative","base","userinfo","removeDotSegments","charAt","skipNormalization","uriTokens","s","authority","absolutePath","reference","_recomposeAuthority","protocol","IPV6ADDRESS","test","output","Error","input","im","RDS5","pop","RDS3","RDS2","RDS1","$1","$2","_normalizeIPv6","_normalizeIPv4","_","uriString","isNaN","indexOf","parseInt","NO_MATCH_IS_UNDEFINED","URI_PARSE","newHost","zone","newFirst","newLast","longestZeroFields","index","b","a","allZeroFields","sort","acc","lastLongest","field","reduce","fieldCount","isLastFieldIPv4Address","firstFields","lastFields","lastFieldsStart","Array","IPV4ADDRESS","last","map","_stripLeadingZeros","first","address","reverse","NOT_FRAGMENT","NOT_QUERY","NOT_PATH","NOT_PATH_NOSCHEME","NOT_HOST","NOT_USERINFO","NOT_SCHEME","_normalizeComponentEncoding","newStr","substr","i","fromCharCode","c","c2","c3","il","chr","charCodeAt","encode","decode","ucs2encode","ucs2decode","regexNonASCII","string","mapDomain","regexPunycode","n","delta","handledCPCount","adapt","handledCPCountPlusOne","basicLength","stringFromCharCode","digitToBasic","q","floor","qMinusT","baseMinusT","t","k","bias","tMin","tMax","currentValue","maxInt","m","inputLength","delimiter","initialBias","initialN","fromCodePoint","splice","out","oldi","w","digit","basicToDigit","basic","j","baseMinusTMin","skew","numPoints","firstTime","damp","flag","codePoint","array","value","extra","counter","result","encoded","labels","fn","regexSeparators","parts","RangeError","errors","type","Math","buildExps","IPV6ADDRESS$","ZONEID$","IPV4ADDRESS$","RESERVED$$","SUB_DELIMS$$","IPRIVATE$$","ALPHA$$","DIGIT$$","AUTHORITY_REF$","USERINFO$","HOST$","PORT$","SAMEDOC_REF$","FRAGMENT$","ABSOLUTE_REF$","SCHEME$","PATH_ABEMPTY$","PATH_ABSOLUTE$","PATH_ROOTLESS$","PATH_EMPTY$","QUERY$","RELATIVE_REF$","PATH_NOSCHEME$","GENERIC_REF$","ABSOLUTE_URI$","HIER_PART$","URI_REFERENCE$","URI$","RELATIVE$","RELATIVE_PART$","AUTHORITY$","PCHAR$","PATH$","SEGMENT_NZ$","SEGMENT_NZ_NC$","SEGMENT$","IP_LITERAL$","REG_NAME$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","H16$","LS32$","DEC_OCTET_RELAXED$","DEC_OCTET$","UCSCHAR$$","GEN_DELIMS$$","SP$$","DQUOTE$$","CR$","obj","key","source","setInterval","call","prototype","o","Object","shift","sets"],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.min.d.ts b/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.min.d.ts new file mode 100644 index 00000000000000..320f53417f1e85 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.min.d.ts @@ -0,0 +1,59 @@ +export interface URIComponents { + scheme?: string; + userinfo?: string; + host?: string; + port?: number | string; + path?: string; + query?: string; + fragment?: string; + reference?: string; + error?: string; +} +export interface URIOptions { + scheme?: string; + reference?: string; + tolerant?: boolean; + absolutePath?: boolean; + iri?: boolean; + unicodeSupport?: boolean; + domainHost?: boolean; +} +export interface URISchemeHandler { + scheme: string; + parse(components: ParentComponents, options: Options): Components; + serialize(components: Components, options: Options): ParentComponents; + unicodeSupport?: boolean; + domainHost?: boolean; + absolutePath?: boolean; +} +export interface URIRegExps { + NOT_SCHEME: RegExp; + NOT_USERINFO: RegExp; + NOT_HOST: RegExp; + NOT_PATH: RegExp; + NOT_PATH_NOSCHEME: RegExp; + NOT_QUERY: RegExp; + NOT_FRAGMENT: RegExp; + ESCAPE: RegExp; + UNRESERVED: RegExp; + OTHER_CHARS: RegExp; + PCT_ENCODED: RegExp; + IPV4ADDRESS: RegExp; + IPV6ADDRESS: RegExp; +} +export declare const SCHEMES: { + [scheme: string]: URISchemeHandler; +}; +export declare function pctEncChar(chr: string): string; +export declare function pctDecChars(str: string): string; +export declare function parse(uriString: string, options?: URIOptions): URIComponents; +export declare function removeDotSegments(input: string): string; +export declare function serialize(components: URIComponents, options?: URIOptions): string; +export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents; +export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string; +export declare function normalize(uri: string, options?: URIOptions): string; +export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents; +export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean; +export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean; +export declare function escapeComponent(str: string, options?: URIOptions): string; +export declare function unescapeComponent(str: string, options?: URIOptions): string; diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.min.js b/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.min.js new file mode 100644 index 00000000000000..1b791ef7239290 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/es5/uri.all.min.js @@ -0,0 +1,3 @@ +/** @license URI.js v4.2.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ +!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r(e.URI=e.URI||{})}(this,function(e){"use strict";function r(){for(var e=arguments.length,r=Array(e),n=0;n1){r[0]=r[0].slice(0,-1);for(var t=r.length-1,o=1;o1&&(t=n[0]+"@",e=n[1]),e=e.replace(j,"."),t+f(e.split("."),r).join(".")}function p(e){for(var r=[],n=0,t=e.length;n=55296&&o<=56319&&n>6|192).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase():"%"+(r>>12|224).toString(16).toUpperCase()+"%"+(r>>6&63|128).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase()}function d(e){for(var r="",n=0,t=e.length;n=194&&o<224){if(t-n>=6){var a=parseInt(e.substr(n+4,2),16);r+=String.fromCharCode((31&o)<<6|63&a)}else r+=e.substr(n,6);n+=6}else if(o>=224){if(t-n>=9){var i=parseInt(e.substr(n+4,2),16),u=parseInt(e.substr(n+7,2),16);r+=String.fromCharCode((15&o)<<12|(63&i)<<6|63&u)}else r+=e.substr(n,9);n+=9}else r+=e.substr(n,3),n+=3}return r}function l(e,r){function n(e){var n=d(e);return n.match(r.UNRESERVED)?n:e}return e.scheme&&(e.scheme=String(e.scheme).replace(r.PCT_ENCODED,n).toLowerCase().replace(r.NOT_SCHEME,"")),e.userinfo!==undefined&&(e.userinfo=String(e.userinfo).replace(r.PCT_ENCODED,n).replace(r.NOT_USERINFO,h).replace(r.PCT_ENCODED,o)),e.host!==undefined&&(e.host=String(e.host).replace(r.PCT_ENCODED,n).toLowerCase().replace(r.NOT_HOST,h).replace(r.PCT_ENCODED,o)),e.path!==undefined&&(e.path=String(e.path).replace(r.PCT_ENCODED,n).replace(e.scheme?r.NOT_PATH:r.NOT_PATH_NOSCHEME,h).replace(r.PCT_ENCODED,o)),e.query!==undefined&&(e.query=String(e.query).replace(r.PCT_ENCODED,n).replace(r.NOT_QUERY,h).replace(r.PCT_ENCODED,o)),e.fragment!==undefined&&(e.fragment=String(e.fragment).replace(r.PCT_ENCODED,n).replace(r.NOT_FRAGMENT,h).replace(r.PCT_ENCODED,o)),e}function g(e){return e.replace(/^0*(.*)/,"$1")||"0"}function v(e,r){var n=e.match(r.IPV4ADDRESS)||[],t=R(n,2),o=t[1];return o?o.split(".").map(g).join("."):e}function m(e,r){var n=e.match(r.IPV6ADDRESS)||[],t=R(n,3),o=t[1],a=t[2];if(o){for(var i=o.toLowerCase().split("::").reverse(),u=R(i,2),s=u[0],f=u[1],c=f?f.split(":").map(g):[],p=s.split(":").map(g),h=r.IPV4ADDRESS.test(p[p.length-1]),d=h?7:8,l=p.length-d,m=Array(d),E=0;E1){var A=m.slice(0,y.index),D=m.slice(y.index+y.length);S=A.join(":")+"::"+D.join(":")}else S=m.join(":");return a&&(S+="%"+a),S}return e}function E(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n={},t=!1!==r.iri?N:F;"suffix"===r.reference&&(e=(r.scheme?r.scheme+":":"")+"//"+e);var o=e.match(J);if(o){K?(n.scheme=o[1],n.userinfo=o[3],n.host=o[4],n.port=parseInt(o[5],10),n.path=o[6]||"",n.query=o[7],n.fragment=o[8],isNaN(n.port)&&(n.port=o[5])):(n.scheme=o[1]||undefined,n.userinfo=-1!==e.indexOf("@")?o[3]:undefined,n.host=-1!==e.indexOf("//")?o[4]:undefined,n.port=parseInt(o[5],10),n.path=o[6]||"",n.query=-1!==e.indexOf("?")?o[7]:undefined,n.fragment=-1!==e.indexOf("#")?o[8]:undefined,isNaN(n.port)&&(n.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?o[4]:undefined)),n.host&&(n.host=m(v(n.host,t),t)),n.scheme!==undefined||n.userinfo!==undefined||n.host!==undefined||n.port!==undefined||n.path||n.query!==undefined?n.scheme===undefined?n.reference="relative":n.fragment===undefined?n.reference="absolute":n.reference="uri":n.reference="same-document",r.reference&&"suffix"!==r.reference&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");var a=B[(r.scheme||n.scheme||"").toLowerCase()];if(r.unicodeSupport||a&&a.unicodeSupport)l(n,t);else{if(n.host&&(r.domainHost||a&&a.domainHost))try{n.host=Y.toASCII(n.host.replace(t.PCT_ENCODED,d).toLowerCase())}catch(i){n.error=n.error||"Host's domain name can not be converted to ASCII via punycode: "+i}l(n,F)}a&&a.parse&&a.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}function C(e,r){var n=!1!==r.iri?N:F,t=[];return e.userinfo!==undefined&&(t.push(e.userinfo),t.push("@")),e.host!==undefined&&t.push(m(v(String(e.host),n),n).replace(n.IPV6ADDRESS,function(e,r,n){return"["+r+(n?"%25"+n:"")+"]"})),"number"==typeof e.port&&(t.push(":"),t.push(e.port.toString(10))),t.length?t.join(""):undefined}function y(e){for(var r=[];e.length;)if(e.match(W))e=e.replace(W,"");else if(e.match(X))e=e.replace(X,"/");else if(e.match(ee))e=e.replace(ee,"/"),r.pop();else if("."===e||".."===e)e="";else{var n=e.match(re);if(!n)throw new Error("Unexpected dot segment condition");var t=n[0];e=e.slice(t.length),r.push(t)}return r.join("")}function S(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n=r.iri?N:F,t=[],o=B[(r.scheme||e.scheme||"").toLowerCase()];if(o&&o.serialize&&o.serialize(e,r),e.host)if(n.IPV6ADDRESS.test(e.host));else if(r.domainHost||o&&o.domainHost)try{e.host=r.iri?Y.toUnicode(e.host):Y.toASCII(e.host.replace(n.PCT_ENCODED,d).toLowerCase())}catch(u){e.error=e.error||"Host's domain name can not be converted to "+(r.iri?"Unicode":"ASCII")+" via punycode: "+u}l(e,n),"suffix"!==r.reference&&e.scheme&&(t.push(e.scheme),t.push(":"));var a=C(e,r);if(a!==undefined&&("suffix"!==r.reference&&t.push("//"),t.push(a),e.path&&"/"!==e.path.charAt(0)&&t.push("/")),e.path!==undefined){var i=e.path;r.absolutePath||o&&o.absolutePath||(i=y(i)),a===undefined&&(i=i.replace(/^\/\//,"/%2F")),t.push(i)}return e.query!==undefined&&(t.push("?"),t.push(e.query)),e.fragment!==undefined&&(t.push("#"),t.push(e.fragment)),t.join("")}function A(e,r){var n=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{},t=arguments[3],o={};return t||(e=E(S(e,n),n),r=E(S(r,n),n)),n=n||{},!n.tolerant&&r.scheme?(o.scheme=r.scheme,o.userinfo=r.userinfo,o.host=r.host,o.port=r.port,o.path=y(r.path||""),o.query=r.query):(r.userinfo!==undefined||r.host!==undefined||r.port!==undefined?(o.userinfo=r.userinfo,o.host=r.host,o.port=r.port,o.path=y(r.path||""),o.query=r.query):(r.path?("/"===r.path.charAt(0)?o.path=y(r.path):(e.userinfo===undefined&&e.host===undefined&&e.port===undefined||e.path?e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+r.path:o.path=r.path:o.path="/"+r.path,o.path=y(o.path)),o.query=r.query):(o.path=e.path,r.query!==undefined?o.query=r.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=r.fragment,o}function D(e,r,n){var t=i({scheme:"null"},n);return S(A(E(e,t),E(r,t),t,!0),t)}function w(e,r){return"string"==typeof e?e=S(E(e,r),r):"object"===t(e)&&(e=E(S(e,r),r)),e}function b(e,r,n){return"string"==typeof e?e=S(E(e,n),n):"object"===t(e)&&(e=S(e,n)),"string"==typeof r?r=S(E(r,n),n):"object"===t(r)&&(r=S(r,n)),e===r}function x(e,r){return e&&e.toString().replace(r&&r.iri?N.ESCAPE:F.ESCAPE,h)}function O(e,r){return e&&e.toString().replace(r&&r.iri?N.PCT_ENCODED:F.PCT_ENCODED,d)}function I(e){var r=d(e);return r.match(fe)?r:e}var F=u(!1),N=u(!0),R=function(){function e(e,r){var n=[],t=!0,o=!1,a=undefined;try{for(var i,u=e[Symbol.iterator]();!(t=(i=u.next()).done)&&(n.push(i.value),!r||n.length!==r);t=!0);}catch(s){o=!0,a=s}finally{try{!t&&u["return"]&&u["return"]()}finally{if(o)throw a}}return n}return function(r,n){if(Array.isArray(r))return r;if(Symbol.iterator in Object(r))return e(r,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),T=function(e){if(Array.isArray(e)){for(var r=0,n=Array(e.length);r= 0x80 (not a basic code point)","invalid-input":"Invalid input"},H=Math.floor,z=String.fromCharCode,L=function(e){return String.fromCodePoint.apply(String,T(e))},$=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:36},M=function(e,r){return e+22+75*(e<26)-((0!=r)<<5)},V=function(e,r,n){var t=0;for(e=n?H(e/700):e>>1,e+=H(e/r);e>455;t+=36)e=H(e/35);return H(t+36*e/(e+38))},k=function(e){var r=[],n=e.length,t=0,o=128,a=72,i=e.lastIndexOf("-");i<0&&(i=0);for(var u=0;u=128&&s("not-basic"),r.push(e.charCodeAt(u));for(var f=i>0?i+1:0;f=n&&s("invalid-input");var d=$(e.charCodeAt(f++));(d>=36||d>H((_-t)/p))&&s("overflow"),t+=d*p;var l=h<=a?1:h>=a+26?26:h-a;if(dH(_/g)&&s("overflow"),p*=g}var v=r.length+1;a=V(t-c,v,0==c),H(t/v)>_-o&&s("overflow"),o+=H(t/v),t%=v,r.splice(t++,0,o)}return String.fromCodePoint.apply(String,r)},Z=function(e){var r=[];e=p(e);var n=e.length,t=128,o=0,a=72,i=!0,u=!1,f=undefined;try{for(var c,h=e[Symbol.iterator]();!(i=(c=h.next()).done);i=!0){var d=c.value;d<128&&r.push(z(d))}}catch(j){u=!0,f=j}finally{try{!i&&h["return"]&&h["return"]()}finally{if(u)throw f}}var l=r.length,g=l;for(l&&r.push("-");g=t&&AH((_-o)/D)&&s("overflow"),o+=(v-t)*D,t=v;var w=!0,b=!1,x=undefined;try{for(var O,I=e[Symbol.iterator]();!(w=(O=I.next()).done);w=!0){var F=O.value;if(F_&&s("overflow"),F==t){for(var N=o,R=36;;R+=36){var T=R<=a?1:R>=a+26?26:R-a;if(NA-Z\\x5E-\\x7E]",'[\\"\\\\]'),fe=new RegExp(ae,"g"),ce=new RegExp(ue,"g"),pe=new RegExp(r("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',se),"g"),he=new RegExp(r("[^]",ae,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),de=he,le={scheme:"mailto",parse:function(e,r){var n=e,t=n.to=n.path?n.path.split(","):[];if(n.path=undefined,n.query){for(var o=!1,a={},i=n.query.split("&"),u=0,s=i.length;u):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(components.port.toString(10));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (components.port === (String(components.scheme).toLowerCase() !== \"https\" ? 80 : 443) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/index.d.ts b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/index.d.ts new file mode 100644 index 00000000000000..be95efb268e774 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/index.d.ts @@ -0,0 +1 @@ +export * from "./uri"; diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/index.js b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/index.js new file mode 100644 index 00000000000000..de8868ff6879b6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/index.js @@ -0,0 +1,13 @@ +import { SCHEMES } from "./uri"; +import http from "./schemes/http"; +SCHEMES[http.scheme] = http; +import https from "./schemes/https"; +SCHEMES[https.scheme] = https; +import mailto from "./schemes/mailto"; +SCHEMES[mailto.scheme] = mailto; +import urn from "./schemes/urn"; +SCHEMES[urn.scheme] = urn; +import uuid from "./schemes/urn-uuid"; +SCHEMES[uuid.scheme] = uuid; +export * from "./uri"; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/index.js.map b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/index.js.map new file mode 100644 index 00000000000000..e9e400876a37e4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAE5B,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAE9B,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAEhC,OAAO,GAAG,MAAM,eAAe,CAAC;AAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;AAE1B,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAE5B,cAAc,OAAO,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-iri.d.ts b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-iri.d.ts new file mode 100644 index 00000000000000..6fc0f5dba28fc4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-iri.d.ts @@ -0,0 +1,3 @@ +import { URIRegExps } from "./uri"; +declare const _default: URIRegExps; +export default _default; diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-iri.js b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-iri.js new file mode 100644 index 00000000000000..86239cf38cb01c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-iri.js @@ -0,0 +1,3 @@ +import { buildExps } from "./regexps-uri"; +export default buildExps(true); +//# sourceMappingURL=regexps-iri.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-iri.js.map b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-iri.js.map new file mode 100644 index 00000000000000..2269c580c7449d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-iri.js.map @@ -0,0 +1 @@ +{"version":3,"file":"regexps-iri.js","sourceRoot":"","sources":["../../src/regexps-iri.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,eAAe,SAAS,CAAC,IAAI,CAAC,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-uri.d.ts b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-uri.d.ts new file mode 100644 index 00000000000000..10ec87bdf913a1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-uri.d.ts @@ -0,0 +1,4 @@ +import { URIRegExps } from "./uri"; +export declare function buildExps(isIRI: boolean): URIRegExps; +declare const _default: URIRegExps; +export default _default; diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-uri.js b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-uri.js new file mode 100644 index 00000000000000..6e7e9a0219fba1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-uri.js @@ -0,0 +1,42 @@ +import { merge, subexp } from "./util"; +export function buildExps(isIRI) { + const ALPHA$$ = "[A-Za-z]", CR$ = "[\\x0D]", DIGIT$$ = "[0-9]", DQUOTE$$ = "[\\x22]", HEXDIG$$ = merge(DIGIT$$, "[A-Fa-f]"), //case-insensitive + LF$$ = "[\\x0A]", SP$$ = "[\\x20]", PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)), //expanded + GEN_DELIMS$$ = "[\\:\\/\\?\\#\\[\\]\\@]", SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$), UCSCHAR$$ = isIRI ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]", //subset, excludes bidi control characters + IPRIVATE$$ = isIRI ? "[\\uE000-\\uF8FF]" : "[]", //subset + UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$), SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"), USERINFO$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]")) + "*"), DEC_OCTET$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("[1-9]" + DIGIT$$) + "|" + DIGIT$$), DEC_OCTET_RELAXED$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("0?[1-9]" + DIGIT$$) + "|0?0?" + DIGIT$$), //relaxed parsing rules + IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$), H16$ = subexp(HEXDIG$$ + "{1,4}"), LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$), IPV6ADDRESS1$ = subexp(subexp(H16$ + "\\:") + "{6}" + LS32$), // 6( h16 ":" ) ls32 + IPV6ADDRESS2$ = subexp("\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$), // "::" 5( h16 ":" ) ls32 + IPV6ADDRESS3$ = subexp(subexp(H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$), //[ h16 ] "::" 4( h16 ":" ) ls32 + IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$), //[ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32 + IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$), //[ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32 + IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$), //[ *3( h16 ":" ) h16 ] "::" h16 ":" ls32 + IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$), //[ *4( h16 ":" ) h16 ] "::" ls32 + IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$), //[ *5( h16 ":" ) h16 ] "::" h16 + IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:"), //[ *6( h16 ":" ) h16 ] "::" + IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join("|")), ZONEID$ = subexp(subexp(UNRESERVED$$ + "|" + PCT_ENCODED$) + "+"), //RFC 6874 + IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$), //RFC 6874 + IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + ZONEID$), //RFC 6874, with relaxed parsing rules + IPVFUTURE$ = subexp("[vV]" + HEXDIG$$ + "+\\." + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]") + "+"), IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"), //RFC 6874 + REG_NAME$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$)) + "*"), HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")" + "|" + REG_NAME$), PORT$ = subexp(DIGIT$$ + "*"), AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"), PCHAR$ = subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@]")), SEGMENT$ = subexp(PCHAR$ + "*"), SEGMENT_NZ$ = subexp(PCHAR$ + "+"), SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\@]")) + "+"), PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"), PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"), //simplified + PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified + PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified + PATH_EMPTY$ = "(?!" + PCHAR$ + ")", PATH$ = subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), QUERY$ = subexp(subexp(PCHAR$ + "|" + merge("[\\/\\?]", IPRIVATE$$)) + "*"), FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"), HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$), RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), URI_REFERENCE$ = subexp(URI$ + "|" + RELATIVE$), ABSOLUTE_URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"), GENERIC_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", RELATIVE_REF$ = "^(){0}" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", ABSOLUTE_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?$", SAMEDOC_REF$ = "^" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", AUTHORITY_REF$ = "^" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?$"; + return { + NOT_SCHEME: new RegExp(merge("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"), + NOT_USERINFO: new RegExp(merge("[^\\%\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_HOST: new RegExp(merge("[^\\%\\[\\]\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_PATH: new RegExp(merge("[^\\%\\/\\:\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_PATH_NOSCHEME: new RegExp(merge("[^\\%\\/\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_QUERY: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"), + NOT_FRAGMENT: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"), + ESCAPE: new RegExp(merge("[^]", UNRESERVED$$, SUB_DELIMS$$), "g"), + UNRESERVED: new RegExp(UNRESERVED$$, "g"), + OTHER_CHARS: new RegExp(merge("[^\\%]", UNRESERVED$$, RESERVED$$), "g"), + PCT_ENCODED: new RegExp(PCT_ENCODED$, "g"), + IPV4ADDRESS: new RegExp("^(" + IPV4ADDRESS$ + ")$"), + IPV6ADDRESS: new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$") //RFC 6874, with relaxed parsing rules + }; +} +export default buildExps(false); +//# sourceMappingURL=regexps-uri.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-uri.js.map b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-uri.js.map new file mode 100644 index 00000000000000..cb028b804e3d5e --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/regexps-uri.js.map @@ -0,0 +1 @@ +{"version":3,"file":"regexps-uri.js","sourceRoot":"","sources":["../../src/regexps-uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/http.d.ts b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/http.d.ts new file mode 100644 index 00000000000000..3899956970e5a0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/http.d.ts @@ -0,0 +1,3 @@ +import { URISchemeHandler } from "../uri"; +declare const handler: URISchemeHandler; +export default handler; diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/http.js b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/http.js new file mode 100644 index 00000000000000..a280369881c130 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/http.js @@ -0,0 +1,27 @@ +const handler = { + scheme: "http", + domainHost: true, + parse: function (components, options) { + //report missing host + if (!components.host) { + components.error = components.error || "HTTP URIs must have a host."; + } + return components; + }, + serialize: function (components, options) { + //normalize the default port + if (components.port === (String(components.scheme).toLowerCase() !== "https" ? 80 : 443) || components.port === "") { + components.port = undefined; + } + //normalize the empty path + if (!components.path) { + components.path = "/"; + } + //NOTE: We do not parse query strings for HTTP URIs + //as WWW Form Url Encoded query strings are part of the HTML4+ spec, + //and not the HTTP spec. + return components; + } +}; +export default handler; +//# sourceMappingURL=http.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/http.js.map b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/http.js.map new file mode 100644 index 00000000000000..83e2ad54e41403 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/http.js.map @@ -0,0 +1 @@ +{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/schemes/http.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAoB;IAChC,MAAM,EAAG,MAAM;IAEf,UAAU,EAAG,IAAI;IAEjB,KAAK,EAAG,UAAU,UAAwB,EAAE,OAAkB;QAC7D,qBAAqB;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YACrB,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,6BAA6B,CAAC;SACrE;QAED,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,SAAS,EAAG,UAAU,UAAwB,EAAE,OAAkB;QACjE,4BAA4B;QAC5B,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,EAAE,EAAE;YACnH,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC;SAC5B;QAED,0BAA0B;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YACrB,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;SACtB;QAED,mDAAmD;QACnD,oEAAoE;QACpE,wBAAwB;QAExB,OAAO,UAAU,CAAC;IACnB,CAAC;CACD,CAAC;AAEF,eAAe,OAAO,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/https.d.ts b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/https.d.ts new file mode 100644 index 00000000000000..3899956970e5a0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/https.d.ts @@ -0,0 +1,3 @@ +import { URISchemeHandler } from "../uri"; +declare const handler: URISchemeHandler; +export default handler; diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/https.js b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/https.js new file mode 100644 index 00000000000000..fc3c71a6c2847c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/https.js @@ -0,0 +1,9 @@ +import http from "./http"; +const handler = { + scheme: "https", + domainHost: http.domainHost, + parse: http.parse, + serialize: http.serialize +}; +export default handler; +//# sourceMappingURL=https.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/https.js.map b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/https.js.map new file mode 100644 index 00000000000000..385b8efeaa0366 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/https.js.map @@ -0,0 +1 @@ +{"version":3,"file":"https.js","sourceRoot":"","sources":["../../../src/schemes/https.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,MAAM,OAAO,GAAoB;IAChC,MAAM,EAAG,OAAO;IAChB,UAAU,EAAG,IAAI,CAAC,UAAU;IAC5B,KAAK,EAAG,IAAI,CAAC,KAAK;IAClB,SAAS,EAAG,IAAI,CAAC,SAAS;CAC1B,CAAA;AAED,eAAe,OAAO,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts new file mode 100644 index 00000000000000..b0db4bfc1a5e01 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts @@ -0,0 +1,12 @@ +import { URISchemeHandler, URIComponents } from "../uri"; +export interface MailtoHeaders { + [hfname: string]: string; +} +export interface MailtoComponents extends URIComponents { + to: Array; + headers?: MailtoHeaders; + subject?: string; + body?: string; +} +declare const handler: URISchemeHandler; +export default handler; diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/mailto.js b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/mailto.js new file mode 100644 index 00000000000000..2553713cde8c8b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/mailto.js @@ -0,0 +1,148 @@ +import { pctEncChar, pctDecChars, unescapeComponent } from "../uri"; +import punycode from "punycode"; +import { merge, subexp, toUpperCase, toArray } from "../util"; +const O = {}; +const isIRI = true; +//RFC 3986 +const UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + (isIRI ? "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" : "") + "]"; +const HEXDIG$$ = "[0-9A-Fa-f]"; //case-insensitive +const PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)); //expanded +//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; = +//const ATEXT$$ = "[A-Za-z0-9\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]"; +//const WSP$$ = "[\\x20\\x09]"; +//const OBS_QTEXT$$ = "[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]"; //(%d1-8 / %d11-12 / %d14-31 / %d127) +//const QTEXT$$ = merge("[\\x21\\x23-\\x5B\\x5D-\\x7E]", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext +//const VCHAR$$ = "[\\x21-\\x7E]"; +//const WSP$$ = "[\\x20\\x09]"; +//const OBS_QP$ = subexp("\\\\" + merge("[\\x00\\x0D\\x0A]", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext +//const FWS$ = subexp(subexp(WSP$$ + "*" + "\\x0D\\x0A") + "?" + WSP$$ + "+"); +//const QUOTED_PAIR$ = subexp(subexp("\\\\" + subexp(VCHAR$$ + "|" + WSP$$)) + "|" + OBS_QP$); +//const QUOTED_STRING$ = subexp('\\"' + subexp(FWS$ + "?" + QCONTENT$) + "*" + FWS$ + "?" + '\\"'); +const ATEXT$$ = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]"; +const QTEXT$$ = "[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]"; +const VCHAR$$ = merge(QTEXT$$, "[\\\"\\\\]"); +const DOT_ATOM_TEXT$ = subexp(ATEXT$$ + "+" + subexp("\\." + ATEXT$$ + "+") + "*"); +const QUOTED_PAIR$ = subexp("\\\\" + VCHAR$$); +const QCONTENT$ = subexp(QTEXT$$ + "|" + QUOTED_PAIR$); +const QUOTED_STRING$ = subexp('\\"' + QCONTENT$ + "*" + '\\"'); +//RFC 6068 +const DTEXT_NO_OBS$$ = "[\\x21-\\x5A\\x5E-\\x7E]"; //%d33-90 / %d94-126 +const SOME_DELIMS$$ = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"; +const QCHAR$ = subexp(UNRESERVED$$ + "|" + PCT_ENCODED$ + "|" + SOME_DELIMS$$); +const DOMAIN$ = subexp(DOT_ATOM_TEXT$ + "|" + "\\[" + DTEXT_NO_OBS$$ + "*" + "\\]"); +const LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + "|" + QUOTED_STRING$); +const ADDR_SPEC$ = subexp(LOCAL_PART$ + "\\@" + DOMAIN$); +const TO$ = subexp(ADDR_SPEC$ + subexp("\\," + ADDR_SPEC$) + "*"); +const HFNAME$ = subexp(QCHAR$ + "*"); +const HFVALUE$ = HFNAME$; +const HFIELD$ = subexp(HFNAME$ + "\\=" + HFVALUE$); +const HFIELDS2$ = subexp(HFIELD$ + subexp("\\&" + HFIELD$) + "*"); +const HFIELDS$ = subexp("\\?" + HFIELDS2$); +const MAILTO_URI = new RegExp("^mailto\\:" + TO$ + "?" + HFIELDS$ + "?$"); +const UNRESERVED = new RegExp(UNRESERVED$$, "g"); +const PCT_ENCODED = new RegExp(PCT_ENCODED$, "g"); +const NOT_LOCAL_PART = new RegExp(merge("[^]", ATEXT$$, "[\\.]", '[\\"]', VCHAR$$), "g"); +const NOT_DOMAIN = new RegExp(merge("[^]", ATEXT$$, "[\\.]", "[\\[]", DTEXT_NO_OBS$$, "[\\]]"), "g"); +const NOT_HFNAME = new RegExp(merge("[^]", UNRESERVED$$, SOME_DELIMS$$), "g"); +const NOT_HFVALUE = NOT_HFNAME; +const TO = new RegExp("^" + TO$ + "$"); +const HFIELDS = new RegExp("^" + HFIELDS2$ + "$"); +function decodeUnreserved(str) { + const decStr = pctDecChars(str); + return (!decStr.match(UNRESERVED) ? str : decStr); +} +const handler = { + scheme: "mailto", + parse: function (components, options) { + const mailtoComponents = components; + const to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(",") : []); + mailtoComponents.path = undefined; + if (mailtoComponents.query) { + let unknownHeaders = false; + const headers = {}; + const hfields = mailtoComponents.query.split("&"); + for (let x = 0, xl = hfields.length; x < xl; ++x) { + const hfield = hfields[x].split("="); + switch (hfield[0]) { + case "to": + const toAddrs = hfield[1].split(","); + for (let x = 0, xl = toAddrs.length; x < xl; ++x) { + to.push(toAddrs[x]); + } + break; + case "subject": + mailtoComponents.subject = unescapeComponent(hfield[1], options); + break; + case "body": + mailtoComponents.body = unescapeComponent(hfield[1], options); + break; + default: + unknownHeaders = true; + headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options); + break; + } + } + if (unknownHeaders) + mailtoComponents.headers = headers; + } + mailtoComponents.query = undefined; + for (let x = 0, xl = to.length; x < xl; ++x) { + const addr = to[x].split("@"); + addr[0] = unescapeComponent(addr[0]); + if (!options.unicodeSupport) { + //convert Unicode IDN -> ASCII IDN + try { + addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase()); + } + catch (e) { + mailtoComponents.error = mailtoComponents.error || "Email address's domain name can not be converted to ASCII via punycode: " + e; + } + } + else { + addr[1] = unescapeComponent(addr[1], options).toLowerCase(); + } + to[x] = addr.join("@"); + } + return mailtoComponents; + }, + serialize: function (mailtoComponents, options) { + const components = mailtoComponents; + const to = toArray(mailtoComponents.to); + if (to) { + for (let x = 0, xl = to.length; x < xl; ++x) { + const toAddr = String(to[x]); + const atIdx = toAddr.lastIndexOf("@"); + const localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar); + let domain = toAddr.slice(atIdx + 1); + //convert IDN via punycode + try { + domain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain)); + } + catch (e) { + components.error = components.error || "Email address's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e; + } + to[x] = localPart + "@" + domain; + } + components.path = to.join(","); + } + const headers = mailtoComponents.headers = mailtoComponents.headers || {}; + if (mailtoComponents.subject) + headers["subject"] = mailtoComponents.subject; + if (mailtoComponents.body) + headers["body"] = mailtoComponents.body; + const fields = []; + for (const name in headers) { + if (headers[name] !== O[name]) { + fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + + "=" + + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)); + } + } + if (fields.length) { + components.query = fields.join("&"); + } + return components; + } +}; +export default handler; +//# sourceMappingURL=mailto.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/mailto.js.map b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/mailto.js.map new file mode 100644 index 00000000000000..82dba9a1612b09 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/mailto.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mailto.js","sourceRoot":"","sources":["../../../src/schemes/mailto.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts new file mode 100644 index 00000000000000..261ddcea665a5c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts @@ -0,0 +1,7 @@ +import { URISchemeHandler, URIOptions } from "../uri"; +import { URNComponents } from "./urn"; +export interface UUIDComponents extends URNComponents { + uuid?: string; +} +declare const handler: URISchemeHandler; +export default handler; diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js new file mode 100644 index 00000000000000..044c8a80daa6df --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js @@ -0,0 +1,23 @@ +const UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/; +const UUID_PARSE = /^[0-9A-Fa-f\-]{36}/; +//RFC 4122 +const handler = { + scheme: "urn:uuid", + parse: function (urnComponents, options) { + const uuidComponents = urnComponents; + uuidComponents.uuid = uuidComponents.nss; + uuidComponents.nss = undefined; + if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) { + uuidComponents.error = uuidComponents.error || "UUID is not valid."; + } + return uuidComponents; + }, + serialize: function (uuidComponents, options) { + const urnComponents = uuidComponents; + //normalize UUID + urnComponents.nss = (uuidComponents.uuid || "").toLowerCase(); + return urnComponents; + }, +}; +export default handler; +//# sourceMappingURL=urn-uuid.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map new file mode 100644 index 00000000000000..3b7a8b3ae607c8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map @@ -0,0 +1 @@ +{"version":3,"file":"urn-uuid.js","sourceRoot":"","sources":["../../../src/schemes/urn-uuid.ts"],"names":[],"mappings":"AAQA,MAAM,IAAI,GAAG,0DAA0D,CAAC;AACxE,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,UAAU;AACV,MAAM,OAAO,GAA+D;IAC3E,MAAM,EAAG,UAAU;IAEnB,KAAK,EAAG,UAAU,aAA2B,EAAE,OAAkB;QAChE,MAAM,cAAc,GAAG,aAA+B,CAAC;QACvD,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC;QACzC,cAAc,CAAC,GAAG,GAAG,SAAS,CAAC;QAE/B,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;YACpF,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,IAAI,oBAAoB,CAAC;SACpE;QAED,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,SAAS,EAAG,UAAU,cAA6B,EAAE,OAAkB;QACtE,MAAM,aAAa,GAAG,cAA+B,CAAC;QACtD,gBAAgB;QAChB,aAAa,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9D,OAAO,aAAa,CAAC;IACtB,CAAC;CACD,CAAC;AAEF,eAAe,OAAO,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn.d.ts b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn.d.ts new file mode 100644 index 00000000000000..49481055adffa2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn.d.ts @@ -0,0 +1,10 @@ +import { URISchemeHandler, URIComponents, URIOptions } from "../uri"; +export interface URNComponents extends URIComponents { + nid?: string; + nss?: string; +} +export interface URNOptions extends URIOptions { + nid?: string; +} +declare const handler: URISchemeHandler; +export default handler; diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn.js b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn.js new file mode 100644 index 00000000000000..b53161c2eece14 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn.js @@ -0,0 +1,49 @@ +import { SCHEMES } from "../uri"; +const NID$ = "(?:[0-9A-Za-z][0-9A-Za-z\\-]{1,31})"; +const PCT_ENCODED$ = "(?:\\%[0-9A-Fa-f]{2})"; +const TRANS$$ = "[0-9A-Za-z\\(\\)\\+\\,\\-\\.\\:\\=\\@\\;\\$\\_\\!\\*\\'\\/\\?\\#]"; +const NSS$ = "(?:(?:" + PCT_ENCODED$ + "|" + TRANS$$ + ")+)"; +const URN_SCHEME = new RegExp("^urn\\:(" + NID$ + ")$"); +const URN_PATH = new RegExp("^(" + NID$ + ")\\:(" + NSS$ + ")$"); +const URN_PARSE = /^([^\:]+)\:(.*)/; +const URN_EXCLUDED = /[\x00-\x20\\\"\&\<\>\[\]\^\`\{\|\}\~\x7F-\xFF]/g; +//RFC 2141 +const handler = { + scheme: "urn", + parse: function (components, options) { + const matches = components.path && components.path.match(URN_PARSE); + let urnComponents = components; + if (matches) { + const scheme = options.scheme || urnComponents.scheme || "urn"; + const nid = matches[1].toLowerCase(); + const nss = matches[2]; + const urnScheme = `${scheme}:${options.nid || nid}`; + const schemeHandler = SCHEMES[urnScheme]; + urnComponents.nid = nid; + urnComponents.nss = nss; + urnComponents.path = undefined; + if (schemeHandler) { + urnComponents = schemeHandler.parse(urnComponents, options); + } + } + else { + urnComponents.error = urnComponents.error || "URN can not be parsed."; + } + return urnComponents; + }, + serialize: function (urnComponents, options) { + const scheme = options.scheme || urnComponents.scheme || "urn"; + const nid = urnComponents.nid; + const urnScheme = `${scheme}:${options.nid || nid}`; + const schemeHandler = SCHEMES[urnScheme]; + if (schemeHandler) { + urnComponents = schemeHandler.serialize(urnComponents, options); + } + const uriComponents = urnComponents; + const nss = urnComponents.nss; + uriComponents.path = `${nid || options.nid}:${nss}`; + return uriComponents; + }, +}; +export default handler; +//# sourceMappingURL=urn.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn.js.map b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn.js.map new file mode 100644 index 00000000000000..ea43b0bebc3a0b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/schemes/urn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"urn.js","sourceRoot":"","sources":["../../../src/schemes/urn.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,OAAO,EAAE,MAAM,QAAQ,CAAC;AAW7C,MAAM,IAAI,GAAG,qCAAqC,CAAC;AACnD,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAC7C,MAAM,OAAO,GAAG,mEAAmE,CAAC;AACpF,MAAM,IAAI,GAAG,QAAQ,GAAG,YAAY,GAAG,GAAG,GAAG,OAAO,GAAG,KAAK,CAAC;AAC7D,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AACxD,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AACjE,MAAM,SAAS,GAAG,iBAAiB,CAAC;AACpC,MAAM,YAAY,GAAG,iDAAiD,CAAC;AAEvE,UAAU;AACV,MAAM,OAAO,GAA8C;IAC1D,MAAM,EAAG,KAAK;IAEd,KAAK,EAAG,UAAU,UAAwB,EAAE,OAAkB;QAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,aAAa,GAAG,UAA2B,CAAC;QAEhD,IAAI,OAAO,EAAE;YACZ,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,IAAI,KAAK,CAAC;YAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;YACpD,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAEzC,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;YACxB,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;YACxB,aAAa,CAAC,IAAI,GAAG,SAAS,CAAC;YAE/B,IAAI,aAAa,EAAE;gBAClB,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAkB,CAAC;aAC7E;SACD;aAAM;YACN,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,IAAI,wBAAwB,CAAC;SACtE;QAED,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,SAAS,EAAG,UAAU,aAA2B,EAAE,OAAkB;QACpE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,IAAI,KAAK,CAAC;QAC/D,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;QAC9B,MAAM,SAAS,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,aAAa,EAAE;YAClB,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAkB,CAAC;SACjF;QAED,MAAM,aAAa,GAAG,aAA8B,CAAC;QACrD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;QAC9B,aAAa,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;QAEpD,OAAO,aAAa,CAAC;IACtB,CAAC;CACD,CAAC;AAEF,eAAe,OAAO,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/uri.d.ts b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/uri.d.ts new file mode 100644 index 00000000000000..320f53417f1e85 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/uri.d.ts @@ -0,0 +1,59 @@ +export interface URIComponents { + scheme?: string; + userinfo?: string; + host?: string; + port?: number | string; + path?: string; + query?: string; + fragment?: string; + reference?: string; + error?: string; +} +export interface URIOptions { + scheme?: string; + reference?: string; + tolerant?: boolean; + absolutePath?: boolean; + iri?: boolean; + unicodeSupport?: boolean; + domainHost?: boolean; +} +export interface URISchemeHandler { + scheme: string; + parse(components: ParentComponents, options: Options): Components; + serialize(components: Components, options: Options): ParentComponents; + unicodeSupport?: boolean; + domainHost?: boolean; + absolutePath?: boolean; +} +export interface URIRegExps { + NOT_SCHEME: RegExp; + NOT_USERINFO: RegExp; + NOT_HOST: RegExp; + NOT_PATH: RegExp; + NOT_PATH_NOSCHEME: RegExp; + NOT_QUERY: RegExp; + NOT_FRAGMENT: RegExp; + ESCAPE: RegExp; + UNRESERVED: RegExp; + OTHER_CHARS: RegExp; + PCT_ENCODED: RegExp; + IPV4ADDRESS: RegExp; + IPV6ADDRESS: RegExp; +} +export declare const SCHEMES: { + [scheme: string]: URISchemeHandler; +}; +export declare function pctEncChar(chr: string): string; +export declare function pctDecChars(str: string): string; +export declare function parse(uriString: string, options?: URIOptions): URIComponents; +export declare function removeDotSegments(input: string): string; +export declare function serialize(components: URIComponents, options?: URIOptions): string; +export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents; +export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string; +export declare function normalize(uri: string, options?: URIOptions): string; +export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents; +export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean; +export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean; +export declare function escapeComponent(str: string, options?: URIOptions): string; +export declare function unescapeComponent(str: string, options?: URIOptions): string; diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/uri.js b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/uri.js new file mode 100644 index 00000000000000..2fb6d713e3a587 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/uri.js @@ -0,0 +1,480 @@ +/** + * URI.js + * + * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript. + * @author Gary Court + * @see http://github.com/garycourt/uri-js + */ +/** + * Copyright 2011 Gary Court. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of Gary Court. + */ +import URI_PROTOCOL from "./regexps-uri"; +import IRI_PROTOCOL from "./regexps-iri"; +import punycode from "punycode"; +import { toUpperCase, typeOf, assign } from "./util"; +export const SCHEMES = {}; +export function pctEncChar(chr) { + const c = chr.charCodeAt(0); + let e; + if (c < 16) + e = "%0" + c.toString(16).toUpperCase(); + else if (c < 128) + e = "%" + c.toString(16).toUpperCase(); + else if (c < 2048) + e = "%" + ((c >> 6) | 192).toString(16).toUpperCase() + "%" + ((c & 63) | 128).toString(16).toUpperCase(); + else + e = "%" + ((c >> 12) | 224).toString(16).toUpperCase() + "%" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + "%" + ((c & 63) | 128).toString(16).toUpperCase(); + return e; +} +export function pctDecChars(str) { + let newStr = ""; + let i = 0; + const il = str.length; + while (i < il) { + const c = parseInt(str.substr(i + 1, 2), 16); + if (c < 128) { + newStr += String.fromCharCode(c); + i += 3; + } + else if (c >= 194 && c < 224) { + if ((il - i) >= 6) { + const c2 = parseInt(str.substr(i + 4, 2), 16); + newStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); + } + else { + newStr += str.substr(i, 6); + } + i += 6; + } + else if (c >= 224) { + if ((il - i) >= 9) { + const c2 = parseInt(str.substr(i + 4, 2), 16); + const c3 = parseInt(str.substr(i + 7, 2), 16); + newStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); + } + else { + newStr += str.substr(i, 9); + } + i += 9; + } + else { + newStr += str.substr(i, 3); + i += 3; + } + } + return newStr; +} +function _normalizeComponentEncoding(components, protocol) { + function decodeUnreserved(str) { + const decStr = pctDecChars(str); + return (!decStr.match(protocol.UNRESERVED) ? str : decStr); + } + if (components.scheme) + components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, ""); + if (components.userinfo !== undefined) + components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + if (components.host !== undefined) + components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + if (components.path !== undefined) + components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + if (components.query !== undefined) + components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + if (components.fragment !== undefined) + components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + return components; +} +; +function _stripLeadingZeros(str) { + return str.replace(/^0*(.*)/, "$1") || "0"; +} +function _normalizeIPv4(host, protocol) { + const matches = host.match(protocol.IPV4ADDRESS) || []; + const [, address] = matches; + if (address) { + return address.split(".").map(_stripLeadingZeros).join("."); + } + else { + return host; + } +} +function _normalizeIPv6(host, protocol) { + const matches = host.match(protocol.IPV6ADDRESS) || []; + const [, address, zone] = matches; + if (address) { + const [last, first] = address.toLowerCase().split('::').reverse(); + const firstFields = first ? first.split(":").map(_stripLeadingZeros) : []; + const lastFields = last.split(":").map(_stripLeadingZeros); + const isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]); + const fieldCount = isLastFieldIPv4Address ? 7 : 8; + const lastFieldsStart = lastFields.length - fieldCount; + const fields = Array(fieldCount); + for (let x = 0; x < fieldCount; ++x) { + fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || ''; + } + if (isLastFieldIPv4Address) { + fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol); + } + const allZeroFields = fields.reduce((acc, field, index) => { + if (!field || field === "0") { + const lastLongest = acc[acc.length - 1]; + if (lastLongest && lastLongest.index + lastLongest.length === index) { + lastLongest.length++; + } + else { + acc.push({ index, length: 1 }); + } + } + return acc; + }, []); + const longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0]; + let newHost; + if (longestZeroFields && longestZeroFields.length > 1) { + const newFirst = fields.slice(0, longestZeroFields.index); + const newLast = fields.slice(longestZeroFields.index + longestZeroFields.length); + newHost = newFirst.join(":") + "::" + newLast.join(":"); + } + else { + newHost = fields.join(":"); + } + if (zone) { + newHost += "%" + zone; + } + return newHost; + } + else { + return host; + } +} +const URI_PARSE = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i; +const NO_MATCH_IS_UNDEFINED = ("").match(/(){0}/)[1] === undefined; +export function parse(uriString, options = {}) { + const components = {}; + const protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL); + if (options.reference === "suffix") + uriString = (options.scheme ? options.scheme + ":" : "") + "//" + uriString; + const matches = uriString.match(URI_PARSE); + if (matches) { + if (NO_MATCH_IS_UNDEFINED) { + //store each component + components.scheme = matches[1]; + components.userinfo = matches[3]; + components.host = matches[4]; + components.port = parseInt(matches[5], 10); + components.path = matches[6] || ""; + components.query = matches[7]; + components.fragment = matches[8]; + //fix port number + if (isNaN(components.port)) { + components.port = matches[5]; + } + } + else { //IE FIX for improper RegExp matching + //store each component + components.scheme = matches[1] || undefined; + components.userinfo = (uriString.indexOf("@") !== -1 ? matches[3] : undefined); + components.host = (uriString.indexOf("//") !== -1 ? matches[4] : undefined); + components.port = parseInt(matches[5], 10); + components.path = matches[6] || ""; + components.query = (uriString.indexOf("?") !== -1 ? matches[7] : undefined); + components.fragment = (uriString.indexOf("#") !== -1 ? matches[8] : undefined); + //fix port number + if (isNaN(components.port)) { + components.port = (uriString.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? matches[4] : undefined); + } + } + if (components.host) { + //normalize IP hosts + components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol); + } + //determine reference type + if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) { + components.reference = "same-document"; + } + else if (components.scheme === undefined) { + components.reference = "relative"; + } + else if (components.fragment === undefined) { + components.reference = "absolute"; + } + else { + components.reference = "uri"; + } + //check for reference errors + if (options.reference && options.reference !== "suffix" && options.reference !== components.reference) { + components.error = components.error || "URI is not a " + options.reference + " reference."; + } + //find scheme handler + const schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()]; + //check if scheme can't handle IRIs + if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) { + //if host component is a domain name + if (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) { + //convert Unicode IDN -> ASCII IDN + try { + components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()); + } + catch (e) { + components.error = components.error || "Host's domain name can not be converted to ASCII via punycode: " + e; + } + } + //convert IRI -> URI + _normalizeComponentEncoding(components, URI_PROTOCOL); + } + else { + //normalize encodings + _normalizeComponentEncoding(components, protocol); + } + //perform scheme specific parsing + if (schemeHandler && schemeHandler.parse) { + schemeHandler.parse(components, options); + } + } + else { + components.error = components.error || "URI can not be parsed."; + } + return components; +} +; +function _recomposeAuthority(components, options) { + const protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL); + const uriTokens = []; + if (components.userinfo !== undefined) { + uriTokens.push(components.userinfo); + uriTokens.push("@"); + } + if (components.host !== undefined) { + //normalize IP hosts, add brackets and escape zone separator for IPv6 + uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => "[" + $1 + ($2 ? "%25" + $2 : "") + "]")); + } + if (typeof components.port === "number") { + uriTokens.push(":"); + uriTokens.push(components.port.toString(10)); + } + return uriTokens.length ? uriTokens.join("") : undefined; +} +; +const RDS1 = /^\.\.?\//; +const RDS2 = /^\/\.(\/|$)/; +const RDS3 = /^\/\.\.(\/|$)/; +const RDS4 = /^\.\.?$/; +const RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/; +export function removeDotSegments(input) { + const output = []; + while (input.length) { + if (input.match(RDS1)) { + input = input.replace(RDS1, ""); + } + else if (input.match(RDS2)) { + input = input.replace(RDS2, "/"); + } + else if (input.match(RDS3)) { + input = input.replace(RDS3, "/"); + output.pop(); + } + else if (input === "." || input === "..") { + input = ""; + } + else { + const im = input.match(RDS5); + if (im) { + const s = im[0]; + input = input.slice(s.length); + output.push(s); + } + else { + throw new Error("Unexpected dot segment condition"); + } + } + } + return output.join(""); +} +; +export function serialize(components, options = {}) { + const protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL); + const uriTokens = []; + //find scheme handler + const schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()]; + //perform scheme specific serialization + if (schemeHandler && schemeHandler.serialize) + schemeHandler.serialize(components, options); + if (components.host) { + //if host component is an IPv6 address + if (protocol.IPV6ADDRESS.test(components.host)) { + //TODO: normalize IPv6 address as per RFC 5952 + } + //if host component is a domain name + else if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) { + //convert IDN via punycode + try { + components.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host)); + } + catch (e) { + components.error = components.error || "Host's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e; + } + } + } + //normalize encoding + _normalizeComponentEncoding(components, protocol); + if (options.reference !== "suffix" && components.scheme) { + uriTokens.push(components.scheme); + uriTokens.push(":"); + } + const authority = _recomposeAuthority(components, options); + if (authority !== undefined) { + if (options.reference !== "suffix") { + uriTokens.push("//"); + } + uriTokens.push(authority); + if (components.path && components.path.charAt(0) !== "/") { + uriTokens.push("/"); + } + } + if (components.path !== undefined) { + let s = components.path; + if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) { + s = removeDotSegments(s); + } + if (authority === undefined) { + s = s.replace(/^\/\//, "/%2F"); //don't allow the path to start with "//" + } + uriTokens.push(s); + } + if (components.query !== undefined) { + uriTokens.push("?"); + uriTokens.push(components.query); + } + if (components.fragment !== undefined) { + uriTokens.push("#"); + uriTokens.push(components.fragment); + } + return uriTokens.join(""); //merge tokens into a string +} +; +export function resolveComponents(base, relative, options = {}, skipNormalization) { + const target = {}; + if (!skipNormalization) { + base = parse(serialize(base, options), options); //normalize base components + relative = parse(serialize(relative, options), options); //normalize relative components + } + options = options || {}; + if (!options.tolerant && relative.scheme) { + target.scheme = relative.scheme; + //target.authority = relative.authority; + target.userinfo = relative.userinfo; + target.host = relative.host; + target.port = relative.port; + target.path = removeDotSegments(relative.path || ""); + target.query = relative.query; + } + else { + if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) { + //target.authority = relative.authority; + target.userinfo = relative.userinfo; + target.host = relative.host; + target.port = relative.port; + target.path = removeDotSegments(relative.path || ""); + target.query = relative.query; + } + else { + if (!relative.path) { + target.path = base.path; + if (relative.query !== undefined) { + target.query = relative.query; + } + else { + target.query = base.query; + } + } + else { + if (relative.path.charAt(0) === "/") { + target.path = removeDotSegments(relative.path); + } + else { + if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) { + target.path = "/" + relative.path; + } + else if (!base.path) { + target.path = relative.path; + } + else { + target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative.path; + } + target.path = removeDotSegments(target.path); + } + target.query = relative.query; + } + //target.authority = base.authority; + target.userinfo = base.userinfo; + target.host = base.host; + target.port = base.port; + } + target.scheme = base.scheme; + } + target.fragment = relative.fragment; + return target; +} +; +export function resolve(baseURI, relativeURI, options) { + const schemelessOptions = assign({ scheme: 'null' }, options); + return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions); +} +; +export function normalize(uri, options) { + if (typeof uri === "string") { + uri = serialize(parse(uri, options), options); + } + else if (typeOf(uri) === "object") { + uri = parse(serialize(uri, options), options); + } + return uri; +} +; +export function equal(uriA, uriB, options) { + if (typeof uriA === "string") { + uriA = serialize(parse(uriA, options), options); + } + else if (typeOf(uriA) === "object") { + uriA = serialize(uriA, options); + } + if (typeof uriB === "string") { + uriB = serialize(parse(uriB, options), options); + } + else if (typeOf(uriB) === "object") { + uriB = serialize(uriB, options); + } + return uriA === uriB; +} +; +export function escapeComponent(str, options) { + return str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar); +} +; +export function unescapeComponent(str, options) { + return str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars); +} +; +//# sourceMappingURL=uri.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/uri.js.map b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/uri.js.map new file mode 100644 index 00000000000000..e1d831cb2a05e1 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/uri.js.map @@ -0,0 +1 @@ +{"version":3,"file":"uri.js","sourceRoot":"","sources":["../../src/uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/util.d.ts b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/util.d.ts new file mode 100644 index 00000000000000..8b484cd35ba7c7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/util.d.ts @@ -0,0 +1,6 @@ +export declare function merge(...sets: Array): string; +export declare function subexp(str: string): string; +export declare function typeOf(o: any): string; +export declare function toUpperCase(str: string): string; +export declare function toArray(obj: any): Array; +export declare function assign(target: object, source: any): any; diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/util.js b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/util.js new file mode 100644 index 00000000000000..45af46fe547b94 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/util.js @@ -0,0 +1,36 @@ +export function merge(...sets) { + if (sets.length > 1) { + sets[0] = sets[0].slice(0, -1); + const xl = sets.length - 1; + for (let x = 1; x < xl; ++x) { + sets[x] = sets[x].slice(1, -1); + } + sets[xl] = sets[xl].slice(1); + return sets.join(''); + } + else { + return sets[0]; + } +} +export function subexp(str) { + return "(?:" + str + ")"; +} +export function typeOf(o) { + return o === undefined ? "undefined" : (o === null ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase()); +} +export function toUpperCase(str) { + return str.toUpperCase(); +} +export function toArray(obj) { + return obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== "number" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : []; +} +export function assign(target, source) { + const obj = target; + if (source) { + for (const key in source) { + obj[key] = source[key]; + } + } + return obj; +} +//# sourceMappingURL=util.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/util.js.map b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/util.js.map new file mode 100644 index 00000000000000..05d9df021f9d4b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/dist/esnext/util.js.map @@ -0,0 +1 @@ +{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,IAAkB;IAC1C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;YAC5B,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACrB;SAAM;QACN,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;KACf;AACF,CAAC;AAED,MAAM,iBAAiB,GAAU;IAChC,OAAO,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;AAC1B,CAAC;AAED,MAAM,iBAAiB,CAAK;IAC3B,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACpJ,CAAC;AAED,MAAM,sBAAsB,GAAU;IACrC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,kBAAkB,GAAO;IAC9B,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvM,CAAC;AAGD,MAAM,iBAAiB,MAAc,EAAE,MAAW;IACjD,MAAM,GAAG,GAAG,MAAa,CAAC;IAC1B,IAAI,MAAM,EAAE;QACX,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACzB,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SACvB;KACD;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/package.json b/tools/node_modules/eslint/node_modules/uri-js/package.json new file mode 100644 index 00000000000000..1653cb33da8e36 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/package.json @@ -0,0 +1,93 @@ +{ + "_from": "uri-js@^4.2.1", + "_id": "uri-js@4.2.2", + "_inBundle": false, + "_integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "_location": "/eslint/uri-js", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "uri-js@^4.2.1", + "name": "uri-js", + "escapedName": "uri-js", + "rawSpec": "^4.2.1", + "saveSpec": null, + "fetchSpec": "^4.2.1" + }, + "_requiredBy": [ + "/eslint/ajv" + ], + "_resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "_shasum": "94c540e1ff772956e2299507c010aea6c8838eb0", + "_spec": "uri-js@^4.2.1", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/ajv", + "author": { + "name": "Gary Court", + "email": "gary.court@gmail.com" + }, + "bugs": { + "url": "https://github.com/garycourt/uri-js/issues" + }, + "bundleDependencies": false, + "dependencies": { + "punycode": "^2.1.0" + }, + "deprecated": false, + "description": "An RFC 3986/3987 compliant, scheme extendable URI/IRI parsing/validating/resolving library for JavaScript.", + "devDependencies": { + "babel-cli": "^6.26.0", + "babel-plugin-external-helpers": "^6.22.0", + "babel-preset-latest": "^6.24.1", + "mocha": "^3.2.0", + "mocha-qunit-ui": "^0.1.3", + "rollup": "^0.41.6", + "rollup-plugin-babel": "^2.7.1", + "rollup-plugin-node-resolve": "^2.0.0", + "sorcery": "^0.10.0", + "typescript": "^2.8.1", + "uglify-js": "^2.8.14" + }, + "directories": { + "test": "tests" + }, + "homepage": "https://github.com/garycourt/uri-js", + "keywords": [ + "URI", + "IRI", + "IDN", + "URN", + "UUID", + "HTTP", + "HTTPS", + "MAILTO", + "RFC3986", + "RFC3987", + "RFC5891", + "RFC2616", + "RFC2818", + "RFC2141", + "RFC4122", + "RFC4291", + "RFC5952", + "RFC6068", + "RFC6874" + ], + "license": "BSD-2-Clause", + "main": "dist/es5/uri.all.js", + "name": "uri-js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/garycourt/uri-js.git" + }, + "scripts": { + "build": "npm run build:esnext && npm run build:es5 && npm run build:es5:min", + "build:es5": "rollup -c && cp dist/esnext/uri.d.ts dist/es5/uri.all.d.ts && npm run build:es5:fix-sourcemap", + "build:es5:fix-sourcemap": "sorcery -i dist/es5/uri.all.js", + "build:es5:min": "uglifyjs dist/es5/uri.all.js --support-ie8 --output dist/es5/uri.all.min.js --in-source-map dist/es5/uri.all.js.map --source-map uri.all.min.js.map --comments --compress --mangle --pure-funcs merge subexp && mv uri.all.min.js.map dist/es5/ && cp dist/es5/uri.all.d.ts dist/es5/uri.all.min.d.ts", + "build:esnext": "tsc", + "test": "mocha -u mocha-qunit-ui dist/es5/uri.all.js tests/tests.js" + }, + "types": "dist/es5/uri.all.d.ts", + "version": "4.2.2" +} diff --git a/tools/node_modules/eslint/node_modules/uri-js/rollup.config.js b/tools/node_modules/eslint/node_modules/uri-js/rollup.config.js new file mode 100644 index 00000000000000..5bb8b0541b5fc5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/rollup.config.js @@ -0,0 +1,32 @@ +import resolve from 'rollup-plugin-node-resolve'; +import babel from 'rollup-plugin-babel'; +const packageJson = require('./package.json'); + +export default { + entry : "dist/esnext/index.js", + format : "umd", + moduleName : "URI", + plugins: [ + resolve({ + module: true, + jsnext: true, + preferBuiltins: false + }), + + babel({ + "presets": [ + ["latest", { + "es2015": { + "modules": false + } + }] + ], + "plugins": ["external-helpers"], + "externalHelpers": false + } +) + ], + dest : "dist/es5/uri.all.js", + sourceMap: true, + banner: "/** @license URI.js v" + packageJson.version + " (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */" +} diff --git a/tools/node_modules/eslint/node_modules/uri-js/src/index.ts b/tools/node_modules/eslint/node_modules/uri-js/src/index.ts new file mode 100644 index 00000000000000..6532a1bcb10562 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/src/index.ts @@ -0,0 +1,18 @@ +import { SCHEMES } from "./uri"; + +import http from "./schemes/http"; +SCHEMES[http.scheme] = http; + +import https from "./schemes/https"; +SCHEMES[https.scheme] = https; + +import mailto from "./schemes/mailto"; +SCHEMES[mailto.scheme] = mailto; + +import urn from "./schemes/urn"; +SCHEMES[urn.scheme] = urn; + +import uuid from "./schemes/urn-uuid"; +SCHEMES[uuid.scheme] = uuid; + +export * from "./uri"; diff --git a/tools/node_modules/eslint/node_modules/uri-js/src/punycode.d.ts b/tools/node_modules/eslint/node_modules/uri-js/src/punycode.d.ts new file mode 100644 index 00000000000000..4ecbd34845935d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/src/punycode.d.ts @@ -0,0 +1,24 @@ +declare module 'punycode' { + function ucs2decode(string:string):Array; + function ucs2encode(array:Array):string; + function decode(string:string):string; + function encode(string:string):string; + function toASCII(string:string):string; + function toUnicode(string:string):string; + + interface Punycode { + 'version': '2.2.0'; + 'ucs2': { + 'decode': typeof ucs2decode; + 'encode': typeof ucs2encode; + }, + 'decode': typeof decode; + 'encode': typeof encode; + 'toASCII': typeof toASCII; + 'toUnicode': typeof toUnicode; + } + + const punycode:Punycode; + + export default punycode; +} diff --git a/tools/node_modules/eslint/node_modules/uri-js/src/regexps-iri.ts b/tools/node_modules/eslint/node_modules/uri-js/src/regexps-iri.ts new file mode 100644 index 00000000000000..8bd605b43dba3d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/src/regexps-iri.ts @@ -0,0 +1,4 @@ +import { URIRegExps } from "./uri"; +import { buildExps } from "./regexps-uri"; + +export default buildExps(true); diff --git a/tools/node_modules/eslint/node_modules/uri-js/src/regexps-uri.ts b/tools/node_modules/eslint/node_modules/uri-js/src/regexps-uri.ts new file mode 100644 index 00000000000000..8d6b5479169094 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/src/regexps-uri.ts @@ -0,0 +1,89 @@ +import { URIRegExps } from "./uri"; +import { merge, subexp } from "./util"; + +export function buildExps(isIRI:boolean):URIRegExps { + const + ALPHA$$ = "[A-Za-z]", + CR$ = "[\\x0D]", + DIGIT$$ = "[0-9]", + DQUOTE$$ = "[\\x22]", + HEXDIG$$ = merge(DIGIT$$, "[A-Fa-f]"), //case-insensitive + LF$$ = "[\\x0A]", + SP$$ = "[\\x20]", + PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)), //expanded + GEN_DELIMS$$ = "[\\:\\/\\?\\#\\[\\]\\@]", + SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", + RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$), + UCSCHAR$$ = isIRI ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]", //subset, excludes bidi control characters + IPRIVATE$$ = isIRI ? "[\\uE000-\\uF8FF]" : "[]", //subset + UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$), + SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"), + USERINFO$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]")) + "*"), + DEC_OCTET$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("[1-9]" + DIGIT$$) + "|" + DIGIT$$), + DEC_OCTET_RELAXED$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("0?[1-9]" + DIGIT$$) + "|0?0?" + DIGIT$$), //relaxed parsing rules + IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$), + H16$ = subexp(HEXDIG$$ + "{1,4}"), + LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$), + IPV6ADDRESS1$ = subexp( subexp(H16$ + "\\:") + "{6}" + LS32$), // 6( h16 ":" ) ls32 + IPV6ADDRESS2$ = subexp( "\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$), // "::" 5( h16 ":" ) ls32 + IPV6ADDRESS3$ = subexp(subexp( H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$), //[ h16 ] "::" 4( h16 ":" ) ls32 + IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$), //[ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32 + IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$), //[ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32 + IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$), //[ *3( h16 ":" ) h16 ] "::" h16 ":" ls32 + IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$), //[ *4( h16 ":" ) h16 ] "::" ls32 + IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$ ), //[ *5( h16 ":" ) h16 ] "::" h16 + IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:" ), //[ *6( h16 ":" ) h16 ] "::" + IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join("|")), + ZONEID$ = subexp(subexp(UNRESERVED$$ + "|" + PCT_ENCODED$) + "+"), //RFC 6874 + IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$), //RFC 6874 + IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + ZONEID$), //RFC 6874, with relaxed parsing rules + IPVFUTURE$ = subexp("[vV]" + HEXDIG$$ + "+\\." + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]") + "+"), + IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"), //RFC 6874 + REG_NAME$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$)) + "*"), + HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")" + "|" + REG_NAME$), + PORT$ = subexp(DIGIT$$ + "*"), + AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"), + PCHAR$ = subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@]")), + SEGMENT$ = subexp(PCHAR$ + "*"), + SEGMENT_NZ$ = subexp(PCHAR$ + "+"), + SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\@]")) + "+"), + PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"), + PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"), //simplified + PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified + PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified + PATH_EMPTY$ = "(?!" + PCHAR$ + ")", + PATH$ = subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), + QUERY$ = subexp(subexp(PCHAR$ + "|" + merge("[\\/\\?]", IPRIVATE$$)) + "*"), + FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"), + HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), + URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), + RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$), + RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), + URI_REFERENCE$ = subexp(URI$ + "|" + RELATIVE$), + ABSOLUTE_URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"), + + GENERIC_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", + RELATIVE_REF$ = "^(){0}" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", + ABSOLUTE_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?$", + SAMEDOC_REF$ = "^" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", + AUTHORITY_REF$ = "^" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?$" + ; + + return { + NOT_SCHEME : new RegExp(merge("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"), + NOT_USERINFO : new RegExp(merge("[^\\%\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_HOST : new RegExp(merge("[^\\%\\[\\]\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_PATH : new RegExp(merge("[^\\%\\/\\:\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_PATH_NOSCHEME : new RegExp(merge("[^\\%\\/\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"), + NOT_QUERY : new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"), + NOT_FRAGMENT : new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"), + ESCAPE : new RegExp(merge("[^]", UNRESERVED$$, SUB_DELIMS$$), "g"), + UNRESERVED : new RegExp(UNRESERVED$$, "g"), + OTHER_CHARS : new RegExp(merge("[^\\%]", UNRESERVED$$, RESERVED$$), "g"), + PCT_ENCODED : new RegExp(PCT_ENCODED$, "g"), + IPV4ADDRESS : new RegExp("^(" + IPV4ADDRESS$ + ")$"), + IPV6ADDRESS : new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$") //RFC 6874, with relaxed parsing rules + }; +} + +export default buildExps(false); diff --git a/tools/node_modules/eslint/node_modules/uri-js/src/schemes/http.ts b/tools/node_modules/eslint/node_modules/uri-js/src/schemes/http.ts new file mode 100644 index 00000000000000..3e53145cc357dd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/src/schemes/http.ts @@ -0,0 +1,36 @@ +import { URISchemeHandler, URIComponents, URIOptions } from "../uri"; + +const handler:URISchemeHandler = { + scheme : "http", + + domainHost : true, + + parse : function (components:URIComponents, options:URIOptions):URIComponents { + //report missing host + if (!components.host) { + components.error = components.error || "HTTP URIs must have a host."; + } + + return components; + }, + + serialize : function (components:URIComponents, options:URIOptions):URIComponents { + //normalize the default port + if (components.port === (String(components.scheme).toLowerCase() !== "https" ? 80 : 443) || components.port === "") { + components.port = undefined; + } + + //normalize the empty path + if (!components.path) { + components.path = "/"; + } + + //NOTE: We do not parse query strings for HTTP URIs + //as WWW Form Url Encoded query strings are part of the HTML4+ spec, + //and not the HTTP spec. + + return components; + } +}; + +export default handler; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/src/schemes/https.ts b/tools/node_modules/eslint/node_modules/uri-js/src/schemes/https.ts new file mode 100644 index 00000000000000..a19a4942899982 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/src/schemes/https.ts @@ -0,0 +1,11 @@ +import { URISchemeHandler, URIComponents, URIOptions } from "../uri"; +import http from "./http"; + +const handler:URISchemeHandler = { + scheme : "https", + domainHost : http.domainHost, + parse : http.parse, + serialize : http.serialize +} + +export default handler; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/src/schemes/mailto.ts b/tools/node_modules/eslint/node_modules/uri-js/src/schemes/mailto.ts new file mode 100644 index 00000000000000..3faf320d655903 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/src/schemes/mailto.ts @@ -0,0 +1,182 @@ +import { URISchemeHandler, URIComponents, URIOptions } from "../uri"; +import { pctEncChar, pctDecChars, unescapeComponent } from "../uri"; +import punycode from "punycode"; +import { merge, subexp, toUpperCase, toArray } from "../util"; + +export interface MailtoHeaders { + [hfname:string]:string +} + +export interface MailtoComponents extends URIComponents { + to:Array, + headers?:MailtoHeaders, + subject?:string, + body?:string +} + +const O:MailtoHeaders = {}; +const isIRI = true; + +//RFC 3986 +const UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + (isIRI ? "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" : "") + "]"; +const HEXDIG$$ = "[0-9A-Fa-f]"; //case-insensitive +const PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)); //expanded + +//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; = +//const ATEXT$$ = "[A-Za-z0-9\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]"; +//const WSP$$ = "[\\x20\\x09]"; +//const OBS_QTEXT$$ = "[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]"; //(%d1-8 / %d11-12 / %d14-31 / %d127) +//const QTEXT$$ = merge("[\\x21\\x23-\\x5B\\x5D-\\x7E]", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext +//const VCHAR$$ = "[\\x21-\\x7E]"; +//const WSP$$ = "[\\x20\\x09]"; +//const OBS_QP$ = subexp("\\\\" + merge("[\\x00\\x0D\\x0A]", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext +//const FWS$ = subexp(subexp(WSP$$ + "*" + "\\x0D\\x0A") + "?" + WSP$$ + "+"); +//const QUOTED_PAIR$ = subexp(subexp("\\\\" + subexp(VCHAR$$ + "|" + WSP$$)) + "|" + OBS_QP$); +//const QUOTED_STRING$ = subexp('\\"' + subexp(FWS$ + "?" + QCONTENT$) + "*" + FWS$ + "?" + '\\"'); +const ATEXT$$ = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]"; +const QTEXT$$ = "[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]"; +const VCHAR$$ = merge(QTEXT$$, "[\\\"\\\\]"); +const DOT_ATOM_TEXT$ = subexp(ATEXT$$ + "+" + subexp("\\." + ATEXT$$ + "+") + "*"); +const QUOTED_PAIR$ = subexp("\\\\" + VCHAR$$); +const QCONTENT$ = subexp(QTEXT$$ + "|" + QUOTED_PAIR$); +const QUOTED_STRING$ = subexp('\\"' + QCONTENT$ + "*" + '\\"'); + +//RFC 6068 +const DTEXT_NO_OBS$$ = "[\\x21-\\x5A\\x5E-\\x7E]"; //%d33-90 / %d94-126 +const SOME_DELIMS$$ = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"; +const QCHAR$ = subexp(UNRESERVED$$ + "|" + PCT_ENCODED$ + "|" + SOME_DELIMS$$); +const DOMAIN$ = subexp(DOT_ATOM_TEXT$ + "|" + "\\[" + DTEXT_NO_OBS$$ + "*" + "\\]"); +const LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + "|" + QUOTED_STRING$); +const ADDR_SPEC$ = subexp(LOCAL_PART$ + "\\@" + DOMAIN$); +const TO$ = subexp(ADDR_SPEC$ + subexp("\\," + ADDR_SPEC$) + "*"); +const HFNAME$ = subexp(QCHAR$ + "*"); +const HFVALUE$ = HFNAME$; +const HFIELD$ = subexp(HFNAME$ + "\\=" + HFVALUE$); +const HFIELDS2$ = subexp(HFIELD$ + subexp("\\&" + HFIELD$) + "*"); +const HFIELDS$ = subexp("\\?" + HFIELDS2$); +const MAILTO_URI = new RegExp("^mailto\\:" + TO$ + "?" + HFIELDS$ + "?$"); + +const UNRESERVED = new RegExp(UNRESERVED$$, "g"); +const PCT_ENCODED = new RegExp(PCT_ENCODED$, "g"); +const NOT_LOCAL_PART = new RegExp(merge("[^]", ATEXT$$, "[\\.]", '[\\"]', VCHAR$$), "g"); +const NOT_DOMAIN = new RegExp(merge("[^]", ATEXT$$, "[\\.]", "[\\[]", DTEXT_NO_OBS$$, "[\\]]"), "g"); +const NOT_HFNAME = new RegExp(merge("[^]", UNRESERVED$$, SOME_DELIMS$$), "g"); +const NOT_HFVALUE = NOT_HFNAME; +const TO = new RegExp("^" + TO$ + "$"); +const HFIELDS = new RegExp("^" + HFIELDS2$ + "$"); + +function decodeUnreserved(str:string):string { + const decStr = pctDecChars(str); + return (!decStr.match(UNRESERVED) ? str : decStr); +} + +const handler:URISchemeHandler = { + scheme : "mailto", + + parse : function (components:URIComponents, options:URIOptions):MailtoComponents { + const mailtoComponents = components as MailtoComponents; + const to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(",") : []); + mailtoComponents.path = undefined; + + if (mailtoComponents.query) { + let unknownHeaders = false + const headers:MailtoHeaders = {}; + const hfields = mailtoComponents.query.split("&"); + + for (let x = 0, xl = hfields.length; x < xl; ++x) { + const hfield = hfields[x].split("="); + + switch (hfield[0]) { + case "to": + const toAddrs = hfield[1].split(","); + for (let x = 0, xl = toAddrs.length; x < xl; ++x) { + to.push(toAddrs[x]); + } + break; + case "subject": + mailtoComponents.subject = unescapeComponent(hfield[1], options); + break; + case "body": + mailtoComponents.body = unescapeComponent(hfield[1], options); + break; + default: + unknownHeaders = true; + headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options); + break; + } + } + + if (unknownHeaders) mailtoComponents.headers = headers; + } + + mailtoComponents.query = undefined; + + for (let x = 0, xl = to.length; x < xl; ++x) { + const addr = to[x].split("@"); + + addr[0] = unescapeComponent(addr[0]); + + if (!options.unicodeSupport) { + //convert Unicode IDN -> ASCII IDN + try { + addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase()); + } catch (e) { + mailtoComponents.error = mailtoComponents.error || "Email address's domain name can not be converted to ASCII via punycode: " + e; + } + } else { + addr[1] = unescapeComponent(addr[1], options).toLowerCase(); + } + + to[x] = addr.join("@"); + } + + return mailtoComponents; + }, + + serialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents { + const components = mailtoComponents as URIComponents; + const to = toArray(mailtoComponents.to); + if (to) { + for (let x = 0, xl = to.length; x < xl; ++x) { + const toAddr = String(to[x]); + const atIdx = toAddr.lastIndexOf("@"); + const localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar); + let domain = toAddr.slice(atIdx + 1); + + //convert IDN via punycode + try { + domain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain)); + } catch (e) { + components.error = components.error || "Email address's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e; + } + + to[x] = localPart + "@" + domain; + } + + components.path = to.join(","); + } + + const headers = mailtoComponents.headers = mailtoComponents.headers || {}; + + if (mailtoComponents.subject) headers["subject"] = mailtoComponents.subject; + if (mailtoComponents.body) headers["body"] = mailtoComponents.body; + + const fields = []; + for (const name in headers) { + if (headers[name] !== O[name]) { + fields.push( + name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + + "=" + + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar) + ); + } + } + if (fields.length) { + components.query = fields.join("&"); + } + + return components; + } +} + +export default handler; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/src/schemes/urn-uuid.ts b/tools/node_modules/eslint/node_modules/uri-js/src/schemes/urn-uuid.ts new file mode 100644 index 00000000000000..56653292096fe4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/src/schemes/urn-uuid.ts @@ -0,0 +1,36 @@ +import { URISchemeHandler, URIComponents, URIOptions } from "../uri"; +import { URNComponents } from "./urn"; +import { SCHEMES } from "../uri"; + +export interface UUIDComponents extends URNComponents { + uuid?: string; +} + +const UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/; +const UUID_PARSE = /^[0-9A-Fa-f\-]{36}/; + +//RFC 4122 +const handler:URISchemeHandler = { + scheme : "urn:uuid", + + parse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents { + const uuidComponents = urnComponents as UUIDComponents; + uuidComponents.uuid = uuidComponents.nss; + uuidComponents.nss = undefined; + + if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) { + uuidComponents.error = uuidComponents.error || "UUID is not valid."; + } + + return uuidComponents; + }, + + serialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents { + const urnComponents = uuidComponents as URNComponents; + //normalize UUID + urnComponents.nss = (uuidComponents.uuid || "").toLowerCase(); + return urnComponents; + }, +}; + +export default handler; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/src/schemes/urn.ts b/tools/node_modules/eslint/node_modules/uri-js/src/schemes/urn.ts new file mode 100644 index 00000000000000..590f9cce16a529 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/src/schemes/urn.ts @@ -0,0 +1,69 @@ +import { URISchemeHandler, URIComponents, URIOptions } from "../uri"; +import { pctEncChar, SCHEMES } from "../uri"; + +export interface URNComponents extends URIComponents { + nid?:string; + nss?:string; +} + +export interface URNOptions extends URIOptions { + nid?:string; +} + +const NID$ = "(?:[0-9A-Za-z][0-9A-Za-z\\-]{1,31})"; +const PCT_ENCODED$ = "(?:\\%[0-9A-Fa-f]{2})"; +const TRANS$$ = "[0-9A-Za-z\\(\\)\\+\\,\\-\\.\\:\\=\\@\\;\\$\\_\\!\\*\\'\\/\\?\\#]"; +const NSS$ = "(?:(?:" + PCT_ENCODED$ + "|" + TRANS$$ + ")+)"; +const URN_SCHEME = new RegExp("^urn\\:(" + NID$ + ")$"); +const URN_PATH = new RegExp("^(" + NID$ + ")\\:(" + NSS$ + ")$"); +const URN_PARSE = /^([^\:]+)\:(.*)/; +const URN_EXCLUDED = /[\x00-\x20\\\"\&\<\>\[\]\^\`\{\|\}\~\x7F-\xFF]/g; + +//RFC 2141 +const handler:URISchemeHandler = { + scheme : "urn", + + parse : function (components:URIComponents, options:URNOptions):URNComponents { + const matches = components.path && components.path.match(URN_PARSE); + let urnComponents = components as URNComponents; + + if (matches) { + const scheme = options.scheme || urnComponents.scheme || "urn"; + const nid = matches[1].toLowerCase(); + const nss = matches[2]; + const urnScheme = `${scheme}:${options.nid || nid}`; + const schemeHandler = SCHEMES[urnScheme]; + + urnComponents.nid = nid; + urnComponents.nss = nss; + urnComponents.path = undefined; + + if (schemeHandler) { + urnComponents = schemeHandler.parse(urnComponents, options) as URNComponents; + } + } else { + urnComponents.error = urnComponents.error || "URN can not be parsed."; + } + + return urnComponents; + }, + + serialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents { + const scheme = options.scheme || urnComponents.scheme || "urn"; + const nid = urnComponents.nid; + const urnScheme = `${scheme}:${options.nid || nid}`; + const schemeHandler = SCHEMES[urnScheme]; + + if (schemeHandler) { + urnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents; + } + + const uriComponents = urnComponents as URIComponents; + const nss = urnComponents.nss; + uriComponents.path = `${nid || options.nid}:${nss}`; + + return uriComponents; + }, +}; + +export default handler; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/src/uri.ts b/tools/node_modules/eslint/node_modules/uri-js/src/uri.ts new file mode 100644 index 00000000000000..c282c37233600d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/src/uri.ts @@ -0,0 +1,556 @@ +/** + * URI.js + * + * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript. + * @author Gary Court + * @see http://github.com/garycourt/uri-js + */ + +/** + * Copyright 2011 Gary Court. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of Gary Court. + */ + +import URI_PROTOCOL from "./regexps-uri"; +import IRI_PROTOCOL from "./regexps-iri"; +import punycode from "punycode"; +import { toUpperCase, typeOf, assign } from "./util"; + +export interface URIComponents { + scheme?:string; + userinfo?:string; + host?:string; + port?:number|string; + path?:string; + query?:string; + fragment?:string; + reference?:string; + error?:string; +} + +export interface URIOptions { + scheme?:string; + reference?:string; + tolerant?:boolean; + absolutePath?:boolean; + iri?:boolean; + unicodeSupport?:boolean; + domainHost?:boolean; +} + +export interface URISchemeHandler { + scheme:string; + parse(components:ParentComponents, options:Options):Components; + serialize(components:Components, options:Options):ParentComponents; + unicodeSupport?:boolean; + domainHost?:boolean; + absolutePath?:boolean; +} + +export interface URIRegExps { + NOT_SCHEME : RegExp, + NOT_USERINFO : RegExp, + NOT_HOST : RegExp, + NOT_PATH : RegExp, + NOT_PATH_NOSCHEME : RegExp, + NOT_QUERY : RegExp, + NOT_FRAGMENT : RegExp, + ESCAPE : RegExp, + UNRESERVED : RegExp, + OTHER_CHARS : RegExp, + PCT_ENCODED : RegExp, + IPV4ADDRESS : RegExp, + IPV6ADDRESS : RegExp, +} + +export const SCHEMES:{[scheme:string]:URISchemeHandler} = {}; + +export function pctEncChar(chr:string):string { + const c = chr.charCodeAt(0); + let e:string; + + if (c < 16) e = "%0" + c.toString(16).toUpperCase(); + else if (c < 128) e = "%" + c.toString(16).toUpperCase(); + else if (c < 2048) e = "%" + ((c >> 6) | 192).toString(16).toUpperCase() + "%" + ((c & 63) | 128).toString(16).toUpperCase(); + else e = "%" + ((c >> 12) | 224).toString(16).toUpperCase() + "%" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + "%" + ((c & 63) | 128).toString(16).toUpperCase(); + + return e; +} + +export function pctDecChars(str:string):string { + let newStr = ""; + let i = 0; + const il = str.length; + + while (i < il) { + const c = parseInt(str.substr(i + 1, 2), 16); + + if (c < 128) { + newStr += String.fromCharCode(c); + i += 3; + } + else if (c >= 194 && c < 224) { + if ((il - i) >= 6) { + const c2 = parseInt(str.substr(i + 4, 2), 16); + newStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); + } else { + newStr += str.substr(i, 6); + } + i += 6; + } + else if (c >= 224) { + if ((il - i) >= 9) { + const c2 = parseInt(str.substr(i + 4, 2), 16); + const c3 = parseInt(str.substr(i + 7, 2), 16); + newStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); + } else { + newStr += str.substr(i, 9); + } + i += 9; + } + else { + newStr += str.substr(i, 3); + i += 3; + } + } + + return newStr; +} + +function _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) { + function decodeUnreserved(str:string):string { + const decStr = pctDecChars(str); + return (!decStr.match(protocol.UNRESERVED) ? str : decStr); + } + + if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, ""); + if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); + + return components; +}; + +function _stripLeadingZeros(str:string):string { + return str.replace(/^0*(.*)/, "$1") || "0"; +} + +function _normalizeIPv4(host:string, protocol:URIRegExps):string { + const matches = host.match(protocol.IPV4ADDRESS) || []; + const [, address] = matches; + + if (address) { + return address.split(".").map(_stripLeadingZeros).join("."); + } else { + return host; + } +} + +function _normalizeIPv6(host:string, protocol:URIRegExps):string { + const matches = host.match(protocol.IPV6ADDRESS) || []; + const [, address, zone] = matches; + + if (address) { + const [last, first] = address.toLowerCase().split('::').reverse(); + const firstFields = first ? first.split(":").map(_stripLeadingZeros) : []; + const lastFields = last.split(":").map(_stripLeadingZeros); + const isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]); + const fieldCount = isLastFieldIPv4Address ? 7 : 8; + const lastFieldsStart = lastFields.length - fieldCount; + const fields = Array(fieldCount); + + for (let x = 0; x < fieldCount; ++x) { + fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || ''; + } + + if (isLastFieldIPv4Address) { + fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol); + } + + const allZeroFields = fields.reduce>((acc, field, index) => { + if (!field || field === "0") { + const lastLongest = acc[acc.length - 1]; + if (lastLongest && lastLongest.index + lastLongest.length === index) { + lastLongest.length++; + } else { + acc.push({ index, length : 1 }); + } + } + return acc; + }, []); + + const longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0]; + + let newHost:string; + if (longestZeroFields && longestZeroFields.length > 1) { + const newFirst = fields.slice(0, longestZeroFields.index) ; + const newLast = fields.slice(longestZeroFields.index + longestZeroFields.length); + newHost = newFirst.join(":") + "::" + newLast.join(":"); + } else { + newHost = fields.join(":"); + } + + if (zone) { + newHost += "%" + zone; + } + + return newHost; + } else { + return host; + } +} + +const URI_PARSE = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i; +const NO_MATCH_IS_UNDEFINED = (("").match(/(){0}/))[1] === undefined; + +export function parse(uriString:string, options:URIOptions = {}):URIComponents { + const components:URIComponents = {}; + const protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL); + + if (options.reference === "suffix") uriString = (options.scheme ? options.scheme + ":" : "") + "//" + uriString; + + const matches = uriString.match(URI_PARSE); + + if (matches) { + if (NO_MATCH_IS_UNDEFINED) { + //store each component + components.scheme = matches[1]; + components.userinfo = matches[3]; + components.host = matches[4]; + components.port = parseInt(matches[5], 10); + components.path = matches[6] || ""; + components.query = matches[7]; + components.fragment = matches[8]; + + //fix port number + if (isNaN(components.port)) { + components.port = matches[5]; + } + } else { //IE FIX for improper RegExp matching + //store each component + components.scheme = matches[1] || undefined; + components.userinfo = (uriString.indexOf("@") !== -1 ? matches[3] : undefined); + components.host = (uriString.indexOf("//") !== -1 ? matches[4] : undefined); + components.port = parseInt(matches[5], 10); + components.path = matches[6] || ""; + components.query = (uriString.indexOf("?") !== -1 ? matches[7] : undefined); + components.fragment = (uriString.indexOf("#") !== -1 ? matches[8] : undefined); + + //fix port number + if (isNaN(components.port)) { + components.port = (uriString.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? matches[4] : undefined); + } + } + + if (components.host) { + //normalize IP hosts + components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol); + } + + //determine reference type + if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) { + components.reference = "same-document"; + } else if (components.scheme === undefined) { + components.reference = "relative"; + } else if (components.fragment === undefined) { + components.reference = "absolute"; + } else { + components.reference = "uri"; + } + + //check for reference errors + if (options.reference && options.reference !== "suffix" && options.reference !== components.reference) { + components.error = components.error || "URI is not a " + options.reference + " reference."; + } + + //find scheme handler + const schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()]; + + //check if scheme can't handle IRIs + if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) { + //if host component is a domain name + if (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) { + //convert Unicode IDN -> ASCII IDN + try { + components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()); + } catch (e) { + components.error = components.error || "Host's domain name can not be converted to ASCII via punycode: " + e; + } + } + //convert IRI -> URI + _normalizeComponentEncoding(components, URI_PROTOCOL); + } else { + //normalize encodings + _normalizeComponentEncoding(components, protocol); + } + + //perform scheme specific parsing + if (schemeHandler && schemeHandler.parse) { + schemeHandler.parse(components, options); + } + } else { + components.error = components.error || "URI can not be parsed."; + } + + return components; +}; + +function _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined { + const protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL); + const uriTokens:Array = []; + + if (components.userinfo !== undefined) { + uriTokens.push(components.userinfo); + uriTokens.push("@"); + } + + if (components.host !== undefined) { + //normalize IP hosts, add brackets and escape zone separator for IPv6 + uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => "[" + $1 + ($2 ? "%25" + $2 : "") + "]")); + } + + if (typeof components.port === "number") { + uriTokens.push(":"); + uriTokens.push(components.port.toString(10)); + } + + return uriTokens.length ? uriTokens.join("") : undefined; +}; + +const RDS1 = /^\.\.?\//; +const RDS2 = /^\/\.(\/|$)/; +const RDS3 = /^\/\.\.(\/|$)/; +const RDS4 = /^\.\.?$/; +const RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/; + +export function removeDotSegments(input:string):string { + const output:Array = []; + + while (input.length) { + if (input.match(RDS1)) { + input = input.replace(RDS1, ""); + } else if (input.match(RDS2)) { + input = input.replace(RDS2, "/"); + } else if (input.match(RDS3)) { + input = input.replace(RDS3, "/"); + output.pop(); + } else if (input === "." || input === "..") { + input = ""; + } else { + const im = input.match(RDS5); + if (im) { + const s = im[0]; + input = input.slice(s.length); + output.push(s); + } else { + throw new Error("Unexpected dot segment condition"); + } + } + } + + return output.join(""); +}; + +export function serialize(components:URIComponents, options:URIOptions = {}):string { + const protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL); + const uriTokens:Array = []; + + //find scheme handler + const schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()]; + + //perform scheme specific serialization + if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options); + + if (components.host) { + //if host component is an IPv6 address + if (protocol.IPV6ADDRESS.test(components.host)) { + //TODO: normalize IPv6 address as per RFC 5952 + } + + //if host component is a domain name + else if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) { + //convert IDN via punycode + try { + components.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host)); + } catch (e) { + components.error = components.error || "Host's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e; + } + } + } + + //normalize encoding + _normalizeComponentEncoding(components, protocol); + + if (options.reference !== "suffix" && components.scheme) { + uriTokens.push(components.scheme); + uriTokens.push(":"); + } + + const authority = _recomposeAuthority(components, options); + if (authority !== undefined) { + if (options.reference !== "suffix") { + uriTokens.push("//"); + } + + uriTokens.push(authority); + + if (components.path && components.path.charAt(0) !== "/") { + uriTokens.push("/"); + } + } + + if (components.path !== undefined) { + let s = components.path; + + if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) { + s = removeDotSegments(s); + } + + if (authority === undefined) { + s = s.replace(/^\/\//, "/%2F"); //don't allow the path to start with "//" + } + + uriTokens.push(s); + } + + if (components.query !== undefined) { + uriTokens.push("?"); + uriTokens.push(components.query); + } + + if (components.fragment !== undefined) { + uriTokens.push("#"); + uriTokens.push(components.fragment); + } + + return uriTokens.join(""); //merge tokens into a string +}; + +export function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents { + const target:URIComponents = {}; + + if (!skipNormalization) { + base = parse(serialize(base, options), options); //normalize base components + relative = parse(serialize(relative, options), options); //normalize relative components + } + options = options || {}; + + if (!options.tolerant && relative.scheme) { + target.scheme = relative.scheme; + //target.authority = relative.authority; + target.userinfo = relative.userinfo; + target.host = relative.host; + target.port = relative.port; + target.path = removeDotSegments(relative.path || ""); + target.query = relative.query; + } else { + if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) { + //target.authority = relative.authority; + target.userinfo = relative.userinfo; + target.host = relative.host; + target.port = relative.port; + target.path = removeDotSegments(relative.path || ""); + target.query = relative.query; + } else { + if (!relative.path) { + target.path = base.path; + if (relative.query !== undefined) { + target.query = relative.query; + } else { + target.query = base.query; + } + } else { + if (relative.path.charAt(0) === "/") { + target.path = removeDotSegments(relative.path); + } else { + if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) { + target.path = "/" + relative.path; + } else if (!base.path) { + target.path = relative.path; + } else { + target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative.path; + } + target.path = removeDotSegments(target.path); + } + target.query = relative.query; + } + //target.authority = base.authority; + target.userinfo = base.userinfo; + target.host = base.host; + target.port = base.port; + } + target.scheme = base.scheme; + } + + target.fragment = relative.fragment; + + return target; +}; + +export function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string { + const schemelessOptions = assign({ scheme : 'null' }, options); + return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions); +}; + +export function normalize(uri:string, options?:URIOptions):string; +export function normalize(uri:URIComponents, options?:URIOptions):URIComponents; +export function normalize(uri:any, options?:URIOptions):any { + if (typeof uri === "string") { + uri = serialize(parse(uri, options), options); + } else if (typeOf(uri) === "object") { + uri = parse(serialize(uri, options), options); + } + + return uri; +}; + +export function equal(uriA:string, uriB:string, options?: URIOptions):boolean; +export function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean; +export function equal(uriA:any, uriB:any, options?:URIOptions):boolean { + if (typeof uriA === "string") { + uriA = serialize(parse(uriA, options), options); + } else if (typeOf(uriA) === "object") { + uriA = serialize(uriA, options); + } + + if (typeof uriB === "string") { + uriB = serialize(parse(uriB, options), options); + } else if (typeOf(uriB) === "object") { + uriB = serialize(uriB, options); + } + + return uriA === uriB; +}; + +export function escapeComponent(str:string, options?:URIOptions):string { + return str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar); +}; + +export function unescapeComponent(str:string, options?:URIOptions):string { + return str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars); +}; diff --git a/tools/node_modules/eslint/node_modules/uri-js/src/util.ts b/tools/node_modules/eslint/node_modules/uri-js/src/util.ts new file mode 100644 index 00000000000000..29c6d5d4db63a0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/src/util.ts @@ -0,0 +1,40 @@ +export function merge(...sets:Array):string { + if (sets.length > 1) { + sets[0] = sets[0].slice(0, -1); + const xl = sets.length - 1; + for (let x = 1; x < xl; ++x) { + sets[x] = sets[x].slice(1, -1); + } + sets[xl] = sets[xl].slice(1); + return sets.join(''); + } else { + return sets[0]; + } +} + +export function subexp(str:string):string { + return "(?:" + str + ")"; +} + +export function typeOf(o:any):string { + return o === undefined ? "undefined" : (o === null ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase()); +} + +export function toUpperCase(str:string):string { + return str.toUpperCase(); +} + +export function toArray(obj:any):Array { + return obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== "number" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : []; +} + + +export function assign(target: object, source: any): any { + const obj = target as any; + if (source) { + for (const key in source) { + obj[key] = source[key]; + } + } + return obj; +} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/uri-js/tsconfig.json b/tools/node_modules/eslint/node_modules/uri-js/tsconfig.json new file mode 100644 index 00000000000000..e2899857b1f5c3 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "module": "es2015", + "target": "esnext", + "noImplicitAny": true, + "sourceMap": true, + "alwaysStrict": true, + "declaration": true, + "experimentalDecorators": true, + "forceConsistentCasingInFileNames": true, + "importHelpers": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "outDir": "dist/esnext", + "strictNullChecks": true + }, + "include": [ + "src/**/*" + ] +} diff --git a/tools/node_modules/eslint/node_modules/uri-js/yarn.lock b/tools/node_modules/eslint/node_modules/uri-js/yarn.lock new file mode 100644 index 00000000000000..569687d50ee09c --- /dev/null +++ b/tools/node_modules/eslint/node_modules/uri-js/yarn.lock @@ -0,0 +1,1902 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +babel-cli@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + dependencies: + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" + fs-readdir-recursive "^1.0.0" + glob "^7.1.2" + lodash "^4.17.4" + output-file-sync "^1.1.2" + path-is-absolute "^1.0.1" + slash "^1.0.0" + source-map "^0.5.6" + v8flags "^2.1.1" + optionalDependencies: + chokidar "^1.6.1" + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@6, babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-external-helpers@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.24.1, babel-plugin-transform-es2015-classes@^6.9.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-es2015@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-preset-es2016@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2016/-/babel-preset-es2016-6.24.1.tgz#f900bf93e2ebc0d276df9b8ab59724ebfd959f8b" + dependencies: + babel-plugin-transform-exponentiation-operator "^6.24.1" + +babel-preset-es2017@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2017/-/babel-preset-es2017-6.24.1.tgz#597beadfb9f7f208bcfd8a12e9b2b29b8b2f14d1" + dependencies: + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.24.1" + +babel-preset-latest@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-latest/-/babel-preset-latest-6.24.1.tgz#677de069154a7485c2d25c577c02f624b85b85e8" + dependencies: + babel-preset-es2015 "^6.24.1" + babel-preset-es2016 "^6.24.1" + babel-preset-es2017 "^6.24.1" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +binary-extensions@^1.0.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browser-resolve@^1.11.0: + version "1.11.2" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" + dependencies: + resolve "1.1.7" + +browser-stdout@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + +buffer-crc32@^0.2.5: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + +builtin-modules@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chokidar@^1.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + +commander@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.11.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +convert-source-map@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.5.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.4.tgz#f2c8bf181f2a80b92f360121429ce63a2f0aeae0" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +debug@2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +debug@^2.2.0, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +decamelize@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +diff@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +es6-promise@^3.1.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +estree-walker@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +extend@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +fs-readdir-recursive@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.39" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.5, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +growl@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +hawk@3.1.3, hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + dependencies: + loose-envify "^1.0.0" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash.create@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash@^4.17.4: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + +mime-types@^2.1.12, mime-types@~2.1.7: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + dependencies: + mime-db "~1.33.0" + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha-qunit-ui@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/mocha-qunit-ui/-/mocha-qunit-ui-0.1.3.tgz#e3e1ff1dac33222b10cef681efd7f82664141ea9" + +mocha@^3.2.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +nan@^2.3.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + +node-pre-gyp@^0.6.39: + version "0.6.39" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" + dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +once@^1.3.0, once@^1.3.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +private@^0.1.6, private@^0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +punycode@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +rc@^1.1.7: + version "1.2.6" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +regenerate@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request@2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.1.6: + version "1.6.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c" + dependencies: + path-parse "^1.0.5" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +rollup-plugin-babel@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-2.7.1.tgz#16528197b0f938a1536f44683c7a93d573182f57" + dependencies: + babel-core "6" + babel-plugin-transform-es2015-classes "^6.9.0" + object-assign "^4.1.0" + rollup-pluginutils "^1.5.0" + +rollup-plugin-node-resolve@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-2.1.1.tgz#cbb783b0d15b02794d58915350b2f0d902b8ddc8" + dependencies: + browser-resolve "^1.11.0" + builtin-modules "^1.1.0" + resolve "^1.1.6" + +rollup-pluginutils@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" + dependencies: + estree-walker "^0.2.1" + minimatch "^3.0.2" + +rollup@^0.41.6: + version "0.41.6" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.41.6.tgz#e0d05497877a398c104d816d2733a718a7a94e2a" + dependencies: + source-map-support "^0.4.0" + +safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +sander@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad" + dependencies: + es6-promise "^3.1.2" + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + rimraf "^2.5.2" + +semver@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sorcery@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7" + dependencies: + buffer-crc32 "^0.2.5" + minimist "^1.2.0" + sander "^0.5.0" + sourcemap-codec "^1.3.0" + +source-map-support@^0.4.0, source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +sourcemap-codec@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.1.tgz#c8fd92d91889e902a07aee392bdd2c5863958ba2" + +sshpk@^1.7.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +supports-color@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +tar-pack@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +tough-cookie@~2.3.0: + version "2.3.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" + dependencies: + punycode "^1.4.1" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +typescript@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.1.tgz#6160e4f8f195d5ba81d4876f9c0cc1fbc0820624" + +uglify-js@^2.8.14: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +uuid@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +wide-align@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" diff --git a/tools/node_modules/eslint/node_modules/util-deprecate/README.md b/tools/node_modules/eslint/node_modules/util-deprecate/README.md deleted file mode 100644 index 75622fa7c250a6..00000000000000 --- a/tools/node_modules/eslint/node_modules/util-deprecate/README.md +++ /dev/null @@ -1,53 +0,0 @@ -util-deprecate -============== -### The Node.js `util.deprecate()` function with browser support - -In Node.js, this module simply re-exports the `util.deprecate()` function. - -In the web browser (i.e. via browserify), a browser-specific implementation -of the `util.deprecate()` function is used. - - -## API - -A `deprecate()` function is the only thing exposed by this module. - -``` javascript -// setup: -exports.foo = deprecate(foo, 'foo() is deprecated, use bar() instead'); - - -// users see: -foo(); -// foo() is deprecated, use bar() instead -foo(); -foo(); -``` - - -## License - -(The MIT License) - -Copyright (c) 2014 Nathan Rajlich - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/util-deprecate/browser.js b/tools/node_modules/eslint/node_modules/util-deprecate/browser.js deleted file mode 100644 index 549ae2f065ea5a..00000000000000 --- a/tools/node_modules/eslint/node_modules/util-deprecate/browser.js +++ /dev/null @@ -1,67 +0,0 @@ - -/** - * Module exports. - */ - -module.exports = deprecate; - -/** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - -function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -} - -/** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - -function config (name) { - // accessing global.localStorage can trigger a DOMException in sandboxed iframes - try { - if (!global.localStorage) return false; - } catch (_) { - return false; - } - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; -} diff --git a/tools/node_modules/eslint/node_modules/util-deprecate/node.js b/tools/node_modules/eslint/node_modules/util-deprecate/node.js deleted file mode 100644 index 5e6fcff5ddd3fb..00000000000000 --- a/tools/node_modules/eslint/node_modules/util-deprecate/node.js +++ /dev/null @@ -1,6 +0,0 @@ - -/** - * For Node.js, simply re-export the core `util.deprecate` function. - */ - -module.exports = require('util').deprecate; diff --git a/tools/node_modules/eslint/node_modules/util-deprecate/package.json b/tools/node_modules/eslint/node_modules/util-deprecate/package.json deleted file mode 100644 index 4b2d763c6172d1..00000000000000 --- a/tools/node_modules/eslint/node_modules/util-deprecate/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "_from": "util-deprecate@~1.0.1", - "_id": "util-deprecate@1.0.2", - "_inBundle": false, - "_integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "_location": "/eslint/util-deprecate", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "util-deprecate@~1.0.1", - "name": "util-deprecate", - "escapedName": "util-deprecate", - "rawSpec": "~1.0.1", - "saveSpec": null, - "fetchSpec": "~1.0.1" - }, - "_requiredBy": [ - "/eslint/readable-stream" - ], - "_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "_shasum": "450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "_spec": "util-deprecate@~1.0.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/readable-stream", - "author": { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": "http://n8.io/" - }, - "browser": "browser.js", - "bugs": { - "url": "https://github.com/TooTallNate/util-deprecate/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "The Node.js `util.deprecate()` function with browser support", - "homepage": "https://github.com/TooTallNate/util-deprecate", - "keywords": [ - "util", - "deprecate", - "browserify", - "browser", - "node" - ], - "license": "MIT", - "main": "node.js", - "name": "util-deprecate", - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/util-deprecate.git" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "version": "1.0.2" -} diff --git a/tools/node_modules/eslint/node_modules/vfile-location/index.js b/tools/node_modules/eslint/node_modules/vfile-location/index.js index 9263d2486a7530..e2046ce22b3e4c 100644 --- a/tools/node_modules/eslint/node_modules/vfile-location/index.js +++ b/tools/node_modules/eslint/node_modules/vfile-location/index.js @@ -1,77 +1,77 @@ -'use strict'; +'use strict' /* Expose. */ -module.exports = factory; +module.exports = factory /* Factory. */ function factory(file) { - var contents = indices(String(file)); + var contents = indices(String(file)) return { toPosition: offsetToPositionFactory(contents), toOffset: positionToOffsetFactory(contents) - }; + } } /* Factory to get the line and column-based `position` for * `offset` in the bound indices. */ function offsetToPositionFactory(indices) { - return offsetToPosition; + return offsetToPosition /* Get the line and column-based `position` for * `offset` in the bound indices. */ function offsetToPosition(offset) { - var index = -1; - var length = indices.length; + var index = -1 + var length = indices.length if (offset < 0) { - return {}; + return {} } while (++index < length) { if (indices[index] > offset) { return { line: index + 1, - column: (offset - (indices[index - 1] || 0)) + 1, + column: offset - (indices[index - 1] || 0) + 1, offset: offset - }; + } } } - return {}; + return {} } } /* Factory to get the `offset` for a line and column-based * `position` in the bound indices. */ function positionToOffsetFactory(indices) { - return positionToOffset; + return positionToOffset /* Get the `offset` for a line and column-based * `position` in the bound indices. */ function positionToOffset(position) { - var line = position && position.line; - var column = position && position.column; + var line = position && position.line + var column = position && position.column if (!isNaN(line) && !isNaN(column) && line - 1 in indices) { - return ((indices[line - 2] || 0) + column - 1) || 0; + return (indices[line - 2] || 0) + column - 1 || 0 } - return -1; + return -1 } } /* Get indices of line-breaks in `value`. */ function indices(value) { - var result = []; - var index = value.indexOf('\n'); + var result = [] + var index = value.indexOf('\n') while (index !== -1) { - result.push(index + 1); - index = value.indexOf('\n', index + 1); + result.push(index + 1) + index = value.indexOf('\n', index + 1) } - result.push(value.length + 1); + result.push(value.length + 1) - return result; + return result } diff --git a/tools/node_modules/eslint/node_modules/vfile-location/package.json b/tools/node_modules/eslint/node_modules/vfile-location/package.json index c8a1d7ace95164..409b37cd25f71c 100644 --- a/tools/node_modules/eslint/node_modules/vfile-location/package.json +++ b/tools/node_modules/eslint/node_modules/vfile-location/package.json @@ -1,8 +1,8 @@ { "_from": "vfile-location@^2.0.0", - "_id": "vfile-location@2.0.2", + "_id": "vfile-location@2.0.3", "_inBundle": false, - "_integrity": "sha1-02dcWch3SY5JK0dW/2Xkrxp1IlU=", + "_integrity": "sha512-zM5/l4lfw1CBoPx3Jimxoc5RNDAHHpk6AM6LM0pTIkm5SUSsx8ZekZ0PVdf0WEZ7kjlhSt7ZlqbRL6Cd6dBs6A==", "_location": "/vfile-location", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/remark-parse" ], - "_resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.2.tgz", - "_shasum": "d3675c59c877498e492b4756ff65e4af1a752255", + "_resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.3.tgz", + "_shasum": "083ba80e50968e8d420be49dd1ea9a992131df77", "_spec": "vfile-location@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -42,14 +42,15 @@ "deprecated": false, "description": "Convert between positions (line and column-based) and offsets (range-based) locations in a virtual file", "devDependencies": { - "browserify": "^14.0.0", + "browserify": "^16.0.0", "esmangle": "^1.0.1", "nyc": "^11.0.0", - "remark-cli": "^3.0.0", - "remark-preset-wooorm": "^3.0.0", + "prettier": "^1.12.1", + "remark-cli": "^5.0.0", + "remark-preset-wooorm": "^4.0.0", "tape": "^4.0.0", "vfile": "^2.0.0", - "xo": "^0.18.0" + "xo": "^0.20.0" }, "files": [ "index.js" @@ -70,6 +71,14 @@ "functions": 100, "branches": 100 }, + "prettier": { + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "bracketSpacing": false, + "semi": false, + "trailingComma": "none" + }, "remarkConfig": { "plugins": [ "preset-wooorm" @@ -80,19 +89,23 @@ "url": "git+https://github.com/vfile/vfile-location.git" }, "scripts": { - "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build": "npm run build-bundle && npm run build-mangle", "build-bundle": "browserify index.js --bare -s vfileLocation > vfile-location.js", "build-mangle": "esmangle vfile-location.js > vfile-location.min.js", - "build-md": "remark . -qfo", - "lint": "xo", - "test": "npm run build && npm run lint && npm run test-coverage", + "format": "remark . -qfo && prettier --write '**/*.js' && xo --fix", + "test": "npm run format && npm run build && npm run test-coverage", "test-api": "node test", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "2.0.2", + "version": "2.0.3", "xo": { - "space": true, + "prettier": true, "esnext": false, + "rules": { + "no-var": "off", + "prefer-arrow-callback": "off", + "object-shorthand": "off" + }, "ignores": [ "vfile-location.js" ] diff --git a/tools/node_modules/eslint/node_modules/vfile-location/readme.md b/tools/node_modules/eslint/node_modules/vfile-location/readme.md index c9bad64cce11f5..87e27dcd8ef0f4 100644 --- a/tools/node_modules/eslint/node_modules/vfile-location/readme.md +++ b/tools/node_modules/eslint/node_modules/vfile-location/readme.md @@ -14,12 +14,13 @@ npm install vfile-location ## Usage ```js -var vfile = require('vfile'); -var vfileLocation = require('vfile-location'); -var location = vfileLocation(vfile('foo\nbar\nbaz')); +var vfile = require('vfile') +var vfileLocation = require('vfile-location') -location.toOffset({line: 3, column: 3}); //=> 10 -location.toPosition(offset); //=> {line: 3, column: 3, offset: 10} +var location = vfileLocation(vfile('foo\nbar\nbaz')) + +var offset = location.toOffset({line: 3, column: 3}) // => 10 +location.toPosition(offset) // => {line: 3, column: 3, offset: 10} ``` ## API @@ -43,6 +44,13 @@ when given invalid or out of bounds input. Get the line and column-based [`position`][position] for `offset` in the bound file. +## Contribute + +See [`contributing.md` in `vfile/vfile`][contributing] for ways to get started. + +This organisation has a [Code of Conduct][coc]. By interacting with this +repository, organisation, or community you agree to abide by its terms. + ## License [MIT][license] © [Titus Wormer][author] @@ -70,3 +78,7 @@ the bound file. [to-position]: #locationtopositionoffset [position]: https://github.com/syntax-tree/unist#position + +[contributing]: https://github.com/vfile/vfile/blob/master/contributing.md + +[coc]: https://github.com/vfile/vfile/blob/master/code-of-conduct.md diff --git a/tools/node_modules/eslint/node_modules/vfile-message/index.js b/tools/node_modules/eslint/node_modules/vfile-message/index.js index 89417cf2402723..1a63df89f5b163 100644 --- a/tools/node_modules/eslint/node_modules/vfile-message/index.js +++ b/tools/node_modules/eslint/node_modules/vfile-message/index.js @@ -1,25 +1,25 @@ -'use strict'; +'use strict' -var stringify = require('unist-util-stringify-position'); +var stringify = require('unist-util-stringify-position') -module.exports = VMessage; +module.exports = VMessage /* Inherit from `Error#`. */ function VMessagePrototype() {} -VMessagePrototype.prototype = Error.prototype; -VMessage.prototype = new VMessagePrototype(); +VMessagePrototype.prototype = Error.prototype +VMessage.prototype = new VMessagePrototype() /* Message properties. */ -var proto = VMessage.prototype; +var proto = VMessage.prototype -proto.file = ''; -proto.name = ''; -proto.reason = ''; -proto.message = ''; -proto.stack = ''; -proto.fatal = null; -proto.column = null; -proto.line = null; +proto.file = '' +proto.name = '' +proto.reason = '' +proto.message = '' +proto.stack = '' +proto.fatal = null +proto.column = null +proto.line = null /* Construct a new VMessage. * @@ -27,68 +27,68 @@ proto.line = null; * as that adds readonly `line` and `column` attributes on * Safari 9, thus throwing and failing the data. */ function VMessage(reason, position, origin) { - var parts; - var range; - var location; + var parts + var range + var location if (typeof position === 'string') { - origin = position; - position = null; + origin = position + position = null } - parts = parseOrigin(origin); - range = stringify(position) || '1:1'; + parts = parseOrigin(origin) + range = stringify(position) || '1:1' location = { start: {line: null, column: null}, end: {line: null, column: null} - }; + } /* Node. */ if (position && position.position) { - position = position.position; + position = position.position } if (position) { /* Position. */ if (position.start) { - location = position; - position = position.start; + location = position + position = position.start } else { /* Point. */ - location.start = position; + location.start = position } } if (reason.stack) { - this.stack = reason.stack; - reason = reason.message; + this.stack = reason.stack + reason = reason.message } - this.message = reason; - this.name = range; - this.reason = reason; - this.line = position ? position.line : null; - this.column = position ? position.column : null; - this.location = location; - this.source = parts[0]; - this.ruleId = parts[1]; + this.message = reason + this.name = range + this.reason = reason + this.line = position ? position.line : null + this.column = position ? position.column : null + this.location = location + this.source = parts[0] + this.ruleId = parts[1] } function parseOrigin(origin) { - var result = [null, null]; - var index; + var result = [null, null] + var index if (typeof origin === 'string') { - index = origin.indexOf(':'); + index = origin.indexOf(':') if (index === -1) { - result[1] = origin; + result[1] = origin } else { - result[0] = origin.slice(0, index); - result[1] = origin.slice(index + 1); + result[0] = origin.slice(0, index) + result[1] = origin.slice(index + 1) } } - return result; + return result } diff --git a/tools/node_modules/eslint/node_modules/vfile-message/package.json b/tools/node_modules/eslint/node_modules/vfile-message/package.json index 302eb0b700f5d5..78ec136d24f3fe 100644 --- a/tools/node_modules/eslint/node_modules/vfile-message/package.json +++ b/tools/node_modules/eslint/node_modules/vfile-message/package.json @@ -1,8 +1,8 @@ { "_from": "vfile-message@^1.0.0", - "_id": "vfile-message@1.0.0", + "_id": "vfile-message@1.0.1", "_inBundle": false, - "_integrity": "sha512-HPREhzTOB/sNDc9/Mxf8w0FmHnThg5CRSJdR9VRFkD2riqYWs+fuXlj5z8mIpv2LrD7uU41+oPWFOL4Mjlf+dw==", + "_integrity": "sha512-vSGCkhNvJzO6VcWC6AlJW4NtYOVtS+RgCaqFIYUjoGIlHnFL+i0LbtYvonDWOMcB97uTPT4PRsyYY7REWC9vug==", "_location": "/vfile-message", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/vfile" ], - "_resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.0.0.tgz", - "_shasum": "a6adb0474ea400fa25d929f1d673abea6a17e359", + "_resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.0.1.tgz", + "_shasum": "51a2ccd8a6b97a7980bb34efb9ebde9632e93677", "_spec": "vfile-message@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/vfile", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/vfile", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -44,13 +44,14 @@ "deprecated": false, "description": "Create a virtual message", "devDependencies": { - "browserify": "^14.1.0", + "browserify": "^16.0.0", "esmangle": "^1.0.1", "nyc": "^11.0.0", - "remark-cli": "^4.0.0", - "remark-preset-wooorm": "^3.0.0", + "prettier": "^1.12.1", + "remark-cli": "^5.0.0", + "remark-preset-wooorm": "^4.0.0", "tape": "^4.0.0", - "xo": "^0.18.0" + "xo": "^0.20.0" }, "files": [ "index.js" @@ -69,6 +70,14 @@ "functions": 100, "branches": 100 }, + "prettier": { + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "bracketSpacing": false, + "semi": false, + "trailingComma": "none" + }, "remarkConfig": { "plugins": [ "preset-wooorm" @@ -79,19 +88,23 @@ "url": "git+https://github.com/vfile/vfile-message.git" }, "scripts": { - "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build": "npm run build-bundle && npm run build-mangle", "build-bundle": "browserify index.js --bare -s vfileMessage > vfile-message.js", "build-mangle": "esmangle vfile-message.js > vfile-message.min.js", - "build-md": "remark . -qfo", - "lint": "xo", - "test": "npm run build && npm run lint && npm run test-coverage", + "format": "remark . -qfo && prettier --write '**/*.js' && xo --fix", + "test": "npm run format && npm run build && npm run test-coverage", "test-api": "node test", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.0.0", + "version": "1.0.1", "xo": { - "space": true, + "prettier": true, "esnext": false, + "rules": { + "no-var": "off", + "prefer-arrow-callback": "off", + "object-shorthand": "off" + }, "ignores": [ "vfile-message.js" ] diff --git a/tools/node_modules/eslint/node_modules/vfile-message/readme.md b/tools/node_modules/eslint/node_modules/vfile-message/readme.md index 21a32912fc9196..c69cc406e35e74 100644 --- a/tools/node_modules/eslint/node_modules/vfile-message/readme.md +++ b/tools/node_modules/eslint/node_modules/vfile-message/readme.md @@ -13,11 +13,15 @@ npm install vfile-message ## Usage ```js -var VMessage = require('vfile-message'); +var VMessage = require('vfile-message') -var message = new VMessage('`braavo` is misspelt; did you mean `bravo`?', {line: 1, column: 8}, 'spell:typo'); +var message = new VMessage( + '`braavo` is misspelt; did you mean `bravo`?', + {line: 1, column: 8}, + 'spell:typo' +) -console.log(message); +console.log(message) ``` Yields: @@ -110,7 +114,7 @@ Stack of message (`string?`). ##### Custom properties -It’s OK to store custom data directly on the `VFileMessage`, some of those are +It’s OK to store custom data directly on the `VMessage`, some of those are handled by [utilities][util]. ###### `file` @@ -127,6 +131,13 @@ You may add a `note` property with a long form description of the message You may add a `url` property with a link to documentation for the message. +## Contribute + +See [`contributing.md` in `vfile/vfile`][contributing] for ways to get started. + +This organisation has a [Code of Conduct][coc]. By interacting with this +repository, organisation, or community you agree to abide by its terms. + ## License [MIT][license] © [Titus Wormer][author] @@ -157,6 +168,10 @@ You may add a `url` property with a link to documentation for the message. [vfile]: https://github.com/vfile/vfile +[contributing]: https://github.com/vfile/vfile/blob/master/contributing.md + +[coc]: https://github.com/vfile/vfile/blob/master/code-of-conduct.md + [util]: https://github.com/vfile/vfile#utilities [reporter]: https://github.com/vfile/vfile-reporter diff --git a/tools/node_modules/eslint/node_modules/vfile/package.json b/tools/node_modules/eslint/node_modules/vfile/package.json index f7b017230c4c35..8e2ba1045863c7 100644 --- a/tools/node_modules/eslint/node_modules/vfile/package.json +++ b/tools/node_modules/eslint/node_modules/vfile/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", "_shasum": "e62d8e72b20e83c324bc6c67278ee272488bf84a", "_spec": "vfile@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/unified", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/unified", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", diff --git a/tools/node_modules/eslint/node_modules/which/package.json b/tools/node_modules/eslint/node_modules/which/package.json index 482a024ff52f3b..90ceecf77fa1d2 100644 --- a/tools/node_modules/eslint/node_modules/which/package.json +++ b/tools/node_modules/eslint/node_modules/which/package.json @@ -1,8 +1,8 @@ { "_from": "which@^1.2.9", - "_id": "which@1.3.0", + "_id": "which@1.3.1", "_inBundle": false, - "_integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "_integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "_location": "/eslint/which", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/eslint/cross-spawn" ], - "_resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "_shasum": "ff04bdfc010ee547d780bec38e1ac1c2777d253a", + "_resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "_shasum": "a45043d54f5805316da8d62f9f50918d3da70b0a", "_spec": "which@^1.2.9", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/cross-spawn", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/cross-spawn", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -41,8 +41,8 @@ "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", "devDependencies": { "mkdirp": "^0.5.0", - "rimraf": "^2.3.3", - "tap": "^10.7.0" + "rimraf": "^2.6.2", + "tap": "^12.0.1" }, "files": [ "which.js", @@ -61,5 +61,5 @@ "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}", "test": "tap test/*.js --cov" }, - "version": "1.3.0" + "version": "1.3.1" } diff --git a/tools/node_modules/eslint/node_modules/wordwrap/package.json b/tools/node_modules/eslint/node_modules/wordwrap/package.json index 2aca21afbd53c5..26c72b8871bccf 100644 --- a/tools/node_modules/eslint/node_modules/wordwrap/package.json +++ b/tools/node_modules/eslint/node_modules/wordwrap/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "_shasum": "27584810891456a4171c8d0226441ade90cbcaeb", "_spec": "wordwrap@~1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/optionator", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/optionator", "author": { "name": "James Halliday", "email": "mail@substack.net", diff --git a/tools/node_modules/eslint/node_modules/wrappy/package.json b/tools/node_modules/eslint/node_modules/wrappy/package.json index bc1c1e2eac51fe..bb2486f7846539 100644 --- a/tools/node_modules/eslint/node_modules/wrappy/package.json +++ b/tools/node_modules/eslint/node_modules/wrappy/package.json @@ -22,7 +22,7 @@ "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "_shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", "_spec": "wrappy@1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inflight", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/inflight", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", diff --git a/tools/node_modules/eslint/node_modules/write/package.json b/tools/node_modules/eslint/node_modules/write/package.json index 9229848c715511..da1e985e9a3774 100644 --- a/tools/node_modules/eslint/node_modules/write/package.json +++ b/tools/node_modules/eslint/node_modules/write/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "_shasum": "5fc03828e264cea3fe91455476f7a3c566cb0757", "_spec": "write@^0.2.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/flat-cache", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/flat-cache", "author": { "name": "Jon Schlinkert", "url": "https://github.com/jonschlinkert" diff --git a/tools/node_modules/eslint/node_modules/x-is-function/README.md b/tools/node_modules/eslint/node_modules/x-is-function/README.md deleted file mode 100644 index 0c21a7e9ff09f6..00000000000000 --- a/tools/node_modules/eslint/node_modules/x-is-function/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# x-is-function -x is a function - -# usage -`npm install x-is-function` - -```js -var isFunction = require('x-is-function') - -isFunction(function () {}) -// -> true - -isFunction("hello") -// -> false - -isFunction("") -// -> false - -isFunction(9) -// -> false - -isFunction(true) -// -> false - -isFunction(new Date()) -// -> false - -isFunction({}) -// -> false - -isFunction(null) -// -> false - -isFunction(undefined) -// -> false -``` - - -# related -a list of other `x-is-...` modules can be found at -* [x-is](https://www.npmjs.com/package/x-is) diff --git a/tools/node_modules/eslint/node_modules/x-is-function/index.js b/tools/node_modules/eslint/node_modules/x-is-function/index.js deleted file mode 100644 index b820d6318d09a1..00000000000000 --- a/tools/node_modules/eslint/node_modules/x-is-function/index.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = function isFunction (fn) { - return Object.prototype.toString.call(fn) === '[object Function]' -} diff --git a/tools/node_modules/eslint/node_modules/x-is-function/package.json b/tools/node_modules/eslint/node_modules/x-is-function/package.json deleted file mode 100644 index 6a8ced6788953d..00000000000000 --- a/tools/node_modules/eslint/node_modules/x-is-function/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "_from": "x-is-function@^1.0.4", - "_id": "x-is-function@1.0.4", - "_inBundle": false, - "_integrity": "sha1-XSlNw9Joy90GJYDgxd93o5HR+h4=", - "_location": "/x-is-function", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "x-is-function@^1.0.4", - "name": "x-is-function", - "escapedName": "x-is-function", - "rawSpec": "^1.0.4", - "saveSpec": null, - "fetchSpec": "^1.0.4" - }, - "_requiredBy": [ - "/unified" - ], - "_resolved": "https://registry.npmjs.org/x-is-function/-/x-is-function-1.0.4.tgz", - "_shasum": "5d294dc3d268cbdd062580e0c5df77a391d1fa1e", - "_spec": "x-is-function@^1.0.4", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/unified", - "author": { - "name": "@serapath" - }, - "bugs": { - "url": "https://github.com/serapath/x-is-function/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Simple function test", - "homepage": "https://github.com/serapath/x-is-function#readme", - "license": "MIT", - "main": "index.js", - "name": "x-is-function", - "repository": { - "type": "git", - "url": "git+https://github.com/serapath/x-is-function.git" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "version": "1.0.4" -} diff --git a/tools/node_modules/eslint/node_modules/x-is-string/package.json b/tools/node_modules/eslint/node_modules/x-is-string/package.json index cfc0c71147cea9..cc8de6ac805bc5 100644 --- a/tools/node_modules/eslint/node_modules/x-is-string/package.json +++ b/tools/node_modules/eslint/node_modules/x-is-string/package.json @@ -21,7 +21,7 @@ "_resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", "_shasum": "474b50865af3a49a9c4657f05acd145458f77d82", "_spec": "x-is-string@^0.1.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/unified", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/unified", "author": { "name": "Matt-Esch", "email": "matt@mattesch.info" diff --git a/tools/node_modules/eslint/node_modules/xtend/package.json b/tools/node_modules/eslint/node_modules/xtend/package.json index c04cd90c78994d..44f0b28da494e2 100644 --- a/tools/node_modules/eslint/node_modules/xtend/package.json +++ b/tools/node_modules/eslint/node_modules/xtend/package.json @@ -22,7 +22,7 @@ "_resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "_shasum": "a5c6d532be656e23db820efb943a1f04998d63af", "_spec": "xtend@^4.0.1", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Raynos", "email": "raynos2@gmail.com" diff --git a/tools/node_modules/eslint/node_modules/yallist/LICENSE b/tools/node_modules/eslint/node_modules/yallist/LICENSE deleted file mode 100644 index 19129e315fe593..00000000000000 --- a/tools/node_modules/eslint/node_modules/yallist/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/yallist/README.md b/tools/node_modules/eslint/node_modules/yallist/README.md deleted file mode 100644 index f5861018696688..00000000000000 --- a/tools/node_modules/eslint/node_modules/yallist/README.md +++ /dev/null @@ -1,204 +0,0 @@ -# yallist - -Yet Another Linked List - -There are many doubly-linked list implementations like it, but this -one is mine. - -For when an array would be too big, and a Map can't be iterated in -reverse order. - - -[![Build Status](https://travis-ci.org/isaacs/yallist.svg?branch=master)](https://travis-ci.org/isaacs/yallist) [![Coverage Status](https://coveralls.io/repos/isaacs/yallist/badge.svg?service=github)](https://coveralls.io/github/isaacs/yallist) - -## basic usage - -```javascript -var yallist = require('yallist') -var myList = yallist.create([1, 2, 3]) -myList.push('foo') -myList.unshift('bar') -// of course pop() and shift() are there, too -console.log(myList.toArray()) // ['bar', 1, 2, 3, 'foo'] -myList.forEach(function (k) { - // walk the list head to tail -}) -myList.forEachReverse(function (k, index, list) { - // walk the list tail to head -}) -var myDoubledList = myList.map(function (k) { - return k + k -}) -// now myDoubledList contains ['barbar', 2, 4, 6, 'foofoo'] -// mapReverse is also a thing -var myDoubledListReverse = myList.mapReverse(function (k) { - return k + k -}) // ['foofoo', 6, 4, 2, 'barbar'] - -var reduced = myList.reduce(function (set, entry) { - set += entry - return set -}, 'start') -console.log(reduced) // 'startfoo123bar' -``` - -## api - -The whole API is considered "public". - -Functions with the same name as an Array method work more or less the -same way. - -There's reverse versions of most things because that's the point. - -### Yallist - -Default export, the class that holds and manages a list. - -Call it with either a forEach-able (like an array) or a set of -arguments, to initialize the list. - -The Array-ish methods all act like you'd expect. No magic length, -though, so if you change that it won't automatically prune or add -empty spots. - -### Yallist.create(..) - -Alias for Yallist function. Some people like factories. - -#### yallist.head - -The first node in the list - -#### yallist.tail - -The last node in the list - -#### yallist.length - -The number of nodes in the list. (Change this at your peril. It is -not magic like Array length.) - -#### yallist.toArray() - -Convert the list to an array. - -#### yallist.forEach(fn, [thisp]) - -Call a function on each item in the list. - -#### yallist.forEachReverse(fn, [thisp]) - -Call a function on each item in the list, in reverse order. - -#### yallist.get(n) - -Get the data at position `n` in the list. If you use this a lot, -probably better off just using an Array. - -#### yallist.getReverse(n) - -Get the data at position `n`, counting from the tail. - -#### yallist.map(fn, thisp) - -Create a new Yallist with the result of calling the function on each -item. - -#### yallist.mapReverse(fn, thisp) - -Same as `map`, but in reverse. - -#### yallist.pop() - -Get the data from the list tail, and remove the tail from the list. - -#### yallist.push(item, ...) - -Insert one or more items to the tail of the list. - -#### yallist.reduce(fn, initialValue) - -Like Array.reduce. - -#### yallist.reduceReverse - -Like Array.reduce, but in reverse. - -#### yallist.reverse - -Reverse the list in place. - -#### yallist.shift() - -Get the data from the list head, and remove the head from the list. - -#### yallist.slice([from], [to]) - -Just like Array.slice, but returns a new Yallist. - -#### yallist.sliceReverse([from], [to]) - -Just like yallist.slice, but the result is returned in reverse. - -#### yallist.toArray() - -Create an array representation of the list. - -#### yallist.toArrayReverse() - -Create a reversed array representation of the list. - -#### yallist.unshift(item, ...) - -Insert one or more items to the head of the list. - -#### yallist.unshiftNode(node) - -Move a Node object to the front of the list. (That is, pull it out of -wherever it lives, and make it the new head.) - -If the node belongs to a different list, then that list will remove it -first. - -#### yallist.pushNode(node) - -Move a Node object to the end of the list. (That is, pull it out of -wherever it lives, and make it the new tail.) - -If the node belongs to a list already, then that list will remove it -first. - -#### yallist.removeNode(node) - -Remove a node from the list, preserving referential integrity of head -and tail and other nodes. - -Will throw an error if you try to have a list remove a node that -doesn't belong to it. - -### Yallist.Node - -The class that holds the data and is actually the list. - -Call with `var n = new Node(value, previousNode, nextNode)` - -Note that if you do direct operations on Nodes themselves, it's very -easy to get into weird states where the list is broken. Be careful :) - -#### node.next - -The next node in the list. - -#### node.prev - -The previous node in the list. - -#### node.value - -The data the node contains. - -#### node.list - -The list to which this node belongs. (Null if it does not belong to -any list.) diff --git a/tools/node_modules/eslint/node_modules/yallist/iterator.js b/tools/node_modules/eslint/node_modules/yallist/iterator.js deleted file mode 100644 index 4a15bf22c40032..00000000000000 --- a/tools/node_modules/eslint/node_modules/yallist/iterator.js +++ /dev/null @@ -1,7 +0,0 @@ -var Yallist = require('./yallist.js') - -Yallist.prototype[Symbol.iterator] = function* () { - for (let walker = this.head; walker; walker = walker.next) { - yield walker.value - } -} diff --git a/tools/node_modules/eslint/node_modules/yallist/package.json b/tools/node_modules/eslint/node_modules/yallist/package.json deleted file mode 100644 index 1a26ba81939d24..00000000000000 --- a/tools/node_modules/eslint/node_modules/yallist/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "_from": "yallist@^2.1.2", - "_id": "yallist@2.1.2", - "_inBundle": false, - "_integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "_location": "/eslint/yallist", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "yallist@^2.1.2", - "name": "yallist", - "escapedName": "yallist", - "rawSpec": "^2.1.2", - "saveSpec": null, - "fetchSpec": "^2.1.2" - }, - "_requiredBy": [ - "/eslint/lru-cache" - ], - "_resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "_shasum": "1c11f9218f076089a47dd512f93c6699a6a81d52", - "_spec": "yallist@^2.1.2", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/lru-cache", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/yallist/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "Yet Another Linked List", - "devDependencies": { - "tap": "^10.3.0" - }, - "directories": { - "test": "test" - }, - "files": [ - "yallist.js", - "iterator.js" - ], - "homepage": "https://github.com/isaacs/yallist#readme", - "license": "ISC", - "main": "yallist.js", - "name": "yallist", - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/yallist.git" - }, - "scripts": { - "postpublish": "git push origin --all; git push origin --tags", - "postversion": "npm publish", - "preversion": "npm test", - "test": "tap test/*.js --100" - }, - "version": "2.1.2" -} diff --git a/tools/node_modules/eslint/node_modules/yallist/yallist.js b/tools/node_modules/eslint/node_modules/yallist/yallist.js deleted file mode 100644 index 518d23330b936c..00000000000000 --- a/tools/node_modules/eslint/node_modules/yallist/yallist.js +++ /dev/null @@ -1,370 +0,0 @@ -module.exports = Yallist - -Yallist.Node = Node -Yallist.create = Yallist - -function Yallist (list) { - var self = this - if (!(self instanceof Yallist)) { - self = new Yallist() - } - - self.tail = null - self.head = null - self.length = 0 - - if (list && typeof list.forEach === 'function') { - list.forEach(function (item) { - self.push(item) - }) - } else if (arguments.length > 0) { - for (var i = 0, l = arguments.length; i < l; i++) { - self.push(arguments[i]) - } - } - - return self -} - -Yallist.prototype.removeNode = function (node) { - if (node.list !== this) { - throw new Error('removing node which does not belong to this list') - } - - var next = node.next - var prev = node.prev - - if (next) { - next.prev = prev - } - - if (prev) { - prev.next = next - } - - if (node === this.head) { - this.head = next - } - if (node === this.tail) { - this.tail = prev - } - - node.list.length-- - node.next = null - node.prev = null - node.list = null -} - -Yallist.prototype.unshiftNode = function (node) { - if (node === this.head) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var head = this.head - node.list = this - node.next = head - if (head) { - head.prev = node - } - - this.head = node - if (!this.tail) { - this.tail = node - } - this.length++ -} - -Yallist.prototype.pushNode = function (node) { - if (node === this.tail) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var tail = this.tail - node.list = this - node.prev = tail - if (tail) { - tail.next = node - } - - this.tail = node - if (!this.head) { - this.head = node - } - this.length++ -} - -Yallist.prototype.push = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - push(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.unshift = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - unshift(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.pop = function () { - if (!this.tail) { - return undefined - } - - var res = this.tail.value - this.tail = this.tail.prev - if (this.tail) { - this.tail.next = null - } else { - this.head = null - } - this.length-- - return res -} - -Yallist.prototype.shift = function () { - if (!this.head) { - return undefined - } - - var res = this.head.value - this.head = this.head.next - if (this.head) { - this.head.prev = null - } else { - this.tail = null - } - this.length-- - return res -} - -Yallist.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.head, i = 0; walker !== null; i++) { - fn.call(thisp, walker.value, i, this) - walker = walker.next - } -} - -Yallist.prototype.forEachReverse = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { - fn.call(thisp, walker.value, i, this) - walker = walker.prev - } -} - -Yallist.prototype.get = function (n) { - for (var i = 0, walker = this.head; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.next - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.getReverse = function (n) { - for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.prev - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.map = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.head; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.next - } - return res -} - -Yallist.prototype.mapReverse = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.tail; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.prev - } - return res -} - -Yallist.prototype.reduce = function (fn, initial) { - var acc - var walker = this.head - if (arguments.length > 1) { - acc = initial - } else if (this.head) { - walker = this.head.next - acc = this.head.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = 0; walker !== null; i++) { - acc = fn(acc, walker.value, i) - walker = walker.next - } - - return acc -} - -Yallist.prototype.reduceReverse = function (fn, initial) { - var acc - var walker = this.tail - if (arguments.length > 1) { - acc = initial - } else if (this.tail) { - walker = this.tail.prev - acc = this.tail.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = this.length - 1; walker !== null; i--) { - acc = fn(acc, walker.value, i) - walker = walker.prev - } - - return acc -} - -Yallist.prototype.toArray = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.head; walker !== null; i++) { - arr[i] = walker.value - walker = walker.next - } - return arr -} - -Yallist.prototype.toArrayReverse = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.tail; walker !== null; i++) { - arr[i] = walker.value - walker = walker.prev - } - return arr -} - -Yallist.prototype.slice = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = 0, walker = this.head; walker !== null && i < from; i++) { - walker = walker.next - } - for (; walker !== null && i < to; i++, walker = walker.next) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.sliceReverse = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { - walker = walker.prev - } - for (; walker !== null && i > from; i--, walker = walker.prev) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.reverse = function () { - var head = this.head - var tail = this.tail - for (var walker = head; walker !== null; walker = walker.prev) { - var p = walker.prev - walker.prev = walker.next - walker.next = p - } - this.head = tail - this.tail = head - return this -} - -function push (self, item) { - self.tail = new Node(item, self.tail, null, self) - if (!self.head) { - self.head = self.tail - } - self.length++ -} - -function unshift (self, item) { - self.head = new Node(item, null, self.head, self) - if (!self.tail) { - self.tail = self.head - } - self.length++ -} - -function Node (value, prev, next, list) { - if (!(this instanceof Node)) { - return new Node(value, prev, next, list) - } - - this.list = list - this.value = value - - if (prev) { - prev.next = this - this.prev = prev - } else { - this.prev = null - } - - if (next) { - next.prev = this - this.next = next - } else { - this.next = null - } -} diff --git a/tools/node_modules/eslint/package.json b/tools/node_modules/eslint/package.json index 67fcc320a285ed..4e87fafd72f902 100644 --- a/tools/node_modules/eslint/package.json +++ b/tools/node_modules/eslint/package.json @@ -1,8 +1,8 @@ { "_from": "eslint@latest", - "_id": "eslint@4.19.1", + "_id": "eslint@5.0.0", "_inBundle": false, - "_integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "_integrity": "sha512-MA0YWJLeK7BPEBxJCINvKnQdKpeTwbac3Xonh0PPFjWYZkowZf+Xl30lJWJ/BWOqFQdAdPcyOh0aBqlbH6ojAg==", "_location": "/eslint", "_phantomChildren": {}, "_requested": { @@ -19,10 +19,10 @@ "#USER", "/" ], - "_resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "_shasum": "32d1d653e1d90408854bfb296f076ec7e186a300", + "_resolved": "https://registry.npmjs.org/eslint/-/eslint-5.0.0.tgz", + "_shasum": "3576704f7377aca072da69c00862277c5fe57153", "_spec": "eslint@latest", - "_where": "/Users/trott/io.js/tools/eslint-tmp", + "_where": "/Users/cjihrig/iojs/node/tools/eslint-tmp", "author": { "name": "Nicholas C. Zakas", "email": "nicholas+npm@nczconsulting.com" @@ -35,90 +35,90 @@ }, "bundleDependencies": false, "dependencies": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", + "ajv": "^6.5.0", + "babel-code-frame": "^6.26.0", "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", + "cross-spawn": "^6.0.5", "debug": "^3.1.0", "doctrine": "^2.1.0", - "eslint-plugin-markdown": "^1.0.0-beta.7", - "eslint-scope": "^3.7.1", + "eslint-plugin-markdown": "^1.0.0-beta.8", + "eslint-scope": "^4.0.0", "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^2.0.0", "functional-red-black-tree": "^1.0.1", "glob": "^7.1.2", - "globals": "^11.0.1", + "globals": "^11.5.0", "ignore": "^3.3.3", "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", + "inquirer": "^5.2.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.11.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", "optionator": "^0.8.2", "path-is-inside": "^1.0.2", "pluralize": "^7.0.0", "progress": "^2.0.0", - "regexpp": "^1.0.1", + "regexpp": "^1.1.0", "require-uncached": "^1.0.3", - "semver": "^5.3.0", + "semver": "^5.5.0", + "string.prototype.matchall": "^2.0.0", "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" + "strip-json-comments": "^2.0.1", + "table": "^4.0.3", + "text-table": "^0.2.0" }, "deprecated": false, "description": "An AST-based pattern checker for JavaScript.", "devDependencies": { - "babel-polyfill": "^6.23.0", + "babel-core": "^6.26.3", + "babel-polyfill": "^6.26.0", "babel-preset-es2015": "^6.24.1", - "babelify": "^7.3.0", + "babelify": "^8.0.0", "beefy": "^2.1.8", - "brfs": "1.4.3", - "browserify": "^14.4.0", + "brfs": "^1.5.0", + "browserify": "^16.2.2", "chai": "^4.0.1", "cheerio": "^0.22.0", - "coveralls": "^2.13.1", - "dateformat": "^2.0.0", - "ejs": "^2.5.6", + "coveralls": "^3.0.1", + "dateformat": "^3.0.3", + "ejs": "^2.6.1", "eslint-plugin-eslint-plugin": "^1.2.0", - "eslint-plugin-node": "^5.1.0", + "eslint-plugin-node": "^6.0.1", "eslint-plugin-rulesdir": "^0.1.0", - "eslint-release": "^0.10.1", - "eslint-rule-composer": "^0.1.0", - "eslump": "1.6.0", + "eslint-release": "^0.11.1", + "eslint-rule-composer": "^0.3.0", + "eslump": "^1.6.2", "esprima": "^4.0.0", - "esprima-fb": "^15001.1001.0-dev-harmony-fb", "istanbul": "^0.4.5", - "jsdoc": "^3.4.3", - "karma": "^1.7.0", - "karma-babel-preprocessor": "^6.0.1", + "jsdoc": "^3.5.5", + "karma": "^2.0.0", + "karma-babel-preprocessor": "^7.0.0", "karma-mocha": "^1.3.0", "karma-mocha-reporter": "^2.2.3", "karma-phantomjs-launcher": "^1.0.4", - "leche": "^2.1.2", + "leche": "^2.2.3", "load-perf": "^0.2.0", - "markdownlint": "^0.6.1", - "mocha": "^3.4.2", - "mock-fs": "^4.3.0", + "markdownlint": "^0.8.1", + "mocha": "^5.0.5", + "mock-fs": "^4.5.0", "npm-license": "^0.3.3", - "phantomjs-prebuilt": "^2.1.14", - "proxyquire": "^1.8.0", - "shelljs": "^0.7.7", - "sinon": "^3.2.1", + "phantomjs-prebuilt": "^2.1.16", + "proxyquire": "^2.0.1", + "shelljs": "^0.8.2", + "sinon": "^3.3.0", "temp": "^0.8.3", "through": "^2.3.8" }, "engines": { - "node": ">=4" + "node": "^6.14.0 || ^8.10.0 || >=9.10.0" }, "files": [ "LICENSE", @@ -155,8 +155,9 @@ "lint": "node Makefile.js lint", "perf": "node Makefile.js perf", "profile": "beefy tests/bench/bench.js --open -- -t brfs -t ./tests/bench/xform-rules.js -r espree", + "rcrelease": "node Makefile.js prerelease -- rc", "release": "node Makefile.js release", "test": "node Makefile.js test" }, - "version": "4.19.1" + "version": "5.0.0" } From 23598239d1c9098e4aab9e5ce9fec3c9a4726956 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Wed, 30 May 2018 22:55:45 +0200 Subject: [PATCH 045/109] doc: fix HTTP req/res 'close' description PR-URL: https://github.com/nodejs/node/pull/21047 Reviewed-By: James M Snell --- doc/api/http.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/doc/api/http.md b/doc/api/http.md index 886aa23c504878..aa36e304630855 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -1013,8 +1013,7 @@ interface. This is an [`EventEmitter`][] with the following events: added: v0.6.7 --> -Indicates that the underlying connection was terminated before -[`response.end()`][] was called or able to flush. +Indicates that the underlying connection was terminated. ### Event: 'finish' Indicates that the underlying connection was closed. -Just like `'end'`, this event occurs only once per response. ### message.aborted +```js +[ { type: 'A', address: '127.0.0.1', ttl: 299 }, + { type: 'CNAME', value: 'example.com' }, + { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 }, + { type: 'NS', value: 'ns1.example.com' }, + { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] }, + { type: 'SOA', + nsname: 'ns1.example.com', + hostmaster: 'admin.example.com', + serial: 156696742, + refresh: 900, + retry: 900, + expire: 1800, + minttl: 60 } ] +``` + ## dns.resolveCname(hostname, callback) -```js -[ { type: 'A', address: '127.0.0.1', ttl: 299 }, - { type: 'CNAME', value: 'example.com' }, - { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 }, - { type: 'NS', value: 'ns1.example.com' }, - { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] }, - { type: 'SOA', - nsname: 'ns1.example.com', - hostmaster: 'admin.example.com', - serial: 156696742, - refresh: 900, - retry: 900, - expire: 1800, - minttl: 60 } ] -``` - ## dns.reverse(ip, callback) +- `hostname` {string} + +Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query). +On success, the `Promise` is resolved with an array containing various types of +records. Each object has a property `type` that indicates the type of the +current record. And depending on the `type`, additional properties will be +present on the object: + +| Type | Properties | +|------|------------| +| `'A'` | `address`/`ttl` | +| `'AAAA'` | `address`/`ttl` | +| `'CNAME'` | `value` | +| `'MX'` | Refer to [`dnsPromises.resolveMx()`][] | +| `'NAPTR'` | Refer to [`dnsPromises.resolveNaptr()`][] | +| `'NS'` | `value` | +| `'PTR'` | `value` | +| `'SOA'` | Refer to [`dnsPromises.resolveSoa()`][] | +| `'SRV'` | Refer to [`dnsPromises.resolveSrv()`][] | +| `'TXT'` | This type of record contains an array property called `entries` which refers to [`dnsPromises.resolveTxt()`][], e.g. `{ entries: ['...'], type: 'TXT' }` | + +Here is an example of the result object: + + +```js +[ { type: 'A', address: '127.0.0.1', ttl: 299 }, + { type: 'CNAME', value: 'example.com' }, + { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 }, + { type: 'NS', value: 'ns1.example.com' }, + { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] }, + { type: 'SOA', + nsname: 'ns1.example.com', + hostmaster: 'admin.example.com', + serial: 156696742, + refresh: 900, + retry: 900, + expire: 1800, + minttl: 60 } ] +``` + ### dnsPromises.resolveCname(hostname) -- `hostname` {string} - -Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query). -On success, the `Promise` is resolved with an array containing various types of -records. Each object has a property `type` that indicates the type of the -current record. And depending on the `type`, additional properties will be -present on the object: - -| Type | Properties | -|------|------------| -| `'A'` | `address`/`ttl` | -| `'AAAA'` | `address`/`ttl` | -| `'CNAME'` | `value` | -| `'MX'` | Refer to [`dnsPromises.resolveMx()`][] | -| `'NAPTR'` | Refer to [`dnsPromises.resolveNaptr()`][] | -| `'NS'` | `value` | -| `'PTR'` | `value` | -| `'SOA'` | Refer to [`dnsPromises.resolveSoa()`][] | -| `'SRV'` | Refer to [`dnsPromises.resolveSrv()`][] | -| `'TXT'` | This type of record contains an array property called `entries` which refers to [`dnsPromises.resolveTxt()`][], e.g. `{ entries: ['...'], type: 'TXT' }` | - -Here is an example of the result object: - - -```js -[ { type: 'A', address: '127.0.0.1', ttl: 299 }, - { type: 'CNAME', value: 'example.com' }, - { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 }, - { type: 'NS', value: 'ns1.example.com' }, - { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] }, - { type: 'SOA', - nsname: 'ns1.example.com', - hostmaster: 'admin.example.com', - serial: 156696742, - refresh: 900, - retry: 900, - expire: 1800, - minttl: 60 } ] -``` - ### dnsPromises.reverse(ip) + +Enable experimental worker threads using the `worker_threads` module. + ### `--force-fips` * `code` {string} The JavaScript code to compile. @@ -431,11 +435,39 @@ changes: `cachedData` property of the returned `vm.Script` instance. The `cachedDataProduced` value will be set to either `true` or `false` depending on whether code cache data is produced successfully. + This option is deprecated in favor of `script.createCachedData`. Creating a new `vm.Script` object compiles `code` but does not run it. The compiled `vm.Script` can be run later multiple times. The `code` is not bound to any global object; rather, it is bound before each run, just for that run. +### script.createCachedData() + + +* Returns: {Buffer} + +Creates a code cache that can be used with the Script constructor's +`cachedData` option. Returns a Buffer. This method may be called at any +time and any number of times. + +```js +const script = new vm.Script(` +function add(a, b) { + return a + b; +} + +const x = add(1, 2); +`); + +const cacheWithoutX = script.createCachedData(); + +script.runInThisContext(); + +const cacheWithX = script.createCachedData(); +``` + ### script.runInContext(contextifiedSandbox[, options]) * `path` {string|Buffer|URL} @@ -3899,7 +3904,11 @@ no arguments upon success. This method is only implemented on macOS. ### fsPromises.lchown(path, uid, gid) * `path` {string|Buffer|URL} @@ -3908,7 +3917,7 @@ deprecated: v10.0.0 * Returns: {Promise} Changes the ownership on a symbolic link then resolves the `Promise` with -no arguments upon success. This method is only implemented on macOS. +no arguments upon success. ### fsPromises.link(existingPath, newPath) -- `password` {string|Buffer|TypedArray} -- `salt` {string|Buffer|TypedArray} +- `password` {string|Buffer|TypedArray|DataView} +- `salt` {string|Buffer|TypedArray|DataView} - `iterations` {number} - `keylen` {number} - `digest` {string} @@ -1849,8 +1849,8 @@ changes: description: The default encoding for `password` if it is a string changed from `binary` to `utf8`. --> -- `password` {string|Buffer|TypedArray} -- `salt` {string|Buffer|TypedArray} +- `password` {string|Buffer|TypedArray|DataView} +- `salt` {string|Buffer|TypedArray|DataView} - `iterations` {number} - `keylen` {number} - `digest` {string} @@ -2147,8 +2147,8 @@ request. -- `password` {string|Buffer|TypedArray} -- `salt` {string|Buffer|TypedArray} +- `password` {string|Buffer|TypedArray|DataView} +- `salt` {string|Buffer|TypedArray|DataView} - `keylen` {number} - `options` {Object} - `N` {number} CPU/memory cost parameter. Must be a power of two greater @@ -2193,8 +2193,8 @@ crypto.scrypt('secret', 'salt', 64, { N: 1024 }, (err, derivedKey) => { -- `password` {string|Buffer|TypedArray} -- `salt` {string|Buffer|TypedArray} +- `password` {string|Buffer|TypedArray|DataView} +- `salt` {string|Buffer|TypedArray|DataView} - `keylen` {number} - `options` {Object} - `N` {number} CPU/memory cost parameter. Must be a power of two greater From eb6dcf2696cff4008350496a75e7174178428fa0 Mon Sep 17 00:00:00 2001 From: Hugo Josefson Date: Thu, 28 Jun 2018 19:48:59 +0200 Subject: [PATCH 089/109] doc: fix typo in fs.md Fixes simple typo of `excludiing` to `excluding`. PR-URL: https://github.com/nodejs/node/pull/21579 Reviewed-By: Vse Mozhet Byt Reviewed-By: Rich Trott --- doc/api/fs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/fs.md b/doc/api/fs.md index 111c6b4deaebbf..6cbcf150ec4120 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -4021,7 +4021,7 @@ added: v10.0.0 * Returns: {Promise} Reads the contents of a directory then resolves the `Promise` with an array -of the names of the files in the directory excludiing `'.'` and `'..'`. +of the names of the files in the directory excluding `'.'` and `'..'`. The optional `options` argument can be a string specifying an encoding, or an object with an `encoding` property specifying the character encoding to use for From 49706b44b7b490397658417c5666c1180e274525 Mon Sep 17 00:00:00 2001 From: Weijia Wang <381152119@qq.com> Date: Tue, 26 Jun 2018 08:14:41 +0800 Subject: [PATCH 090/109] workers: replace message types string by constants This change can prevent typos and redundant strings in code. PR-URL: https://github.com/nodejs/node/pull/21537 Reviewed-By: Anna Henningsen Reviewed-By: Benjamin Gruenbaum Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca --- lib/internal/worker.js | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/lib/internal/worker.js b/lib/internal/worker.js index df4f28cf749fe9..bcc864b5b8b330 100644 --- a/lib/internal/worker.js +++ b/lib/internal/worker.js @@ -47,6 +47,15 @@ const kIncrementsPortRef = Symbol('kIncrementsPortRef'); const debug = util.debuglog('worker'); +const messageTypes = { + UP_AND_RUNNING: 'upAndRunning', + COULD_NOT_SERIALIZE_ERROR: 'couldNotSerializeError', + ERROR_MESSAGE: 'errorMessage', + STDIO_PAYLOAD: 'stdioPayload', + STDIO_WANTS_MORE_DATA: 'stdioWantsMoreData', + LOAD_SCRIPT: 'loadScript' +}; + // A communication channel consisting of a handle (that wraps around an // uv_async_t) which can receive information from other threads and emits // .onmessage events, and a function used for sending data to a MessagePort @@ -158,7 +167,7 @@ class ReadableWorkerStdio extends Readable { } this[kPort].postMessage({ - type: 'stdioWantsMoreData', + type: messageTypes.STDIO_WANTS_MORE_DATA, stream: this[kName] }); } @@ -174,7 +183,7 @@ class WritableWorkerStdio extends Writable { _write(chunk, encoding, cb) { this[kPort].postMessage({ - type: 'stdioPayload', + type: messageTypes.STDIO_PAYLOAD, stream: this[kName], chunk, encoding @@ -186,7 +195,7 @@ class WritableWorkerStdio extends Writable { _final(cb) { this[kPort].postMessage({ - type: 'stdioPayload', + type: messageTypes.STDIO_PAYLOAD, stream: this[kName], chunk: null }); @@ -258,7 +267,7 @@ class Worker extends EventEmitter { this[kPublicPort].on('message', (message) => this.emit('message', message)); setupPortReferencing(this[kPublicPort], this, 'message'); this[kPort].postMessage({ - type: 'loadScript', + type: messageTypes.LOAD_SCRIPT, filename, doEval: !!options.eval, workerData: options.workerData, @@ -289,18 +298,18 @@ class Worker extends EventEmitter { [kOnMessage](message) { switch (message.type) { - case 'upAndRunning': + case messageTypes.UP_AND_RUNNING: return this.emit('online'); - case 'couldNotSerializeError': + case messageTypes.COULD_NOT_SERIALIZE_ERROR: return this[kOnCouldNotSerializeErr](); - case 'errorMessage': + case messageTypes.ERROR_MESSAGE: return this[kOnErrorMessage](message.error); - case 'stdioPayload': + case messageTypes.STDIO_PAYLOAD: { const { stream, chunk, encoding } = message; return this[kParentSideStdio][stream].push(chunk, encoding); } - case 'stdioWantsMoreData': + case messageTypes.STDIO_WANTS_MORE_DATA: { const { stream } = message; return this[kParentSideStdio][stream][kStdioWantsMoreDataCallback](); @@ -396,7 +405,7 @@ function setupChild(evalScript) { const publicWorker = require('worker_threads'); port.on('message', (message) => { - if (message.type === 'loadScript') { + if (message.type === messageTypes.LOAD_SCRIPT) { const { filename, doEval, workerData, publicPort, hasStdin } = message; publicWorker.parentPort = publicPort; setupPortReferencing(publicPort, publicPort, 'message'); @@ -408,7 +417,7 @@ function setupChild(evalScript) { debug(`[${threadId}] starts worker script ${filename} ` + `(eval = ${eval}) at cwd = ${process.cwd()}`); port.unref(); - port.postMessage({ type: 'upAndRunning' }); + port.postMessage({ type: messageTypes.UP_AND_RUNNING }); if (doEval) { evalScript('[worker eval]', filename); } else { @@ -416,11 +425,11 @@ function setupChild(evalScript) { require('module').runMain(); } return; - } else if (message.type === 'stdioPayload') { + } else if (message.type === messageTypes.STDIO_PAYLOAD) { const { stream, chunk, encoding } = message; workerStdio[stream].push(chunk, encoding); return; - } else if (message.type === 'stdioWantsMoreData') { + } else if (message.type === messageTypes.STDIO_WANTS_MORE_DATA) { const { stream } = message; workerStdio[stream][kStdioWantsMoreDataCallback](); return; @@ -451,9 +460,12 @@ function setupChild(evalScript) { } catch {} debug(`[${threadId}] fatal exception serialized = ${!!serialized}`); if (serialized) - port.postMessage({ type: 'errorMessage', error: serialized }); + port.postMessage({ + type: messageTypes.ERROR_MESSAGE, + error: serialized + }); else - port.postMessage({ type: 'couldNotSerializeError' }); + port.postMessage({ type: messageTypes.COULD_NOT_SERIALIZE_ERROR }); clearAsyncIdStack(); } } From 41c4b2c76a4259998729aa4db5bda32f0e7f4088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Sun, 24 Jun 2018 20:23:36 +0200 Subject: [PATCH 091/109] workers: add test for messagePort.onmessage PR-URL: https://github.com/nodejs/node/pull/21510 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Colin Ihrig Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Yuta Hiroto Reviewed-By: Trivikram Kamat Reviewed-By: Weijia Wang Reviewed-By: Luigi Pinca Reviewed-By: James M Snell --- test/parallel/test-worker-onmessage.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 test/parallel/test-worker-onmessage.js diff --git a/test/parallel/test-worker-onmessage.js b/test/parallel/test-worker-onmessage.js new file mode 100644 index 00000000000000..895536c15038be --- /dev/null +++ b/test/parallel/test-worker-onmessage.js @@ -0,0 +1,18 @@ +// Flags: --experimental-worker +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { Worker, isMainThread, parentPort } = require('worker_threads'); + +if (isMainThread) { + const w = new Worker(__filename); + w.on('message', common.mustCall((message) => { + assert.strictEqual(message, 4); + w.terminate(); + })); + w.postMessage(2); +} else { + parentPort.onmessage = common.mustCall((message) => { + parentPort.postMessage(message * 2); + }); +} From bb0795a5c51d539aaebf21ffac604686f0acb9d0 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Tue, 26 Jun 2018 00:07:36 +0200 Subject: [PATCH 092/109] src: slightly simplify `FSEventWrap` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We don’t need to track `initialized_`, `HandleWrap` already does that for us. PR-URL: https://github.com/nodejs/node/pull/21533 Reviewed-By: Eugene Ostroukhov Reviewed-By: Joyee Cheung Reviewed-By: Anatoli Papirovski Reviewed-By: Ben Noordhuis Reviewed-By: Colin Ihrig Reviewed-By: James M Snell --- src/fs_event_wrap.cc | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/src/fs_event_wrap.cc b/src/fs_event_wrap.cc index a9ac67957335b3..164614ae81145f 100644 --- a/src/fs_event_wrap.cc +++ b/src/fs_event_wrap.cc @@ -55,7 +55,6 @@ class FSEventWrap: public HandleWrap { Local context); static void New(const FunctionCallbackInfo& args); static void Start(const FunctionCallbackInfo& args); - static void Close(const FunctionCallbackInfo& args); static void GetInitialized(const FunctionCallbackInfo& args); size_t self_size() const override { return sizeof(*this); } @@ -69,7 +68,6 @@ class FSEventWrap: public HandleWrap { int status); uv_fs_event_t handle_; - bool initialized_ = false; enum encoding encoding_ = kDefaultEncoding; }; @@ -89,7 +87,7 @@ FSEventWrap::~FSEventWrap() { void FSEventWrap::GetInitialized(const FunctionCallbackInfo& args) { FSEventWrap* wrap = Unwrap(args.This()); CHECK_NOT_NULL(wrap); - args.GetReturnValue().Set(wrap->initialized_); + args.GetReturnValue().Set(!wrap->IsHandleClosing()); } void FSEventWrap::Initialize(Local target, @@ -134,7 +132,7 @@ void FSEventWrap::Start(const FunctionCallbackInfo& args) { FSEventWrap* wrap = Unwrap(args.This()); CHECK_NOT_NULL(wrap); - CHECK(!wrap->initialized_); + CHECK(wrap->IsHandleClosing()); // Check that Start() has not been called. const int argc = args.Length(); CHECK_GE(argc, 4); @@ -155,7 +153,6 @@ void FSEventWrap::Start(const FunctionCallbackInfo& args) { err = uv_fs_event_start(&wrap->handle_, OnEvent, *path, flags); wrap->MarkAsInitialized(); - wrap->initialized_ = true; if (err != 0) { FSEventWrap::Close(args); @@ -230,16 +227,6 @@ void FSEventWrap::OnEvent(uv_fs_event_t* handle, const char* filename, wrap->MakeCallback(env->onchange_string(), arraysize(argv), argv); } - -void FSEventWrap::Close(const FunctionCallbackInfo& args) { - FSEventWrap* wrap = Unwrap(args.Holder()); - CHECK_NOT_NULL(wrap); - CHECK(wrap->initialized_); - - wrap->initialized_ = false; - HandleWrap::Close(args); -} - } // anonymous namespace } // namespace node From 3d3dbae7d8b14e1a32128f957a1b5c333b525da7 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Sat, 16 Jun 2018 21:28:34 +0200 Subject: [PATCH 093/109] build: remove requirement to re-run ./configure Instead of requiring `./configure` to be run again after the file changed, first try to re-run the configure script with the arguments with which it was originally run. Usually, those arguments will either contain no flags, or all flags that were passed are still supported. PR-URL: https://github.com/nodejs/node/pull/21371 Reviewed-By: Gus Caplan Reviewed-By: Ujjwal Sharma Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell Reviewed-By: Tiancheng "Timothy" Gu --- .gitignore | 1 + Makefile | 7 ++++++- configure | 7 +++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 27e22ef6183f61..d8b381203b6a00 100644 --- a/.gitignore +++ b/.gitignore @@ -69,6 +69,7 @@ ipch/ /config.mk /config.gypi +/config.status /config_fips.gypi *-nodegyp* /gyp-mac-tool diff --git a/Makefile b/Makefile index 55e4c52e7d6ebd..802cccbce6aa6d 100644 --- a/Makefile +++ b/Makefile @@ -114,7 +114,12 @@ out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \ $(PYTHON) tools/gyp_node.py -f make config.gypi: configure - $(error Missing or stale $@, please run ./$<) + @if [ -x config.status ]; then \ + ./config.status; \ + else \ + echo Missing or stale $@, please run ./$<; \ + exit 1; \ + fi .PHONY: install install: all ## Installs node into $PREFIX (default=/usr/local). diff --git a/configure b/configure index efb92701e2606f..3a9ab42414569e 100755 --- a/configure +++ b/configure @@ -28,6 +28,7 @@ if sys.version_info[0] != 2 or sys.version_info[1] not in (6, 7): import errno import optparse import os +import pipes import pprint import re import shlex @@ -38,6 +39,8 @@ import string # If not run from node/, cd to node/. os.chdir(os.path.dirname(__file__) or '.') +original_argv = sys.argv[1:] + # gcc and g++ as defaults matches what GYP's Makefile generator does, # except on OS X. CC = os.environ.get('CC', 'cc' if sys.platform == 'darwin' else 'gcc') @@ -1530,6 +1533,10 @@ pprint.pprint(output, indent=2) write('config.gypi', do_not_edit + pprint.pformat(output, indent=2) + '\n') +write('config.status', '#!/bin/sh\nset -x\nexec ./configure ' + + ' '.join([pipes.quote(arg) for arg in original_argv]) + '\n') +os.chmod('config.status', 0775) + config = { 'BUILDTYPE': 'Debug' if options.debug else 'Release', 'PYTHON': sys.executable, From e7abde44db62912ccf4514ef17a88ff08bc0e7e2 Mon Sep 17 00:00:00 2001 From: itaysabato Date: Mon, 25 Jun 2018 10:13:01 +0300 Subject: [PATCH 094/109] test: add a request-response test for MessageChannel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds a request-response test for MessageChannel. PR-URL: https://github.com/nodejs/node/pull/21514 Reviewed-By: Michaël Zasso Reviewed-By: Benjamin Gruenbaum Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: James M Snell --- test/parallel/test-message-port.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/parallel/test-message-port.js b/test/parallel/test-message-port.js index fe88126d044c2b..2d321611ec7758 100644 --- a/test/parallel/test-message-port.js +++ b/test/parallel/test-message-port.js @@ -18,6 +18,21 @@ const { MessageChannel, MessagePort } = require('worker_threads'); })); } +{ + const { port1, port2 } = new MessageChannel(); + + port1.onmessage = common.mustCall((message) => { + assert.strictEqual(message, 4); + port2.close(common.mustCall()); + }); + + port1.postMessage(2); + + port2.onmessage = common.mustCall((message) => { + port2.postMessage(message * 2); + }); +} + { const { port1, port2 } = new MessageChannel(); From 0d98fe6ef9207020902813d0fe6f67c1109b6eff Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 29 Jun 2018 10:02:02 -0700 Subject: [PATCH 095/109] lib: fix segfault with --without-intl Node.js segfaults when build with `--without-intl` due to an oversight in d13cdd9. This fixes the issue. PR-URL: https://github.com/nodejs/node/pull/21589 Reviewed-By: Colin Ihrig Reviewed-By: Gus Caplan Reviewed-By: Benjamin Gruenbaum Reviewed-By: Refael Ackermann Reviewed-By: Luigi Pinca --- lib/internal/per_context.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/per_context.js b/lib/internal/per_context.js index bdbad5344ff430..f07e8822296b03 100644 --- a/lib/internal/per_context.js +++ b/lib/internal/per_context.js @@ -4,7 +4,7 @@ (function(global) { // https://github.com/nodejs/node/issues/14909 - delete global.Intl.v8BreakIterator; + if (global.Intl) delete global.Intl.v8BreakIterator; // https://github.com/nodejs/node/issues/21219 // Adds Atomics.notify and warns on first usage of Atomics.wake From 91384bfe5fe8ec73c1b2d3b585c2e0ab46d735be Mon Sep 17 00:00:00 2001 From: Gabriel Schulhof Date: Sun, 17 Jun 2018 11:52:49 -0400 Subject: [PATCH 096/109] n-api: add API for asynchronous functions Bundle a `uv_async_t`, a `uv_idle_t`, a `uv_mutex_t`, a `uv_cond_t`, and a `v8::Persistent` to make it possible to call into JS from another thread. The API accepts a void data pointer and a callback which will be invoked on the loop thread and which will receive the `napi_value` representing the JavaScript function to call so as to perform the call into JS. The callback is run inside a `node::CallbackScope`. A `std::queue` is used to store calls from the secondary threads, and an idle loop is started by the `uv_async_t` callback on the loop thread to drain the queue, calling into JS with each item. Items can be added to the queue blockingly or non-blockingly. The thread-safe function can be referenced or unreferenced, with the same semantics as libuv handles. Re: https://github.com/nodejs/help/issues/1035 Re: https://github.com/nodejs/node/issues/20964 Fixes: https://github.com/nodejs/node/issues/13512 PR-URL: https://github.com/nodejs/node/pull/17887 Reviewed-By: Matteo Collina Reviewed-By: Michael Dawson --- doc/api/errors.md | 25 + doc/api/n-api.md | 374 ++++++++++++++- src/node_api.cc | 440 +++++++++++++++++- src/node_api.h | 38 ++ src/node_api_types.h | 28 +- .../test_threadsafe_function/binding.c | 254 ++++++++++ .../test_threadsafe_function/binding.gyp | 8 + .../test_threadsafe_function/test.js | 166 +++++++ 8 files changed, 1329 insertions(+), 4 deletions(-) create mode 100644 test/addons-napi/test_threadsafe_function/binding.c create mode 100644 test/addons-napi/test_threadsafe_function/binding.gyp create mode 100644 test/addons-napi/test_threadsafe_function/test.js diff --git a/doc/api/errors.md b/doc/api/errors.md index 17de5b0b96a27f..494b188b09d8e9 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -1386,6 +1386,31 @@ multiple of the element size. While calling `napi_create_typedarray()`, `(length * size_of_element) + byte_offset` was larger than the length of given `buffer`. + +### ERR_NAPI_TSFN_CALL_JS + +An error occurred while invoking the JavaScript portion of the thread-safe +function. + + +### ERR_NAPI_TSFN_GET_UNDEFINED + +An error occurred while attempting to retrieve the JavaScript `undefined` +value. + + +### ERR_NAPI_TSFN_START_IDLE_LOOP + +On the main thread, values are removed from the queue associated with the +thread-safe function in an idle loop. This error indicates that an error +has occurred when attemping to start the loop. + + +### ERR_NAPI_TSFN_STOP_IDLE_LOOP + +Once no more items are left in the queue, the idle loop must be suspended. This +error indicates that the idle loop has failed to stop. + ### ERR_NO_CRYPTO diff --git a/doc/api/n-api.md b/doc/api/n-api.md index 5a9c81e3698ba3..ff90249606cfbb 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -75,7 +75,11 @@ typedef enum { napi_cancelled, napi_escape_called_twice, napi_handle_scope_mismatch, - napi_callback_scope_mismatch + napi_callback_scope_mismatch, +#ifdef NAPI_EXPERIMENTAL + napi_queue_full, + napi_closing, +#endif // NAPI_EXPERIMENTAL } napi_status; ``` If additional information is required upon an API returning a failed status, @@ -113,6 +117,43 @@ not allowed. ### napi_value This is an opaque pointer that is used to represent a JavaScript value. +### napi_threadsafe_function + +> Stability: 1 - Experimental + +This is an opaque pointer that represents a JavaScript function which can be +called asynchronously from multiple threads via +`napi_call_threadsafe_function()`. + +### napi_threadsafe_function_release_mode + +> Stability: 1 - Experimental + +A value to be given to `napi_release_threadsafe_function()` to indicate whether +the thread-safe function is to be closed immediately (`napi_tsfn_abort`) or +merely released (`napi_tsfn_release`) and thus available for subsequent use via +`napi_acquire_threadsafe_function()` and `napi_call_threadsafe_function()`. +```C +typedef enum { + napi_tsfn_release, + napi_tsfn_abort +} napi_threadsafe_function_release_mode; +``` + +### napi_threadsafe_function_call_mode + +> Stability: 1 - Experimental + +A value to be given to `napi_call_threadsafe_function()` to indicate whether +the call should block whenever the queue associated with the thread-safe +function is full. +```C +typedef enum { + napi_tsfn_nonblocking, + napi_tsfn_blocking +} napi_threadsafe_function_call_mode; +``` + ### N-API Memory Management types #### napi_handle_scope This is an abstraction used to control and modify the lifetime of objects @@ -194,6 +235,43 @@ typedef void (*napi_async_complete_callback)(napi_env env, void* data); ``` +#### napi_threadsafe_function_call_js + +> Stability: 1 - Experimental + +Function pointer used with asynchronous thread-safe function calls. The callback +will be called on the main thread. Its purpose is to use a data item arriving +via the queue from one of the secondary threads to construct the parameters +necessary for a call into JavaScript, usually via `napi_call_function`, and then +make the call into JavaScript. + +The data arriving from the secondary thread via the queue is given in the `data` +parameter and the JavaScript function to call is given in the `js_callback` +parameter. + +N-API sets up the environment prior to calling this callback, so it is +sufficient to call the JavaScript function via `napi_call_function` rather than +via `napi_make_callback`. + +Callback functions must satisfy the following signature: +```C +typedef void (*napi_threadsafe_function_call_js)(napi_env env, + napi_value js_callback, + void* context, + void* data); +``` +- `[in] env`: The environment to use for API calls, or `NULL` if the thread-safe +function is being torn down and `data` may need to be freed. +- `[in] js_callback`: The JavaScript function to call, or `NULL` if the +thread-safe function is being torn down and `data` may need to be freed. +- `[in] context`: The optional data with which the thread-safe function was +created. +- `[in] data`: Data created by the secondary thread. It is the responsibility of +the callback to convert this native data to JavaScript values (with N-API +functions) that can be passed as parameters when `js_callback` is invoked. This +pointer is managed entirely by the threads and this callback. Thus this callback +should free the data. + ## Error Handling N-API uses both return values and JavaScript exceptions for error handling. The following sections explain the approach for each case. @@ -3851,6 +3929,298 @@ NAPI_EXTERN napi_status napi_get_uv_event_loop(napi_env env, - `[in] env`: The environment that the API is invoked under. - `[out] loop`: The current libuv loop instance. + + +## Asynchronous Thread-safe Function Calls + +> Stability: 1 - Experimental + +JavaScript functions can normally only be called from a native addon's main +thread. If an addon creates additional threads, then N-API functions that +require a `napi_env`, `napi_value`, or `napi_ref` must not be called from those +threads. + +When an addon has additional threads and JavaScript functions need to be invoked +based on the processing completed by those threads, those threads must +communicate with the addon's main thread so that the main thread can invoke the +JavaScript function on their behalf. The thread-safe function APIs provide an +easy way to do this. + +These APIs provide the type `napi_threadsafe_function` as well as APIs to +create, destroy, and call objects of this type. +`napi_create_threadsafe_function()` creates a persistent reference to a +`napi_value` that holds a JavaScript function which can be called from multiple +threads. The calls happen asynchronously. This means that values with which the +JavaScript callback is to be called will be placed in a queue, and, for each +value in the queue, a call will eventually be made to the JavaScript function. + +Upon creation of a `napi_threadsafe_function` a `napi_finalize` callback can be +provided. This callback will be invoked on the main thread when the thread-safe +function is about to be destroyed. It receives the context and the finalize data +given during construction, and provides an opportunity for cleaning up after the +threads e.g. by calling `uv_thread_join()`. **It is important that, aside from +the main loop thread, there be no threads left using the thread-safe function +after the finalize callback completes.** + +The `context` given during the call to `napi_create_threadsafe_function()` can +be retrieved from any thread with a call to +`napi_get_threadsafe_function_context()`. + +`napi_call_threadsafe_function()` can then be used for initiating a call into +JavaScript. `napi_call_threadsafe_function()` accepts a parameter which controls +whether the API behaves blockingly. If set to `napi_tsfn_nonblocking`, the API +behaves non-blockingly, returning `napi_queue_full` if the queue was full, +preventing data from being successfully added to the queue. If set to +`napi_tsfn_blocking`, the API blocks until space becomes available in the queue. +`napi_call_threadsafe_function()` never blocks if the thread-safe function was +created with a maximum queue size of 0. + +The actual call into JavaScript is controlled by the callback given via the +`call_js_cb` parameter. `call_js_cb` is invoked on the main thread once for each +value that was placed into the queue by a successful call to +`napi_call_threadsafe_function()`. If such a callback is not given, a default +callback will be used, and the resulting JavaScript call will have no arguments. +The `call_js_cb` callback receives the JavaScript function to call as a +`napi_value` in its parameters, as well as the `void*` context pointer used when +creating the `napi_threadsafe_function`, and the next data pointer that was +created by one of the secondary threads. The callback can then use an API such +as `napi_call_function()` to call into JavaScript. + +The callback may also be invoked with `env` and `call_js_cb` both set to `NULL` +to indicate that calls into JavaScript are no longer possible, while items +remain in the queue that may need to be freed. This normally occurs when the +Node.js process exits while there is a thread-safe function still active. + +It is not necessary to call into JavaScript via `napi_make_callback()` because +N-API runs `call_js_cb` in a context appropriate for callbacks. + +Threads can be added to and removed from a `napi_threadsafe_function` object +during its existence. Thus, in addition to specifying an initial number of +threads upon creation, `napi_acquire_threadsafe_function` can be called to +indicate that a new thread will start making use of the thread-safe function. +Similarly, `napi_release_threadsafe_function` can be called to indicate that an +existing thread will stop making use of the thread-safe function. + +`napi_threadsafe_function` objects are destroyed when every thread which uses +the object has called `napi_release_threadsafe_function()` or has received a +return status of `napi_closing` in response to a call to +`napi_call_threadsafe_function`. The queue is emptied before the +`napi_threadsafe_function` is destroyed. It is important that +`napi_release_threadsafe_function()` be the last API call made in conjunction +with a given `napi_threadsafe_function`, because after the call completes, there +is no guarantee that the `napi_threadsafe_function` is still allocated. For the +same reason it is also important that no more use be made of a thread-safe +function after receiving a return value of `napi_closing` in response to a call +to `napi_call_threadsafe_function`. Data associated with the +`napi_threadsafe_function` can be freed in its `napi_finalize` callback which +was passed to `napi_create_threadsafe_function()`. + +Once the number of threads making use of a `napi_threadsafe_function` reaches +zero, no further threads can start making use of it by calling +`napi_acquire_threadsafe_function()`. In fact, all subsequent API calls +associated with it, except `napi_release_threadsafe_function()`, will return an +error value of `napi_closing`. + +The thread-safe function can be "aborted" by giving a value of `napi_tsfn_abort` +to `napi_release_threadsafe_function()`. This will cause all subsequent APIs +associated with the thread-safe function except +`napi_release_threadsafe_function()` to return `napi_closing` even before its +reference count reaches zero. In particular, `napi_call_threadsafe_function()` +will return `napi_closing`, thus informing the threads that it is no longer +possible to make asynchronous calls to the thread-safe function. This can be +used as a criterion for terminating the thread. **Upon receiving a return value +of `napi_closing` from `napi_call_threadsafe_function()` a thread must make no +further use of the thread-safe function because it is no longer guaranteed to +be allocated.** + +Similarly to libuv handles, thread-safe functions can be "referenced" and +"unreferenced". A "referenced" thread-safe function will cause the event loop on +the thread on which it is created to remain alive until the thread-safe function +is destroyed. In contrast, an "unreferenced" thread-safe function will not +prevent the event loop from exiting. The APIs `napi_ref_threadsafe_function` and +`napi_unref_threadsafe_function` exist for this purpose. + +### napi_create_threadsafe_function + +> Stability: 1 - Experimental + + +```C +NAPI_EXTERN napi_status +napi_create_threadsafe_function(napi_env env, + napi_value func, + napi_value async_resource, + napi_value async_resource_name, + size_t max_queue_size, + size_t initial_thread_count, + void* thread_finalize_data, + napi_finalize thread_finalize_cb, + void* context, + napi_threadsafe_function_call_js call_js_cb, + napi_threadsafe_function* result); +``` + +- `[in] env`: The environment that the API is invoked under. +- `[in] func`: The JavaScript function to call from another thread. +- `[in] async_resource`: An optional object associated with the async work that +will be passed to possible `async_hooks` [`init` hooks][]. +- `[in] async_resource_name`: A javaScript string to provide an identifier for +the kind of resource that is being provided for diagnostic information exposed +by the `async_hooks` API. +- `[in] max_queue_size`: Maximum size of the queue. 0 for no limit. +- `[in] initial_thread_count`: The initial number of threads, including the main +thread, which will be making use of this function. +- `[in] thread_finalize_data`: Data to be passed to `thread_finalize_cb`. +- `[in] thread_finalize_cb`: Function to call when the +`napi_threadsafe_function` is being destroyed. +- `[in] context`: Optional data to attach to the resulting +`napi_threadsafe_function`. +- `[in] call_js_cb`: Optional callback which calls the JavaScript function in +response to a call on a different thread. This callback will be called on the +main thread. If not given, the JavaScript function will be called with no +parameters and with `undefined` as its `this` value. +- `[out] result`: The asynchronous thread-safe JavaScript function. + +### napi_get_threadsafe_function_context + +> Stability: 1 - Experimental + + +```C +NAPI_EXTERN napi_status +napi_get_threadsafe_function_context(napi_threadsafe_function func, + void** result); +``` + +- `[in] func`: The thread-safe function for which to retrieve the context. +- `[out] context`: The location where to store the context. + +This API may be called from any thread which makes use of `func`. + +### napi_call_threadsafe_function + +> Stability: 1 - Experimental + + +```C +NAPI_EXTERN napi_status +napi_call_threadsafe_function(napi_threadsafe_function func, + void* data, + napi_threadsafe_function_call_mode is_blocking); +``` + +- `[in] func`: The asynchronous thread-safe JavaScript function to invoke. +- `[in] data`: Data to send into JavaScript via the callback `call_js_cb` +provided during the creation of the thread-safe JavaScript function. +- `[in] is_blocking`: Flag whose value can be either `napi_tsfn_blocking` to +indicate that the call should block if the queue is full or +`napi_tsfn_nonblocking` to indicate that the call should return immediately with +a status of `napi_queue_full` whenever the queue is full. + +This API will return `napi_closing` if `napi_release_threadsafe_function()` was +called with `abort` set to `napi_tsfn_abort` from any thread. The value is only +added to the queue if the API returns `napi_ok`. + +This API may be called from any thread which makes use of `func`. + +### napi_acquire_threadsafe_function + +> Stability: 1 - Experimental + + +```C +NAPI_EXTERN napi_status +napi_acquire_threadsafe_function(napi_threadsafe_function func); +``` + +- `[in] func`: The asynchronous thread-safe JavaScript function to start making +use of. + +A thread should call this API before passing `func` to any other thread-safe +function APIs to indicate that it will be making use of `func`. This prevents +`func` from being destroyed when all other threads have stopped making use of +it. + +This API may be called from any thread which will start making use of `func`. + +### napi_release_threadsafe_function + +> Stability: 1 - Experimental + + +```C +NAPI_EXTERN napi_status +napi_release_threadsafe_function(napi_threadsafe_function func, + napi_threadsafe_function_release_mode mode); +``` + +- `[in] func`: The asynchronous thread-safe JavaScript function whose reference +count to decrement. +- `[in] mode`: Flag whose value can be either `napi_tsfn_release` to indicate +that the current thread will make no further calls to the thread-safe function, +or `napi_tsfn_abort` to indicate that in addition to the current thread, no +other thread should make any further calls to the thread-safe function. If set +to `napi_tsfn_abort`, further calls to `napi_call_threadsafe_function()` will +return `napi_closing`, and no further values will be placed in the queue. + +A thread should call this API when it stops making use of `func`. Passing `func` +to any thread-safe APIs after having called this API has undefined results, as +`func` may have been destroyed. + +This API may be called from any thread which will stop making use of `func`. + +### napi_ref_threadsafe_function + +> Stability: 1 - Experimental + + +```C +NAPI_EXTERN napi_status +napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func); +``` + +- `[in] env`: The environment that the API is invoked under. +- `[in] func`: The thread-safe function to reference. + +This API is used to indicate that the event loop running on the main thread +should not exit until `func` has been destroyed. Similar to [`uv_ref`][] it is +also idempotent. + +This API may only be called from the main thread. + +### napi_unref_threadsafe_function + +> Stability: 1 - Experimental + + +```C +NAPI_EXTERN napi_status +napi_unref_threadsafe_function(napi_env env, napi_threadsafe_function func); +``` + +- `[in] env`: The environment that the API is invoked under. +- `[in] func`: The thread-safe function to unreference. + +This API is used to indicate that the event loop running on the main thread +may exit before `func` is destroyed. Similar to [`uv_unref`][] it is also +idempotent. + +This API may only be called from the main thread. + [ECMAScript Language Specification]: https://tc39.github.io/ecma262/ [Error Handling]: #n_api_error_handling [Native Abstractions for Node.js]: https://github.com/nodejs/nan @@ -3913,6 +4283,8 @@ NAPI_EXTERN napi_status napi_get_uv_event_loop(napi_env env, [`napi_throw_type_error`]: #n_api_napi_throw_type_error [`napi_unwrap`]: #n_api_napi_unwrap [`napi_wrap`]: #n_api_napi_wrap +[`uv_ref`]: http://docs.libuv.org/en/v1.x/handle.html#c.uv_ref +[`uv_unref`]: http://docs.libuv.org/en/v1.x/handle.html#c.uv_unref [`process.release`]: process.html#process_process_release [`init` hooks]: async_hooks.html#async_hooks_init_asyncid_type_triggerasyncid_resource diff --git a/src/node_api.cc b/src/node_api.cc index b1b498958b85df..c32e63ea2331ba 100644 --- a/src/node_api.cc +++ b/src/node_api.cc @@ -5,6 +5,7 @@ #include #include #include +#define NAPI_EXPERIMENTAL #include "node_api.h" #include "node_internals.h" #include "env.h" @@ -923,7 +924,10 @@ const char* error_messages[] = {nullptr, "The async work item was cancelled", "napi_escape_handle already called on scope", "Invalid handle scope usage", - "Invalid callback scope usage"}; + "Invalid callback scope usage", + "Thread-safe function queue is full", + "Thread-safe function handle is closing" +}; static inline napi_status napi_clear_last_error(napi_env env) { env->last_error.error_code = napi_ok; @@ -954,7 +958,7 @@ napi_status napi_get_last_error_info(napi_env env, // We don't have a napi_status_last as this would result in an ABI // change each time a message was added. static_assert( - node::arraysize(error_messages) == napi_callback_scope_mismatch + 1, + node::arraysize(error_messages) == napi_closing + 1, "Count of error messages must match count of error values"); CHECK_LE(env->last_error.error_code, napi_callback_scope_mismatch); @@ -3553,3 +3557,435 @@ napi_status napi_run_script(napi_env env, *result = v8impl::JsValueFromV8LocalValue(script_result.ToLocalChecked()); return GET_RETURN_STATUS(env); } + +class TsFn: public node::AsyncResource { + public: + TsFn(v8::Local func, + v8::Local resource, + v8::Local name, + size_t thread_count_, + void* context_, + size_t max_queue_size_, + napi_env env_, + void* finalize_data_, + napi_finalize finalize_cb_, + napi_threadsafe_function_call_js call_js_cb_): + AsyncResource(env_->isolate, + resource, + *v8::String::Utf8Value(env_->isolate, name)), + thread_count(thread_count_), + is_closing(false), + context(context_), + max_queue_size(max_queue_size_), + env(env_), + finalize_data(finalize_data_), + finalize_cb(finalize_cb_), + idle_running(false), + call_js_cb(call_js_cb_ == nullptr ? CallJs : call_js_cb_), + handles_closing(false) { + ref.Reset(env->isolate, func); + node::AddEnvironmentCleanupHook(env->isolate, Cleanup, this); + } + + ~TsFn() { + node::RemoveEnvironmentCleanupHook(env->isolate, Cleanup, this); + } + + // These methods can be called from any thread. + + napi_status Push(void* data, napi_threadsafe_function_call_mode mode) { + node::Mutex::ScopedLock lock(this->mutex); + + while (queue.size() >= max_queue_size && + max_queue_size > 0 && + !is_closing) { + if (mode == napi_tsfn_nonblocking) { + return napi_queue_full; + } + cond->Wait(lock); + } + + if (is_closing) { + if (thread_count == 0) { + return napi_invalid_arg; + } else { + thread_count--; + return napi_closing; + } + } else { + if (uv_async_send(&async) != 0) { + return napi_generic_failure; + } + queue.push(data); + return napi_ok; + } + } + + napi_status Acquire() { + node::Mutex::ScopedLock lock(this->mutex); + + if (is_closing) { + return napi_closing; + } + + thread_count++; + + return napi_ok; + } + + napi_status Release(napi_threadsafe_function_release_mode mode) { + node::Mutex::ScopedLock lock(this->mutex); + + if (thread_count == 0) { + return napi_invalid_arg; + } + + thread_count--; + + if (thread_count == 0 || mode == napi_tsfn_abort) { + if (!is_closing) { + is_closing = (mode == napi_tsfn_abort); + if (is_closing) { + cond->Signal(lock); + } + if (uv_async_send(&async) != 0) { + return napi_generic_failure; + } + } + } + + return napi_ok; + } + + void EmptyQueueAndDelete() { + for (; !queue.empty() ; queue.pop()) { + call_js_cb(nullptr, nullptr, context, queue.front()); + } + delete this; + } + + // These methods must only be called from the loop thread. + + napi_status Init() { + TsFn* ts_fn = this; + + if (uv_async_init(env->loop, &async, AsyncCb) == 0) { + if (max_queue_size > 0) { + cond.reset(new node::ConditionVariable); + } + if ((max_queue_size == 0 || cond.get() != nullptr) && + uv_idle_init(env->loop, &idle) == 0) { + return napi_ok; + } + + node::Environment::GetCurrent(env->isolate)->CloseHandle( + reinterpret_cast(&async), + [] (uv_handle_t* handle) -> void { + TsFn* ts_fn = + node::ContainerOf(&TsFn::async, + reinterpret_cast(handle)); + delete ts_fn; + }); + + // Prevent the thread-safe function from being deleted here, because + // the callback above will delete it. + ts_fn = nullptr; + } + + delete ts_fn; + + return napi_generic_failure; + } + + napi_status Unref() { + uv_unref(reinterpret_cast(&async)); + uv_unref(reinterpret_cast(&idle)); + + return napi_ok; + } + + napi_status Ref() { + uv_ref(reinterpret_cast(&async)); + uv_ref(reinterpret_cast(&idle)); + + return napi_ok; + } + + void DispatchOne() { + void* data; + bool popped_value = false; + bool idle_stop_failed = false; + + { + node::Mutex::ScopedLock lock(this->mutex); + if (is_closing) { + CloseHandlesAndMaybeDelete(); + } else { + size_t size = queue.size(); + if (size > 0) { + data = queue.front(); + queue.pop(); + popped_value = true; + if (size == max_queue_size && max_queue_size > 0) { + cond->Signal(lock); + } + size--; + } + + if (size == 0) { + if (thread_count == 0) { + is_closing = true; + cond->Signal(lock); + CloseHandlesAndMaybeDelete(); + } else { + if (uv_idle_stop(&idle) != 0) { + idle_stop_failed = true; + } else { + idle_running = false; + } + } + } + } + } + + if (popped_value || idle_stop_failed) { + v8::HandleScope scope(env->isolate); + CallbackScope cb_scope(this); + + if (idle_stop_failed) { + CHECK(napi_throw_error(env, + "ERR_NAPI_TSFN_STOP_IDLE_LOOP", + "Failed to stop the idle loop") == napi_ok); + } else { + v8::Local js_cb = + v8::Local::New(env->isolate, ref); + call_js_cb(env, + v8impl::JsValueFromV8LocalValue(js_cb), + context, + data); + } + } + } + + node::Environment* NodeEnv() { + // For some reason grabbing the Node.js environment requires a handle scope. + v8::HandleScope scope(env->isolate); + return node::Environment::GetCurrent(env->isolate); + } + + void MaybeStartIdle() { + if (!idle_running) { + if (uv_idle_start(&idle, IdleCb) != 0) { + v8::HandleScope scope(env->isolate); + CallbackScope cb_scope(this); + CHECK(napi_throw_error(env, + "ERR_NAPI_TSFN_START_IDLE_LOOP", + "Failed to start the idle loop") == napi_ok); + } + } + } + + void Finalize() { + v8::HandleScope scope(env->isolate); + if (finalize_cb) { + CallbackScope cb_scope(this); + finalize_cb(env, finalize_data, context); + } + EmptyQueueAndDelete(); + } + + inline void* Context() { + return context; + } + + void CloseHandlesAndMaybeDelete(bool set_closing = false) { + if (set_closing) { + node::Mutex::ScopedLock lock(this->mutex); + is_closing = true; + cond->Signal(lock); + } + if (handles_closing) { + return; + } + handles_closing = true; + NodeEnv()->CloseHandle( + reinterpret_cast(&async), + [] (uv_handle_t* handle) -> void { + TsFn* ts_fn = node::ContainerOf(&TsFn::async, + reinterpret_cast(handle)); + ts_fn->NodeEnv()->CloseHandle( + reinterpret_cast(&ts_fn->idle), + [] (uv_handle_t* handle) -> void { + TsFn* ts_fn = node::ContainerOf(&TsFn::idle, + reinterpret_cast(handle)); + ts_fn->Finalize(); + }); + }); + } + + // Default way of calling into JavaScript. Used when TsFn is constructed + // without a call_js_cb_. + static void CallJs(napi_env env, napi_value cb, void* context, void* data) { + if (!(env == nullptr || cb == nullptr)) { + napi_value recv; + napi_status status; + + status = napi_get_undefined(env, &recv); + if (status != napi_ok) { + napi_throw_error(env, "ERR_NAPI_TSFN_GET_UNDEFINED", + "Failed to retrieve undefined value"); + return; + } + + status = napi_call_function(env, recv, cb, 0, nullptr, nullptr); + if (status != napi_ok && status != napi_pending_exception) { + napi_throw_error(env, "ERR_NAPI_TSFN_CALL_JS", + "Failed to call JS callback"); + return; + } + } + } + + static void IdleCb(uv_idle_t* idle) { + TsFn* ts_fn = + node::ContainerOf(&TsFn::idle, idle); + ts_fn->DispatchOne(); + } + + static void AsyncCb(uv_async_t* async) { + TsFn* ts_fn = + node::ContainerOf(&TsFn::async, async); + ts_fn->MaybeStartIdle(); + } + + static void Cleanup(void* data) { + reinterpret_cast(data)->CloseHandlesAndMaybeDelete(true); + } + + private: + // These are variables protected by the mutex. + node::Mutex mutex; + std::unique_ptr cond; + std::queue queue; + uv_async_t async; + uv_idle_t idle; + size_t thread_count; + bool is_closing; + + // These are variables set once, upon creation, and then never again, which + // means we don't need the mutex to read them. + void* context; + size_t max_queue_size; + + // These are variables accessed only from the loop thread. + node::Persistent ref; + napi_env env; + void* finalize_data; + napi_finalize finalize_cb; + bool idle_running; + napi_async_context async_context; + napi_threadsafe_function_call_js call_js_cb; + bool handles_closing; +}; + +NAPI_EXTERN napi_status +napi_create_threadsafe_function(napi_env env, + napi_value func, + napi_value async_resource, + napi_value async_resource_name, + size_t max_queue_size, + size_t initial_thread_count, + void* thread_finalize_data, + napi_finalize thread_finalize_cb, + void* context, + napi_threadsafe_function_call_js call_js_cb, + napi_threadsafe_function* result) { + CHECK_ENV(env); + CHECK_ARG(env, func); + CHECK_ARG(env, async_resource_name); + RETURN_STATUS_IF_FALSE(env, initial_thread_count > 0, napi_invalid_arg); + CHECK_ARG(env, result); + + napi_status status = napi_ok; + + v8::Local v8_func; + CHECK_TO_FUNCTION(env, v8_func, func); + + v8::Local v8_context = env->isolate->GetCurrentContext(); + + v8::Local v8_resource; + if (async_resource == nullptr) { + v8_resource = v8::Object::New(env->isolate); + } else { + CHECK_TO_OBJECT(env, v8_context, v8_resource, async_resource); + } + + v8::Local v8_name; + CHECK_TO_STRING(env, v8_context, v8_name, async_resource_name); + + TsFn* ts_fn = new TsFn(v8_func, + v8_resource, + v8_name, + initial_thread_count, + context, + max_queue_size, + env, + thread_finalize_data, + thread_finalize_cb, + call_js_cb); + + if (ts_fn == nullptr) { + status = napi_generic_failure; + } else { + // Init deletes ts_fn upon failure. + status = ts_fn->Init(); + if (status == napi_ok) { + *result = reinterpret_cast(ts_fn); + } + } + + return napi_set_last_error(env, status); +} + +NAPI_EXTERN napi_status +napi_get_threadsafe_function_context(napi_threadsafe_function func, + void** result) { + CHECK(func != nullptr); + CHECK(result != nullptr); + + *result = reinterpret_cast(func)->Context(); + return napi_ok; +} + +NAPI_EXTERN napi_status +napi_call_threadsafe_function(napi_threadsafe_function func, + void* data, + napi_threadsafe_function_call_mode is_blocking) { + CHECK(func != nullptr); + return reinterpret_cast(func)->Push(data, is_blocking); +} + +NAPI_EXTERN napi_status +napi_acquire_threadsafe_function(napi_threadsafe_function func) { + CHECK(func != nullptr); + return reinterpret_cast(func)->Acquire(); +} + +NAPI_EXTERN napi_status +napi_release_threadsafe_function(napi_threadsafe_function func, + napi_threadsafe_function_release_mode mode) { + CHECK(func != nullptr); + return reinterpret_cast(func)->Release(mode); +} + +NAPI_EXTERN napi_status +napi_unref_threadsafe_function(napi_env env, napi_threadsafe_function func) { + CHECK(func != nullptr); + return reinterpret_cast(func)->Unref(); +} + +NAPI_EXTERN napi_status +napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func) { + CHECK(func != nullptr); + return reinterpret_cast(func)->Ref(); +} diff --git a/src/node_api.h b/src/node_api.h index 91c2775a03ed76..84706ac3ed6769 100644 --- a/src/node_api.h +++ b/src/node_api.h @@ -614,6 +614,44 @@ NAPI_EXTERN napi_status napi_run_script(napi_env env, NAPI_EXTERN napi_status napi_get_uv_event_loop(napi_env env, struct uv_loop_s** loop); +#ifdef NAPI_EXPERIMENTAL +// Calling into JS from other threads +NAPI_EXTERN napi_status +napi_create_threadsafe_function(napi_env env, + napi_value func, + napi_value async_resource, + napi_value async_resource_name, + size_t max_queue_size, + size_t initial_thread_count, + void* thread_finalize_data, + napi_finalize thread_finalize_cb, + void* context, + napi_threadsafe_function_call_js call_js_cb, + napi_threadsafe_function* result); + +NAPI_EXTERN napi_status +napi_get_threadsafe_function_context(napi_threadsafe_function func, + void** result); + +NAPI_EXTERN napi_status +napi_call_threadsafe_function(napi_threadsafe_function func, + void* data, + napi_threadsafe_function_call_mode is_blocking); + +NAPI_EXTERN napi_status +napi_acquire_threadsafe_function(napi_threadsafe_function func); + +NAPI_EXTERN napi_status +napi_release_threadsafe_function(napi_threadsafe_function func, + napi_threadsafe_function_release_mode mode); + +NAPI_EXTERN napi_status +napi_unref_threadsafe_function(napi_env env, napi_threadsafe_function func); + +NAPI_EXTERN napi_status +napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func); + +#endif // NAPI_EXPERIMENTAL EXTERN_C_END #endif // SRC_NODE_API_H_ diff --git a/src/node_api_types.h b/src/node_api_types.h index f7f3ee62755b11..af7d7c7f95331d 100644 --- a/src/node_api_types.h +++ b/src/node_api_types.h @@ -20,6 +20,9 @@ typedef struct napi_callback_info__* napi_callback_info; typedef struct napi_async_context__* napi_async_context; typedef struct napi_async_work__* napi_async_work; typedef struct napi_deferred__* napi_deferred; +#ifdef NAPI_EXPERIMENTAL +typedef struct napi_threadsafe_function__* napi_threadsafe_function; +#endif // NAPI_EXPERIMENTAL typedef enum { napi_default = 0, @@ -72,9 +75,25 @@ typedef enum { napi_cancelled, napi_escape_called_twice, napi_handle_scope_mismatch, - napi_callback_scope_mismatch + napi_callback_scope_mismatch, +#ifdef NAPI_EXPERIMENTAL + napi_queue_full, + napi_closing, +#endif // NAPI_EXPERIMENTAL } napi_status; +#ifdef NAPI_EXPERIMENTAL +typedef enum { + napi_tsfn_release, + napi_tsfn_abort +} napi_threadsafe_function_release_mode; + +typedef enum { + napi_tsfn_nonblocking, + napi_tsfn_blocking +} napi_threadsafe_function_call_mode; +#endif // NAPI_EXPERIMENTAL + typedef napi_value (*napi_callback)(napi_env env, napi_callback_info info); typedef void (*napi_finalize)(napi_env env, @@ -86,6 +105,13 @@ typedef void (*napi_async_complete_callback)(napi_env env, napi_status status, void* data); +#ifdef NAPI_EXPERIMENTAL +typedef void (*napi_threadsafe_function_call_js)(napi_env env, + napi_value js_callback, + void* context, + void* data); +#endif // NAPI_EXPERIMENTAL + typedef struct { // One of utf8name or name should be NULL. const char* utf8name; diff --git a/test/addons-napi/test_threadsafe_function/binding.c b/test/addons-napi/test_threadsafe_function/binding.c new file mode 100644 index 00000000000000..551705b1f21074 --- /dev/null +++ b/test/addons-napi/test_threadsafe_function/binding.c @@ -0,0 +1,254 @@ +// For the purpose of this test we use libuv's threading library. When deciding +// on a threading library for a new project it bears remembering that in the +// future libuv may introduce API changes which may render it non-ABI-stable, +// which, in turn, may affect the ABI stability of the project despite its use +// of N-API. +#include +#define NAPI_EXPERIMENTAL +#include +#include "../common.h" + +#define ARRAY_LENGTH 10 + +static uv_thread_t uv_threads[2]; +static napi_threadsafe_function ts_fn; + +typedef struct { + napi_threadsafe_function_call_mode block_on_full; + napi_threadsafe_function_release_mode abort; + bool start_secondary; + napi_ref js_finalize_cb; +} ts_fn_hint; + +static ts_fn_hint ts_info; + +// Thread data to transmit to JS +static int ints[ARRAY_LENGTH]; + +static void secondary_thread(void* data) { + napi_threadsafe_function ts_fn = data; + + if (napi_release_threadsafe_function(ts_fn, napi_tsfn_release) != napi_ok) { + napi_fatal_error("secondary_thread", NAPI_AUTO_LENGTH, + "napi_release_threadsafe_function failed", NAPI_AUTO_LENGTH); + } +} + +// Source thread producing the data +static void data_source_thread(void* data) { + napi_threadsafe_function ts_fn = data; + int index; + void* hint; + ts_fn_hint *ts_fn_info; + napi_status status; + bool queue_was_full = false; + bool queue_was_closing = false; + + if (napi_get_threadsafe_function_context(ts_fn, &hint) != napi_ok) { + napi_fatal_error("data_source_thread", NAPI_AUTO_LENGTH, + "napi_get_threadsafe_function_context failed", NAPI_AUTO_LENGTH); + } + + ts_fn_info = (ts_fn_hint *)hint; + + if (ts_fn_info != &ts_info) { + napi_fatal_error("data_source_thread", NAPI_AUTO_LENGTH, + "thread-safe function hint is not as expected", NAPI_AUTO_LENGTH); + } + + if (ts_fn_info->start_secondary) { + if (napi_acquire_threadsafe_function(ts_fn) != napi_ok) { + napi_fatal_error("data_source_thread", NAPI_AUTO_LENGTH, + "napi_acquire_threadsafe_function failed", NAPI_AUTO_LENGTH); + } + + if (uv_thread_create(&uv_threads[1], secondary_thread, ts_fn) != 0) { + napi_fatal_error("data_source_thread", NAPI_AUTO_LENGTH, + "failed to start secondary thread", NAPI_AUTO_LENGTH); + } + } + + for (index = ARRAY_LENGTH - 1; index > -1 && !queue_was_closing; index--) { + status = napi_call_threadsafe_function(ts_fn, &ints[index], + ts_fn_info->block_on_full); + switch (status) { + case napi_queue_full: + queue_was_full = true; + index++; + // fall through + + case napi_ok: + continue; + + case napi_closing: + queue_was_closing = true; + break; + + default: + napi_fatal_error("data_source_thread", NAPI_AUTO_LENGTH, + "napi_call_threadsafe_function failed", NAPI_AUTO_LENGTH); + } + } + + // Assert that the enqueuing of a value was refused at least once, if this is + // a non-blocking test run. + if (!ts_fn_info->block_on_full && !queue_was_full) { + napi_fatal_error("data_source_thread", NAPI_AUTO_LENGTH, + "queue was never full", NAPI_AUTO_LENGTH); + } + + // Assert that the queue was marked as closing at least once, if this is an + // aborting test run. + if (ts_fn_info->abort == napi_tsfn_abort && !queue_was_closing) { + napi_fatal_error("data_source_thread", NAPI_AUTO_LENGTH, + "queue was never closing", NAPI_AUTO_LENGTH); + } + + if (!queue_was_closing && + napi_release_threadsafe_function(ts_fn, napi_tsfn_release) != napi_ok) { + napi_fatal_error("data_source_thread", NAPI_AUTO_LENGTH, + "napi_release_threadsafe_function failed", NAPI_AUTO_LENGTH); + } +} + +// Getting the data into JS +static void call_js(napi_env env, napi_value cb, void* hint, void* data) { + if (!(env == NULL || cb == NULL)) { + napi_value argv, undefined; + NAPI_CALL_RETURN_VOID(env, napi_create_int32(env, *(int*)data, &argv)); + NAPI_CALL_RETURN_VOID(env, napi_get_undefined(env, &undefined)); + NAPI_CALL_RETURN_VOID(env, napi_call_function(env, undefined, cb, 1, &argv, + NULL)); + } +} + +// Cleanup +static napi_value StopThread(napi_env env, napi_callback_info info) { + size_t argc = 2; + napi_value argv[2]; + NAPI_CALL(env, napi_get_cb_info(env, info, &argc, argv, NULL, NULL)); + napi_valuetype value_type; + NAPI_CALL(env, napi_typeof(env, argv[0], &value_type)); + NAPI_ASSERT(env, value_type == napi_function, + "StopThread argument is a function"); + NAPI_ASSERT(env, (ts_fn != NULL), "Existing threadsafe function"); + NAPI_CALL(env, + napi_create_reference(env, argv[0], 1, &(ts_info.js_finalize_cb))); + bool abort; + NAPI_CALL(env, napi_get_value_bool(env, argv[1], &abort)); + NAPI_CALL(env, + napi_release_threadsafe_function(ts_fn, + abort ? napi_tsfn_abort : napi_tsfn_release)); + ts_fn = NULL; + return NULL; +} + +// Join the thread and inform JS that we're done. +static void join_the_threads(napi_env env, void *data, void *hint) { + uv_thread_t *the_threads = data; + ts_fn_hint *the_hint = hint; + napi_value js_cb, undefined; + + uv_thread_join(&the_threads[0]); + if (the_hint->start_secondary) { + uv_thread_join(&the_threads[1]); + } + + NAPI_CALL_RETURN_VOID(env, + napi_get_reference_value(env, the_hint->js_finalize_cb, &js_cb)); + NAPI_CALL_RETURN_VOID(env, napi_get_undefined(env, &undefined)); + NAPI_CALL_RETURN_VOID(env, + napi_call_function(env, undefined, js_cb, 0, NULL, NULL)); + NAPI_CALL_RETURN_VOID(env, napi_delete_reference(env, + the_hint->js_finalize_cb)); +} + +static napi_value StartThreadInternal(napi_env env, + napi_callback_info info, + napi_threadsafe_function_call_js cb, + bool block_on_full) { + size_t argc = 3; + napi_value argv[3]; + + ts_info.block_on_full = + (block_on_full ? napi_tsfn_blocking : napi_tsfn_nonblocking); + + NAPI_ASSERT(env, (ts_fn == NULL), "Existing thread-safe function"); + NAPI_CALL(env, napi_get_cb_info(env, info, &argc, argv, NULL, NULL)); + napi_value async_name; + NAPI_CALL(env, napi_create_string_utf8(env, "N-API Thread-safe Function Test", + NAPI_AUTO_LENGTH, &async_name)); + NAPI_CALL(env, napi_create_threadsafe_function(env, argv[0], NULL, async_name, + 2, 2, uv_threads, join_the_threads, &ts_info, cb, &ts_fn)); + bool abort; + NAPI_CALL(env, napi_get_value_bool(env, argv[1], &abort)); + ts_info.abort = abort ? napi_tsfn_abort : napi_tsfn_release; + NAPI_CALL(env, napi_get_value_bool(env, argv[2], &(ts_info.start_secondary))); + + NAPI_ASSERT(env, + (uv_thread_create(&uv_threads[0], data_source_thread, ts_fn) == 0), + "Thread creation"); + + return NULL; +} + +static napi_value Unref(napi_env env, napi_callback_info info) { + NAPI_ASSERT(env, ts_fn != NULL, "No existing thread-safe function"); + NAPI_CALL(env, napi_unref_threadsafe_function(env, ts_fn)); + return NULL; +} + +static napi_value Release(napi_env env, napi_callback_info info) { + NAPI_ASSERT(env, ts_fn != NULL, "No existing thread-safe function"); + NAPI_CALL(env, napi_release_threadsafe_function(ts_fn, napi_tsfn_release)); + return NULL; +} + +// Startup +static napi_value StartThread(napi_env env, napi_callback_info info) { + return StartThreadInternal(env, info, call_js, true); +} + +static napi_value StartThreadNonblocking(napi_env env, + napi_callback_info info) { + return StartThreadInternal(env, info, call_js, false); +} + +static napi_value StartThreadNoNative(napi_env env, napi_callback_info info) { + return StartThreadInternal(env, info, NULL, true); +} + +// Module init +static napi_value Init(napi_env env, napi_value exports) { + size_t index; + for (index = 0; index < ARRAY_LENGTH; index++) { + ints[index] = index; + } + napi_value js_array_length; + napi_create_uint32(env, ARRAY_LENGTH, &js_array_length); + + napi_property_descriptor properties[] = { + { + "ARRAY_LENGTH", + NULL, + NULL, + NULL, + NULL, + js_array_length, + napi_enumerable, + NULL + }, + DECLARE_NAPI_PROPERTY("StartThread", StartThread), + DECLARE_NAPI_PROPERTY("StartThreadNoNative", StartThreadNoNative), + DECLARE_NAPI_PROPERTY("StartThreadNonblocking", StartThreadNonblocking), + DECLARE_NAPI_PROPERTY("StopThread", StopThread), + DECLARE_NAPI_PROPERTY("Unref", Unref), + DECLARE_NAPI_PROPERTY("Release", Release), + }; + + NAPI_CALL(env, napi_define_properties(env, exports, + sizeof(properties)/sizeof(properties[0]), properties)); + + return exports; +} +NAPI_MODULE(NODE_GYP_MODULE_NAME, Init) diff --git a/test/addons-napi/test_threadsafe_function/binding.gyp b/test/addons-napi/test_threadsafe_function/binding.gyp new file mode 100644 index 00000000000000..b60352e05af103 --- /dev/null +++ b/test/addons-napi/test_threadsafe_function/binding.gyp @@ -0,0 +1,8 @@ +{ + 'targets': [ + { + 'target_name': 'binding', + 'sources': ['binding.c'] + } + ] +} diff --git a/test/addons-napi/test_threadsafe_function/test.js b/test/addons-napi/test_threadsafe_function/test.js new file mode 100644 index 00000000000000..8d8a6d9d8c6827 --- /dev/null +++ b/test/addons-napi/test_threadsafe_function/test.js @@ -0,0 +1,166 @@ +'use strict'; + +const common = require('../../common'); +const assert = require('assert'); +const binding = require(`./build/${common.buildType}/binding`); +const { fork } = require('child_process'); +const expectedArray = (function(arrayLength) { + const result = []; + for (let index = 0; index < arrayLength; index++) { + result.push(arrayLength - 1 - index); + } + return result; +})(binding.ARRAY_LENGTH); + +common.crashOnUnhandledRejection(); + +// Handle the rapid teardown test case as the child process. We unref the +// thread-safe function after we have received two values. This causes the +// process to exit and the environment cleanup handler to be invoked. +if (process.argv[2] === 'child') { + let callCount = 0; + binding.StartThread((value) => { + callCount++; + console.log(value); + if (callCount === 2) { + binding.Unref(); + } + }, false /* abort */, true /* launchSecondary */); + + // Release the thread-safe function from the main thread so that it may be + // torn down via the environment cleanup handler. + binding.Release(); + return; +} + +function testWithJSMarshaller({ + threadStarter, + quitAfter, + abort, + launchSecondary }) { + return new Promise((resolve) => { + const array = []; + binding[threadStarter](function testCallback(value) { + array.push(value); + if (array.length === quitAfter) { + setImmediate(() => { + binding.StopThread(common.mustCall(() => { + resolve(array); + }), !!abort); + }); + } + }, !!abort, !!launchSecondary); + if (threadStarter === 'StartThreadNonblocking') { + // Let's make this thread really busy for a short while to ensure that + // the queue fills and the thread receives a napi_queue_full. + const start = Date.now(); + while (Date.now() - start < 200); + } + }); +} + +new Promise(function testWithoutJSMarshaller(resolve) { + let callCount = 0; + binding.StartThreadNoNative(function testCallback() { + callCount++; + + // The default call-into-JS implementation passes no arguments. + assert.strictEqual(arguments.length, 0); + if (callCount === binding.ARRAY_LENGTH) { + setImmediate(() => { + binding.StopThread(common.mustCall(() => { + resolve(); + }), false); + }); + } + }, false /* abort */, false /* launchSecondary */); +}) + +// Start the thread in blocking mode, and assert that all values are passed. +// Quit after it's done. +.then(() => testWithJSMarshaller({ + threadStarter: 'StartThread', + quitAfter: binding.ARRAY_LENGTH +})) +.then((result) => assert.deepStrictEqual(result, expectedArray)) + +// Start the thread in non-blocking mode, and assert that all values are passed. +// Quit after it's done. +.then(() => testWithJSMarshaller({ + threadStarter: 'StartThreadNonblocking', + quitAfter: binding.ARRAY_LENGTH +})) +.then((result) => assert.deepStrictEqual(result, expectedArray)) + +// Start the thread in blocking mode, and assert that all values are passed. +// Quit early, but let the thread finish. +.then(() => testWithJSMarshaller({ + threadStarter: 'StartThread', + quitAfter: 1 +})) +.then((result) => assert.deepStrictEqual(result, expectedArray)) + +// Start the thread in non-blocking mode, and assert that all values are passed. +// Quit early, but let the thread finish. +.then(() => testWithJSMarshaller({ + threadStarter: 'StartThreadNonblocking', + quitAfter: 1 +})) +.then((result) => assert.deepStrictEqual(result, expectedArray)) + +// Start the thread in blocking mode, and assert that all values are passed. +// Quit early, but let the thread finish. Launch a secondary thread to test the +// reference counter incrementing functionality. +.then(() => testWithJSMarshaller({ + threadStarter: 'StartThread', + quitAfter: 1, + launchSecondary: true +})) +.then((result) => assert.deepStrictEqual(result, expectedArray)) + +// Start the thread in non-blocking mode, and assert that all values are passed. +// Quit early, but let the thread finish. Launch a secondary thread to test the +// reference counter incrementing functionality. +.then(() => testWithJSMarshaller({ + threadStarter: 'StartThreadNonblocking', + quitAfter: 1, + launchSecondary: true +})) +.then((result) => assert.deepStrictEqual(result, expectedArray)) + +// Start the thread in blocking mode, and assert that it could not finish. +// Quit early and aborting. +.then(() => testWithJSMarshaller({ + threadStarter: 'StartThread', + quitAfter: 1, + abort: true +})) +.then((result) => assert.strictEqual(result.indexOf(0), -1)) + +// Start the thread in non-blocking mode, and assert that it could not finish. +// Quit early and aborting. +.then(() => testWithJSMarshaller({ + threadStarter: 'StartThreadNonblocking', + quitAfter: 1, + abort: true +})) +.then((result) => assert.strictEqual(result.indexOf(0), -1)) + +// Start a child process to test rapid teardown +.then(() => { + return new Promise((resolve, reject) => { + let output = ''; + const child = fork(__filename, ['child'], { + stdio: [process.stdin, 'pipe', process.stderr, 'ipc'] + }); + child.on('close', (code) => { + if (code === 0) { + resolve(output.match(/\S+/g)); + } else { + reject(new Error('Child process died with code ' + code)); + } + }); + child.stdout.on('data', (data) => (output += data.toString())); + }); +}) +.then((result) => assert.strictEqual(result.indexOf(0), -1)); From 29299cc50a90b1476a5b7d485b5df55a7bc1fcdd Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 18 Jun 2018 13:59:22 +0200 Subject: [PATCH 097/109] esm: loader hook URL validation and error messages PR-URL: https://github.com/nodejs/node/pull/21352 Reviewed-By: Gus Caplan Reviewed-By: James M Snell Reviewed-By: Tiancheng "Timothy" Gu --- doc/api/errors.md | 15 +- lib/internal/errors.js | 16 +- lib/internal/modules/esm/loader.js | 37 +++- test/common/index.mjs | 186 +++++++++++------- .../test-esm-loader-invalid-format.mjs | 11 ++ .../es-module/test-esm-loader-invalid-url.mjs | 12 ++ .../loader-invalid-format.mjs | 8 + .../es-module-loaders/loader-invalid-url.mjs | 9 + 8 files changed, 219 insertions(+), 75 deletions(-) create mode 100644 test/es-module/test-esm-loader-invalid-format.mjs create mode 100644 test/es-module/test-esm-loader-invalid-url.mjs create mode 100644 test/fixtures/es-module-loaders/loader-invalid-format.mjs create mode 100644 test/fixtures/es-module-loaders/loader-invalid-url.mjs diff --git a/doc/api/errors.md b/doc/api/errors.md index 494b188b09d8e9..946b86b6615bfd 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -1219,10 +1219,23 @@ An invalid `options.protocol` was passed. Both `breakEvalOnSigint` and `eval` options were set in the REPL config, which is not supported. + +### ERR_INVALID_RETURN_PROPERTY + +Thrown in case a function option does not provide a valid value for one of its +returned object properties on execution. + + +### ERR_INVALID_RETURN_PROPERTY_VALUE + +Thrown in case a function option does not provide an expected value +type for one of its returned object properties on execution. + ### ERR_INVALID_RETURN_VALUE -Thrown in case a function option does not return an expected value on execution. +Thrown in case a function option does not return an expected value +type on execution. For example when a function is expected to return a promise. diff --git a/lib/internal/errors.js b/lib/internal/errors.js index e37400c822aa5a..ae99fe9fdffef0 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -689,6 +689,20 @@ E('ERR_INVALID_PROTOCOL', TypeError); E('ERR_INVALID_REPL_EVAL_CONFIG', 'Cannot specify both "breakEvalOnSigint" and "eval" for REPL', TypeError); +E('ERR_INVALID_RETURN_PROPERTY', (input, name, prop, value) => { + return `Expected a valid ${input} to be returned for the "${prop}" from the` + + ` "${name}" function but got ${value}.`; +}, TypeError); +E('ERR_INVALID_RETURN_PROPERTY_VALUE', (input, name, prop, value) => { + let type; + if (value && value.constructor && value.constructor.name) { + type = `instance of ${value.constructor.name}`; + } else { + type = `type ${typeof value}`; + } + return `Expected ${input} to be returned for the "${prop}" from the` + + ` "${name}" function but got ${type}.`; +}, TypeError); E('ERR_INVALID_RETURN_VALUE', (input, name, value) => { let type; if (value && value.constructor && value.constructor.name) { @@ -697,7 +711,7 @@ E('ERR_INVALID_RETURN_VALUE', (input, name, value) => { type = `type ${typeof value}`; } return `Expected ${input} to be returned from the "${name}"` + - ` function but got ${type}.`; + ` function but got ${type}.`; }, TypeError); E('ERR_INVALID_SYNC_FORK_INPUT', 'Asynchronous forks do not support Buffer, Uint8Array or string input: %s', diff --git a/lib/internal/modules/esm/loader.js b/lib/internal/modules/esm/loader.js index b3023fcd4f8e36..2fa10c7eab9b44 100644 --- a/lib/internal/modules/esm/loader.js +++ b/lib/internal/modules/esm/loader.js @@ -2,10 +2,13 @@ const { ERR_INVALID_ARG_TYPE, - ERR_INVALID_PROTOCOL, + ERR_INVALID_RETURN_PROPERTY, + ERR_INVALID_RETURN_PROPERTY_VALUE, + ERR_INVALID_RETURN_VALUE, ERR_MISSING_DYNAMIC_INTSTANTIATE_HOOK, ERR_UNKNOWN_MODULE_FORMAT } = require('internal/errors').codes; +const { URL } = require('url'); const ModuleMap = require('internal/modules/esm/module_map'); const ModuleJob = require('internal/modules/esm/module_job'); const defaultResolve = require('internal/modules/esm/default_resolve'); @@ -52,20 +55,42 @@ class Loader { if (!isMain && typeof parentURL !== 'string') throw new ERR_INVALID_ARG_TYPE('parentURL', 'string', parentURL); - const { url, format } = - await this._resolve(specifier, parentURL, defaultResolve); + const resolved = await this._resolve(specifier, parentURL, defaultResolve); + + if (typeof resolved !== 'object') + throw new ERR_INVALID_RETURN_VALUE( + 'object', 'loader resolve', resolved + ); + + const { url, format } = resolved; if (typeof url !== 'string') - throw new ERR_INVALID_ARG_TYPE('url', 'string', url); + throw new ERR_INVALID_RETURN_PROPERTY_VALUE( + 'string', 'loader resolve', 'url', url + ); if (typeof format !== 'string') - throw new ERR_INVALID_ARG_TYPE('format', 'string', format); + throw new ERR_INVALID_RETURN_PROPERTY_VALUE( + 'string', 'loader resolve', 'format', format + ); if (format === 'builtin') return { url: `node:${url}`, format }; + if (this._resolve !== defaultResolve) { + try { + new URL(url); + } catch (e) { + throw new ERR_INVALID_RETURN_PROPERTY( + 'url', 'loader resolve', 'url', url + ); + } + } + if (format !== 'dynamic' && !url.startsWith('file:')) - throw new ERR_INVALID_PROTOCOL(url, 'file:'); + throw new ERR_INVALID_RETURN_PROPERTY( + 'file: url', 'loader resolve', 'url', url + ); return { url, format }; } diff --git a/test/common/index.mjs b/test/common/index.mjs index b7ac556bca52c3..f73a9d9be5c08e 100644 --- a/test/common/index.mjs +++ b/test/common/index.mjs @@ -1,71 +1,123 @@ // Flags: --experimental-modules /* eslint-disable node-core/required-modules */ +import common from './index.js'; -import assert from 'assert'; +const { + PORT, + isMainThread, + isWindows, + isWOW64, + isAIX, + isLinuxPPCBE, + isSunOS, + isFreeBSD, + isOpenBSD, + isLinux, + isOSX, + isGlibc, + enoughTestMem, + enoughTestCpu, + rootDir, + buildType, + localIPv6Hosts, + opensslCli, + PIPE, + hasIPv6, + childShouldThrowAndAbort, + ddCommand, + spawnPwd, + spawnSyncPwd, + platformTimeout, + allowGlobals, + leakedGlobals, + mustCall, + mustCallAtLeast, + mustCallAsync, + hasMultiLocalhost, + fileExists, + skipIfEslintMissing, + canCreateSymLink, + getCallSite, + mustNotCall, + printSkipMessage, + skip, + ArrayStream, + nodeProcessAborted, + busyLoop, + isAlive, + noWarnCode, + expectWarning, + expectsError, + skipIfInspectorDisabled, + skipIf32Bits, + getArrayBufferViews, + getBufferSources, + crashOnUnhandledRejection, + getTTYfd, + runWithInvalidFD, + hijackStdout, + hijackStderr, + restoreStdout, + restoreStderr, + isCPPSymbolsNotMapped +} = common; -let knownGlobals = [ - Buffer, - clearImmediate, - clearInterval, - clearTimeout, - global, - process, - setImmediate, - setInterval, - setTimeout -]; - -if (process.env.NODE_TEST_KNOWN_GLOBALS) { - const knownFromEnv = process.env.NODE_TEST_KNOWN_GLOBALS.split(','); - allowGlobals(...knownFromEnv); -} - -export function allowGlobals(...whitelist) { - knownGlobals = knownGlobals.concat(whitelist); -} - -export function leakedGlobals() { - // Add possible expected globals - if (global.gc) { - knownGlobals.push(global.gc); - } - - if (global.DTRACE_HTTP_SERVER_RESPONSE) { - knownGlobals.push(DTRACE_HTTP_SERVER_RESPONSE); - knownGlobals.push(DTRACE_HTTP_SERVER_REQUEST); - knownGlobals.push(DTRACE_HTTP_CLIENT_RESPONSE); - knownGlobals.push(DTRACE_HTTP_CLIENT_REQUEST); - knownGlobals.push(DTRACE_NET_STREAM_END); - knownGlobals.push(DTRACE_NET_SERVER_CONNECTION); - } - - if (global.COUNTER_NET_SERVER_CONNECTION) { - knownGlobals.push(COUNTER_NET_SERVER_CONNECTION); - knownGlobals.push(COUNTER_NET_SERVER_CONNECTION_CLOSE); - knownGlobals.push(COUNTER_HTTP_SERVER_REQUEST); - knownGlobals.push(COUNTER_HTTP_SERVER_RESPONSE); - knownGlobals.push(COUNTER_HTTP_CLIENT_REQUEST); - knownGlobals.push(COUNTER_HTTP_CLIENT_RESPONSE); - } - - const leaked = []; - - for (const val in global) { - if (!knownGlobals.includes(global[val])) { - leaked.push(val); - } - } - - if (global.__coverage__) { - return leaked.filter((varname) => !/^(?:cov_|__cov)/.test(varname)); - } else { - return leaked; - } -} - -process.on('exit', function() { - const leaked = leakedGlobals(); - if (leaked.length > 0) { - assert.fail(`Unexpected global(s) found: ${leaked.join(', ')}`); - } -}); +export { + PORT, + isMainThread, + isWindows, + isWOW64, + isAIX, + isLinuxPPCBE, + isSunOS, + isFreeBSD, + isOpenBSD, + isLinux, + isOSX, + isGlibc, + enoughTestMem, + enoughTestCpu, + rootDir, + buildType, + localIPv6Hosts, + opensslCli, + PIPE, + hasIPv6, + childShouldThrowAndAbort, + ddCommand, + spawnPwd, + spawnSyncPwd, + platformTimeout, + allowGlobals, + leakedGlobals, + mustCall, + mustCallAtLeast, + mustCallAsync, + hasMultiLocalhost, + fileExists, + skipIfEslintMissing, + canCreateSymLink, + getCallSite, + mustNotCall, + printSkipMessage, + skip, + ArrayStream, + nodeProcessAborted, + busyLoop, + isAlive, + noWarnCode, + expectWarning, + expectsError, + skipIfInspectorDisabled, + skipIf32Bits, + getArrayBufferViews, + getBufferSources, + crashOnUnhandledRejection, + getTTYfd, + runWithInvalidFD, + hijackStdout, + hijackStderr, + restoreStdout, + restoreStderr, + isCPPSymbolsNotMapped +}; diff --git a/test/es-module/test-esm-loader-invalid-format.mjs b/test/es-module/test-esm-loader-invalid-format.mjs new file mode 100644 index 00000000000000..88b128affd528f --- /dev/null +++ b/test/es-module/test-esm-loader-invalid-format.mjs @@ -0,0 +1,11 @@ +// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-invalid-format.mjs +import { expectsError, mustCall } from '../common'; +import assert from 'assert'; + +import('../fixtures/es-modules/test-esm-ok.mjs') +.then(assert.fail, expectsError({ + code: 'ERR_INVALID_RETURN_PROPERTY', + message: 'Expected string to be returned for the "url" from the ' + + '"loader resolve" function but got "undefined"' +})) +.then(mustCall()); diff --git a/test/es-module/test-esm-loader-invalid-url.mjs b/test/es-module/test-esm-loader-invalid-url.mjs new file mode 100644 index 00000000000000..43971a2e6e3b71 --- /dev/null +++ b/test/es-module/test-esm-loader-invalid-url.mjs @@ -0,0 +1,12 @@ +// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-invalid-url.mjs +import { expectsError, mustCall } from '../common'; +import assert from 'assert'; + +import('../fixtures/es-modules/test-esm-ok.mjs') +.then(assert.fail, expectsError({ + code: 'ERR_INVALID_RETURN_PROPERTY', + message: 'Expected a valid url to be returned for the "url" from the ' + + '"loader resolve" function but got ' + + '../fixtures/es-modules/test-esm-ok.mjs.' +})) +.then(mustCall()); diff --git a/test/fixtures/es-module-loaders/loader-invalid-format.mjs b/test/fixtures/es-module-loaders/loader-invalid-format.mjs new file mode 100644 index 00000000000000..17a0dcd04daad9 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-invalid-format.mjs @@ -0,0 +1,8 @@ +export async function resolve(specifier, parentModuleURL, defaultResolve) { + if (parentModuleURL && specifier === '../fixtures/es-modules/test-esm-ok.mjs') { + return { + url: 'file:///asdf' + }; + } + return defaultResolve(specifier, parentModuleURL); +} diff --git a/test/fixtures/es-module-loaders/loader-invalid-url.mjs b/test/fixtures/es-module-loaders/loader-invalid-url.mjs new file mode 100644 index 00000000000000..12efbb5021a4bc --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-invalid-url.mjs @@ -0,0 +1,9 @@ +export async function resolve(specifier, parentModuleURL, defaultResolve) { + if (parentModuleURL && specifier === '../fixtures/es-modules/test-esm-ok.mjs') { + return { + url: specifier, + format: 'esm' + }; + } + return defaultResolve(specifier, parentModuleURL); +} From b28fd37a694b8da6e245926c919b253a97b1ed56 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Sat, 30 Jun 2018 13:51:35 +0200 Subject: [PATCH 098/109] test: fix ESM test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previously landed commit was broken and it’s too late to force-push. Fixing up the test seems to work. Refs: https://github.com/nodejs/node/pull/21352 PR-URL: https://github.com/nodejs/node/pull/21605 Reviewed-By: Michaël Zasso Reviewed-By: Colin Ihrig --- test/es-module/test-esm-loader-invalid-format.mjs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/es-module/test-esm-loader-invalid-format.mjs b/test/es-module/test-esm-loader-invalid-format.mjs index 88b128affd528f..f8714d4aa11d59 100644 --- a/test/es-module/test-esm-loader-invalid-format.mjs +++ b/test/es-module/test-esm-loader-invalid-format.mjs @@ -4,8 +4,8 @@ import assert from 'assert'; import('../fixtures/es-modules/test-esm-ok.mjs') .then(assert.fail, expectsError({ - code: 'ERR_INVALID_RETURN_PROPERTY', - message: 'Expected string to be returned for the "url" from the ' + - '"loader resolve" function but got "undefined"' + code: 'ERR_INVALID_RETURN_PROPERTY_VALUE', + message: 'Expected string to be returned for the "format" from the ' + + '"loader resolve" function but got type undefined.' })) .then(mustCall()); From a8a75754100573e0a16884c6e74141011868fceb Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Mon, 25 Jun 2018 19:19:41 +0200 Subject: [PATCH 099/109] src: remove extra `ReadStop()` call This is no longer necessary since libuv 1.21.0. PR-URL: https://github.com/nodejs/node/pull/21528 Reviewed-By: Gus Caplan Reviewed-By: Colin Ihrig Reviewed-By: James M Snell --- src/stream_wrap.cc | 5 ----- src/stream_wrap.h | 2 -- 2 files changed, 7 deletions(-) diff --git a/src/stream_wrap.cc b/src/stream_wrap.cc index c35df11febb9d2..ddeb74d80970f0 100644 --- a/src/stream_wrap.cc +++ b/src/stream_wrap.cc @@ -373,11 +373,6 @@ void LibuvStreamWrap::AfterUvWrite(uv_write_t* req, int status) { req_wrap->Done(status); } -void LibuvStreamWrap::Close(v8::Local close_callback) { - ReadStop(); - HandleWrap::Close(close_callback); -} - } // namespace node NODE_BUILTIN_MODULE_CONTEXT_AWARE(stream_wrap, diff --git a/src/stream_wrap.h b/src/stream_wrap.h index 94a161b6d54e07..7847ebe754614a 100644 --- a/src/stream_wrap.h +++ b/src/stream_wrap.h @@ -76,8 +76,6 @@ class LibuvStreamWrap : public HandleWrap, public StreamBase { ShutdownWrap* CreateShutdownWrap(v8::Local object) override; WriteWrap* CreateWriteWrap(v8::Local object) override; - void Close(v8::Local close_callback) override; - protected: LibuvStreamWrap(Environment* env, v8::Local object, From 0550a58b086789511f195611f892e9a873225a16 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Mon, 25 Jun 2018 18:46:33 +0200 Subject: [PATCH 100/109] src: remove StreamBase::kFlagHasWritev Since libuv 1.21.0, pipes on Windows support `writev` on the libuv side. This allows for some simplification, and makes the `StreamBase` API more uniform (multi-buffer `Write()` is always supported now, including when used by other non-JS consumers like HTTP/2). PR-URL: https://github.com/nodejs/node/pull/21527 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell --- lib/net.js | 4 -- src/js_stream.cc | 2 +- src/node_file.cc | 2 +- src/node_http2.cc | 2 +- src/pipe_wrap.cc | 4 -- src/stream_base-inl.h | 7 +-- src/stream_base.h | 8 +--- src/stream_wrap.cc | 5 +- src/stream_wrap.h | 3 +- src/tcp_wrap.cc | 2 +- src/tls_wrap.cc | 2 +- test/parallel/test-http2-pipe-named-pipe.js | 52 +++++++++++++++++++++ 12 files changed, 63 insertions(+), 30 deletions(-) create mode 100644 test/parallel/test-http2-pipe-named-pipe.js diff --git a/lib/net.js b/lib/net.js index f8af082a85a1a4..2393539737910a 100644 --- a/lib/net.js +++ b/lib/net.js @@ -210,10 +210,6 @@ function initSocketHandle(self) { self._handle.owner = self; self._handle.onread = onread; self[async_id_symbol] = getNewAsyncId(self._handle); - - // If handle doesn't support writev - neither do we - if (!self._handle.writev) - self._writev = null; } } diff --git a/src/js_stream.cc b/src/js_stream.cc index e562a62f3d1bb2..902aff7abee43e 100644 --- a/src/js_stream.cc +++ b/src/js_stream.cc @@ -208,7 +208,7 @@ void JSStream::Initialize(Local target, env->SetProtoMethod(t, "readBuffer", ReadBuffer); env->SetProtoMethod(t, "emitEOF", EmitEOF); - StreamBase::AddMethods(env, t, StreamBase::kFlagHasWritev); + StreamBase::AddMethods(env, t); target->Set(jsStreamString, t->GetFunction()); } diff --git a/src/node_file.cc b/src/node_file.cc index ed1799da586e24..f08833b201b19d 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -1997,7 +1997,7 @@ void Initialize(Local target, Local handleString = FIXED_ONE_BYTE_STRING(env->isolate(), "FileHandle"); fd->SetClassName(handleString); - StreamBase::AddMethods(env, fd, StreamBase::kFlagNone); + StreamBase::AddMethods(env, fd); target->Set(context, handleString, fd->GetFunction()).FromJust(); env->set_fd_constructor_template(fdt); diff --git a/src/node_http2.cc b/src/node_http2.cc index 934dbea5f0fc14..e6aeb80a91add9 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -2840,7 +2840,7 @@ void Initialize(Local target, env->SetProtoMethod(stream, "rstStream", Http2Stream::RstStream); env->SetProtoMethod(stream, "refreshState", Http2Stream::RefreshState); AsyncWrap::AddWrapMethods(env, stream); - StreamBase::AddMethods(env, stream, StreamBase::kFlagHasWritev); + StreamBase::AddMethods(env, stream); Local streamt = stream->InstanceTemplate(); streamt->SetInternalFieldCount(1); env->set_http2stream_constructor_template(streamt); diff --git a/src/pipe_wrap.cc b/src/pipe_wrap.cc index 52e3f2730ed125..e2cc114479d5a1 100644 --- a/src/pipe_wrap.cc +++ b/src/pipe_wrap.cc @@ -83,11 +83,7 @@ void PipeWrap::Initialize(Local target, env->SetProtoMethod(t, "ref", HandleWrap::Ref); env->SetProtoMethod(t, "hasRef", HandleWrap::HasRef); -#ifdef _WIN32 LibuvStreamWrap::AddMethods(env, t); -#else - LibuvStreamWrap::AddMethods(env, t, StreamBase::kFlagHasWritev); -#endif env->SetProtoMethod(t, "bind", Bind); env->SetProtoMethod(t, "listen", Listen); diff --git a/src/stream_base-inl.h b/src/stream_base-inl.h index 4509825a60d184..b53d3e5979c2a5 100644 --- a/src/stream_base-inl.h +++ b/src/stream_base-inl.h @@ -266,9 +266,7 @@ inline WriteWrap* StreamBase::CreateWriteWrap( } template -void StreamBase::AddMethods(Environment* env, - Local t, - int flags) { +void StreamBase::AddMethods(Environment* env, Local t) { HandleScope scope(env->isolate()); enum PropertyAttribute attributes = @@ -324,8 +322,7 @@ void StreamBase::AddMethods(Environment* env, env->SetProtoMethod(t, "readStart", JSMethod); env->SetProtoMethod(t, "readStop", JSMethod); env->SetProtoMethod(t, "shutdown", JSMethod); - if ((flags & kFlagHasWritev) != 0) - env->SetProtoMethod(t, "writev", JSMethod); + env->SetProtoMethod(t, "writev", JSMethod); env->SetProtoMethod(t, "writeBuffer", JSMethod); diff --git a/src/stream_base.h b/src/stream_base.h index b91cf7df6cf8c4..405780619856ba 100644 --- a/src/stream_base.h +++ b/src/stream_base.h @@ -255,15 +255,9 @@ class StreamResource { class StreamBase : public StreamResource { public: - enum Flags { - kFlagNone = 0x0, - kFlagHasWritev = 0x1 - }; - template static inline void AddMethods(Environment* env, - v8::Local target, - int flags = kFlagNone); + v8::Local target); virtual bool IsAlive() = 0; virtual bool IsClosing() = 0; diff --git a/src/stream_wrap.cc b/src/stream_wrap.cc index ddeb74d80970f0..2dea245fd1dddc 100644 --- a/src/stream_wrap.cc +++ b/src/stream_wrap.cc @@ -97,8 +97,7 @@ LibuvStreamWrap::LibuvStreamWrap(Environment* env, void LibuvStreamWrap::AddMethods(Environment* env, - v8::Local target, - int flags) { + v8::Local target) { Local get_write_queue_size = FunctionTemplate::New(env->isolate(), GetWriteQueueSize, @@ -110,7 +109,7 @@ void LibuvStreamWrap::AddMethods(Environment* env, Local(), static_cast(ReadOnly | DontDelete)); env->SetProtoMethod(target, "setBlocking", SetBlocking); - StreamBase::AddMethods(env, target, flags); + StreamBase::AddMethods(env, target); } diff --git a/src/stream_wrap.h b/src/stream_wrap.h index 7847ebe754614a..487a40b7ffc7f9 100644 --- a/src/stream_wrap.h +++ b/src/stream_wrap.h @@ -85,8 +85,7 @@ class LibuvStreamWrap : public HandleWrap, public StreamBase { AsyncWrap* GetAsyncWrap() override; static void AddMethods(Environment* env, - v8::Local target, - int flags = StreamBase::kFlagNone); + v8::Local target); protected: inline void set_fd(int fd) { diff --git a/src/tcp_wrap.cc b/src/tcp_wrap.cc index 28a970a22647ca..aa130d22e02689 100644 --- a/src/tcp_wrap.cc +++ b/src/tcp_wrap.cc @@ -93,7 +93,7 @@ void TCPWrap::Initialize(Local target, env->SetProtoMethod(t, "unref", HandleWrap::Unref); env->SetProtoMethod(t, "hasRef", HandleWrap::HasRef); - LibuvStreamWrap::AddMethods(env, t, StreamBase::kFlagHasWritev); + LibuvStreamWrap::AddMethods(env, t); env->SetProtoMethod(t, "open", Open); env->SetProtoMethod(t, "bind", Bind); diff --git a/src/tls_wrap.cc b/src/tls_wrap.cc index 4c4360358c7a41..e731c0c130216b 100644 --- a/src/tls_wrap.cc +++ b/src/tls_wrap.cc @@ -895,7 +895,7 @@ void TLSWrap::Initialize(Local target, env->SetProtoMethod(t, "destroySSL", DestroySSL); env->SetProtoMethod(t, "enableCertCb", EnableCertCb); - StreamBase::AddMethods(env, t, StreamBase::kFlagHasWritev); + StreamBase::AddMethods(env, t); SSLWrap::AddMethods(env, t); env->SetProtoMethod(t, "getServername", GetServername); diff --git a/test/parallel/test-http2-pipe-named-pipe.js b/test/parallel/test-http2-pipe-named-pipe.js new file mode 100644 index 00000000000000..49fc142961d919 --- /dev/null +++ b/test/parallel/test-http2-pipe-named-pipe.js @@ -0,0 +1,52 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const fixtures = require('../common/fixtures'); +const assert = require('assert'); +const http2 = require('http2'); +const fs = require('fs'); +const net = require('net'); +const path = require('path'); + +// HTTP/2 servers can listen on a named pipe. + +const tmpdir = require('../common/tmpdir'); +tmpdir.refresh(); +const loc = fixtures.path('url-tests.js'); +const fn = path.join(tmpdir.path, 'http2-url-tests.js'); + +const server = http2.createServer(); + +server.on('stream', common.mustCall((stream) => { + const dest = stream.pipe(fs.createWriteStream(fn)); + + dest.on('finish', () => { + assert.strictEqual(fs.readFileSync(loc).length, + fs.readFileSync(fn).length); + }); + stream.respond(); + stream.end(); +})); + +server.listen(common.PIPE, common.mustCall(() => { + const client = http2.connect('http://localhost', { + createConnection(url) { + return net.connect(server.address()); + } + }); + + const req = client.request({ ':method': 'POST' }); + req.on('response', common.mustCall()); + req.resume(); + + req.on('close', common.mustCall(() => { + server.close(); + client.close(); + })); + + const str = fs.createReadStream(loc); + str.on('end', common.mustCall()); + str.pipe(req); +})); From 95fa3c653571a64b7267e243cbee0ad380fc0153 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Sun, 24 Jun 2018 21:53:34 +0200 Subject: [PATCH 101/109] test: add worker prefix to test-message* tests It makes it easier to locate all tests related to the worker subsystem. PR-URL: https://github.com/nodejs/node/pull/21512 Reviewed-By: Luigi Pinca Reviewed-By: James M Snell Reviewed-By: Colin Ihrig Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Trivikram Kamat Reviewed-By: Minwoo Jung Reviewed-By: Yuta Hiroto --- ...buffer.js => test-worker-message-channel-sharedarraybuffer.js} | 0 .../{test-message-channel.js => test-worker-message-channel.js} | 0 ...ort-arraybuffer.js => test-worker-message-port-arraybuffer.js} | 0 ...g.js => test-worker-message-port-message-port-transferring.js} | 0 .../{test-message-port.js => test-worker-message-port.js} | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename test/parallel/{test-message-channel-sharedarraybuffer.js => test-worker-message-channel-sharedarraybuffer.js} (100%) rename test/parallel/{test-message-channel.js => test-worker-message-channel.js} (100%) rename test/parallel/{test-message-port-arraybuffer.js => test-worker-message-port-arraybuffer.js} (100%) rename test/parallel/{test-message-port-message-port-transferring.js => test-worker-message-port-message-port-transferring.js} (100%) rename test/parallel/{test-message-port.js => test-worker-message-port.js} (100%) diff --git a/test/parallel/test-message-channel-sharedarraybuffer.js b/test/parallel/test-worker-message-channel-sharedarraybuffer.js similarity index 100% rename from test/parallel/test-message-channel-sharedarraybuffer.js rename to test/parallel/test-worker-message-channel-sharedarraybuffer.js diff --git a/test/parallel/test-message-channel.js b/test/parallel/test-worker-message-channel.js similarity index 100% rename from test/parallel/test-message-channel.js rename to test/parallel/test-worker-message-channel.js diff --git a/test/parallel/test-message-port-arraybuffer.js b/test/parallel/test-worker-message-port-arraybuffer.js similarity index 100% rename from test/parallel/test-message-port-arraybuffer.js rename to test/parallel/test-worker-message-port-arraybuffer.js diff --git a/test/parallel/test-message-port-message-port-transferring.js b/test/parallel/test-worker-message-port-message-port-transferring.js similarity index 100% rename from test/parallel/test-message-port-message-port-transferring.js rename to test/parallel/test-worker-message-port-message-port-transferring.js diff --git a/test/parallel/test-message-port.js b/test/parallel/test-worker-message-port.js similarity index 100% rename from test/parallel/test-message-port.js rename to test/parallel/test-worker-message-port.js From 1e5afb7d22755e9774bbc2d2f72fcc3b584aa677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=BA=D0=BE=D0=B2=D0=BE=D1=80=D0=BE=D0=B4=D0=B0=20?= =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=90=D0=BD=D0=B4=D1=80?= =?UTF-8?q?=D0=B5=D0=B5=D0=B2=D0=B8=D1=87?= Date: Sun, 24 Jun 2018 02:09:49 +0300 Subject: [PATCH 102/109] errors: fix ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK This restores a broken and erroneously removed error, which was accidentially renamed to ERR_MISSING_DYNAMIC_INTSTANTIATE_HOOK (notice the "INTST" vs "INST") in 921fb84687fb8135075c1f001383e9b0b863f4b5 (PR #16874) and then had documentation and implementation removed under the old name in 6e1c25c45672b70f4b6c6c8af56d9c0762bfae04 (PR #18857), as it appeared unused. This error code never worked or was documented under the mistyped name ERR_MISSING_DYNAMIC_INTSTANTIATE_HOOK, so renaming it back to ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK is a semver-patch fix. Refs: https://github.com/nodejs/node/issues/21440 Refs: https://github.com/nodejs/node/pull/21470 Refs: https://github.com/nodejs/node/pull/16874 Refs: https://github.com/nodejs/node/pull/18857 PR-URL: https://github.com/nodejs/node/pull/21493 Reviewed-By: Gus Caplan Reviewed-By: Trivikram Kamat Reviewed-By: Vse Mozhet Byt Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Benjamin Gruenbaum Reviewed-By: James M Snell Reviewed-By: Ron Korving Reviewed-By: Luigi Pinca --- doc/api/errors.md | 8 ++++++++ lib/internal/errors.js | 3 +++ lib/internal/modules/esm/loader.js | 4 ++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/doc/api/errors.md b/doc/api/errors.md index 946b86b6615bfd..738abdb3597550 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -1340,6 +1340,14 @@ strict compliance with the API specification (which in some cases may accept `func(undefined)` and `func()` are treated identically, and the [`ERR_INVALID_ARG_TYPE`][] error code may be used instead. + +### ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK + +> Stability: 1 - Experimental + +An [ES6 module][] loader hook specified `format: 'dynamic'` but did not provide +a `dynamicInstantiate` hook. + ### ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST diff --git a/lib/internal/errors.js b/lib/internal/errors.js index ae99fe9fdffef0..c3f1c374011b05 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -747,6 +747,9 @@ E('ERR_MISSING_ARGS', } return `${msg} must be specified`; }, TypeError); +E('ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK', + 'The ES Module loader may not return a format of \'dynamic\' when no ' + + 'dynamicInstantiate function was provided', Error); E('ERR_MISSING_MODULE', 'Cannot find module %s', Error); E('ERR_MODULE_RESOLUTION_LEGACY', '%s not found by import in %s.' + diff --git a/lib/internal/modules/esm/loader.js b/lib/internal/modules/esm/loader.js index 2fa10c7eab9b44..89f40939e7a4f3 100644 --- a/lib/internal/modules/esm/loader.js +++ b/lib/internal/modules/esm/loader.js @@ -5,7 +5,7 @@ const { ERR_INVALID_RETURN_PROPERTY, ERR_INVALID_RETURN_PROPERTY_VALUE, ERR_INVALID_RETURN_VALUE, - ERR_MISSING_DYNAMIC_INTSTANTIATE_HOOK, + ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK, ERR_UNKNOWN_MODULE_FORMAT } = require('internal/errors').codes; const { URL } = require('url'); @@ -118,7 +118,7 @@ class Loader { let loaderInstance; if (format === 'dynamic') { if (typeof this._dynamicInstantiate !== 'function') - throw new ERR_MISSING_DYNAMIC_INTSTANTIATE_HOOK(); + throw new ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK(); loaderInstance = async (url) => { debug(`Translating dynamic ${url}`); From cadc74d92d36201c75c00c64d215cde361862dcc Mon Sep 17 00:00:00 2001 From: Vse Mozhet Byt Date: Sun, 1 Jul 2018 21:50:49 +0300 Subject: [PATCH 103/109] doc: fix heading level in errors.md PR-URL: https://github.com/nodejs/node/pull/21618 Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat --- doc/api/errors.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/errors.md b/doc/api/errors.md index 738abdb3597550..6a075b83b8a11a 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -457,7 +457,7 @@ added properties. ### Class: SystemError -### error.info +#### error.info `SystemError` instances may have an additional `info` property whose value is an object with additional details about the error conditions. From 24bc6ab72630d383341385ab4925bfdcaf2e75ac Mon Sep 17 00:00:00 2001 From: Vse Mozhet Byt Date: Sun, 1 Jul 2018 12:24:22 +0300 Subject: [PATCH 104/109] doc: fix some typos in N-API docs PR-URL: https://github.com/nodejs/node/pull/21614 Reviewed-By: Weijia Wang Reviewed-By: Colin Ihrig Reviewed-By: Yuta Hiroto Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat --- doc/api/errors.md | 2 +- doc/api/n-api.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/api/errors.md b/doc/api/errors.md index 6a075b83b8a11a..1fd06085076482 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -1424,7 +1424,7 @@ value. On the main thread, values are removed from the queue associated with the thread-safe function in an idle loop. This error indicates that an error -has occurred when attemping to start the loop. +has occurred when attempting to start the loop. ### ERR_NAPI_TSFN_STOP_IDLE_LOOP diff --git a/doc/api/n-api.md b/doc/api/n-api.md index ff90249606cfbb..fe738f90a46c23 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -4066,10 +4066,10 @@ napi_create_threadsafe_function(napi_env env, - `[in] func`: The JavaScript function to call from another thread. - `[in] async_resource`: An optional object associated with the async work that will be passed to possible `async_hooks` [`init` hooks][]. -- `[in] async_resource_name`: A javaScript string to provide an identifier for +- `[in] async_resource_name`: A JavaScript string to provide an identifier for the kind of resource that is being provided for diagnostic information exposed by the `async_hooks` API. -- `[in] max_queue_size`: Maximum size of the queue. 0 for no limit. +- `[in] max_queue_size`: Maximum size of the queue. `0` for no limit. - `[in] initial_thread_count`: The initial number of threads, including the main thread, which will be making use of this function. - `[in] thread_finalize_data`: Data to be passed to `thread_finalize_cb`. @@ -4097,7 +4097,7 @@ napi_get_threadsafe_function_context(napi_threadsafe_function func, ``` - `[in] func`: The thread-safe function for which to retrieve the context. -- `[out] context`: The location where to store the context. +- `[out] result`: The location where to store the context. This API may be called from any thread which makes use of `func`. From 1894d6c985dd1e8c0e29e496508b870a36003cd4 Mon Sep 17 00:00:00 2001 From: Weijia Wang Date: Wed, 27 Jun 2018 12:57:57 +0800 Subject: [PATCH 105/109] repl: fix tab completion for object properties with special char The old RegExp will pass property names like `"hello world!"` when filtering the results of tab complete. This change is to fix it. Fixes: https://github.com/nodejs/node/issues/21201 PR-URL: https://github.com/nodejs/node/pull/21556 Fixes: https://github.com/nodejs/node/issues/21201 Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: John-David Dalton --- lib/repl.js | 28 +++++++++++++++++++++---- test/parallel/test-repl-tab-complete.js | 6 ++++++ 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/lib/repl.js b/lib/repl.js index 6b5f4803870c4a..6345c742f68f33 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -47,6 +47,10 @@ const { makeRequireFunction, addBuiltinLibsToObject } = require('internal/modules/cjs/helpers'); +const { + isIdentifierStart, + isIdentifierChar +} = require('internal/deps/acorn/dist/acorn'); const internalUtil = require('internal/util'); const { isTypedArray } = require('internal/util/types'); const util = require('util'); @@ -900,9 +904,25 @@ const requireRE = /\brequire\s*\(['"](([\w@./-]+\/)?(?:[\w@./-]*))/; const simpleExpressionRE = /(?:[a-zA-Z_$](?:\w|\$)*\.)*[a-zA-Z_$](?:\w|\$)*\.?$/; -function intFilter(item) { - // filters out anything not starting with A-Z, a-z, $ or _ - return /^[A-Za-z_$]/.test(item); +function isIdentifier(str) { + if (str === '') { + return false; + } + const first = str.codePointAt(0); + if (!isIdentifierStart(first)) { + return false; + } + const firstLen = first > 0xffff ? 2 : 1; + for (var i = firstLen; i < str.length; i += 1) { + const cp = str.codePointAt(i); + if (!isIdentifierChar(cp)) { + return false; + } + if (cp > 0xffff) { + i += 1; + } + } + return true; } const ARRAY_LENGTH_THRESHOLD = 1e6; @@ -932,7 +952,7 @@ function filteredOwnPropertyNames(obj) { return fakeProperties; } - return Object.getOwnPropertyNames(obj).filter(intFilter); + return Object.getOwnPropertyNames(obj).filter(isIdentifier); } function getGlobalLexicalScopeNames(contextId) { diff --git a/test/parallel/test-repl-tab-complete.js b/test/parallel/test-repl-tab-complete.js index 57c1615e6ffe2b..0e6c4bb654910e 100644 --- a/test/parallel/test-repl-tab-complete.js +++ b/test/parallel/test-repl-tab-complete.js @@ -369,6 +369,12 @@ putIn.run(['.clear']); testMe.complete('.b', common.mustCall((error, data) => { assert.deepStrictEqual(data, [['break'], 'b']); })); +putIn.run(['.clear']); +putIn.run(['var obj = {"hello, world!": "some string", "key": 123}']); +testMe.complete('obj.', common.mustCall((error, data) => { + assert.strictEqual(data[0].includes('obj.hello, world!'), false); + assert(data[0].includes('obj.key')); +})); // tab completion for large buffer const warningRegEx = new RegExp( From 1d73ba832214d7866819648ecaac8f82e0a02276 Mon Sep 17 00:00:00 2001 From: Vse Mozhet Byt Date: Mon, 2 Jul 2018 00:38:05 +0300 Subject: [PATCH 106/109] doc: fix some links PR-URL: https://github.com/nodejs/node/pull/21619 Reviewed-By: Rich Trott Reviewed-By: Colin Ihrig Reviewed-By: Yuta Hiroto Reviewed-By: Luigi Pinca Reviewed-By: Anna Henningsen --- doc/api/deprecations.md | 2 +- doc/api/errors.md | 2 +- doc/api/fs.md | 4 ++-- doc/api/path.md | 2 +- doc/api/worker_threads.md | 8 ++++---- tools/doc/type-parser.js | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index a163d2255d2118..5aee444a6d6883 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -1025,7 +1025,7 @@ The option `produceCachedData` has been deprecated. Use [`fs.lchmodSync(path, mode)`]: fs.html#fs_fs_lchmodsync_path_mode [`fs.read()`]: fs.html#fs_fs_read_fd_buffer_offset_length_position_callback [`fs.readSync()`]: fs.html#fs_fs_readsync_fd_buffer_offset_length_position -[`fs.stat()`]: fs.html#fs_fs_stat_path_callback +[`fs.stat()`]: fs.html#fs_fs_stat_path_options_callback [`os.networkInterfaces`]: os.html#os_os_networkinterfaces [`os.tmpdir()`]: os.html#os_os_tmpdir [`process.env`]: process.html#process_process_env diff --git a/doc/api/errors.md b/doc/api/errors.md index 1fd06085076482..41a61c48c3166a 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -1828,7 +1828,7 @@ Creation of a [`zlib`][] object failed due to incorrect configuration. [`cipher.getAuthTag()`]: crypto.html#crypto_cipher_getauthtag [`Class: assert.AssertionError`]: assert.html#assert_class_assert_assertionerror [`crypto.scrypt()`]: crypto.html#crypto_crypto_scrypt_password_salt_keylen_options_callback -[`crypto.scryptSync()`]: crypto.html#crypto_crypto_scryptSync_password_salt_keylen_options +[`crypto.scryptSync()`]: crypto.html#crypto_crypto_scryptsync_password_salt_keylen_options [`crypto.timingSafeEqual()`]: crypto.html#crypto_crypto_timingsafeequal_a_b [`dgram.createSocket()`]: dgram.html#dgram_dgram_createsocket_options_callback [`ERR_INVALID_ARG_TYPE`]: #ERR_INVALID_ARG_TYPE diff --git a/doc/api/fs.md b/doc/api/fs.md index 6cbcf150ec4120..749e2aba6f73b5 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -4612,14 +4612,14 @@ the file contents. [`inotify(7)`]: http://man7.org/linux/man-pages/man7/inotify.7.html [`kqueue(2)`]: https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2 [`net.Socket`]: net.html#net_class_net_socket -[`stat()`]: fs.html#fs_fs_stat_path_callback +[`stat()`]: fs.html#fs_fs_stat_path_options_callback [`util.promisify()`]: util.html#util_util_promisify_original [Caveats]: #fs_caveats [Common System Errors]: errors.html#errors_common_system_errors [FS Constants]: #fs_fs_constants_1 [MDN-Date]: https://developer.mozilla.org/en-US/JavaScript/Reference/Global_Objects/Date [MDN-Number]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type -[MSDN-Rel-Path]: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247.aspx#fully_qualified_vs._relative_paths +[MSDN-Rel-Path]: https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#fully-qualified-vs-relative-paths [Readable Streams]: stream.html#stream_class_stream_readable [Writable Stream]: stream.html#stream_class_stream_writable [inode]: https://en.wikipedia.org/wiki/Inode diff --git a/doc/api/path.md b/doc/api/path.md index 51202195f3c590..c6960c7ee47109 100644 --- a/doc/api/path.md +++ b/doc/api/path.md @@ -563,5 +563,5 @@ of the `path` methods. [`path.posix`]: #path_path_posix [`path.sep`]: #path_path_sep [`path.win32`]: #path_path_win32 -[MSDN-Rel-Path]: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247.aspx#fully_qualified_vs._relative_paths +[MSDN-Rel-Path]: https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#fully-qualified-vs-relative-paths [namespace-prefixed path]: https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces diff --git a/doc/api/worker_threads.md b/doc/api/worker_threads.md index 9578403c5ca94d..d20fd0fce57c80 100644 --- a/doc/api/worker_threads.md +++ b/doc/api/worker_threads.md @@ -296,7 +296,7 @@ if (isMainThread) { console.log('received:', value); }); } else { - require('worker_threads').once('workerMessage', (value) => { + require('worker_threads').once('message', (value) => { assert(value.hereIsYourPort instanceof MessagePort); value.hereIsYourPort.postMessage('the worker is sending this'); value.hereIsYourPort.close(); @@ -377,7 +377,7 @@ added: v10.5.0 * `transferList` {Object[]} Send a message to the worker that will be received via -[`require('worker_threads').on('workerMessage')`][]. +[`require('worker_threads').on('message')`][]. See [`port.postMessage()`][] for more details. ### worker.ref() @@ -467,7 +467,7 @@ active handle in the event system. If the worker is already `unref()`ed calling [`port.postMessage()`]: #worker_threads_port_postmessage_value_transferlist [`Worker`]: #worker_threads_class_worker [`worker.terminate()`]: #worker_threads_worker_terminate_callback -[`worker.postMessage()`]: #worker_threads_worker_postmessage_value_transferlist_1 +[`worker.postMessage()`]: #worker_threads_worker_postmessage_value_transferlist [`worker.on('message')`]: #worker_threads_event_message_1 [`worker.threadId`]: #worker_threads_worker_threadid_1 [`port.on('message')`]: #worker_threads_event_message @@ -480,7 +480,7 @@ active handle in the event system. If the worker is already `unref()`ed calling [`process.stdout`]: process.html#process_process_stdout [`process.title`]: process.html#process_process_title [`require('worker_threads').workerData`]: #worker_threads_worker_workerdata -[`require('worker_threads').on('workerMessage')`]: #worker_threads_event_workermessage +[`require('worker_threads').on('message')`]: #worker_threads_event_message_1 [`require('worker_threads').postMessage()`]: #worker_threads_worker_postmessage_value_transferlist [`require('worker_threads').isMainThread`]: #worker_threads_worker_ismainthread [`require('worker_threads').parentPort`]: #worker_threads_worker_parentport diff --git a/tools/doc/type-parser.js b/tools/doc/type-parser.js index 0fd99fa83ed042..151235c7277e9d 100644 --- a/tools/doc/type-parser.js +++ b/tools/doc/type-parser.js @@ -118,7 +118,7 @@ const customTypesMap = { 'URL': 'url.html#url_the_whatwg_url_api', 'URLSearchParams': 'url.html#url_class_urlsearchparams', - 'MessagePort': 'worker.html#worker_class_messageport' + 'MessagePort': 'worker_threads.html#worker_threads_class_messageport' }; const arrayPart = /(?:\[])+$/; From c87037286f559b30ae6797459debbbe3055c0c3f Mon Sep 17 00:00:00 2001 From: cjihrig Date: Fri, 29 Jun 2018 19:52:46 -0400 Subject: [PATCH 107/109] n-api: fix compiler warning private field 'async_context' is not used [-Wunused-private-field] PR-URL: https://github.com/nodejs/node/pull/21597 Refs: https://github.com/nodejs/node/pull/17887 Reviewed-By: Gabriel Schulhof Reviewed-By: Daniel Bevenius --- src/node_api.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/src/node_api.cc b/src/node_api.cc index c32e63ea2331ba..2b14617175c167 100644 --- a/src/node_api.cc +++ b/src/node_api.cc @@ -3883,7 +3883,6 @@ class TsFn: public node::AsyncResource { void* finalize_data; napi_finalize finalize_cb; bool idle_running; - napi_async_context async_context; napi_threadsafe_function_call_js call_js_cb; bool handles_closing; }; From 5d6d6fb1213f00cc367fdfb33344ef6e419fa97c Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Wed, 27 Jun 2018 14:14:54 -0400 Subject: [PATCH 108/109] tools: build all.html by combining generated HTML Combine the toc and api contents from the generated doc/api/*.html files. This ensures that the single page version of the documentation exactly matches the individual pages. PR-URL: https://github.com/nodejs/node/pull/21568 Fixes: https://github.com/nodejs/node/issues/20100 Reviewed-By: James M Snell Reviewed-By: Vse Mozhet Byt --- Makefile | 8 +++-- tools/doc/allhtml.js | 73 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 tools/doc/allhtml.js diff --git a/Makefile b/Makefile index 802cccbce6aa6d..c75194dbaa1566 100644 --- a/Makefile +++ b/Makefile @@ -657,12 +657,16 @@ gen-json = tools/doc/generate.js --format=json $< > $@ gen-html = tools/doc/generate.js --node-version=$(FULLVERSION) --format=html \ --analytics=$(DOCS_ANALYTICS) $< > $@ -out/doc/api/%.json: doc/api/%.md +out/doc/api/%.json: doc/api/%.md tools/doc/generate.js tools/doc/json.js $(call available-node, $(gen-json)) -out/doc/api/%.html: doc/api/%.md +out/doc/api/%.html: doc/api/%.md tools/doc/generate.js tools/doc/html.js $(call available-node, $(gen-html)) +out/doc/api/all.html: $(filter-out out/doc/api/all.html, $(apidocs_html)) \ + tools/doc/allhtml.js + $(call available-node, tools/doc/allhtml.js) + .PHONY: docopen docopen: $(apidocs_html) @$(PYTHON) -mwebbrowser file://$(PWD)/out/doc/api/all.html diff --git a/tools/doc/allhtml.js b/tools/doc/allhtml.js new file mode 100644 index 00000000000000..fad530f1c44245 --- /dev/null +++ b/tools/doc/allhtml.js @@ -0,0 +1,73 @@ +'use strict'; + +// Build all.html by combining the generated toc and apicontent from each +// of the generated html files. + +const fs = require('fs'); + +const source = `${__dirname}/../../out/doc/api`; + +// Get a list of generated API documents. +const htmlFiles = fs.readdirSync(source, 'utf8') + .filter((name) => name.includes('.html') && name !== 'all.html'); + +// Read the table of contents. +const toc = fs.readFileSync(source + '/_toc.html', 'utf8'); + +// Extract (and concatenate) the toc and apicontent from each document. +let contents = ''; +let apicontent = ''; + +// Identify files that should be skipped. As files are processed, they +// are added to this list to prevent dupes. +const seen = { + 'all.html': true, + 'index.html': true +}; + +for (const link of toc.match(//g)) { + const href = /href="(.*?)"/.exec(link)[1]; + if (!htmlFiles.includes(href) || seen[href]) continue; + const data = fs.readFileSync(source + '/' + href, 'utf8'); + + // Split the doc. + const match = /(<\/ul>\s*)?<\/div>\s*
/.exec(data); + + contents += data.slice(0, match.index) + .replace(/[\s\S]*?
\s*

.*?<\/h2>\s*(