From 8de076d8de1a73ec43cbb500c875265f9de93e78 Mon Sep 17 00:00:00 2001 From: ig Date: Thu, 13 Apr 2023 08:08:36 +0200 Subject: [PATCH] add WIP DataCache --- typescript/DataCache/dist/server.js | 19394 ++++++++++++++++ typescript/DataCache/dist/server.js.map | 7 + typescript/DataCache/dist/www/client.js | 12577 ++++++++++ typescript/DataCache/dist/www/icons | 1 + typescript/DataCache/dist/www/index.html | 1 + typescript/DataCache/package-lock.json | 4456 ++++ typescript/DataCache/package.json | 30 + typescript/DataCache/src/server.ts | 30 + .../src/server/dataCache/S3/S3Access.ts | 79 + .../DataCache/src/server/dataCache/S3/Sha1.ts | 125 + .../src/server/dataCache/S3/UInt8Utils.ts | 56 + .../DataCache/src/server/dataCache/S3/Utf8.ts | 10 + .../DataCache/src/server/dataCache/data.ts | 20 + .../src/server/dataCache/dataCache.ts | 167 + .../src/server/dataCache/graphCanvas.ts | 167 + .../DataCache/src/server/dataCache/linq.ts | 20 + .../src/server/dataCache/observableUtils.ts | 63 + .../src/server/dataCache/promiseQueue.ts | 51 + .../src/server/dataCache/skipList/skipList.ts | 80 + .../server/dataCache/skipList/skipListNode.ts | 52 + .../src/server/dataCache/stringUtils.ts | 5 + .../DataCache/src/server/dataCache/time.ts | 302 + .../DataCache/src/server/dataCache/types.ts | 21 + .../DataCache/src/server/dataCache/utils.ts | 119 + .../DataCache/src/server/utils/fileSystem.ts | 46 + .../src/server/utils/httpResponse.ts | 124 + typescript/DataCache/src/server/utils/mime.ts | 32 + .../src/server/utils/requestUtils.ts | 45 + .../DataCache/src/server/utils/stringUtils.ts | 22 + .../DataCache/src/server/utils/utils.ts | 37 + typescript/DataCache/src/server/vpn/vpn.ts | 114 + .../DataCache/src/server/vpn/vpnSync.ts | 25 + .../DataCache/src/server/vrm/api/api.ts | 222 + .../DataCache/src/server/vrm/api/apiTypes.ts | 130 + .../DataCache/src/server/vrm/api/auth.ts | 13 + .../DataCache/src/server/vrm/api/parser.ts | 68 + .../DataCache/src/server/vrm/convert.ts | 174 + .../DataCache/src/server/vrm/vrmSync.ts | 42 + typescript/DataCache/src/utils/diffing.ts | 161 + typescript/DataCache/src/utils/linq.ts | 21 + typescript/DataCache/src/utils/logging.ts | 11 + typescript/DataCache/src/utils/match.ts | 176 + typescript/DataCache/src/utils/maybe.ts | 16 + .../DataCache/src/utils/milliseconds.ts | 18 + typescript/DataCache/src/utils/path.ts | 81 + .../src/utils/runtimeTypeChecking.ts | 66 + typescript/DataCache/src/utils/tree.ts | 71 + typescript/DataCache/src/utils/type.ts | 115 + .../DataCache/src/utils/utilityTypes.ts | 52 + typescript/DataCache/src/utils/utils.ts | 281 + typescript/DataCache/tsconfig.json | 82 + typescript/DataCache/vrmData.json | 10109 ++++++++ 52 files changed, 50187 insertions(+) create mode 100644 typescript/DataCache/dist/server.js create mode 100644 typescript/DataCache/dist/server.js.map create mode 100644 typescript/DataCache/dist/www/client.js create mode 120000 typescript/DataCache/dist/www/icons create mode 120000 typescript/DataCache/dist/www/index.html create mode 100644 typescript/DataCache/package-lock.json create mode 100644 typescript/DataCache/package.json create mode 100644 typescript/DataCache/src/server.ts create mode 100644 typescript/DataCache/src/server/dataCache/S3/S3Access.ts create mode 100644 typescript/DataCache/src/server/dataCache/S3/Sha1.ts create mode 100644 typescript/DataCache/src/server/dataCache/S3/UInt8Utils.ts create mode 100644 typescript/DataCache/src/server/dataCache/S3/Utf8.ts create mode 100644 typescript/DataCache/src/server/dataCache/data.ts create mode 100644 typescript/DataCache/src/server/dataCache/dataCache.ts create mode 100644 typescript/DataCache/src/server/dataCache/graphCanvas.ts create mode 100644 typescript/DataCache/src/server/dataCache/linq.ts create mode 100644 typescript/DataCache/src/server/dataCache/observableUtils.ts create mode 100644 typescript/DataCache/src/server/dataCache/promiseQueue.ts create mode 100644 typescript/DataCache/src/server/dataCache/skipList/skipList.ts create mode 100644 typescript/DataCache/src/server/dataCache/skipList/skipListNode.ts create mode 100644 typescript/DataCache/src/server/dataCache/stringUtils.ts create mode 100644 typescript/DataCache/src/server/dataCache/time.ts create mode 100644 typescript/DataCache/src/server/dataCache/types.ts create mode 100644 typescript/DataCache/src/server/dataCache/utils.ts create mode 100644 typescript/DataCache/src/server/utils/fileSystem.ts create mode 100644 typescript/DataCache/src/server/utils/httpResponse.ts create mode 100644 typescript/DataCache/src/server/utils/mime.ts create mode 100644 typescript/DataCache/src/server/utils/requestUtils.ts create mode 100644 typescript/DataCache/src/server/utils/stringUtils.ts create mode 100644 typescript/DataCache/src/server/utils/utils.ts create mode 100644 typescript/DataCache/src/server/vpn/vpn.ts create mode 100644 typescript/DataCache/src/server/vpn/vpnSync.ts create mode 100644 typescript/DataCache/src/server/vrm/api/api.ts create mode 100644 typescript/DataCache/src/server/vrm/api/apiTypes.ts create mode 100644 typescript/DataCache/src/server/vrm/api/auth.ts create mode 100644 typescript/DataCache/src/server/vrm/api/parser.ts create mode 100644 typescript/DataCache/src/server/vrm/convert.ts create mode 100644 typescript/DataCache/src/server/vrm/vrmSync.ts create mode 100644 typescript/DataCache/src/utils/diffing.ts create mode 100644 typescript/DataCache/src/utils/linq.ts create mode 100644 typescript/DataCache/src/utils/logging.ts create mode 100644 typescript/DataCache/src/utils/match.ts create mode 100644 typescript/DataCache/src/utils/maybe.ts create mode 100644 typescript/DataCache/src/utils/milliseconds.ts create mode 100644 typescript/DataCache/src/utils/path.ts create mode 100644 typescript/DataCache/src/utils/runtimeTypeChecking.ts create mode 100644 typescript/DataCache/src/utils/tree.ts create mode 100644 typescript/DataCache/src/utils/type.ts create mode 100644 typescript/DataCache/src/utils/utilityTypes.ts create mode 100644 typescript/DataCache/src/utils/utils.ts create mode 100644 typescript/DataCache/tsconfig.json create mode 100644 typescript/DataCache/vrmData.json diff --git a/typescript/DataCache/dist/server.js b/typescript/DataCache/dist/server.js new file mode 100644 index 000000000..e6fa433b0 --- /dev/null +++ b/typescript/DataCache/dist/server.js @@ -0,0 +1,19394 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; +}; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __reExport = (target, module2, copyDefault, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key of __getOwnPropNames(module2)) + if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default")) + __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); + } + return target; +}; +var __toESM = (module2, isNodeMode) => { + return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); +}; +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var __accessCheck = (obj, member, msg) => { + if (!member.has(obj)) + throw TypeError("Cannot " + msg); +}; +var __privateGet = (obj, member, getter) => { + __accessCheck(obj, member, "read from private field"); + return getter ? getter.call(obj) : member.get(obj); +}; +var __privateAdd = (obj, member, value) => { + if (member.has(obj)) + throw TypeError("Cannot add the same private member more than once"); + member instanceof WeakSet ? member.add(obj) : member.set(obj, value); +}; +var __privateSet = (obj, member, value, setter) => { + __accessCheck(obj, member, "write to private field"); + setter ? setter.call(obj, value) : member.set(obj, value); + return value; +}; + +// node_modules/linq-to-typescript/esm/types/index.js +var init_types = __esm({ + "node_modules/linq-to-typescript/esm/types/index.js"() { + } +}); + +// node_modules/linq-to-typescript/esm/shared/ArgumentOutOfRangeException.js +var ArgumentOutOfRangeException; +var init_ArgumentOutOfRangeException = __esm({ + "node_modules/linq-to-typescript/esm/shared/ArgumentOutOfRangeException.js"() { + ArgumentOutOfRangeException = class extends RangeError { + constructor(paramName) { + super(`${paramName} was out of range. Must be non-negative and less than the size of the collection.`); + this.paramName = paramName; + this.name = "ArgumentOutOfRangeException"; + this.stack = this.stack || new Error().stack; + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/shared/EqualityComparer.js +var init_EqualityComparer = __esm({ + "node_modules/linq-to-typescript/esm/shared/EqualityComparer.js"() { + } +}); + +// node_modules/linq-to-typescript/esm/shared/ErrorString.js +var ErrorString; +var init_ErrorString = __esm({ + "node_modules/linq-to-typescript/esm/shared/ErrorString.js"() { + ErrorString = Object.freeze({ + MoreThanOneElement: "Sequence contains more than one element", + MoreThanOneMatchingElement: "Sequence contains more than one matching element", + NoElements: "Sequence contains no elements", + NoMatch: "Sequence contains no matching element" + }); + } +}); + +// node_modules/linq-to-typescript/esm/shared/InvalidOperationException.js +var InvalidOperationException; +var init_InvalidOperationException = __esm({ + "node_modules/linq-to-typescript/esm/shared/InvalidOperationException.js"() { + InvalidOperationException = class extends Error { + constructor(message) { + super(message); + this.name = "InvalidOperationException"; + this.stack = this.stack || new Error().stack; + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/shared/NumberComparer.js +var init_NumberComparer = __esm({ + "node_modules/linq-to-typescript/esm/shared/NumberComparer.js"() { + } +}); + +// node_modules/linq-to-typescript/esm/shared/StrictEqualityComparer.js +var StrictEqualityComparer; +var init_StrictEqualityComparer = __esm({ + "node_modules/linq-to-typescript/esm/shared/StrictEqualityComparer.js"() { + StrictEqualityComparer = (x, y) => x === y; + } +}); + +// node_modules/linq-to-typescript/esm/shared/StringifyComparer.js +var init_StringifyComparer = __esm({ + "node_modules/linq-to-typescript/esm/shared/StringifyComparer.js"() { + } +}); + +// node_modules/linq-to-typescript/esm/shared/index.js +var init_shared = __esm({ + "node_modules/linq-to-typescript/esm/shared/index.js"() { + init_ArgumentOutOfRangeException(); + init_EqualityComparer(); + init_ErrorString(); + init_InvalidOperationException(); + init_NumberComparer(); + init_StrictEqualityComparer(); + init_StringifyComparer(); + } +}); + +// node_modules/linq-to-typescript/esm/sync/ArrayEnumerable.js +var ArrayEnumerable; +var init_ArrayEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/sync/ArrayEnumerable.js"() { + ArrayEnumerable = class extends Array { + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/BasicAsyncEnumerable.js +var BasicAsyncEnumerable; +var init_BasicAsyncEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/async/BasicAsyncEnumerable.js"() { + BasicAsyncEnumerable = class { + constructor(iterator) { + this.iterator = iterator; + } + [Symbol.asyncIterator]() { + return this.iterator(); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/BasicParallelEnumerable.js +var BasicParallelEnumerable; +var init_BasicParallelEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/parallel/BasicParallelEnumerable.js"() { + BasicParallelEnumerable = class { + constructor(dataFunc) { + this.dataFunc = dataFunc; + } + [Symbol.asyncIterator]() { + const { dataFunc } = this; + async function* iterator() { + switch (dataFunc.type) { + case 1: + for (const value of dataFunc.generator()) { + yield value; + } + break; + case 2: + for (const value of await dataFunc.generator()) { + yield value; + } + break; + case 0: + default: + for (const value of await dataFunc.generator()) { + yield value; + } + break; + } + } + return iterator(); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/BasicEnumerable.js +var BasicEnumerable; +var init_BasicEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/sync/BasicEnumerable.js"() { + BasicEnumerable = class { + constructor(iterator) { + this.iterator = iterator; + } + [Symbol.iterator]() { + return this.iterator(); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/initializer/bindArray.js +var bindArray; +var init_bindArray = __esm({ + "node_modules/linq-to-typescript/esm/initializer/bindArray.js"() { + init_ArrayEnumerable(); + bindArray = (jsArray) => { + var _a; + const arrayEnumerablePrototype = ArrayEnumerable.prototype; + const bindToPrototype = jsArray.prototype; + const propertyNames = Object.getOwnPropertyNames(arrayEnumerablePrototype); + for (const prop of propertyNames) { + bindToPrototype[prop] = (_a = bindToPrototype[prop]) !== null && _a !== void 0 ? _a : arrayEnumerablePrototype[prop]; + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/initializer/bindArrayEnumerable.js +var bindArrayEnumerable; +var init_bindArrayEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/initializer/bindArrayEnumerable.js"() { + init_shared(); + init_ArrayEnumerable(); + init_BasicEnumerable(); + bindArrayEnumerable = () => { + var _a; + const { prototype } = ArrayEnumerable; + const propertyNames = Object.getOwnPropertyNames(BasicEnumerable.prototype); + for (const prop of propertyNames) { + prototype[prop] = (_a = prototype[prop]) !== null && _a !== void 0 ? _a : BasicEnumerable.prototype[prop]; + } + prototype.all = function(predicate) { + return this.every(predicate); + }; + prototype.any = function(predicate) { + if (predicate) { + return this.some(predicate); + } else { + return this.length !== 0; + } + }; + prototype.count = function(predicate) { + if (predicate) { + let count5 = 0; + for (let i = 0; i < this.length; i++) { + if (predicate(this[i]) === true) { + count5++; + } + } + return count5; + } else { + return this.length; + } + }; + prototype.elementAt = function(index) { + if (index < 0 || index >= this.length) { + throw new ArgumentOutOfRangeException("index"); + } + return this[index]; + }; + prototype.elementAtOrDefault = function(index) { + return this[index] || null; + }; + prototype.first = function(predicate) { + if (predicate) { + const value = this.find(predicate); + if (value === void 0) { + throw new InvalidOperationException(ErrorString.NoMatch); + } else { + return value; + } + } else { + if (this.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return this[0]; + } + }; + prototype.firstOrDefault = function(predicate) { + if (predicate) { + const value = this.find(predicate); + if (value === void 0) { + return null; + } else { + return value; + } + } else { + return this.length === 0 ? null : this[0]; + } + }; + prototype.last = function(predicate) { + if (predicate) { + for (let i = this.length - 1; i >= 0; i--) { + const value = this[i]; + if (predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + } else { + if (this.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return this[this.length - 1]; + } + }; + prototype.lastOrDefault = function(predicate) { + if (predicate) { + for (let i = this.length - 1; i >= 0; i--) { + const value = this[i]; + if (predicate(value) === true) { + return value; + } + } + return null; + } else { + return this.length === 0 ? null : this[this.length - 1]; + } + }; + prototype.max = function(selector) { + if (this.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + if (selector) { + let max5 = Number.NEGATIVE_INFINITY; + for (let i = 0; i < this.length; i++) { + max5 = Math.max(selector(this[i]), max5); + } + return max5; + } else { + return Math.max.apply(null, this); + } + }; + prototype.min = function(selector) { + if (this.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + if (selector) { + let min5 = Number.POSITIVE_INFINITY; + for (let i = 0; i < this.length; i++) { + min5 = Math.min(selector(this[i]), min5); + } + return min5; + } else { + return Math.min.apply(null, this); + } + }; + prototype.reverse = function() { + Array.prototype.reverse.apply(this); + return this; + }; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/aggregate.js +var aggregate, aggregate1, aggregate2, aggregate3; +var init_aggregate = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/aggregate.js"() { + init_shared(); + aggregate = (source, seedOrFunc, func, resultSelector) => { + if (resultSelector) { + if (!func) { + throw new ReferenceError("TAccumulate function is undefined"); + } + return aggregate3(source, seedOrFunc, func, resultSelector); + } else if (func) { + return aggregate2(source, seedOrFunc, func); + } else { + return aggregate1(source, seedOrFunc); + } + }; + aggregate1 = (source, func) => { + let aggregateValue; + for (const value of source) { + if (aggregateValue) { + aggregateValue = func(aggregateValue, value); + } else { + aggregateValue = value; + } + } + if (aggregateValue === void 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return aggregateValue; + }; + aggregate2 = (source, seed, func) => { + let aggregateValue = seed; + for (const value of source) { + aggregateValue = func(aggregateValue, value); + } + return aggregateValue; + }; + aggregate3 = (source, seed, func, resultSelector) => { + let aggregateValue = seed; + for (const value of source) { + aggregateValue = func(aggregateValue, value); + } + return resultSelector(aggregateValue); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/all.js +var all; +var init_all = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/all.js"() { + all = (source, predicate) => { + for (const item of source) { + if (predicate(item) === false) { + return false; + } + } + return true; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/allAsync.js +var allAsync; +var init_allAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/allAsync.js"() { + allAsync = async (source, predicate) => { + for (const item of source) { + if (await predicate(item) === false) { + return false; + } + } + return true; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/any.js +var any, any1, any2; +var init_any = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/any.js"() { + any = (source, predicate) => { + if (predicate) { + return any2(source, predicate); + } else { + return any1(source); + } + }; + any1 = (source) => { + for (const _ of source) { + return true; + } + return false; + }; + any2 = (source, predicate) => { + for (const item of source) { + if (predicate(item) === true) { + return true; + } + } + return false; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/anyAsync.js +var anyAsync; +var init_anyAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/anyAsync.js"() { + anyAsync = async (source, predicate) => { + for (const item of source) { + if (await predicate(item) === true) { + return true; + } + } + return false; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/static/fromAsync.js +var fromAsync; +var init_fromAsync = __esm({ + "node_modules/linq-to-typescript/esm/async/static/fromAsync.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + fromAsync = (promisesOrIterable) => { + if (Array.isArray(promisesOrIterable)) { + if (promisesOrIterable.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return new BasicAsyncEnumerable(async function* () { + for await (const value of promisesOrIterable) { + yield value; + } + }); + } else { + return new BasicAsyncEnumerable(promisesOrIterable); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/asAsync.js +var asAsync; +var init_asAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/asAsync.js"() { + init_fromAsync(); + asAsync = (source) => { + async function* generator() { + for (const value of source) { + yield value; + } + } + return fromAsync(generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/static/fromParallel.js +var fromParallel; +var init_fromParallel = __esm({ + "node_modules/linq-to-typescript/esm/parallel/static/fromParallel.js"() { + init_BasicParallelEnumerable(); + fromParallel = (type, generator) => { + return new BasicParallelEnumerable({ + generator, + type + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/asParallel.js +var asParallel; +var init_asParallel = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/asParallel.js"() { + init_fromParallel(); + asParallel = (source) => { + const generator = async () => { + const array = []; + for (const value of source) { + array.push(value); + } + return array; + }; + return fromParallel(0, generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/average.js +var average; +var init_average = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/average.js"() { + init_shared(); + average = (source, selector) => { + let value = 0; + let count5 = 0; + if (selector) { + for (const item of source) { + value = value + selector(item); + count5 = count5 + 1; + } + } else { + for (const item of source) { + value = value + item; + count5 = count5 + 1; + } + } + if (count5 === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return value / count5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/averageAsync.js +var averageAsync; +var init_averageAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/averageAsync.js"() { + init_shared(); + averageAsync = async (source, selector) => { + let value = 0; + let count5 = 0; + for (const item of source) { + value = value + await selector(item); + count5 = count5 + 1; + } + if (count5 === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return value / count5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/chunk.js +var chunk; +var init_chunk = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/chunk.js"() { + init_BasicEnumerable(); + init_shared(); + chunk = (source, size) => { + if (size < 1) { + throw new ArgumentOutOfRangeException("index"); + } + function* iterator() { + let yieldChunk = []; + for (const value of source) { + yieldChunk.push(value); + if (yieldChunk.length === size) { + yield yieldChunk; + yieldChunk = []; + } + } + if (yieldChunk.length) { + yield yieldChunk; + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/concatenate.js +var concatenate; +var init_concatenate = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/concatenate.js"() { + init_BasicEnumerable(); + concatenate = (first5, second) => { + function* iterator() { + yield* first5; + yield* second; + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/contains.js +var contains; +var init_contains = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/contains.js"() { + init_shared(); + contains = (source, value, comparer = StrictEqualityComparer) => { + for (const item of source) { + if (comparer(value, item)) { + return true; + } + } + return false; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/containsAsync.js +var containsAsync; +var init_containsAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/containsAsync.js"() { + containsAsync = async (source, value, comparer) => { + for (const item of source) { + if (await comparer(value, item)) { + return true; + } + } + return false; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/count.js +var count, count1, count2; +var init_count = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/count.js"() { + count = (source, predicate) => { + if (predicate) { + return count2(source, predicate); + } else { + return count1(source); + } + }; + count1 = (source) => { + let count5 = 0; + for (const _ of source) { + count5++; + } + return count5; + }; + count2 = (source, predicate) => { + let count5 = 0; + for (const value of source) { + if (predicate(value) === true) { + count5++; + } + } + return count5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/countAsync.js +var countAsync; +var init_countAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/countAsync.js"() { + countAsync = async (source, predicate) => { + let count5 = 0; + for (const value of source) { + if (await predicate(value) === true) { + count5++; + } + } + return count5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/defaultIfEmpty.js +var defaultIfEmpty; +var init_defaultIfEmpty = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/defaultIfEmpty.js"() { + init_BasicEnumerable(); + defaultIfEmpty = (source, defaultValue) => { + function* generator() { + let found = false; + for (const value of source) { + found = true; + yield value; + } + if (!found) { + yield defaultValue; + } + } + return new BasicEnumerable(generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/distinct.js +var distinct; +var init_distinct = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/distinct.js"() { + init_shared(); + init_BasicEnumerable(); + distinct = (source, comparer = StrictEqualityComparer) => { + function* iterator() { + const distinctElements = []; + for (const item of source) { + const foundItem = distinctElements.find((x) => comparer(x, item)); + if (!foundItem) { + distinctElements.push(item); + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/distinctAsync.js +var distinctAsync; +var init_distinctAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/distinctAsync.js"() { + init_fromAsync(); + distinctAsync = (source, comparer) => { + async function* iterator() { + const distinctElements = []; + outerLoop: + for (const item of source) { + for (const distinctElement of distinctElements) { + const found = await comparer(distinctElement, item); + if (found) { + continue outerLoop; + } + } + distinctElements.push(item); + yield item; + } + } + return fromAsync(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/each.js +var each; +var init_each = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/each.js"() { + init_BasicEnumerable(); + each = (source, action) => { + function* generator() { + for (const value of source) { + action(value); + yield value; + } + } + return new BasicEnumerable(generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/eachAsync.js +var eachAsync; +var init_eachAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/eachAsync.js"() { + init_fromAsync(); + eachAsync = (source, action) => { + async function* generator() { + for (const value of source) { + await action(value); + yield value; + } + } + return fromAsync(generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/elementAt.js +var elementAt; +var init_elementAt = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/elementAt.js"() { + init_shared(); + elementAt = (source, index) => { + if (index < 0) { + throw new ArgumentOutOfRangeException("index"); + } + let i = 0; + for (const item of source) { + if (index === i++) { + return item; + } + } + throw new ArgumentOutOfRangeException("index"); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/elementAtOrDefault.js +var elementAtOrDefault; +var init_elementAtOrDefault = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/elementAtOrDefault.js"() { + elementAtOrDefault = (source, index) => { + let i = 0; + for (const item of source) { + if (index === i++) { + return item; + } + } + return null; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/except.js +var except; +var init_except = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/except.js"() { + init_shared(); + init_BasicEnumerable(); + except = (first5, second, comparer = StrictEqualityComparer) => { + function* iterator() { + const secondArray = [...second]; + for (const firstItem of first5) { + let exists = false; + for (let j = 0; j < secondArray.length; j++) { + const secondItem = secondArray[j]; + if (comparer(firstItem, secondItem) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield firstItem; + } + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/exceptAsync.js +var exceptAsync; +var init_exceptAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/exceptAsync.js"() { + init_fromAsync(); + exceptAsync = (first5, second, comparer) => { + async function* iterator() { + const secondArray = [...second]; + for (const firstItem of first5) { + let exists = false; + for (let j = 0; j < secondArray.length; j++) { + const secondItem = secondArray[j]; + if (await comparer(firstItem, secondItem) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield firstItem; + } + } + } + return fromAsync(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/first.js +var first, first1, first2; +var init_first = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/first.js"() { + init_shared(); + first = (source, predicate) => { + if (predicate) { + return first2(source, predicate); + } else { + return first1(source); + } + }; + first1 = (source) => { + const first5 = source[Symbol.iterator]().next(); + if (first5.done === true) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return first5.value; + }; + first2 = (source, predicate) => { + for (const value of source) { + if (predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/firstAsync.js +var firstAsync; +var init_firstAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/firstAsync.js"() { + init_shared(); + firstAsync = async (source, predicate) => { + for (const value of source) { + if (await predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/firstOrDefault.js +var firstOrDefault, firstOrDefault1, firstOrDefault2; +var init_firstOrDefault = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/firstOrDefault.js"() { + firstOrDefault = (source, predicate) => { + if (predicate) { + return firstOrDefault2(source, predicate); + } else { + return firstOrDefault1(source); + } + }; + firstOrDefault1 = (source) => { + const first5 = source[Symbol.iterator]().next(); + return first5.value || null; + }; + firstOrDefault2 = (source, predicate) => { + for (const value of source) { + if (predicate(value) === true) { + return value; + } + } + return null; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/firstOrDefaultAsync.js +var firstOrDefaultAsync; +var init_firstOrDefaultAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/firstOrDefaultAsync.js"() { + firstOrDefaultAsync = async (source, predicate) => { + for (const value of source) { + if (await predicate(value) === true) { + return value; + } + } + return null; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/Grouping.js +var Grouping; +var init_Grouping = __esm({ + "node_modules/linq-to-typescript/esm/sync/Grouping.js"() { + init_ArrayEnumerable(); + Grouping = class extends ArrayEnumerable { + constructor(key, startingItem) { + super(1); + this.key = key; + this[0] = startingItem; + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/groupByShared.js +var groupBy_0, groupBy_0_Simple, groupBy_1_Simple, groupBy_1; +var init_groupByShared = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/groupByShared.js"() { + init_BasicEnumerable(); + init_Grouping(); + groupBy_0 = (source, keySelector, comparer) => { + return function* generate() { + const keyMap = new Array(); + for (const value of source) { + const key = keySelector(value); + let found = false; + for (let i = 0; i < keyMap.length; i++) { + const group = keyMap[i]; + if (comparer(group.key, key)) { + group.push(value); + found = true; + break; + } + } + if (found === false) { + keyMap.push(new Grouping(key, value)); + } + } + for (const keyValue of keyMap) { + yield keyValue; + } + }; + }; + groupBy_0_Simple = (source, keySelector) => { + return function* iterator() { + const keyMap = {}; + for (const value of source) { + const key = keySelector(value); + const grouping = keyMap[key]; + if (grouping) { + grouping.push(value); + } else { + keyMap[key] = new Grouping(key, value); + } + } + for (const value in keyMap) { + yield keyMap[value]; + } + }; + }; + groupBy_1_Simple = (source, keySelector, elementSelector) => { + function* generate() { + const keyMap = {}; + for (const value of source) { + const key = keySelector(value); + const grouping = keyMap[key]; + const element = elementSelector(value); + if (grouping) { + grouping.push(element); + } else { + keyMap[key] = new Grouping(key, element); + } + } + for (const value in keyMap) { + yield keyMap[value]; + } + } + return new BasicEnumerable(generate); + }; + groupBy_1 = (source, keySelector, elementSelector, comparer) => { + function* generate() { + const keyMap = new Array(); + for (const value of source) { + const key = keySelector(value); + let found = false; + for (let i = 0; i < keyMap.length; i++) { + const group = keyMap[i]; + if (comparer(group.key, key)) { + group.push(elementSelector(value)); + found = true; + break; + } + } + if (found === false) { + const element = elementSelector(value); + keyMap.push(new Grouping(key, element)); + } + } + for (const keyValue of keyMap) { + yield keyValue; + } + } + return new BasicEnumerable(generate); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/groupBy.js +var groupBy; +var init_groupBy = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/groupBy.js"() { + init_BasicEnumerable(); + init_groupByShared(); + groupBy = (source, keySelector, comparer) => { + let iterable; + if (comparer) { + iterable = groupBy_0(source, keySelector, comparer); + } else { + iterable = groupBy_0_Simple(source, keySelector); + } + return new BasicEnumerable(iterable); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/groupByAsync.js +var groupByAsync, groupByAsync_0_Simple, groupByAsync_0; +var init_groupByAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/groupByAsync.js"() { + init_fromAsync(); + init_Grouping(); + groupByAsync = (source, keySelector, comparer) => { + if (comparer) { + return groupByAsync_0(source, keySelector, comparer); + } else { + return groupByAsync_0_Simple(source, keySelector); + } + }; + groupByAsync_0_Simple = (source, keySelector) => { + async function* iterator() { + const keyMap = {}; + for (const value of source) { + const key = await keySelector(value); + const grouping = keyMap[key]; + if (grouping) { + grouping.push(value); + } else { + keyMap[key] = new Grouping(key, value); + } + } + for (const value in keyMap) { + yield keyMap[value]; + } + } + return fromAsync(iterator); + }; + groupByAsync_0 = (source, keySelector, comparer) => { + async function* generate() { + const keyMap = new Array(); + for (const value of source) { + const key = await keySelector(value); + let found = false; + for (let i = 0; i < keyMap.length; i++) { + const group = keyMap[i]; + if (await comparer(group.key, key) === true) { + group.push(value); + found = true; + break; + } + } + if (found === false) { + keyMap.push(new Grouping(key, value)); + } + } + for (const keyValue of keyMap) { + yield keyValue; + } + } + return fromAsync(generate); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/groupByWithSel.js +var groupByWithSel; +var init_groupByWithSel = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/groupByWithSel.js"() { + init_groupByShared(); + groupByWithSel = (source, keySelector, elementSelector, comparer) => { + if (comparer) { + return groupBy_1(source, keySelector, elementSelector, comparer); + } else { + return groupBy_1_Simple(source, keySelector, elementSelector); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/groupJoin.js +var groupJoin, groupJoinWithComparer, groupJoinSimple; +var init_groupJoin = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/groupJoin.js"() { + init_BasicEnumerable(); + groupJoin = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + const generator = comparer ? groupJoinWithComparer(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) : groupJoinSimple(outer, inner, outerKeySelector, innerKeySelector, resultSelector); + return new BasicEnumerable(generator); + }; + groupJoinWithComparer = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + return function* () { + var _a; + const innerKeyMap = []; + for (const innerValue of inner) { + const key = innerKeySelector(innerValue); + const record = innerKeyMap.find((x) => comparer(x.key, key)); + if (record) { + record.values.push(innerValue); + } else { + innerKeyMap.push({ key, values: [innerValue] }); + } + } + for (const outerValue of outer) { + const key = outerKeySelector(outerValue); + const innerRecord = (_a = innerKeyMap.find((x) => comparer(x.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] }; + yield resultSelector(outerValue, innerRecord.values); + } + }; + }; + groupJoinSimple = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => { + return function* () { + var _a; + const innerKeyMap = /* @__PURE__ */ new Map(); + for (const innerValue of inner) { + const key = innerKeySelector(innerValue); + const values = innerKeyMap.get(key); + if (values) { + values.push(innerValue); + } else { + innerKeyMap.set(key, [innerValue]); + } + } + for (const outerValue of outer) { + const key = outerKeySelector(outerValue); + const values = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : []; + yield resultSelector(outerValue, values); + } + }; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/groupJoinAsync.js +var groupJoinAsync, groupJoinWithComparer2, groupJoinSimple2; +var init_groupJoinAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/groupJoinAsync.js"() { + init_fromAsync(); + groupJoinAsync = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + const generator = comparer ? groupJoinWithComparer2(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) : groupJoinSimple2(outer, inner, outerKeySelector, innerKeySelector, resultSelector); + return fromAsync(generator); + }; + groupJoinWithComparer2 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + return async function* () { + var _a; + const innerKeyMap = []; + for (const innerValue of inner) { + const key = await innerKeySelector(innerValue); + const record = innerKeyMap.find((x) => comparer(x.key, key)); + if (record) { + record.values.push(innerValue); + } else { + innerKeyMap.push({ key, values: [innerValue] }); + } + } + for (const outerValue of outer) { + const key = await outerKeySelector(outerValue); + const innerRecord = (_a = innerKeyMap.find((x) => comparer(x.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] }; + yield resultSelector(outerValue, innerRecord.values); + } + }; + }; + groupJoinSimple2 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => { + return async function* () { + var _a; + const innerKeyMap = /* @__PURE__ */ new Map(); + for (const innerValue of inner) { + const key = await innerKeySelector(innerValue); + const values = innerKeyMap.get(key); + if (values) { + values.push(innerValue); + } else { + innerKeyMap.set(key, [innerValue]); + } + } + for (const outerValue of outer) { + const key = await outerKeySelector(outerValue); + const values = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : []; + yield resultSelector(outerValue, values); + } + }; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/intersect.js +var intersect; +var init_intersect = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/intersect.js"() { + init_shared(); + init_BasicEnumerable(); + intersect = (first5, second, comparer = StrictEqualityComparer) => { + function* iterator() { + const firstResults = [...first5.distinct(comparer)]; + if (firstResults.length === 0) { + return; + } + const secondResults = [...second]; + for (let i = 0; i < firstResults.length; i++) { + const firstValue = firstResults[i]; + for (let j = 0; j < secondResults.length; j++) { + const secondValue = secondResults[j]; + if (comparer(firstValue, secondValue) === true) { + yield firstValue; + break; + } + } + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/intersectAsync.js +var intersectAsync; +var init_intersectAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/intersectAsync.js"() { + init_fromAsync(); + intersectAsync = (first5, second, comparer) => { + async function* iterator() { + const firstResults = []; + for await (const item of first5.distinctAsync(comparer)) { + firstResults.push(item); + } + if (firstResults.length === 0) { + return; + } + const secondResults = [...second]; + for (let i = 0; i < firstResults.length; i++) { + const firstValue = firstResults[i]; + for (let j = 0; j < secondResults.length; j++) { + const secondValue = secondResults[j]; + if (await comparer(firstValue, secondValue) === true) { + yield firstValue; + break; + } + } + } + } + return fromAsync(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/join.js +var join; +var init_join = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/join.js"() { + init_shared(); + init_BasicEnumerable(); + join = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer = StrictEqualityComparer) => { + function* iterator() { + const innerArray = [...inner]; + for (const o of outer) { + const outerKey = outerKeySelector(o); + for (const i of innerArray) { + const innerKey = innerKeySelector(i); + if (comparer(outerKey, innerKey) === true) { + yield resultSelector(o, i); + } + } + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/last.js +var last, last1, last2; +var init_last = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/last.js"() { + init_shared(); + last = (source, predicate) => { + if (predicate) { + return last2(source, predicate); + } else { + return last1(source); + } + }; + last1 = (source) => { + let lastItem; + for (const value of source) { + lastItem = value; + } + if (!lastItem) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return lastItem; + }; + last2 = (source, predicate) => { + let lastItem; + for (const value of source) { + if (predicate(value) === true) { + lastItem = value; + } + } + if (!lastItem) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return lastItem; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/lastAsync.js +var lastAsync; +var init_lastAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/lastAsync.js"() { + init_shared(); + lastAsync = async (source, predicate) => { + let last5; + for (const value of source) { + if (await predicate(value) === true) { + last5 = value; + } + } + if (!last5) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return last5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/lastOrDefault.js +var lastOrDefault, lastOrDefault1, lastOrDefault2; +var init_lastOrDefault = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/lastOrDefault.js"() { + lastOrDefault = (source, predicate) => { + if (predicate) { + return lastOrDefault2(source, predicate); + } else { + return lastOrDefault1(source); + } + }; + lastOrDefault1 = (source) => { + let last5 = null; + for (const value of source) { + last5 = value; + } + return last5; + }; + lastOrDefault2 = (source, predicate) => { + let last5 = null; + for (const value of source) { + if (predicate(value) === true) { + last5 = value; + } + } + return last5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/lastOrDefaultAsync.js +var lastOrDefaultAsync; +var init_lastOrDefaultAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/lastOrDefaultAsync.js"() { + lastOrDefaultAsync = async (source, predicate) => { + let last5 = null; + for (const value of source) { + if (await predicate(value) === true) { + last5 = value; + } + } + return last5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/max.js +var max, max1, max2; +var init_max = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/max.js"() { + init_shared(); + max = (source, selector) => { + if (selector) { + return max2(source, selector); + } else { + return max1(source); + } + }; + max1 = (source) => { + let maxItem = null; + for (const item of source) { + maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, item); + } + if (maxItem === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return maxItem; + } + }; + max2 = (source, selector) => { + let maxItem = null; + for (const item of source) { + maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, selector(item)); + } + if (maxItem === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return maxItem; + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/maxAsync.js +var maxAsync; +var init_maxAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/maxAsync.js"() { + init_shared(); + maxAsync = async (source, selector) => { + let max5 = null; + for (const item of source) { + max5 = Math.max(max5 || Number.NEGATIVE_INFINITY, await selector(item)); + } + if (max5 === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return max5; + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/min.js +var min, min1, min2; +var init_min = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/min.js"() { + init_shared(); + min = (source, selector) => { + if (selector) { + return min2(source, selector); + } else { + return min1(source); + } + }; + min1 = (source) => { + let minItem = null; + for (const item of source) { + minItem = Math.min(minItem || Number.POSITIVE_INFINITY, item); + } + if (minItem === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return minItem; + } + }; + min2 = (source, selector) => { + let minItem = null; + for (const item of source) { + minItem = Math.min(minItem || Number.POSITIVE_INFINITY, selector(item)); + } + if (minItem === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return minItem; + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/minAsync.js +var minAsync; +var init_minAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/minAsync.js"() { + init_shared(); + minAsync = async (source, selector) => { + let min5 = null; + for (const item of source) { + min5 = Math.min(min5 || Number.POSITIVE_INFINITY, await selector(item)); + } + if (min5 === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return min5; + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/ofType.js +var ofType; +var init_ofType = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/ofType.js"() { + init_BasicEnumerable(); + ofType = (source, type) => { + const typeCheck = typeof type === "string" ? (x) => typeof x === type : (x) => x instanceof type; + function* iterator() { + for (const item of source) { + if (typeCheck(item)) { + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_ordered/asAsyncKeyMap.js +var asAsyncKeyMap; +var init_asAsyncKeyMap = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asAsyncKeyMap.js"() { + asAsyncKeyMap = async (source, keySelector) => { + const map = /* @__PURE__ */ new Map(); + for await (const item of source) { + const key = await keySelector(item); + const currentMapping = map.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map.set(key, [item]); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_ordered/asAsyncSortedKeyValues.js +async function* asAsyncSortedKeyValues(source, keySelector, ascending, comparer) { + const map = await asAsyncKeyMap(source, keySelector); + const sortedKeys = [...map.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i = 0; i < sortedKeys.length; i++) { + yield map.get(sortedKeys[i]); + } + } else { + for (let i = sortedKeys.length - 1; i >= 0; i--) { + yield map.get(sortedKeys[i]); + } + } +} +var init_asAsyncSortedKeyValues = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asAsyncSortedKeyValues.js"() { + init_asAsyncKeyMap(); + } +}); + +// node_modules/linq-to-typescript/esm/async/_ordered/asAsyncKeyMapSync.js +var asAsyncKeyMapSync; +var init_asAsyncKeyMapSync = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asAsyncKeyMapSync.js"() { + asAsyncKeyMapSync = async (source, keySelector) => { + const map = /* @__PURE__ */ new Map(); + for (const item of source) { + const key = await keySelector(item); + const currentMapping = map.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map.set(key, [item]); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_ordered/asAsyncSortedKeyValuesSync.js +async function* asAsyncSortedKeyValuesSync(source, keySelector, ascending, comparer) { + const map = await asAsyncKeyMapSync(source, keySelector); + const sortedKeys = [...map.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i = 0; i < sortedKeys.length; i++) { + yield map.get(sortedKeys[i]); + } + } else { + for (let i = sortedKeys.length - 1; i >= 0; i--) { + yield map.get(sortedKeys[i]); + } + } +} +var init_asAsyncSortedKeyValuesSync = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asAsyncSortedKeyValuesSync.js"() { + init_asAsyncKeyMapSync(); + } +}); + +// node_modules/linq-to-typescript/esm/async/_ordered/asKeyMap.js +var asKeyMap; +var init_asKeyMap = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asKeyMap.js"() { + asKeyMap = async (source, keySelector) => { + const map = /* @__PURE__ */ new Map(); + for await (const item of source) { + const key = keySelector(item); + const currentMapping = map.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map.set(key, [item]); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_ordered/asSortedKeyValues.js +async function* asSortedKeyValues(source, keySelector, ascending, comparer) { + const map = await asKeyMap(source, keySelector); + const sortedKeys = [...map.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i = 0; i < sortedKeys.length; i++) { + yield map.get(sortedKeys[i]); + } + } else { + for (let i = sortedKeys.length - 1; i >= 0; i--) { + yield map.get(sortedKeys[i]); + } + } +} +var init_asSortedKeyValues = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asSortedKeyValues.js"() { + init_asKeyMap(); + } +}); + +// node_modules/linq-to-typescript/esm/async/_ordered/asKeyMapSync.js +var asKeyMapSync; +var init_asKeyMapSync = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asKeyMapSync.js"() { + asKeyMapSync = (source, keySelector) => { + const map = /* @__PURE__ */ new Map(); + for (const item of source) { + const key = keySelector(item); + const currentMapping = map.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map.set(key, [item]); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_ordered/asSortedKeyValuesSync.js +function* asSortedKeyValuesSync(source, keySelector, ascending, comparer) { + const map = asKeyMapSync(source, keySelector); + const sortedKeys = [...map.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i = 0; i < sortedKeys.length; i++) { + yield map.get(sortedKeys[i]); + } + } else { + for (let i = sortedKeys.length - 1; i >= 0; i--) { + yield map.get(sortedKeys[i]); + } + } +} +var init_asSortedKeyValuesSync = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asSortedKeyValuesSync.js"() { + init_asKeyMapSync(); + } +}); + +// node_modules/linq-to-typescript/esm/async/OrderedAsyncEnumerable.js +var OrderedAsyncEnumerable; +var init_OrderedAsyncEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/async/OrderedAsyncEnumerable.js"() { + init_asAsyncSortedKeyValues(); + init_asAsyncSortedKeyValuesSync(); + init_asSortedKeyValues(); + init_asSortedKeyValuesSync(); + init_BasicAsyncEnumerable(); + OrderedAsyncEnumerable = class extends BasicAsyncEnumerable { + constructor(orderedPairs) { + super(async function* () { + for await (const orderedPair of orderedPairs()) { + yield* orderedPair; + } + }); + this.orderedPairs = orderedPairs; + } + static generateAsync(source, keySelector, ascending, comparer) { + let orderedPairs; + if (source instanceof OrderedAsyncEnumerable) { + orderedPairs = async function* () { + for await (const pair of source.orderedPairs()) { + yield* asAsyncSortedKeyValuesSync(pair, keySelector, ascending, comparer); + } + }; + } else { + orderedPairs = () => asAsyncSortedKeyValues(source, keySelector, ascending, comparer); + } + return new OrderedAsyncEnumerable(orderedPairs); + } + static generate(source, keySelector, ascending, comparer) { + let orderedPairs; + if (source instanceof OrderedAsyncEnumerable) { + orderedPairs = async function* () { + for await (const pair of source.orderedPairs()) { + yield* asSortedKeyValuesSync(pair, keySelector, ascending, comparer); + } + }; + } else { + orderedPairs = () => asSortedKeyValues(source, keySelector, ascending, comparer); + } + return new OrderedAsyncEnumerable(orderedPairs); + } + thenBy(keySelector, comparer) { + return OrderedAsyncEnumerable.generate(this, keySelector, true, comparer); + } + thenByAsync(keySelector, comparer) { + return OrderedAsyncEnumerable.generateAsync(this, keySelector, true, comparer); + } + thenByDescending(keySelector, comparer) { + return OrderedAsyncEnumerable.generate(this, keySelector, false, comparer); + } + thenByDescendingAsync(keySelector, comparer) { + return OrderedAsyncEnumerable.generateAsync(this, keySelector, false, comparer); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_ordered/asKeyMap.js +var asKeyMap2; +var init_asKeyMap2 = __esm({ + "node_modules/linq-to-typescript/esm/sync/_ordered/asKeyMap.js"() { + asKeyMap2 = (source, keySelector) => { + const map = /* @__PURE__ */ new Map(); + for (const item of source) { + const key = keySelector(item); + const currentMapping = map.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map.set(key, [item]); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_ordered/asSortedKeyValues.js +function* asSortedKeyValues2(source, keySelector, ascending, comparer) { + const map = asKeyMap2(source, keySelector); + const sortedKeys = [...map.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i = 0; i < sortedKeys.length; i++) { + yield map.get(sortedKeys[i]); + } + } else { + for (let i = sortedKeys.length - 1; i >= 0; i--) { + yield map.get(sortedKeys[i]); + } + } +} +var init_asSortedKeyValues2 = __esm({ + "node_modules/linq-to-typescript/esm/sync/_ordered/asSortedKeyValues.js"() { + init_asKeyMap2(); + } +}); + +// node_modules/linq-to-typescript/esm/sync/_ordered/asKeyMapAsync.js +var asKeyMapAsync; +var init_asKeyMapAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_ordered/asKeyMapAsync.js"() { + asKeyMapAsync = async (source, keySelector) => { + const map = /* @__PURE__ */ new Map(); + for (const item of source) { + const key = await keySelector(item); + const currentMapping = map.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map.set(key, [item]); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_ordered/asSortedKeyValuesAsync.js +async function* asSortedKeyValuesAsync(source, keySelector, ascending, comparer) { + const map = await asKeyMapAsync(source, keySelector); + const sortedKeys = [...map.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i = 0; i < sortedKeys.length; i++) { + yield map.get(sortedKeys[i]); + } + } else { + for (let i = sortedKeys.length - 1; i >= 0; i--) { + yield map.get(sortedKeys[i]); + } + } +} +var init_asSortedKeyValuesAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_ordered/asSortedKeyValuesAsync.js"() { + init_asKeyMapAsync(); + } +}); + +// node_modules/linq-to-typescript/esm/sync/OrderedEnumerable.js +var OrderedEnumerable; +var init_OrderedEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/sync/OrderedEnumerable.js"() { + init_OrderedAsyncEnumerable(); + init_asSortedKeyValues2(); + init_asSortedKeyValuesAsync(); + init_BasicEnumerable(); + OrderedEnumerable = class extends BasicEnumerable { + constructor(orderedPairs) { + super(function* () { + for (const orderedPair of orderedPairs()) { + yield* orderedPair; + } + }); + this.orderedPairs = orderedPairs; + } + static generate(source, keySelector, ascending, comparer) { + let orderedPairs; + if (source instanceof OrderedEnumerable) { + orderedPairs = function* () { + for (const pair of source.orderedPairs()) { + yield* asSortedKeyValues2(pair, keySelector, ascending, comparer); + } + }; + } else { + orderedPairs = () => asSortedKeyValues2(source, keySelector, ascending, comparer); + } + return new OrderedEnumerable(orderedPairs); + } + static generateAsync(source, keySelector, ascending, comparer) { + let orderedPairs; + if (source instanceof OrderedEnumerable) { + orderedPairs = async function* () { + for (const pair of source.orderedPairs()) { + yield* asSortedKeyValuesAsync(pair, keySelector, ascending, comparer); + } + }; + } else { + orderedPairs = () => asSortedKeyValuesAsync(source, keySelector, ascending, comparer); + } + return new OrderedAsyncEnumerable(orderedPairs); + } + thenBy(keySelector, comparer) { + return OrderedEnumerable.generate(this, keySelector, true, comparer); + } + thenByAsync(keySelector, comparer) { + return OrderedEnumerable.generateAsync(this, keySelector, true, comparer); + } + thenByDescending(keySelector, comparer) { + return OrderedEnumerable.generate(this, keySelector, false, comparer); + } + thenByDescendingAsync(keySelector, comparer) { + return OrderedEnumerable.generateAsync(this, keySelector, false, comparer); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/orderBy.js +var orderBy; +var init_orderBy = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/orderBy.js"() { + init_OrderedEnumerable(); + orderBy = (source, keySelector, comparer) => { + return OrderedEnumerable.generate(source, keySelector, true, comparer); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/orderByAsync.js +var orderByAsync; +var init_orderByAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/orderByAsync.js"() { + init_OrderedEnumerable(); + orderByAsync = (source, keySelector, comparer) => { + return OrderedEnumerable.generateAsync(source, keySelector, true, comparer); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/orderByDescending.js +var orderByDescending; +var init_orderByDescending = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/orderByDescending.js"() { + init_OrderedEnumerable(); + orderByDescending = (source, keySelector, comparer) => { + return OrderedEnumerable.generate(source, keySelector, false, comparer); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/orderByDescendingAsync.js +var orderByDescendingAsync; +var init_orderByDescendingAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/orderByDescendingAsync.js"() { + init_OrderedEnumerable(); + orderByDescendingAsync = (source, keySelector, comparer) => { + return OrderedEnumerable.generateAsync(source, keySelector, false, comparer); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/partition.js +var partition; +var init_partition = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/partition.js"() { + partition = (source, predicate) => { + const fail = []; + const pass = []; + for (const value of source) { + if (predicate(value) === true) { + pass.push(value); + } else { + fail.push(value); + } + } + return [pass, fail]; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/partitionAsync.js +var partitionAsync; +var init_partitionAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/partitionAsync.js"() { + partitionAsync = async (source, predicate) => { + const fail = []; + const pass = []; + for (const value of source) { + if (await predicate(value) === true) { + pass.push(value); + } else { + fail.push(value); + } + } + return [pass, fail]; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/reverse.js +var reverse; +var init_reverse = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/reverse.js"() { + init_BasicEnumerable(); + reverse = (source) => { + function* iterator() { + const array = [...source]; + for (let i = array.length - 1; i >= 0; i--) { + yield array[i]; + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/select.js +var select, select1, select2, select3; +var init_select = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/select.js"() { + init_BasicEnumerable(); + select = (source, selector) => { + if (typeof selector === "function") { + const { length } = selector; + if (length === 1) { + return select1(source, selector); + } else { + return select2(source, selector); + } + } else { + return select3(source, selector); + } + }; + select1 = (source, selector) => { + function* iterator() { + for (const value of source) { + yield selector(value); + } + } + return new BasicEnumerable(iterator); + }; + select2 = (source, selector) => { + function* iterator() { + let index = 0; + for (const value of source) { + yield selector(value, index); + index++; + } + } + return new BasicEnumerable(iterator); + }; + select3 = (source, key) => { + function* iterator() { + for (const value of source) { + yield value[key]; + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/selectAsync.js +var selectAsync, selectAsync1, selectAsync2, selectAsync3; +var init_selectAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/selectAsync.js"() { + init_fromAsync(); + selectAsync = (source, selector) => { + if (typeof selector === "function") { + if (selector.length === 1) { + return selectAsync1(source, selector); + } else { + return selectAsync2(source, selector); + } + } else { + return selectAsync3(source, selector); + } + }; + selectAsync1 = (source, selector) => { + async function* iterator() { + for (const value of source) { + yield selector(value); + } + } + return fromAsync(iterator); + }; + selectAsync2 = (source, selector) => { + async function* iterator() { + let index = 0; + for (const value of source) { + yield selector(value, index); + index++; + } + } + return fromAsync(iterator); + }; + selectAsync3 = (source, key) => { + async function* iterator() { + for (const value of source) { + yield value[key]; + } + } + return fromAsync(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/selectMany.js +var selectMany, selectMany1, selectMany2, selectMany3; +var init_selectMany = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/selectMany.js"() { + init_BasicEnumerable(); + selectMany = (source, selector) => { + if (typeof selector === "function") { + if (selector.length === 1) { + return selectMany1(source, selector); + } else { + return selectMany2(source, selector); + } + } else { + return selectMany3(source, selector); + } + }; + selectMany1 = (source, selector) => { + function* iterator() { + for (const value of source) { + for (const selectorValue of selector(value)) { + yield selectorValue; + } + } + } + return new BasicEnumerable(iterator); + }; + selectMany2 = (source, selector) => { + function* iterator() { + let index = 0; + for (const value of source) { + for (const selectorValue of selector(value, index)) { + yield selectorValue; + } + index++; + } + } + return new BasicEnumerable(iterator); + }; + selectMany3 = (source, selector) => { + function* iterator() { + for (const value of source) { + for (const selectorValue of value[selector]) { + yield selectorValue; + } + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/selectManyAsync.js +var selectManyAsync, selectManyAsync1, selectManyAsync2; +var init_selectManyAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/selectManyAsync.js"() { + init_fromAsync(); + selectManyAsync = (source, selector) => { + if (selector.length === 1) { + return selectManyAsync1(source, selector); + } else { + return selectManyAsync2(source, selector); + } + }; + selectManyAsync1 = (source, selector) => { + async function* generator() { + for (const value of source) { + const innerValues = await selector(value); + for (const innerValue of innerValues) { + yield innerValue; + } + } + } + return fromAsync(generator); + }; + selectManyAsync2 = (source, selector) => { + async function* generator() { + let index = 0; + for (const value of source) { + const innerValues = await selector(value, index); + for (const innerValue of innerValues) { + yield innerValue; + } + index++; + } + } + return fromAsync(generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/sequenceEquals.js +var sequenceEquals; +var init_sequenceEquals = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/sequenceEquals.js"() { + init_shared(); + sequenceEquals = (first5, second, comparer = StrictEqualityComparer) => { + const firstIterator = first5[Symbol.iterator](); + const secondIterator = second[Symbol.iterator](); + let firstResult = firstIterator.next(); + let secondResult = secondIterator.next(); + while (!firstResult.done && !secondResult.done) { + if (!comparer(firstResult.value, secondResult.value)) { + return false; + } + firstResult = firstIterator.next(); + secondResult = secondIterator.next(); + } + return firstResult.done === true && secondResult.done === true; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/sequenceEqualsAsync.js +var sequenceEqualsAsync; +var init_sequenceEqualsAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/sequenceEqualsAsync.js"() { + sequenceEqualsAsync = async (first5, second, comparer) => { + const firstIterator = first5[Symbol.iterator](); + const secondIterator = second[Symbol.iterator](); + let firstResult = firstIterator.next(); + let secondResult = secondIterator.next(); + while (!firstResult.done && !secondResult.done) { + if (await comparer(firstResult.value, secondResult.value) === false) { + return false; + } + firstResult = firstIterator.next(); + secondResult = secondIterator.next(); + } + return firstResult.done === true && secondResult.done === true; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/single.js +var single, single1, single2; +var init_single = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/single.js"() { + init_shared(); + single = (source, predicate) => { + if (predicate) { + return single2(source, predicate); + } else { + return single1(source); + } + }; + single1 = (source) => { + let hasValue = false; + let singleValue = null; + for (const value of source) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return singleValue; + }; + single2 = (source, predicate) => { + let hasValue = false; + let singleValue = null; + for (const value of source) { + if (predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return singleValue; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/singleAsync.js +var singleAsync; +var init_singleAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/singleAsync.js"() { + init_shared(); + singleAsync = async (source, predicate) => { + let hasValue = false; + let singleValue = null; + for (const value of source) { + if (await predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return singleValue; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/singleOrDefault.js +var singleOrDefault, singleOrDefault1, singleOrDefault2; +var init_singleOrDefault = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/singleOrDefault.js"() { + init_shared(); + singleOrDefault = (source, predicate) => { + if (predicate) { + return singleOrDefault2(source, predicate); + } else { + return singleOrDefault1(source); + } + }; + singleOrDefault1 = (source) => { + let hasValue = false; + let singleValue = null; + for (const value of source) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + return singleValue; + }; + singleOrDefault2 = (source, predicate) => { + let hasValue = false; + let singleValue = null; + for (const value of source) { + if (predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + return singleValue; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/singleOrDefaultAsync.js +var singleOrDefaultAsync; +var init_singleOrDefaultAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/singleOrDefaultAsync.js"() { + init_shared(); + singleOrDefaultAsync = async (source, predicate) => { + let hasValue = false; + let singleValue = null; + for (const value of source) { + if (await predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + return singleValue; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/skip.js +var skip; +var init_skip = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/skip.js"() { + init_BasicEnumerable(); + skip = (source, count5) => { + function* iterator() { + let i = 0; + for (const item of source) { + if (i++ >= count5) { + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/skipWhile.js +var skipWhile, skipWhile1, skipWhile2; +var init_skipWhile = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/skipWhile.js"() { + init_BasicEnumerable(); + skipWhile = (source, predicate) => { + if (predicate.length === 1) { + return skipWhile1(source, predicate); + } else { + return skipWhile2(source, predicate); + } + }; + skipWhile1 = (source, predicate) => { + function* iterator() { + let skip4 = true; + for (const item of source) { + if (skip4 === false) { + yield item; + } else if (predicate(item) === false) { + skip4 = false; + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + skipWhile2 = (source, predicate) => { + function* iterator() { + let index = 0; + let skip4 = true; + for (const item of source) { + if (skip4 === false) { + yield item; + } else if (predicate(item, index) === false) { + skip4 = false; + yield item; + } + index++; + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/skipWhileAsync.js +var skipWhileAsync, skipWhileAsync1, skipWhileAsync2; +var init_skipWhileAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/skipWhileAsync.js"() { + init_fromAsync(); + skipWhileAsync = (source, predicate) => { + if (predicate.length === 1) { + return skipWhileAsync1(source, predicate); + } else { + return skipWhileAsync2(source, predicate); + } + }; + skipWhileAsync1 = (source, predicate) => { + async function* iterator() { + let skip4 = true; + for (const item of source) { + if (skip4 === false) { + yield item; + } else if (await predicate(item) === false) { + skip4 = false; + yield item; + } + } + } + return fromAsync(iterator); + }; + skipWhileAsync2 = (source, predicate) => { + async function* iterator() { + let index = 0; + let skip4 = true; + for (const item of source) { + if (skip4 === false) { + yield item; + } else if (await predicate(item, index) === false) { + skip4 = false; + yield item; + } + index++; + } + } + return fromAsync(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/sum.js +var sum, sum1, sum2; +var init_sum = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/sum.js"() { + sum = (source, selector) => { + if (selector) { + return sum2(source, selector); + } else { + return sum1(source); + } + }; + sum1 = (source) => { + let total = 0; + for (const value of source) { + total += value; + } + return total; + }; + sum2 = (source, selector) => { + let total = 0; + for (const value of source) { + total += selector(value); + } + return total; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/sumAsync.js +var sumAsync; +var init_sumAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/sumAsync.js"() { + sumAsync = async (source, selector) => { + let sum5 = 0; + for (const value of source) { + sum5 += await selector(value); + } + return sum5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/take.js +var take; +var init_take = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/take.js"() { + init_BasicEnumerable(); + take = (source, amount) => { + function* iterator() { + let amountLeft = amount > 0 ? amount : 0; + for (const item of source) { + if (amountLeft-- === 0) { + break; + } else { + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/takeWhile.js +var takeWhile, takeWhile1, takeWhile2; +var init_takeWhile = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/takeWhile.js"() { + init_BasicEnumerable(); + takeWhile = (source, predicate) => { + if (predicate.length === 1) { + return takeWhile1(source, predicate); + } else { + return takeWhile2(source, predicate); + } + }; + takeWhile1 = (source, predicate) => { + function* iterator() { + for (const item of source) { + if (predicate(item)) { + yield item; + } else { + break; + } + } + } + return new BasicEnumerable(iterator); + }; + takeWhile2 = (source, predicate) => { + function* iterator() { + let index = 0; + for (const item of source) { + if (predicate(item, index++)) { + yield item; + } else { + break; + } + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/takeWhileAsync.js +var takeWhileAsync, takeWhileAsync1, takeWhileAsync2; +var init_takeWhileAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/takeWhileAsync.js"() { + init_fromAsync(); + takeWhileAsync = (source, predicate) => { + if (predicate.length === 1) { + return takeWhileAsync1(source, predicate); + } else { + return takeWhileAsync2(source, predicate); + } + }; + takeWhileAsync1 = (source, predicate) => { + async function* iterator() { + for (const item of source) { + if (await predicate(item)) { + yield item; + } else { + break; + } + } + } + return fromAsync(iterator); + }; + takeWhileAsync2 = (source, predicate) => { + async function* iterator() { + let index = 0; + for (const item of source) { + if (await predicate(item, index++)) { + yield item; + } else { + break; + } + } + } + return fromAsync(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/toArray.js +var toArray; +var init_toArray = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/toArray.js"() { + toArray = (source) => { + return [...source]; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/toMap.js +var toMap; +var init_toMap = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/toMap.js"() { + toMap = (source, selector) => { + const map = /* @__PURE__ */ new Map(); + for (const value of source) { + const key = selector(value); + const array = map.get(key); + if (array === void 0) { + map.set(key, [value]); + } else { + array.push(value); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/toMapAsync.js +var toMapAsync; +var init_toMapAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/toMapAsync.js"() { + toMapAsync = async (source, selector) => { + const map = /* @__PURE__ */ new Map(); + for (const value of source) { + const key = await selector(value); + const array = map.get(key); + if (array === void 0) { + map.set(key, [value]); + } else { + array.push(value); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/toObject.js +var toObject; +var init_toObject = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/toObject.js"() { + toObject = (source, selector) => { + const map = {}; + for (const value of source) { + map[selector(value)] = value; + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/toObjectAsync.js +var toObjectAsync; +var init_toObjectAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/toObjectAsync.js"() { + toObjectAsync = async (source, selector) => { + const map = {}; + for (const value of source) { + map[await selector(value)] = value; + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/toSet.js +var toSet; +var init_toSet = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/toSet.js"() { + toSet = (source) => { + return new Set(source); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/union.js +var union, union1, union2; +var init_union = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/union.js"() { + init_BasicEnumerable(); + union = (first5, second, comparer) => { + if (comparer) { + return union2(first5, second, comparer); + } else { + return union1(first5, second); + } + }; + union1 = (first5, second) => { + function* iterator() { + const set = /* @__PURE__ */ new Set(); + for (const item of first5) { + if (set.has(item) === false) { + yield item; + set.add(item); + } + } + for (const item of second) { + if (set.has(item) === false) { + yield item; + set.add(item); + } + } + } + return new BasicEnumerable(iterator); + }; + union2 = (first5, second, comparer) => { + function* iterator() { + const result = []; + for (const source of [first5, second]) { + for (const value of source) { + let exists = false; + for (const resultValue of result) { + if (comparer(value, resultValue) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield value; + result.push(value); + } + } + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/unionAsync.js +var unionAsync; +var init_unionAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/unionAsync.js"() { + init_fromAsync(); + unionAsync = (first5, second, comparer) => { + async function* iterator() { + const result = []; + for (const source of [first5, second]) { + for (const value of source) { + let exists = false; + for (const resultValue of result) { + if (await comparer(value, resultValue) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield value; + result.push(value); + } + } + } + } + return fromAsync(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/where.js +var where, where1, where2; +var init_where = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/where.js"() { + init_BasicEnumerable(); + where = (source, predicate) => { + if (predicate.length === 1) { + return where1(source, predicate); + } else { + return where2(source, predicate); + } + }; + where1 = (source, predicate) => { + function* iterator() { + for (const item of source) { + if (predicate(item) === true) { + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + where2 = (source, predicate) => { + function* iterator() { + let i = 0; + for (const item of source) { + if (predicate(item, i++) === true) { + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/whereAsync.js +var whereAsync, whereAsync1, whereAsync2; +var init_whereAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/whereAsync.js"() { + init_fromAsync(); + whereAsync = (source, predicate) => { + if (predicate.length === 1) { + return whereAsync1(source, predicate); + } else { + return whereAsync2(source, predicate); + } + }; + whereAsync1 = (source, predicate) => { + async function* generator() { + for (const item of source) { + if (await predicate(item) === true) { + yield item; + } + } + } + return fromAsync(generator); + }; + whereAsync2 = (source, predicate) => { + async function* generator() { + let i = 0; + for (const item of source) { + if (await predicate(item, i++) === true) { + yield item; + } + } + } + return fromAsync(generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/zip.js +var zip, zip1, zip2; +var init_zip = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/zip.js"() { + init_BasicEnumerable(); + zip = (source, second, resultSelector) => { + if (resultSelector) { + return zip2(source, second, resultSelector); + } else { + return zip1(source, second); + } + }; + zip1 = (source, second) => { + function* iterator() { + const firstIterator = source[Symbol.iterator](); + const secondIterator = second[Symbol.iterator](); + while (true) { + const a = firstIterator.next(); + const b = secondIterator.next(); + if (a.done || b.done) { + break; + } else { + yield [a.value, b.value]; + } + } + } + return new BasicEnumerable(iterator); + }; + zip2 = (source, second, resultSelector) => { + function* iterator() { + const firstIterator = source[Symbol.iterator](); + const secondIterator = second[Symbol.iterator](); + while (true) { + const a = firstIterator.next(); + const b = secondIterator.next(); + if (a.done || b.done) { + break; + } else { + yield resultSelector(a.value, b.value); + } + } + } + return new BasicEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/sync/_private/zipAsync.js +var zipAsync; +var init_zipAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/zipAsync.js"() { + init_fromAsync(); + zipAsync = (first5, second, resultSelector) => { + async function* generator() { + const firstIterator = first5[Symbol.iterator](); + const secondIterator = second[Symbol.iterator](); + while (true) { + const a = firstIterator.next(); + const b = secondIterator.next(); + if (a.done || b.done) { + break; + } else { + yield resultSelector(a.value, b.value); + } + } + } + return fromAsync(generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/initializer/bindLinq.js +var bindLinq; +var init_bindLinq = __esm({ + "node_modules/linq-to-typescript/esm/initializer/bindLinq.js"() { + init_aggregate(); + init_all(); + init_allAsync(); + init_any(); + init_anyAsync(); + init_asAsync(); + init_asParallel(); + init_average(); + init_averageAsync(); + init_chunk(); + init_concatenate(); + init_contains(); + init_containsAsync(); + init_count(); + init_countAsync(); + init_defaultIfEmpty(); + init_distinct(); + init_distinctAsync(); + init_each(); + init_eachAsync(); + init_elementAt(); + init_elementAtOrDefault(); + init_except(); + init_exceptAsync(); + init_first(); + init_firstAsync(); + init_firstOrDefault(); + init_firstOrDefaultAsync(); + init_groupBy(); + init_groupByAsync(); + init_groupByWithSel(); + init_groupJoin(); + init_groupJoinAsync(); + init_intersect(); + init_intersectAsync(); + init_join(); + init_last(); + init_lastAsync(); + init_lastOrDefault(); + init_lastOrDefaultAsync(); + init_max(); + init_maxAsync(); + init_min(); + init_minAsync(); + init_ofType(); + init_orderBy(); + init_orderByAsync(); + init_orderByDescending(); + init_orderByDescendingAsync(); + init_partition(); + init_partitionAsync(); + init_reverse(); + init_select(); + init_selectAsync(); + init_selectMany(); + init_selectManyAsync(); + init_sequenceEquals(); + init_sequenceEqualsAsync(); + init_single(); + init_singleAsync(); + init_singleOrDefault(); + init_singleOrDefaultAsync(); + init_skip(); + init_skipWhile(); + init_skipWhileAsync(); + init_sum(); + init_sumAsync(); + init_take(); + init_takeWhile(); + init_takeWhileAsync(); + init_toArray(); + init_toMap(); + init_toMapAsync(); + init_toObject(); + init_toObjectAsync(); + init_toSet(); + init_union(); + init_unionAsync(); + init_where(); + init_whereAsync(); + init_zip(); + init_zipAsync(); + bindLinq = (object) => { + const prototype = object.prototype; + const bind = (func, key) => { + const wrapped = function(...params) { + return func(this, ...params); + }; + Object.defineProperty(wrapped, "length", { value: func.length - 1 }); + prototype[key] = wrapped; + }; + bind(aggregate, "aggregate"); + bind(all, "all"); + bind(allAsync, "allAsync"); + bind(any, "any"); + bind(anyAsync, "anyAsync"); + bind(asAsync, "asAsync"); + bind(asParallel, "asParallel"); + bind(average, "average"); + bind(averageAsync, "averageAsync"); + bind(chunk, "chunk"); + bind(concatenate, "concatenate"); + bind(contains, "contains"); + bind(containsAsync, "containsAsync"); + bind(count, "count"); + bind(countAsync, "countAsync"); + bind(defaultIfEmpty, "defaultIfEmpty"); + bind(distinct, "distinct"); + bind(distinctAsync, "distinctAsync"); + bind(each, "each"); + bind(eachAsync, "eachAsync"); + bind(elementAt, "elementAt"); + bind(elementAtOrDefault, "elementAtOrDefault"); + bind(except, "except"); + bind(exceptAsync, "exceptAsync"); + bind(first, "first"); + bind(firstAsync, "firstAsync"); + bind(firstOrDefault, "firstOrDefault"); + bind(firstOrDefaultAsync, "firstOrDefaultAsync"); + bind(groupBy, "groupBy"); + bind(groupByAsync, "groupByAsync"); + bind(groupByWithSel, "groupByWithSel"); + bind(groupJoin, "groupJoin"); + bind(groupJoinAsync, "groupJoinAsync"); + bind(intersect, "intersect"); + bind(intersectAsync, "intersectAsync"); + bind(join, "joinByKey"); + bind(last, "last"); + bind(lastAsync, "lastAsync"); + bind(lastOrDefault, "lastOrDefault"); + bind(lastOrDefaultAsync, "lastOrDefaultAsync"); + bind(max, "max"); + bind(maxAsync, "maxAsync"); + bind(min, "min"); + bind(minAsync, "minAsync"); + bind(ofType, "ofType"); + bind(orderBy, "orderBy"); + bind(orderByAsync, "orderByAsync"); + bind(orderByDescending, "orderByDescending"); + bind(orderByDescendingAsync, "orderByDescendingAsync"); + bind(reverse, "reverse"); + bind(select, "select"); + bind(selectAsync, "selectAsync"); + bind(selectMany, "selectMany"); + bind(selectManyAsync, "selectManyAsync"); + bind(sequenceEquals, "sequenceEquals"); + bind(sequenceEqualsAsync, "sequenceEqualsAsync"); + bind(single, "single"); + bind(singleAsync, "singleAsync"); + bind(singleOrDefault, "singleOrDefault"); + bind(singleOrDefaultAsync, "singleOrDefaultAsync"); + bind(skip, "skip"); + bind(skipWhile, "skipWhile"); + bind(skipWhileAsync, "skipWhileAsync"); + bind(sum, "sum"); + bind(sumAsync, "sumAsync"); + bind(take, "take"); + bind(takeWhile, "takeWhile"); + bind(takeWhileAsync, "takeWhileAsync"); + bind(toArray, "toArray"); + bind(toMap, "toMap"); + bind(toMapAsync, "toMapAsync"); + bind(toObject, "toObject"); + bind(toObjectAsync, "toObjectAsync"); + bind(partition, "partition"); + bind(partitionAsync, "partitionAsync"); + bind(toSet, "toSet"); + bind(union, "union"); + bind(unionAsync, "unionAsync"); + bind(where, "where"); + bind(whereAsync, "whereAsync"); + bind(zip, "zip"); + bind(zipAsync, "zipAsync"); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/aggregate.js +var aggregate4, aggregate12, aggregate22, aggregate32; +var init_aggregate2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/aggregate.js"() { + init_shared(); + aggregate4 = (source, seedOrFunc, func, resultSelector) => { + if (resultSelector) { + if (!func) { + throw new ReferenceError("TAccumulate function is undefined"); + } + return aggregate32(source, seedOrFunc, func, resultSelector); + } else if (func) { + return aggregate22(source, seedOrFunc, func); + } else { + return aggregate12(source, seedOrFunc); + } + }; + aggregate12 = async (source, func) => { + let aggregateValue; + for await (const value of source) { + if (aggregateValue) { + aggregateValue = func(aggregateValue, value); + } else { + aggregateValue = value; + } + } + if (aggregateValue === void 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return aggregateValue; + }; + aggregate22 = async (source, seed, func) => { + let aggregateValue = seed; + for await (const value of source) { + aggregateValue = func(aggregateValue, value); + } + return aggregateValue; + }; + aggregate32 = async (source, seed, func, resultSelector) => { + let aggregateValue = seed; + for await (const value of source) { + aggregateValue = func(aggregateValue, value); + } + return resultSelector(aggregateValue); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/all.js +var all2; +var init_all2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/all.js"() { + all2 = async (source, predicate) => { + for await (const item of source) { + if (predicate(item) === false) { + return false; + } + } + return true; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/allAsync.js +var allAsync2; +var init_allAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/allAsync.js"() { + allAsync2 = async (source, predicate) => { + for await (const item of source) { + if (await predicate(item) === false) { + return false; + } + } + return true; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/any.js +var any3, any12, any22; +var init_any2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/any.js"() { + any3 = (source, predicate) => { + if (predicate) { + return any22(source, predicate); + } else { + return any12(source); + } + }; + any12 = async (source) => { + for await (const _ of source) { + return true; + } + return false; + }; + any22 = async (source, predicate) => { + for await (const item of source) { + if (predicate(item) === true) { + return true; + } + } + return false; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/anyAsync.js +var anyAsync2; +var init_anyAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/anyAsync.js"() { + anyAsync2 = async (source, predicate) => { + for await (const item of source) { + if (await predicate(item) === true) { + return true; + } + } + return false; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/asParallel.js +var asParallel2; +var init_asParallel2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/asParallel.js"() { + init_fromParallel(); + asParallel2 = (source) => { + const generator = async () => { + const data = []; + for await (const value of source) { + data.push(value); + } + return data; + }; + return fromParallel(0, generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/average.js +var average2; +var init_average2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/average.js"() { + init_shared(); + average2 = async (source, selector) => { + let value = 0; + let count5 = 0; + if (selector) { + for await (const item of source) { + value = value + selector(item); + count5 = count5 + 1; + } + } else { + for await (const item of source) { + value = value + item; + count5 = count5 + 1; + } + } + if (count5 === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return value / count5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/averageAsync.js +var averageAsync2; +var init_averageAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/averageAsync.js"() { + init_shared(); + averageAsync2 = async (source, selector) => { + let value = 0; + let count5 = 0; + for await (const item of source) { + value = value + await selector(item); + count5 = count5 + 1; + } + if (count5 === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return value / count5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/chunk.js +var chunk2; +var init_chunk2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/chunk.js"() { + init_BasicAsyncEnumerable(); + init_shared(); + chunk2 = (source, size) => { + if (size < 1) { + throw new ArgumentOutOfRangeException("index"); + } + async function* iterator() { + let yieldChunk = []; + for await (const value of source) { + yieldChunk.push(value); + if (yieldChunk.length === size) { + yield yieldChunk; + yieldChunk = []; + } + } + if (yieldChunk.length) { + yield yieldChunk; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/concatenate.js +var concatenate2; +var init_concatenate2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/concatenate.js"() { + init_BasicAsyncEnumerable(); + concatenate2 = (first5, second) => { + async function* iterator() { + yield* first5; + yield* second; + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/contains.js +var contains2; +var init_contains2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/contains.js"() { + init_shared(); + contains2 = async (source, value, comparer = StrictEqualityComparer) => { + for await (const item of source) { + if (comparer(value, item)) { + return true; + } + } + return false; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/containsAsync.js +var containsAsync2; +var init_containsAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/containsAsync.js"() { + containsAsync2 = async (source, value, comparer) => { + for await (const item of source) { + if (await comparer(value, item)) { + return true; + } + } + return false; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/count.js +var count3, count12, count22; +var init_count2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/count.js"() { + count3 = (source, predicate) => { + if (predicate) { + return count22(source, predicate); + } else { + return count12(source); + } + }; + count12 = async (source) => { + let total = 0; + for await (const _ of source) { + total++; + } + return total; + }; + count22 = async (source, predicate) => { + let total = 0; + for await (const value of source) { + if (predicate(value) === true) { + total++; + } + } + return total; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/countAsync.js +var countAsync2; +var init_countAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/countAsync.js"() { + countAsync2 = async (source, predicate) => { + let count5 = 0; + for await (const value of source) { + if (await predicate(value) === true) { + count5++; + } + } + return count5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/defaultIfEmpty.js +var defaultIfEmpty2; +var init_defaultIfEmpty2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/defaultIfEmpty.js"() { + init_BasicAsyncEnumerable(); + defaultIfEmpty2 = (source, defaultValue) => { + async function* generator() { + let found = false; + for await (const value of source) { + found = true; + yield value; + } + if (!found) { + yield defaultValue; + } + } + return new BasicAsyncEnumerable(generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/distinct.js +var distinct2; +var init_distinct2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/distinct.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + distinct2 = (source, comparer = StrictEqualityComparer) => { + async function* iterator() { + const distinctElements = []; + for await (const item of source) { + const foundItem = distinctElements.find((x) => comparer(x, item)); + if (!foundItem) { + distinctElements.push(item); + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/distinctAsync.js +var distinctAsync2; +var init_distinctAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/distinctAsync.js"() { + init_BasicAsyncEnumerable(); + distinctAsync2 = (source, comparer) => { + async function* iterator() { + const distinctElements = []; + outerLoop: + for await (const item of source) { + for (const distinctElement of distinctElements) { + const found = await comparer(distinctElement, item); + if (found) { + continue outerLoop; + } + } + distinctElements.push(item); + yield item; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/each.js +var each2; +var init_each2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/each.js"() { + init_BasicAsyncEnumerable(); + each2 = (source, action) => { + async function* iterator() { + for await (const value of source) { + action(value); + yield value; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/eachAsync.js +var eachAsync2; +var init_eachAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/eachAsync.js"() { + init_BasicAsyncEnumerable(); + eachAsync2 = (source, action) => { + async function* iterator() { + for await (const value of source) { + await action(value); + yield value; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/elementAt.js +var elementAt2; +var init_elementAt2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/elementAt.js"() { + init_shared(); + elementAt2 = async (source, index) => { + if (index < 0) { + throw new ArgumentOutOfRangeException("index"); + } + let i = 0; + for await (const item of source) { + if (index === i++) { + return item; + } + } + throw new ArgumentOutOfRangeException("index"); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/elementAtOrDefault.js +var elementAtOrDefault2; +var init_elementAtOrDefault2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/elementAtOrDefault.js"() { + elementAtOrDefault2 = async (source, index) => { + let i = 0; + for await (const item of source) { + if (index === i++) { + return item; + } + } + return null; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/except.js +var except2; +var init_except2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/except.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + except2 = (first5, second, comparer = StrictEqualityComparer) => { + async function* iterator() { + const secondArray = []; + for await (const x of second) { + secondArray.push(x); + } + for await (const firstItem of first5) { + let exists = false; + for (let j = 0; j < secondArray.length; j++) { + const secondItem = secondArray[j]; + if (comparer(firstItem, secondItem) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield firstItem; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/exceptAsync.js +var exceptAsync2; +var init_exceptAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/exceptAsync.js"() { + init_BasicAsyncEnumerable(); + exceptAsync2 = (first5, second, comparer) => { + async function* iterator() { + const secondArray = []; + for await (const x of second) { + secondArray.push(x); + } + for await (const firstItem of first5) { + let exists = false; + for (let j = 0; j < secondArray.length; j++) { + const secondItem = secondArray[j]; + if (await comparer(firstItem, secondItem) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield firstItem; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/first.js +var first3, first12, first22; +var init_first2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/first.js"() { + init_shared(); + first3 = (source, predicate) => { + if (predicate) { + return first22(source, predicate); + } else { + return first12(source); + } + }; + first12 = async (source) => { + const firstElement = await source[Symbol.asyncIterator]().next(); + if (firstElement.done === true) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return firstElement.value; + }; + first22 = async (source, predicate) => { + for await (const value of source) { + if (predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/firstAsync.js +var firstAsync2; +var init_firstAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/firstAsync.js"() { + init_shared(); + firstAsync2 = async (source, predicate) => { + for await (const value of source) { + if (await predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/firstOrDefault.js +var firstOrDefault3, firstOrDefault12, firstOrDefault22; +var init_firstOrDefault2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/firstOrDefault.js"() { + firstOrDefault3 = (source, predicate) => { + if (predicate) { + return firstOrDefault22(source, predicate); + } else { + return firstOrDefault12(source); + } + }; + firstOrDefault12 = async (source) => { + const first5 = await source[Symbol.asyncIterator]().next(); + return first5.value || null; + }; + firstOrDefault22 = async (source, predicate) => { + for await (const value of source) { + if (predicate(value) === true) { + return value; + } + } + return null; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/firstOrDefaultAsync.js +var firstOrDefaultAsync2; +var init_firstOrDefaultAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/firstOrDefaultAsync.js"() { + firstOrDefaultAsync2 = async (source, predicate) => { + for await (const value of source) { + if (await predicate(value) === true) { + return value; + } + } + return null; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/groupBy.js +var groupBy2, groupBy_02, groupBy_0_Simple2; +var init_groupBy2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/groupBy.js"() { + init_Grouping(); + init_BasicAsyncEnumerable(); + groupBy2 = (source, keySelector, comparer) => { + if (comparer) { + return groupBy_02(source, keySelector, comparer); + } else { + return groupBy_0_Simple2(source, keySelector); + } + }; + groupBy_02 = (source, keySelector, comparer) => { + async function* generate() { + const keyMap = new Array(); + for await (const value of source) { + const key = keySelector(value); + let found = false; + for (let i = 0; i < keyMap.length; i++) { + const group = keyMap[i]; + if (comparer(group.key, key)) { + group.push(value); + found = true; + break; + } + } + if (found === false) { + keyMap.push(new Grouping(key, value)); + } + } + for (const g of keyMap) { + yield g; + } + } + return new BasicAsyncEnumerable(generate); + }; + groupBy_0_Simple2 = (source, keySelector) => { + async function* iterator() { + const keyMap = {}; + for await (const value of source) { + const key = keySelector(value); + const grouping = keyMap[key]; + if (grouping) { + grouping.push(value); + } else { + keyMap[key] = new Grouping(key, value); + } + } + for (const value in keyMap) { + yield keyMap[value]; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/groupByAsync.js +var groupByAsync2, groupByAsync_0_Simple2, groupByAsync_02; +var init_groupByAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/groupByAsync.js"() { + init_Grouping(); + init_BasicAsyncEnumerable(); + groupByAsync2 = (source, keySelector, comparer) => { + if (comparer) { + return groupByAsync_02(source, keySelector, comparer); + } else { + return groupByAsync_0_Simple2(source, keySelector); + } + }; + groupByAsync_0_Simple2 = (source, keySelector) => { + async function* iterator() { + const keyMap = {}; + for await (const value of source) { + const key = await keySelector(value); + const grouping = keyMap[key]; + if (grouping) { + grouping.push(value); + } else { + keyMap[key] = new Grouping(key, value); + } + } + for (const value in keyMap) { + yield keyMap[value]; + } + } + return new BasicAsyncEnumerable(iterator); + }; + groupByAsync_02 = (source, keySelector, comparer) => { + async function* generate() { + const keyMap = new Array(); + for await (const value of source) { + const key = await keySelector(value); + let found = false; + for (let i = 0; i < keyMap.length; i++) { + const group = keyMap[i]; + if (await comparer(group.key, key) === true) { + group.push(value); + found = true; + break; + } + } + if (found === false) { + keyMap.push(new Grouping(key, value)); + } + } + for (const keyValue of keyMap) { + yield keyValue; + } + } + return new BasicAsyncEnumerable(generate); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/groupByWithSel.js +var groupByWithSel2, groupBy1Simple, groupBy1; +var init_groupByWithSel2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/groupByWithSel.js"() { + init_Grouping(); + init_BasicAsyncEnumerable(); + groupByWithSel2 = (source, keySelector, elementSelector, comparer) => { + if (comparer) { + return groupBy1(source, keySelector, elementSelector, comparer); + } else { + return groupBy1Simple(source, keySelector, elementSelector); + } + }; + groupBy1Simple = (source, keySelector, elementSelector) => { + async function* generate() { + const keyMap = {}; + for await (const value of source) { + const key = keySelector(value); + const grouping = keyMap[key]; + const element = elementSelector(value); + if (grouping) { + grouping.push(element); + } else { + keyMap[key] = new Grouping(key, element); + } + } + for (const value in keyMap) { + yield keyMap[value]; + } + } + return new BasicAsyncEnumerable(generate); + }; + groupBy1 = (source, keySelector, elementSelector, comparer) => { + async function* generate() { + const keyMap = new Array(); + for await (const value of source) { + const key = keySelector(value); + let found = false; + for (let i = 0; i < keyMap.length; i++) { + const group = keyMap[i]; + if (comparer(group.key, key)) { + group.push(elementSelector(value)); + found = true; + break; + } + } + if (found === false) { + const element = elementSelector(value); + keyMap.push(new Grouping(key, element)); + } + } + for (const value of keyMap) { + yield value; + } + } + return new BasicAsyncEnumerable(generate); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/groupJoin.js +var groupJoin2, groupJoinWithComparer3, groupJoinSimple3; +var init_groupJoin2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/groupJoin.js"() { + init_BasicAsyncEnumerable(); + groupJoin2 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + const generator = comparer ? groupJoinWithComparer3(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) : groupJoinSimple3(outer, inner, outerKeySelector, innerKeySelector, resultSelector); + return new BasicAsyncEnumerable(generator); + }; + groupJoinWithComparer3 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + return async function* () { + var _a; + const innerKeyMap = []; + for await (const innerValue of inner) { + const key = innerKeySelector(innerValue); + const record = innerKeyMap.find((x) => comparer(x.key, key)); + if (record) { + record.values.push(innerValue); + } else { + innerKeyMap.push({ key, values: [innerValue] }); + } + } + for await (const outerValue of outer) { + const key = outerKeySelector(outerValue); + const innerRecord = (_a = innerKeyMap.find((x) => comparer(x.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] }; + yield resultSelector(outerValue, innerRecord.values); + } + }; + }; + groupJoinSimple3 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => { + return async function* () { + var _a; + const innerKeyMap = /* @__PURE__ */ new Map(); + for await (const innerValue of inner) { + const key = innerKeySelector(innerValue); + const values = innerKeyMap.get(key); + if (values) { + values.push(innerValue); + } else { + innerKeyMap.set(key, [innerValue]); + } + } + for await (const outerValue of outer) { + const key = outerKeySelector(outerValue); + const values = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : []; + yield resultSelector(outerValue, values); + } + }; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/groupJoinAsync.js +var groupJoinAsync2, groupJoinWithComparer4, groupJoinSimple4; +var init_groupJoinAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/groupJoinAsync.js"() { + init_BasicAsyncEnumerable(); + groupJoinAsync2 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + const generator = comparer ? groupJoinWithComparer4(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) : groupJoinSimple4(outer, inner, outerKeySelector, innerKeySelector, resultSelector); + return new BasicAsyncEnumerable(generator); + }; + groupJoinWithComparer4 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + return async function* () { + var _a; + const innerKeyMap = []; + for await (const innerValue of inner) { + const key = await innerKeySelector(innerValue); + const record = innerKeyMap.find((x) => comparer(x.key, key)); + if (record) { + record.values.push(innerValue); + } else { + innerKeyMap.push({ key, values: [innerValue] }); + } + } + for await (const outerValue of outer) { + const key = await outerKeySelector(outerValue); + const innerRecord = (_a = innerKeyMap.find((x) => comparer(x.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] }; + yield resultSelector(outerValue, innerRecord.values); + } + }; + }; + groupJoinSimple4 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => { + return async function* () { + var _a; + const innerKeyMap = /* @__PURE__ */ new Map(); + for await (const innerValue of inner) { + const key = await innerKeySelector(innerValue); + const values = innerKeyMap.get(key); + if (values) { + values.push(innerValue); + } else { + innerKeyMap.set(key, [innerValue]); + } + } + for await (const outerValue of outer) { + const key = await outerKeySelector(outerValue); + const values = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : []; + yield resultSelector(outerValue, values); + } + }; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/intersect.js +var intersect2; +var init_intersect2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/intersect.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + intersect2 = (first5, second, comparer = StrictEqualityComparer) => { + async function* iterator() { + const firstResults = await first5.distinct(comparer).toArray(); + if (firstResults.length === 0) { + return; + } + const secondResults = await second.toArray(); + for (let i = 0; i < firstResults.length; i++) { + const firstValue = firstResults[i]; + for (let j = 0; j < secondResults.length; j++) { + const secondValue = secondResults[j]; + if (comparer(firstValue, secondValue) === true) { + yield firstValue; + break; + } + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/intersectAsync.js +var intersectAsync2; +var init_intersectAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/intersectAsync.js"() { + init_BasicAsyncEnumerable(); + intersectAsync2 = (first5, second, comparer) => { + async function* iterator() { + const firstResults = await first5.distinctAsync(comparer).toArray(); + if (firstResults.length === 0) { + return; + } + const secondResults = await second.toArray(); + for (let i = 0; i < firstResults.length; i++) { + const firstValue = firstResults[i]; + for (let j = 0; j < secondResults.length; j++) { + const secondValue = secondResults[j]; + if (await comparer(firstValue, secondValue) === true) { + yield firstValue; + break; + } + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/join.js +var join2; +var init_join2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/join.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + join2 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer = StrictEqualityComparer) => { + async function* iterator() { + const innerArray = []; + for await (const i of inner) { + innerArray.push(i); + } + for await (const o of outer) { + const outerKey = outerKeySelector(o); + for (const i of innerArray) { + const innerKey = innerKeySelector(i); + if (comparer(outerKey, innerKey) === true) { + yield resultSelector(o, i); + } + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/last.js +var last3, last12, last22; +var init_last2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/last.js"() { + init_shared(); + last3 = (source, predicate) => { + if (predicate) { + return last22(source, predicate); + } else { + return last12(source); + } + }; + last12 = async (source) => { + let lastItem = null; + for await (const value of source) { + lastItem = value; + } + if (!lastItem) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return lastItem; + }; + last22 = async (source, predicate) => { + let lastItem = null; + for await (const value of source) { + if (predicate(value) === true) { + lastItem = value; + } + } + if (!lastItem) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return lastItem; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/lastAsync.js +var lastAsync2; +var init_lastAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/lastAsync.js"() { + init_shared(); + lastAsync2 = async (source, predicate) => { + let last5 = null; + for await (const value of source) { + if (await predicate(value) === true) { + last5 = value; + } + } + if (!last5) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return last5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/lastOrDefault.js +var lastOrDefault3, lastOrDefault12, lastOrDefault22; +var init_lastOrDefault2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/lastOrDefault.js"() { + lastOrDefault3 = (source, predicate) => { + if (predicate) { + return lastOrDefault22(source, predicate); + } else { + return lastOrDefault12(source); + } + }; + lastOrDefault12 = async (source) => { + let last5 = null; + for await (const value of source) { + last5 = value; + } + return last5; + }; + lastOrDefault22 = async (source, predicate) => { + let last5 = null; + for await (const value of source) { + if (predicate(value) === true) { + last5 = value; + } + } + return last5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/lastOrDefaultAsync.js +var lastOrDefaultAsync2; +var init_lastOrDefaultAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/lastOrDefaultAsync.js"() { + lastOrDefaultAsync2 = async (source, predicate) => { + let last5 = null; + for await (const value of source) { + if (await predicate(value) === true) { + last5 = value; + } + } + return last5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/max.js +var max3, max12, max22; +var init_max2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/max.js"() { + init_shared(); + max3 = (source, selector) => { + if (selector) { + return max22(source, selector); + } else { + return max12(source); + } + }; + max12 = async (source) => { + let maxItem = null; + for await (const item of source) { + maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, item); + } + if (maxItem === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return maxItem; + } + }; + max22 = async (source, selector) => { + let maxItem = null; + for await (const item of source) { + maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, selector(item)); + } + if (maxItem === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return maxItem; + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/maxAsync.js +var maxAsync2; +var init_maxAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/maxAsync.js"() { + init_shared(); + maxAsync2 = async (source, selector) => { + let max5 = null; + for await (const item of source) { + max5 = Math.max(max5 || Number.NEGATIVE_INFINITY, await selector(item)); + } + if (max5 === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return max5; + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/min.js +var min3, min12, min22; +var init_min2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/min.js"() { + init_shared(); + min3 = (source, selector) => { + if (selector) { + return min22(source, selector); + } else { + return min12(source); + } + }; + min12 = async (source) => { + let minValue = null; + for await (const item of source) { + minValue = Math.min(minValue || Number.POSITIVE_INFINITY, item); + } + if (minValue === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return minValue; + } + }; + min22 = async (source, selector) => { + let minValue = null; + for await (const item of source) { + minValue = Math.min(minValue || Number.POSITIVE_INFINITY, selector(item)); + } + if (minValue === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return minValue; + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/minAsync.js +var minAsync2; +var init_minAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/minAsync.js"() { + init_shared(); + minAsync2 = async (source, selector) => { + let min5 = null; + for await (const item of source) { + min5 = Math.min(min5 || Number.POSITIVE_INFINITY, await selector(item)); + } + if (min5 === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return min5; + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/ofType.js +var ofType2; +var init_ofType2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/ofType.js"() { + init_BasicAsyncEnumerable(); + ofType2 = (source, type) => { + const typeCheck = typeof type === "string" ? (x) => typeof x === type : (x) => x instanceof type; + async function* iterator() { + for await (const item of source) { + if (typeCheck(item)) { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/orderBy.js +var orderBy2; +var init_orderBy2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/orderBy.js"() { + init_OrderedAsyncEnumerable(); + orderBy2 = (source, keySelector, comparer) => { + return OrderedAsyncEnumerable.generate(source, keySelector, true, comparer); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/orderByAsync.js +var orderByAsync2; +var init_orderByAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/orderByAsync.js"() { + init_OrderedAsyncEnumerable(); + orderByAsync2 = (source, keySelector, comparer) => { + return OrderedAsyncEnumerable.generateAsync(source, keySelector, true, comparer); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/orderByDescending.js +var orderByDescending2; +var init_orderByDescending2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/orderByDescending.js"() { + init_OrderedAsyncEnumerable(); + orderByDescending2 = (source, keySelector, comparer) => { + return OrderedAsyncEnumerable.generate(source, keySelector, false, comparer); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/orderByDescendingAsync.js +var orderByDescendingAsync2; +var init_orderByDescendingAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/orderByDescendingAsync.js"() { + init_OrderedAsyncEnumerable(); + orderByDescendingAsync2 = (source, keySelector, comparer) => { + return OrderedAsyncEnumerable.generateAsync(source, keySelector, false, comparer); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/partition.js +var partition2; +var init_partition2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/partition.js"() { + partition2 = async (source, predicate) => { + const fail = []; + const pass = []; + for await (const value of source) { + if (predicate(value) === true) { + pass.push(value); + } else { + fail.push(value); + } + } + return [pass, fail]; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/partitionAsync.js +var partitionAsync2; +var init_partitionAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/partitionAsync.js"() { + partitionAsync2 = async (source, predicate) => { + const fail = []; + const pass = []; + for await (const value of source) { + if (await predicate(value) === true) { + pass.push(value); + } else { + fail.push(value); + } + } + return [pass, fail]; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/reverse.js +var reverse2; +var init_reverse2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/reverse.js"() { + init_BasicAsyncEnumerable(); + reverse2 = (source) => { + async function* iterator() { + const values = []; + for await (const value of source) { + values.push(value); + } + for (let i = values.length - 1; i >= 0; i--) { + yield values[i]; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/select.js +var select4, select12, select22, select32; +var init_select2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/select.js"() { + init_BasicAsyncEnumerable(); + select4 = (source, selector) => { + if (typeof selector === "function") { + if (selector.length === 1) { + return select12(source, selector); + } else { + return select22(source, selector); + } + } else { + return select32(source, selector); + } + }; + select12 = (source, selector) => { + async function* iterator() { + for await (const value of source) { + yield selector(value); + } + } + return new BasicAsyncEnumerable(iterator); + }; + select22 = (source, selector) => { + async function* iterator() { + let index = 0; + for await (const value of source) { + yield selector(value, index); + index++; + } + } + return new BasicAsyncEnumerable(iterator); + }; + select32 = (source, key) => { + async function* iterator() { + for await (const value of source) { + yield value[key]; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/selectAsync.js +var selectAsync4, selectAsync12, selectAsync22; +var init_selectAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/selectAsync.js"() { + init_BasicAsyncEnumerable(); + selectAsync4 = (source, selector) => { + if (typeof selector === "string") { + return selectAsync22(source, selector); + } else { + return selectAsync12(source, selector); + } + }; + selectAsync12 = (source, selector) => { + async function* iterator() { + for await (const value of source) { + yield selector(value); + } + } + return new BasicAsyncEnumerable(iterator); + }; + selectAsync22 = (source, key) => { + async function* iterator() { + for await (const value of source) { + yield value[key]; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/selectMany.js +var selectMany4, selectMany12, selectMany22, selectMany32; +var init_selectMany2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/selectMany.js"() { + init_BasicAsyncEnumerable(); + selectMany4 = (source, selector) => { + if (typeof selector === "function") { + if (selector.length === 1) { + return selectMany12(source, selector); + } else { + return selectMany22(source, selector); + } + } else { + return selectMany32(source, selector); + } + }; + selectMany12 = (source, selector) => { + async function* iterator() { + for await (const value of source) { + for (const selectorValue of selector(value)) { + yield selectorValue; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + selectMany22 = (source, selector) => { + async function* iterator() { + let index = 0; + for await (const value of source) { + for (const selectorValue of selector(value, index)) { + yield selectorValue; + } + index++; + } + } + return new BasicAsyncEnumerable(iterator); + }; + selectMany32 = (source, selector) => { + async function* iterator() { + for await (const value of source) { + for (const selectorValue of value[selector]) { + yield selectorValue; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/selectManyAsync.js +var selectManyAsync3; +var init_selectManyAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/selectManyAsync.js"() { + init_BasicAsyncEnumerable(); + selectManyAsync3 = (source, selector) => { + if (selector.length === 1) { + const iterator = async function* () { + for await (const value of source) { + const many = await selector(value); + for (const innerValue of many) { + yield innerValue; + } + } + }; + return new BasicAsyncEnumerable(iterator); + } else { + const iterator = async function* () { + let index = 0; + for await (const value of source) { + const many = await selector(value, index); + for (const innerValue of many) { + yield innerValue; + } + index++; + } + }; + return new BasicAsyncEnumerable(iterator); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/sequenceEquals.js +var sequenceEquals2; +var init_sequenceEquals2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/sequenceEquals.js"() { + init_shared(); + sequenceEquals2 = async (first5, second, comparer = StrictEqualityComparer) => { + const firstIterator = first5[Symbol.asyncIterator](); + const secondIterator = second[Symbol.asyncIterator](); + let results = await Promise.all([firstIterator.next(), secondIterator.next()]); + let firstResult = results[0]; + let secondResult = results[1]; + while (!firstResult.done && !secondResult.done) { + if (!comparer(firstResult.value, secondResult.value)) { + return false; + } + results = await Promise.all([firstIterator.next(), secondIterator.next()]); + firstResult = results[0]; + secondResult = results[1]; + } + return firstResult.done === true && secondResult.done === true; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/sequenceEqualsAsync.js +var sequenceEqualsAsync2; +var init_sequenceEqualsAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/sequenceEqualsAsync.js"() { + sequenceEqualsAsync2 = async (first5, second, comparer) => { + const firstIterator = first5[Symbol.asyncIterator](); + const secondIterator = second[Symbol.asyncIterator](); + let results = await Promise.all([firstIterator.next(), secondIterator.next()]); + let firstResult = results[0]; + let secondResult = results[1]; + while (!firstResult.done && !secondResult.done) { + if (await comparer(firstResult.value, secondResult.value) === false) { + return false; + } + results = await Promise.all([firstIterator.next(), secondIterator.next()]); + firstResult = results[0]; + secondResult = results[1]; + } + return firstResult.done === true && secondResult.done === true; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/single.js +var single3, single12, single22; +var init_single2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/single.js"() { + init_shared(); + single3 = (source, predicate) => { + if (predicate) { + return single22(source, predicate); + } else { + return single12(source); + } + }; + single12 = async (source) => { + let hasValue = false; + let singleValue = null; + for await (const value of source) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return singleValue; + }; + single22 = async (source, predicate) => { + let hasValue = false; + let singleValue = null; + for await (const value of source) { + if (predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return singleValue; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/singleAsync.js +var singleAsync2; +var init_singleAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/singleAsync.js"() { + init_shared(); + singleAsync2 = async (source, predicate) => { + let hasValue = false; + let singleValue = null; + for await (const value of source) { + if (await predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return singleValue; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/singleOrDefault.js +var singleOrDefault3, singleOrDefault12, singleOrDefault22; +var init_singleOrDefault2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/singleOrDefault.js"() { + init_shared(); + singleOrDefault3 = (source, predicate) => { + if (predicate) { + return singleOrDefault22(source, predicate); + } else { + return singleOrDefault12(source); + } + }; + singleOrDefault12 = async (source) => { + let hasValue = false; + let singleValue = null; + for await (const value of source) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + return singleValue; + }; + singleOrDefault22 = async (source, predicate) => { + let hasValue = false; + let singleValue = null; + for await (const value of source) { + if (predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + return singleValue; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/singleOrDefaultAsync.js +var singleOrDefaultAsync2; +var init_singleOrDefaultAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/singleOrDefaultAsync.js"() { + init_shared(); + singleOrDefaultAsync2 = async (source, predicate) => { + let hasValue = false; + let singleValue = null; + for await (const value of source) { + if (await predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + return singleValue; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/skip.js +var skip2; +var init_skip2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/skip.js"() { + init_BasicAsyncEnumerable(); + skip2 = (source, count5) => { + async function* iterator() { + let i = 0; + for await (const item of source) { + if (i++ >= count5) { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/skipWhile.js +var skipWhile3, skipWhile12, skipWhile22; +var init_skipWhile2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/skipWhile.js"() { + init_BasicAsyncEnumerable(); + skipWhile3 = (source, predicate) => { + if (predicate.length === 1) { + return skipWhile12(source, predicate); + } else { + return skipWhile22(source, predicate); + } + }; + skipWhile12 = (source, predicate) => { + async function* iterator() { + let skip4 = true; + for await (const item of source) { + if (skip4 === false) { + yield item; + } else if (predicate(item) === false) { + skip4 = false; + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + skipWhile22 = (source, predicate) => { + async function* iterator() { + let index = 0; + let skip4 = true; + for await (const item of source) { + if (skip4 === false) { + yield item; + } else if (predicate(item, index) === false) { + skip4 = false; + yield item; + } + index++; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/skipWhileAsync.js +var skipWhileAsync3, skipWhileAsync12, skipWhileAsync22; +var init_skipWhileAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/skipWhileAsync.js"() { + init_BasicAsyncEnumerable(); + skipWhileAsync3 = (source, predicate) => { + if (predicate.length === 1) { + return skipWhileAsync12(source, predicate); + } else { + return skipWhileAsync22(source, predicate); + } + }; + skipWhileAsync12 = (source, predicate) => { + async function* iterator() { + let skip4 = true; + for await (const item of source) { + if (skip4 === false) { + yield item; + } else if (await predicate(item) === false) { + skip4 = false; + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + skipWhileAsync22 = (source, predicate) => { + async function* iterator() { + let index = 0; + let skip4 = true; + for await (const item of source) { + if (skip4 === false) { + yield item; + } else if (await predicate(item, index) === false) { + skip4 = false; + yield item; + } + index++; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/sum.js +var sum3, sum12, sum22; +var init_sum2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/sum.js"() { + sum3 = (source, selector) => { + if (selector) { + return sum22(source, selector); + } else { + return sum12(source); + } + }; + sum12 = async (source) => { + let total = 0; + for await (const value of source) { + total += value; + } + return total; + }; + sum22 = async (source, selector) => { + let total = 0; + for await (const value of source) { + total += selector(value); + } + return total; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/sumAsync.js +var sumAsync2; +var init_sumAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/sumAsync.js"() { + sumAsync2 = async (source, selector) => { + let sum5 = 0; + for await (const value of source) { + sum5 += await selector(value); + } + return sum5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/take.js +var take2; +var init_take2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/take.js"() { + init_BasicAsyncEnumerable(); + take2 = (source, amount) => { + async function* iterator() { + let amountLeft = amount > 0 ? amount : 0; + for await (const item of source) { + if (amountLeft-- === 0) { + break; + } else { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/takeWhile.js +var takeWhile3, takeWhile12, takeWhile22; +var init_takeWhile2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/takeWhile.js"() { + init_BasicAsyncEnumerable(); + takeWhile3 = (source, predicate) => { + if (predicate.length === 1) { + return takeWhile12(source, predicate); + } else { + return takeWhile22(source, predicate); + } + }; + takeWhile12 = (source, predicate) => { + async function* iterator() { + for await (const item of source) { + if (predicate(item)) { + yield item; + } else { + break; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + takeWhile22 = (source, predicate) => { + async function* iterator() { + let index = 0; + for await (const item of source) { + if (predicate(item, index++)) { + yield item; + } else { + break; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/takeWhileAsync.js +var takeWhileAsync3, takeWhileAsync12, takeWhileAsync22; +var init_takeWhileAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/takeWhileAsync.js"() { + init_BasicAsyncEnumerable(); + takeWhileAsync3 = (source, predicate) => { + if (predicate.length === 1) { + return takeWhileAsync12(source, predicate); + } else { + return takeWhileAsync22(source, predicate); + } + }; + takeWhileAsync12 = (source, predicate) => { + async function* iterator() { + for await (const item of source) { + if (await predicate(item)) { + yield item; + } else { + break; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + takeWhileAsync22 = (source, predicate) => { + async function* iterator() { + let index = 0; + for await (const item of source) { + if (await predicate(item, index++)) { + yield item; + } else { + break; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/toArray.js +var toArray2; +var init_toArray2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/toArray.js"() { + toArray2 = async (source) => { + const array = []; + for await (const item of source) { + array.push(item); + } + return array; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/toMap.js +var toMap2; +var init_toMap2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/toMap.js"() { + toMap2 = async (source, selector) => { + const map = /* @__PURE__ */ new Map(); + for await (const value of source) { + const key = selector(value); + const array = map.get(key); + if (array === void 0) { + map.set(key, [value]); + } else { + array.push(value); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/toMapAsync.js +var toMapAsync2; +var init_toMapAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/toMapAsync.js"() { + toMapAsync2 = async (source, selector) => { + const map = /* @__PURE__ */ new Map(); + for await (const value of source) { + const key = await selector(value); + const array = map.get(key); + if (array === void 0) { + map.set(key, [value]); + } else { + array.push(value); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/toObject.js +var toObject2; +var init_toObject2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/toObject.js"() { + toObject2 = async (source, selector) => { + const map = {}; + for await (const value of source) { + map[selector(value)] = value; + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/toObjectAsync.js +var toObjectAsync2; +var init_toObjectAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/toObjectAsync.js"() { + toObjectAsync2 = async (source, selector) => { + const map = {}; + for await (const value of source) { + map[await selector(value)] = value; + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/toSet.js +var toSet2; +var init_toSet2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/toSet.js"() { + toSet2 = async (source) => { + const set = /* @__PURE__ */ new Set(); + for await (const item of source) { + set.add(item); + } + return set; + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/union.js +var union3, union12, union22; +var init_union2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/union.js"() { + init_BasicAsyncEnumerable(); + union3 = (first5, second, comparer) => { + if (comparer) { + return union22(first5, second, comparer); + } else { + return union12(first5, second); + } + }; + union12 = (first5, second) => { + async function* iterator() { + const set = /* @__PURE__ */ new Set(); + for await (const item of first5) { + if (set.has(item) === false) { + yield item; + set.add(item); + } + } + for await (const item of second) { + if (set.has(item) === false) { + yield item; + set.add(item); + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + union22 = (first5, second, comparer) => { + async function* iterator() { + const result = []; + for (const source of [first5, second]) { + for await (const value of source) { + let exists = false; + for (const resultValue of result) { + if (comparer(value, resultValue) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield value; + result.push(value); + } + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/unionAsync.js +var unionAsync2; +var init_unionAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/unionAsync.js"() { + init_BasicAsyncEnumerable(); + unionAsync2 = (first5, second, comparer) => { + async function* iterator() { + const result = []; + for (const source of [first5, second]) { + for await (const value of source) { + let exists = false; + for (const resultValue of result) { + if (await comparer(value, resultValue) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield value; + result.push(value); + } + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/where.js +var where3, where12, where22; +var init_where2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/where.js"() { + init_BasicAsyncEnumerable(); + where3 = (source, predicate) => { + if (predicate.length === 1) { + return where12(source, predicate); + } else { + return where22(source, predicate); + } + }; + where12 = (source, predicate) => { + async function* iterator() { + for await (const item of source) { + if (predicate(item) === true) { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + where22 = (source, predicate) => { + async function* iterator() { + let i = 0; + for await (const item of source) { + if (predicate(item, i++) === true) { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/whereAsync.js +var whereAsync3, whereAsync12, whereAsync22; +var init_whereAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/whereAsync.js"() { + init_BasicAsyncEnumerable(); + whereAsync3 = (source, predicate) => { + if (predicate.length === 1) { + return whereAsync12(source, predicate); + } else { + return whereAsync22(source, predicate); + } + }; + whereAsync12 = (source, predicate) => { + async function* iterator() { + for await (const item of source) { + if (await predicate(item) === true) { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + whereAsync22 = (source, predicate) => { + async function* iterator() { + let i = 0; + for await (const item of source) { + if (await predicate(item, i++) === true) { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/zip.js +var zip3, zip12, zip22; +var init_zip2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/zip.js"() { + init_BasicAsyncEnumerable(); + zip3 = (first5, second, resultSelector) => { + if (resultSelector) { + return zip22(first5, second, resultSelector); + } else { + return zip12(first5, second); + } + }; + zip12 = (source, second) => { + async function* iterator() { + const firstIterator = source[Symbol.asyncIterator](); + const secondIterator = second[Symbol.asyncIterator](); + while (true) { + const [a, b] = await Promise.all([firstIterator.next(), secondIterator.next()]); + if (a.done || b.done) { + break; + } else { + yield [a.value, b.value]; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + zip22 = (source, second, resultSelector) => { + async function* iterator() { + const firstIterator = source[Symbol.asyncIterator](); + const secondIterator = second[Symbol.asyncIterator](); + while (true) { + const [a, b] = await Promise.all([firstIterator.next(), secondIterator.next()]); + if (a.done || b.done) { + break; + } else { + yield resultSelector(a.value, b.value); + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/async/_private/zipAsync.js +var zipAsync2; +var init_zipAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/zipAsync.js"() { + init_BasicAsyncEnumerable(); + zipAsync2 = (first5, second, resultSelector) => { + async function* generator() { + const firstIterator = first5[Symbol.asyncIterator](); + const secondIterator = second[Symbol.asyncIterator](); + while (true) { + const results = await Promise.all([firstIterator.next(), secondIterator.next()]); + const firstNext = results[0]; + const secondNext = results[1]; + if (firstNext.done || secondNext.done) { + break; + } else { + yield resultSelector(firstNext.value, secondNext.value); + } + } + } + return new BasicAsyncEnumerable(generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/initializer/bindLinqAsync.js +var bindLinqAsync; +var init_bindLinqAsync = __esm({ + "node_modules/linq-to-typescript/esm/initializer/bindLinqAsync.js"() { + init_aggregate2(); + init_all2(); + init_allAsync2(); + init_any2(); + init_anyAsync2(); + init_asParallel2(); + init_average2(); + init_averageAsync2(); + init_chunk2(); + init_concatenate2(); + init_contains2(); + init_containsAsync2(); + init_count2(); + init_countAsync2(); + init_defaultIfEmpty2(); + init_distinct2(); + init_distinctAsync2(); + init_each2(); + init_eachAsync2(); + init_elementAt2(); + init_elementAtOrDefault2(); + init_except2(); + init_exceptAsync2(); + init_first2(); + init_firstAsync2(); + init_firstOrDefault2(); + init_firstOrDefaultAsync2(); + init_groupBy2(); + init_groupByAsync2(); + init_groupByWithSel2(); + init_groupJoin2(); + init_groupJoinAsync2(); + init_intersect2(); + init_intersectAsync2(); + init_join2(); + init_last2(); + init_lastAsync2(); + init_lastOrDefault2(); + init_lastOrDefaultAsync2(); + init_max2(); + init_maxAsync2(); + init_min2(); + init_minAsync2(); + init_ofType2(); + init_orderBy2(); + init_orderByAsync2(); + init_orderByDescending2(); + init_orderByDescendingAsync2(); + init_partition2(); + init_partitionAsync2(); + init_reverse2(); + init_select2(); + init_selectAsync2(); + init_selectMany2(); + init_selectManyAsync2(); + init_sequenceEquals2(); + init_sequenceEqualsAsync2(); + init_single2(); + init_singleAsync2(); + init_singleOrDefault2(); + init_singleOrDefaultAsync2(); + init_skip2(); + init_skipWhile2(); + init_skipWhileAsync2(); + init_sum2(); + init_sumAsync2(); + init_take2(); + init_takeWhile2(); + init_takeWhileAsync2(); + init_toArray2(); + init_toMap2(); + init_toMapAsync2(); + init_toObject2(); + init_toObjectAsync2(); + init_toSet2(); + init_union2(); + init_unionAsync2(); + init_where2(); + init_whereAsync2(); + init_zip2(); + init_zipAsync2(); + bindLinqAsync = (object) => { + const prototype = object.prototype; + const bind = (func, key) => { + const wrapped = function(...params) { + return func(this, ...params); + }; + Object.defineProperty(wrapped, "length", { value: func.length - 1 }); + prototype[key] = wrapped; + }; + bind(aggregate4, "aggregate"); + bind(all2, "all"); + bind(allAsync2, "allAsync"); + bind(any3, "any"); + bind(anyAsync2, "anyAsync"); + bind(asParallel2, "asParallel"); + bind(average2, "average"); + bind(averageAsync2, "averageAsync"); + bind(chunk2, "chunk"); + bind(concatenate2, "concatenate"); + bind(contains2, "contains"); + bind(containsAsync2, "containsAsync"); + bind(count3, "count"); + bind(countAsync2, "countAsync"); + bind(defaultIfEmpty2, "defaultIfEmpty"); + bind(distinct2, "distinct"); + bind(distinctAsync2, "distinctAsync"); + bind(each2, "each"); + bind(eachAsync2, "eachAsync"); + bind(elementAt2, "elementAt"); + bind(elementAtOrDefault2, "elementAtOrDefault"); + bind(except2, "except"); + bind(exceptAsync2, "exceptAsync"); + bind(first3, "first"); + bind(firstAsync2, "firstAsync"); + bind(firstOrDefault3, "firstOrDefault"); + bind(firstOrDefaultAsync2, "firstOrDefaultAsync"); + bind(groupBy2, "groupBy"); + bind(groupByAsync2, "groupByAsync"); + bind(groupByWithSel2, "groupByWithSel"); + bind(groupJoin2, "groupJoin"); + bind(groupJoinAsync2, "groupJoinAsync"); + bind(intersect2, "intersect"); + bind(intersectAsync2, "intersectAsync"); + bind(join2, "joinByKey"); + bind(last3, "last"); + bind(lastAsync2, "lastAsync"); + bind(lastOrDefault3, "lastOrDefault"); + bind(lastOrDefaultAsync2, "lastOrDefaultAsync"); + bind(max3, "max"); + bind(maxAsync2, "maxAsync"); + bind(min3, "min"); + bind(minAsync2, "minAsync"); + bind(ofType2, "ofType"); + bind(orderBy2, "orderBy"); + bind(orderByAsync2, "orderByAsync"); + bind(orderByDescending2, "orderByDescending"); + bind(orderByDescendingAsync2, "orderByDescendingAsync"); + bind(partition2, "partition"); + bind(partitionAsync2, "partitionAsync"); + bind(reverse2, "reverse"); + bind(select4, "select"); + bind(selectAsync4, "selectAsync"); + bind(selectMany4, "selectMany"); + bind(selectManyAsync3, "selectManyAsync"); + bind(sequenceEquals2, "sequenceEquals"); + bind(sequenceEqualsAsync2, "sequenceEqualsAsync"); + bind(single3, "single"); + bind(singleAsync2, "singleAsync"); + bind(singleOrDefault3, "singleOrDefault"); + bind(singleOrDefaultAsync2, "singleOrDefaultAsync"); + bind(skip2, "skip"); + bind(skipWhile3, "skipWhile"); + bind(skipWhileAsync3, "skipWhileAsync"); + bind(sum3, "sum"); + bind(sumAsync2, "sumAsync"); + bind(take2, "take"); + bind(takeWhile3, "takeWhile"); + bind(takeWhileAsync3, "takeWhileAsync"); + bind(toArray2, "toArray"); + bind(toMap2, "toMap"); + bind(toMapAsync2, "toMapAsync"); + bind(toObject2, "toObject"); + bind(toObjectAsync2, "toObjectAsync"); + bind(toSet2, "toSet"); + bind(union3, "union"); + bind(unionAsync2, "unionAsync"); + bind(where3, "where"); + bind(whereAsync3, "whereAsync"); + bind(zip3, "zip"); + bind(zipAsync2, "zipAsync"); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/aggregate.js +var aggregate5, aggregate13, aggregate23, aggregate33; +var init_aggregate3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/aggregate.js"() { + init_shared(); + aggregate5 = (source, seedOrFunc, func, resultSelector) => { + if (resultSelector) { + if (!func) { + throw new ReferenceError("TAccumulate function is undefined"); + } + return aggregate33(source, seedOrFunc, func, resultSelector); + } else if (func) { + return aggregate23(source, seedOrFunc, func); + } else { + return aggregate13(source, seedOrFunc); + } + }; + aggregate13 = async (source, func) => { + let aggregateValue; + for await (const value of source) { + if (aggregateValue) { + aggregateValue = func(aggregateValue, value); + } else { + aggregateValue = value; + } + } + if (aggregateValue === void 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return aggregateValue; + }; + aggregate23 = async (source, seed, func) => { + let aggregateValue = seed; + for await (const value of source) { + aggregateValue = func(aggregateValue, value); + } + return aggregateValue; + }; + aggregate33 = async (source, seed, func, resultSelector) => { + let aggregateValue = seed; + for await (const value of source) { + aggregateValue = func(aggregateValue, value); + } + return resultSelector(aggregateValue); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/_nextIteration.js +var nextIteration; +var init_nextIteration = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/_nextIteration.js"() { + nextIteration = (source, onfulfilled) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const generator = () => dataFunc.generator().then((x) => { + const convValues = new Array(x.length); + for (let i = 0; i < x.length; i++) { + convValues[i] = onfulfilled(x[i]); + } + return convValues; + }); + return { + generator, + type: 0 + }; + } + case 1: { + const generator = () => { + const previousData = dataFunc.generator(); + const newPromises = new Array(previousData.length); + for (let i = 0; i < previousData.length; i++) { + newPromises[i] = previousData[i].then(onfulfilled); + } + return newPromises; + }; + return { + generator, + type: 1 + }; + } + case 2: { + const generator = async () => { + const previousData = await dataFunc.generator(); + const newPromises = new Array(previousData.length); + for (let i = 0; i < previousData.length; i++) { + newPromises[i] = previousData[i].then(onfulfilled); + } + return newPromises; + }; + return { + generator, + type: 2 + }; + } + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/all.js +var all3; +var init_all3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/all.js"() { + init_nextIteration(); + all3 = (source, predicate) => { + const nextIter = nextIteration(source, (x) => { + if (!predicate(x)) { + throw new Error(String(false)); + } + return true; + }); + switch (nextIter.type) { + case 0: + return nextIter.generator().then(() => true, () => false); + case 1: + return Promise.all(nextIter.generator()).then(() => true, () => false); + case 2: + return nextIter.generator().then(Promise.all.bind(Promise)).then(() => true, () => false); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationAsync.js +var nextIterationAsync; +var init_nextIterationAsync = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationAsync.js"() { + nextIterationAsync = (source, onfulfilled) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const generator = async () => { + const results = await dataFunc.generator(); + const newPromises = new Array(results.length); + for (let i = 0; i < results.length; i++) { + newPromises[i] = onfulfilled(results[i]); + } + return newPromises; + }; + return { + generator, + type: 2 + }; + } + case 1: { + const generator = () => { + const promises = dataFunc.generator(); + return promises.map(async (promise) => { + const value = await promise; + return await onfulfilled(value); + }); + }; + return { + generator, + type: 1 + }; + } + case 2: { + const generator = async () => { + const promises = await dataFunc.generator(); + return promises.map((promise) => promise.then(onfulfilled)); + }; + return { + generator, + type: 2 + }; + } + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/allAsync.js +var allAsync3; +var init_allAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/allAsync.js"() { + init_nextIterationAsync(); + allAsync3 = (source, predicate) => { + const nextIter = nextIterationAsync(source, async (x) => { + if (await predicate(x) === false) { + throw new Error(String(false)); + } + return true; + }); + switch (nextIter.type) { + case 1: + return Promise.all(nextIter.generator()).then(() => true, () => false); + case 2: + return nextIter.generator().then(Promise.all.bind(Promise)).then(() => true, () => false); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/any.js +var any4, any13, any23; +var init_any3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/any.js"() { + init_nextIteration(); + any4 = (source, predicate) => { + if (predicate) { + return any23(source, predicate); + } else { + return any13(source); + } + }; + any13 = async (source) => { + const dataFunc = source.dataFunc; + let values; + switch (dataFunc.type) { + case 1: + values = dataFunc.generator(); + return values.length !== 0; + case 0: + case 2: + values = await dataFunc.generator(); + return values.length !== 0; + } + }; + any23 = async (source, predicate) => { + const dataFunc = nextIteration(source, predicate); + let values; + switch (dataFunc.type) { + case 0: + values = await dataFunc.generator(); + return values.includes(true); + case 1: + values = await Promise.all(dataFunc.generator()); + return values.includes(true); + case 2: + values = await Promise.all(await dataFunc.generator()); + return values.includes(true); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/anyAsync.js +var anyAsync3; +var init_anyAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/anyAsync.js"() { + init_nextIterationAsync(); + anyAsync3 = async (source, predicate) => { + const nextIter = nextIterationAsync(source, predicate); + let promises; + switch (nextIter.type) { + case 1: + promises = nextIter.generator(); + if (promises.length === 0) { + return false; + } + return new Promise((resolve, reject) => { + let resolvedCount = 0; + for (const promise of promises) { + promise.then((value) => { + resolvedCount++; + if (value) { + resolve(true); + } else if (resolvedCount === promises.length) { + resolve(false); + } + }, reject); + } + }); + case 2: + promises = await nextIter.generator(); + if (Promise.length === 0) { + return false; + } + const values = await Promise.all(promises); + return values.includes(true); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/asAsync.js +var asAsync2; +var init_asAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/asAsync.js"() { + init_fromAsync(); + asAsync2 = (source) => { + async function* generator() { + for await (const value of source) { + yield value; + } + } + return fromAsync(generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/_typeDataToArray.js +var typeDataToArray; +var init_typeDataToArray = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/_typeDataToArray.js"() { + typeDataToArray = async (dataFunc) => { + switch (dataFunc.type) { + case 0: + return await dataFunc.generator(); + case 1: + return await Promise.all(dataFunc.generator()); + case 2: + const data = await dataFunc.generator(); + return await Promise.all(data); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/average.js +var average3; +var init_average3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/average.js"() { + init_shared(); + init_nextIteration(); + init_typeDataToArray(); + average3 = async (source, selector) => { + let data; + if (selector) { + data = nextIteration(source, selector); + } else { + data = source.dataFunc; + } + const values = await typeDataToArray(data); + if (values.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + let sum5 = 0; + for (const item of values) { + sum5 += item; + } + return sum5 / values.length; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/averageAsync.js +var averageAsync3; +var init_averageAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/averageAsync.js"() { + init_shared(); + init_nextIterationAsync(); + init_typeDataToArray(); + averageAsync3 = async (source, selector) => { + const nextIter = nextIterationAsync(source, selector); + const values = await typeDataToArray(nextIter); + if (values.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + let value = 0; + for (const selectedValue of values) { + value += selectedValue; + } + return value / values.length; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/chunk.js +var chunk3; +var init_chunk3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/chunk.js"() { + init_BasicParallelEnumerable(); + init_shared(); + chunk3 = (source, size) => { + if (size < 1) { + throw new ArgumentOutOfRangeException("index"); + } + let dataFunc; + switch (source.dataFunc.type) { + case 1: + const arrayOfPromises = source.dataFunc.generator; + dataFunc = { + type: 1, + generator: () => { + const chunks = []; + let yieldChunk = []; + for (const promise of arrayOfPromises()) { + yieldChunk.push(promise); + if (yieldChunk.length === size) { + chunks.push(Promise.all(yieldChunk)); + yieldChunk = []; + } + } + if (yieldChunk.length) { + chunks.push(Promise.all(yieldChunk)); + } + return chunks; + } + }; + break; + case 2: + const promiseOfPromises = source.dataFunc.generator; + dataFunc = { + type: 2, + generator: async () => { + const chunks = []; + let yieldChunk = []; + for (const promise of await promiseOfPromises()) { + yieldChunk.push(promise); + if (yieldChunk.length === size) { + chunks.push(Promise.all(yieldChunk)); + yieldChunk = []; + } + } + if (yieldChunk.length) { + chunks.push(Promise.all(yieldChunk)); + } + return chunks; + } + }; + break; + case 0: + const promiseToArray = source.dataFunc.generator; + dataFunc = { + type: 0, + generator: async () => { + const chunks = []; + let yieldChunk = []; + for (const value of await promiseToArray()) { + yieldChunk.push(value); + if (yieldChunk.length === size) { + chunks.push(yieldChunk); + yieldChunk = []; + } + } + if (yieldChunk.length) { + chunks.push(yieldChunk); + } + return chunks; + } + }; + break; + } + return new BasicParallelEnumerable(dataFunc); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/concatenate.js +var concatenate3; +var init_concatenate3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/concatenate.js"() { + init_BasicParallelEnumerable(); + concatenate3 = (first5, second) => { + const generator = async () => { + const [firstData, secondData] = await Promise.all([first5.toArray(), second.toArray()]); + return [...firstData, ...secondData]; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/contains.js +var contains3; +var init_contains3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/contains.js"() { + init_shared(); + init_nextIteration(); + contains3 = async (source, value, comparer = StrictEqualityComparer) => { + let values; + if (comparer) { + values = nextIteration(source, (x) => comparer(value, x)); + } else { + values = nextIteration(source, (x) => x === value); + } + switch (values.type) { + case 0: { + const data = await values.generator(); + return data.some((x) => x); + } + case 1: { + const data = await Promise.all(values.generator()); + return data.some((x) => x); + } + case 2: { + const data = await Promise.all(await values.generator()); + return data.some((x) => x); + } + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/containsAsync.js +var containsAsync3; +var init_containsAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/containsAsync.js"() { + init_nextIterationAsync(); + containsAsync3 = async (source, value, comparer) => { + const values = nextIterationAsync(source, (x) => comparer(value, x)); + switch (values.type) { + case 1: { + const data = await Promise.all(values.generator()); + return data.some((x) => x); + } + case 2: { + const data = await Promise.all(await values.generator()); + return data.some((x) => x); + } + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/count.js +var count4, count13, count23; +var init_count3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/count.js"() { + count4 = (source, predicate) => { + if (predicate) { + return count23(source, predicate); + } else { + return count13(source); + } + }; + count13 = async (source) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: + case 2: + const arrayData = await source.toArray(); + return arrayData.length; + case 1: + const promises = dataFunc.generator(); + return promises.length; + } + }; + count23 = async (source, predicate) => { + const values = await source.toArray(); + let totalCount = 0; + for (let i = 0; i < values.length; i++) { + if (predicate(values[i]) === true) { + totalCount++; + } + } + return totalCount; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/countAsync.js +var countAsync3; +var init_countAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/countAsync.js"() { + init_nextIterationAsync(); + countAsync3 = async (source, predicate) => { + const data = nextIterationAsync(source, predicate); + let countPromise; + switch (data.type) { + case 1: + countPromise = Promise.all(data.generator()); + break; + case 2: + countPromise = Promise.all(await data.generator()); + break; + } + let totalCount = 0; + for (const value of await countPromise) { + if (value) { + totalCount++; + } + } + return totalCount; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/defaultIfEmpty.js +var defaultIfEmpty3; +var init_defaultIfEmpty3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/defaultIfEmpty.js"() { + init_BasicParallelEnumerable(); + defaultIfEmpty3 = (source, defaultValue) => { + const dataFunc = source.dataFunc; + const isPromise = defaultValue instanceof Promise; + let typeData; + switch (dataFunc.type) { + case 0: + { + const generator = () => dataFunc.generator().then((values) => { + if (values.length) { + return values; + } + if (isPromise) { + return defaultValue.then((value) => [value]); + } else { + return [defaultValue]; + } + }); + typeData = { + generator, + type: dataFunc.type + }; + } + break; + case 1: + { + const generator = () => { + const promises = dataFunc.generator(); + if (promises.length) { + return promises; + } + if (isPromise) { + return [defaultValue]; + } else { + return [Promise.resolve(defaultValue)]; + } + }; + typeData = { + generator, + type: dataFunc.type + }; + } + break; + case 2: + { + const generator = async () => { + const promises = await dataFunc.generator(); + if (promises.length) { + return promises; + } + if (isPromise) { + return [defaultValue]; + } else { + return [Promise.resolve(defaultValue)]; + } + }; + typeData = { + generator, + type: dataFunc.type + }; + } + break; + } + return new BasicParallelEnumerable(typeData); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/distinct.js +var distinct3; +var init_distinct3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/distinct.js"() { + init_shared(); + init_BasicParallelEnumerable(); + distinct3 = (source, comparer = StrictEqualityComparer) => { + const generator = async () => { + const distinctElements = []; + for (const item of await source.toArray()) { + const foundItem = distinctElements.find((x) => comparer(x, item)); + if (!foundItem) { + distinctElements.push(item); + } + } + return distinctElements; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/distinctAsync.js +var distinctAsync3; +var init_distinctAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/distinctAsync.js"() { + init_BasicParallelEnumerable(); + distinctAsync3 = (source, comparer) => { + const generator = async () => { + const distinctElements = []; + outerLoop: + for (const item of await source.toArray()) { + for (const distinctElement of distinctElements) { + const found = await comparer(distinctElement, item); + if (found) { + continue outerLoop; + } + } + distinctElements.push(item); + } + return distinctElements; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/each.js +var each3; +var init_each3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/each.js"() { + init_BasicParallelEnumerable(); + init_nextIteration(); + each3 = (source, action) => { + return new BasicParallelEnumerable(nextIteration(source, (x) => { + action(x); + return x; + })); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/eachAsync.js +var eachAsync3; +var init_eachAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/eachAsync.js"() { + init_BasicParallelEnumerable(); + init_nextIterationAsync(); + eachAsync3 = (source, action) => { + const dataFunc = nextIterationAsync(source, async (x) => { + await action(x); + return x; + }); + return new BasicParallelEnumerable(dataFunc); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/elementAt.js +var elementAt3; +var init_elementAt3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/elementAt.js"() { + init_shared(); + elementAt3 = async (source, index) => { + if (index < 0) { + throw new ArgumentOutOfRangeException("index"); + } + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const values = await dataFunc.generator(); + if (index >= values.length) { + throw new ArgumentOutOfRangeException("index"); + } else { + return values[index]; + } + } + case 1: { + const promises = dataFunc.generator(); + if (index >= promises.length) { + throw new ArgumentOutOfRangeException("index"); + } else { + return await promises[index]; + } + } + case 2: { + const promises = await dataFunc.generator(); + if (index >= promises.length) { + throw new ArgumentOutOfRangeException("index"); + } else { + return await promises[index]; + } + } + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/elementAtOrDefault.js +var elementAtOrDefault3; +var init_elementAtOrDefault3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/elementAtOrDefault.js"() { + elementAtOrDefault3 = async (source, index) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const values = await dataFunc.generator(); + if (index >= values.length) { + return null; + } else { + return values[index]; + } + } + case 1: { + const promises = dataFunc.generator(); + if (index >= promises.length) { + return null; + } else { + return await promises[index]; + } + } + case 2: { + const promises = await dataFunc.generator(); + if (index >= promises.length) { + return null; + } else { + return await promises[index]; + } + } + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/except.js +var except3; +var init_except3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/except.js"() { + init_shared(); + init_BasicParallelEnumerable(); + except3 = (first5, second, comparer = StrictEqualityComparer) => { + const generator = async () => { + const [firstValues, secondValues] = await Promise.all([first5.toArray(), second.toArray()]); + const resultValues = []; + for (const firstItem of firstValues) { + let exists = false; + for (let j = 0; j < secondValues.length; j++) { + const secondItem = secondValues[j]; + if (comparer(firstItem, secondItem) === true) { + exists = true; + break; + } + } + if (exists === false) { + resultValues.push(firstItem); + } + } + return resultValues; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/exceptAsync.js +var exceptAsync3; +var init_exceptAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/exceptAsync.js"() { + init_BasicParallelEnumerable(); + exceptAsync3 = (first5, second, comparer) => { + const generator = async () => { + const [firstValues, secondValues] = await Promise.all([first5.toArray(), second.toArray()]); + const resultValues = []; + for (const firstItem of firstValues) { + let exists = false; + for (let j = 0; j < secondValues.length; j++) { + const secondItem = secondValues[j]; + if (await comparer(firstItem, secondItem) === true) { + exists = true; + break; + } + } + if (exists === false) { + resultValues.push(firstItem); + } + } + return resultValues; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/toArray.js +var toArray3; +var init_toArray3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/toArray.js"() { + init_typeDataToArray(); + toArray3 = (source) => { + return typeDataToArray(source.dataFunc); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/first.js +var first4, first13, first23; +var init_first3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/first.js"() { + init_shared(); + init_toArray3(); + first4 = (source, predicate) => { + if (predicate) { + return first23(source, predicate); + } else { + return first13(source); + } + }; + first13 = async (source) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const values = await dataFunc.generator(); + if (values.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return values[0]; + } + } + case 1: { + const promises = dataFunc.generator(); + if (promises.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return await promises[0]; + } + } + case 2: { + const promises = await dataFunc.generator(); + if (promises.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return await promises[0]; + } + } + } + }; + first23 = async (source, predicate) => { + const data = await toArray3(source); + for (const value of data) { + if (predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/firstAsync.js +var firstAsync3; +var init_firstAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/firstAsync.js"() { + init_shared(); + init_toArray3(); + firstAsync3 = async (source, predicate) => { + const data = await toArray3(source); + for (const value of data) { + if (await predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/firstOrDefault.js +var firstOrDefault4, firstOrDefault13, firstOrDefault23; +var init_firstOrDefault3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/firstOrDefault.js"() { + init_toArray3(); + firstOrDefault4 = (source, predicate) => { + if (predicate) { + return firstOrDefault23(source, predicate); + } else { + return firstOrDefault13(source); + } + }; + firstOrDefault13 = async (source) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const values = await dataFunc.generator(); + if (values.length === 0) { + return null; + } else { + return values[0]; + } + } + case 1: { + const promises = dataFunc.generator(); + if (promises.length === 0) { + return null; + } else { + return await promises[0]; + } + } + case 2: { + const promises = await dataFunc.generator(); + if (promises.length === 0) { + return null; + } else { + return await promises[0]; + } + } + } + }; + firstOrDefault23 = async (source, predicate) => { + const data = await toArray3(source); + for (const value of data) { + if (predicate(value) === true) { + return value; + } + } + return null; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/firstOrDefaultAsync.js +var firstOrDefaultAsync3; +var init_firstOrDefaultAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/firstOrDefaultAsync.js"() { + init_toArray3(); + firstOrDefaultAsync3 = async (source, predicate) => { + const data = await toArray3(source); + for (const value of data) { + if (await predicate(value) === true) { + return value; + } + } + return null; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/groupBy.js +var groupBy3, groupBy_0_Simple3, groupBy_03; +var init_groupBy3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/groupBy.js"() { + init_Grouping(); + init_BasicParallelEnumerable(); + groupBy3 = (source, keySelector, comparer) => { + if (comparer) { + return groupBy_03(source, keySelector, comparer); + } else { + return groupBy_0_Simple3(source, keySelector); + } + }; + groupBy_0_Simple3 = (source, keySelector) => { + const generator = async () => { + const keyMap = {}; + for (const value of await source.toArray()) { + const key = keySelector(value); + const grouping = keyMap[key]; + if (grouping) { + grouping.push(value); + } else { + keyMap[key] = new Grouping(key, value); + } + } + const results = new Array(); + for (const value in keyMap) { + results.push(keyMap[value]); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + groupBy_03 = (source, keySelector, comparer) => { + const generator = async () => { + const keyMap = new Array(); + for (const value of await source.toArray()) { + const key = keySelector(value); + let found = false; + for (let i = 0; i < keyMap.length; i++) { + const group = keyMap[i]; + if (comparer(group.key, key)) { + group.push(value); + found = true; + break; + } + } + if (found === false) { + keyMap.push(new Grouping(key, value)); + } + } + const results = new Array(); + for (const g of keyMap) { + results.push(g); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/groupByAsync.js +var groupByAsync3, groupByAsync_03, groupByAsync_0_Simple3; +var init_groupByAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/groupByAsync.js"() { + init_Grouping(); + init_BasicParallelEnumerable(); + init_nextIterationAsync(); + groupByAsync3 = (source, keySelector, comparer) => { + if (comparer) { + return groupByAsync_03(source, keySelector, comparer); + } else { + return groupByAsync_0_Simple3(source, keySelector); + } + }; + groupByAsync_03 = (source, keySelector, comparer) => { + const generator = async () => { + const typedData = nextIterationAsync(source, async (value) => { + const key = await keySelector(value); + return [key, value]; + }); + let values; + switch (typedData.type) { + case 1: + values = await Promise.all(typedData.generator()); + break; + case 2: + values = await Promise.all(await typedData.generator()); + break; + } + const keyMap = new Array(); + for (const [key, value] of values) { + let found = false; + for (let i = 0; i < keyMap.length; i++) { + const group = keyMap[i]; + if (await comparer(group.key, key) === true) { + group.push(value); + found = true; + break; + } + } + if (found === false) { + keyMap.push(new Grouping(key, value)); + } + } + const results = new Array(); + for (const g of keyMap) { + results.push(g); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + groupByAsync_0_Simple3 = (source, keySelector) => { + const generator = async () => { + const typedData = nextIterationAsync(source, async (value) => { + const key = await keySelector(value); + return [key, value]; + }); + let values; + switch (typedData.type) { + case 1: + values = await Promise.all(typedData.generator()); + break; + case 2: + values = await Promise.all(await typedData.generator()); + break; + } + const keyMap = {}; + for (const [key, value] of values) { + const grouping = keyMap[key]; + if (grouping) { + grouping.push(value); + } else { + keyMap[key] = new Grouping(key, value); + } + } + const results = new Array(); + for (const value in keyMap) { + results.push(keyMap[value]); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/groupByWithSel.js +var groupByWithSel3, groupBy12, groupBy1Simple2; +var init_groupByWithSel3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/groupByWithSel.js"() { + init_Grouping(); + init_BasicParallelEnumerable(); + groupByWithSel3 = (source, keySelector, elementSelector, comparer) => { + if (comparer) { + return groupBy12(source, keySelector, elementSelector, comparer); + } else { + return groupBy1Simple2(source, keySelector, elementSelector); + } + }; + groupBy12 = (source, keySelector, elementSelector, comparer) => { + const generator = async () => { + const keyMap = new Array(); + for await (const value of source) { + const key = keySelector(value); + let found = false; + for (let i = 0; i < keyMap.length; i++) { + const group = keyMap[i]; + if (comparer(group.key, key)) { + group.push(elementSelector(value)); + found = true; + break; + } + } + if (found === false) { + const element = elementSelector(value); + keyMap.push(new Grouping(key, element)); + } + } + const results = new Array(); + for (const value of keyMap) { + results.push(value); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + groupBy1Simple2 = (source, keySelector, elementSelector) => { + const generator = async () => { + const keyMap = {}; + for (const value of await source.toArray()) { + const key = keySelector(value); + const grouping = keyMap[key]; + const element = elementSelector(value); + if (grouping) { + grouping.push(element); + } else { + keyMap[key] = new Grouping(key, element); + } + } + const results = new Array(); + for (const value in keyMap) { + results.push(keyMap[value]); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/groupJoin.js +var groupJoin3, groupJoinWithComparer5, groupJoinSimple5; +var init_groupJoin3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/groupJoin.js"() { + init_BasicParallelEnumerable(); + groupJoin3 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + const generator = comparer ? groupJoinWithComparer5(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) : groupJoinSimple5(outer, inner, outerKeySelector, innerKeySelector, resultSelector); + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + groupJoinWithComparer5 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + return async () => { + const innerKeyMap = []; + for await (const innerValue of inner) { + const key = innerKeySelector(innerValue); + const record = innerKeyMap.find((x) => comparer(x.key, key)); + if (record) { + record.values.push(innerValue); + } else { + innerKeyMap.push({ key, values: [innerValue] }); + } + } + const outerValues = await outer.toArray(); + return outerValues.map((outerValue) => { + var _a; + const key = outerKeySelector(outerValue); + const innerRecord = (_a = innerKeyMap.find((x) => comparer(x.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] }; + return resultSelector(outerValue, innerRecord.values); + }); + }; + }; + groupJoinSimple5 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => { + return async () => { + const innerKeyMap = /* @__PURE__ */ new Map(); + for await (const innerValue of inner) { + const key = innerKeySelector(innerValue); + const values = innerKeyMap.get(key); + if (values) { + values.push(innerValue); + } else { + innerKeyMap.set(key, [innerValue]); + } + } + const outerValues = await outer.toArray(); + return outerValues.map((outerValue) => { + var _a; + const key = outerKeySelector(outerValue); + const values = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : []; + return resultSelector(outerValue, values); + }); + }; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/groupJoinAsync.js +var groupJoinAsync3, groupJoinWithComparer6, groupJoinSimple6; +var init_groupJoinAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/groupJoinAsync.js"() { + init_BasicParallelEnumerable(); + groupJoinAsync3 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + const generator = comparer ? groupJoinWithComparer6(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) : groupJoinSimple6(outer, inner, outerKeySelector, innerKeySelector, resultSelector); + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + groupJoinWithComparer6 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + return async () => { + const innerKeyMap = []; + for await (const innerValue of inner) { + const key = await innerKeySelector(innerValue); + const record = innerKeyMap.find((x) => comparer(x.key, key)); + if (record) { + record.values.push(innerValue); + } else { + innerKeyMap.push({ key, values: [innerValue] }); + } + } + const outerValues = await outer.toArray(); + const resultPromises = outerValues.map(async (outerValue) => { + var _a; + const key = await outerKeySelector(outerValue); + const innerRecord = (_a = innerKeyMap.find((x) => comparer(x.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] }; + return resultSelector(outerValue, innerRecord.values); + }); + return await Promise.all(resultPromises); + }; + }; + groupJoinSimple6 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => { + return async () => { + const innerKeyMap = /* @__PURE__ */ new Map(); + for await (const innerValue of inner) { + const key = await innerKeySelector(innerValue); + const values = innerKeyMap.get(key); + if (values) { + values.push(innerValue); + } else { + innerKeyMap.set(key, [innerValue]); + } + } + const outerValues = await outer.toArray(); + const resultPromises = outerValues.map(async (outerValue) => { + var _a; + const key = await outerKeySelector(outerValue); + const values = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : []; + return resultSelector(outerValue, values); + }); + return await Promise.all(resultPromises); + }; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/intersect.js +var intersect3; +var init_intersect3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/intersect.js"() { + init_shared(); + init_BasicParallelEnumerable(); + intersect3 = (first5, second, comparer = StrictEqualityComparer) => { + const generator = async () => { + const firstResults = await first5.distinct(comparer).toArray(); + if (firstResults.length === 0) { + return []; + } + const secondResults = await second.toArray(); + const results = new Array(); + for (let i = 0; i < firstResults.length; i++) { + const firstValue = firstResults[i]; + for (let j = 0; j < secondResults.length; j++) { + const secondValue = secondResults[j]; + if (comparer(firstValue, secondValue) === true) { + results.push(firstValue); + break; + } + } + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/intersectAsync.js +var intersectAsync3; +var init_intersectAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/intersectAsync.js"() { + init_BasicParallelEnumerable(); + intersectAsync3 = (first5, second, comparer) => { + const generator = async () => { + const firstResults = await first5.distinctAsync(comparer).toArray(); + if (firstResults.length === 0) { + return []; + } + const secondResults = await second.toArray(); + const results = new Array(); + for (let i = 0; i < firstResults.length; i++) { + const firstValue = firstResults[i]; + for (let j = 0; j < secondResults.length; j++) { + const secondValue = secondResults[j]; + if (await comparer(firstValue, secondValue) === true) { + results.push(firstValue); + break; + } + } + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/join.js +var join3; +var init_join3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/join.js"() { + init_shared(); + init_BasicParallelEnumerable(); + join3 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer = StrictEqualityComparer) => { + const generator = async () => { + const [innerArray, outerArray] = await Promise.all([inner.toArray(), outer.toArray()]); + const results = new Array(); + for (const o of outerArray) { + const outerKey = outerKeySelector(o); + for (const i of innerArray) { + const innerKey = innerKeySelector(i); + if (comparer(outerKey, innerKey) === true) { + results.push(resultSelector(o, i)); + } + } + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/last.js +var last4, last13, last23; +var init_last3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/last.js"() { + init_shared(); + last4 = (source, predicate) => { + if (predicate) { + return last23(source, predicate); + } else { + return last13(source); + } + }; + last13 = async (source) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const values = await dataFunc.generator(); + if (values.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return values[values.length - 1]; + } + } + case 1: { + const promises = dataFunc.generator(); + if (promises.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return await promises[promises.length - 1]; + } + } + case 2: { + const promises = await dataFunc.generator(); + if (promises.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return await promises[promises.length - 1]; + } + } + } + }; + last23 = async (source, predicate) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const values = await dataFunc.generator(); + for (let i = values.length - 1; i >= 0; i--) { + const value = values[i]; + if (predicate(value)) { + return value; + } + } + break; + } + case 1: { + const promises = dataFunc.generator(); + for (let i = promises.length - 1; i >= 0; i--) { + const value = await promises[i]; + if (predicate(value)) { + return value; + } + } + break; + } + case 2: { + const promises = await dataFunc.generator(); + for (let i = promises.length - 1; i >= 0; i--) { + const value = await promises[i]; + if (predicate(value)) { + return value; + } + } + break; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/lastAsync.js +var lastAsync3; +var init_lastAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/lastAsync.js"() { + init_shared(); + lastAsync3 = async (source, predicate) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const values = await dataFunc.generator(); + for (let i = values.length - 1; i >= 0; i--) { + const value = values[i]; + if (await predicate(value) === true) { + return value; + } + } + break; + } + case 1: { + const promises = dataFunc.generator(); + for (let i = promises.length - 1; i >= 0; i--) { + const value = await promises[i]; + if (await predicate(value) === true) { + return value; + } + } + break; + } + case 2: { + const promises = await dataFunc.generator(); + for (let i = promises.length - 1; i >= 0; i--) { + const value = await promises[i]; + if (await predicate(value) === true) { + return value; + } + } + break; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/lastOrDefault.js +var lastOrDefault4, lastOrDefault13, lastOrDefault23; +var init_lastOrDefault3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/lastOrDefault.js"() { + lastOrDefault4 = (source, predicate) => { + if (predicate) { + return lastOrDefault23(source, predicate); + } else { + return lastOrDefault13(source); + } + }; + lastOrDefault13 = async (source) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const values = await dataFunc.generator(); + if (values.length === 0) { + return null; + } else { + return values[values.length - 1]; + } + } + case 1: { + const promises = dataFunc.generator(); + if (promises.length === 0) { + return null; + } else { + return await promises[promises.length - 1]; + } + } + case 2: { + const promises = await dataFunc.generator(); + if (promises.length === 0) { + return null; + } else { + return await promises[promises.length - 1]; + } + } + } + }; + lastOrDefault23 = async (source, predicate) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const values = await dataFunc.generator(); + for (let i = values.length - 1; i >= 0; i--) { + const value = values[i]; + if (predicate(value)) { + return value; + } + } + break; + } + case 1: { + const promises = dataFunc.generator(); + for (let i = promises.length - 1; i >= 0; i--) { + const value = await promises[i]; + if (predicate(value)) { + return value; + } + } + break; + } + case 2: { + const promises = await dataFunc.generator(); + for (let i = promises.length - 1; i >= 0; i--) { + const value = await promises[i]; + if (predicate(value)) { + return value; + } + } + break; + } + } + return null; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/lastOrDefaultAsync.js +var lastOrDefaultAsync3; +var init_lastOrDefaultAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/lastOrDefaultAsync.js"() { + lastOrDefaultAsync3 = async (source, predicate) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const values = await dataFunc.generator(); + for (let i = values.length - 1; i >= 0; i--) { + const value = values[i]; + if (await predicate(value) === true) { + return value; + } + } + break; + } + case 1: { + const promises = dataFunc.generator(); + for (let i = promises.length - 1; i >= 0; i--) { + const value = await promises[i]; + if (await predicate(value) === true) { + return value; + } + } + break; + } + case 2: { + const promises = await dataFunc.generator(); + for (let i = promises.length - 1; i >= 0; i--) { + const value = await promises[i]; + if (await predicate(value) === true) { + return value; + } + } + break; + } + } + return null; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/max.js +var max4; +var init_max3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/max.js"() { + init_shared(); + init_nextIteration(); + init_typeDataToArray(); + max4 = async (source, selector) => { + let dataFunc; + if (selector) { + dataFunc = nextIteration(source, selector); + } else { + dataFunc = source.dataFunc; + } + const data = await typeDataToArray(dataFunc); + if (data.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return Math.max.apply(null, data); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/maxAsync.js +var maxAsync3; +var init_maxAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/maxAsync.js"() { + init_shared(); + init_nextIterationAsync(); + init_typeDataToArray(); + maxAsync3 = async (source, selector) => { + const dataFunc = nextIterationAsync(source, selector); + const maxInfo = await typeDataToArray(dataFunc); + if (maxInfo.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return Math.max.apply(null, maxInfo); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/min.js +var min4; +var init_min3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/min.js"() { + init_shared(); + init_nextIteration(); + init_typeDataToArray(); + min4 = async (source, selector) => { + let dataFunc; + if (selector) { + dataFunc = nextIteration(source, selector); + } else { + dataFunc = source.dataFunc; + } + const data = await typeDataToArray(dataFunc); + if (data.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return Math.min.apply(null, data); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/minAsync.js +var minAsync3; +var init_minAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/minAsync.js"() { + init_shared(); + init_nextIterationAsync(); + init_typeDataToArray(); + minAsync3 = async (source, selector) => { + const dataFunc = nextIterationAsync(source, selector); + const maxInfo = await typeDataToArray(dataFunc); + if (maxInfo.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return Math.min.apply(null, maxInfo); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/ofType.js +var ofType3; +var init_ofType3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/ofType.js"() { + init_BasicParallelEnumerable(); + init_nextIteration(); + init_typeDataToArray(); + ofType3 = (source, type) => { + const typeCheck = typeof type === "string" ? (x) => [typeof x === type, x] : (x) => [x instanceof type, x]; + const generator = async () => { + const dataFunc = nextIteration(source, typeCheck); + const values = await typeDataToArray(dataFunc); + const filteredValues = []; + for (const [pass, value] of values) { + if (pass) { + filteredValues.push(value); + } + } + return filteredValues; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncKeyMap.js +var asAsyncKeyMap2; +var init_asAsyncKeyMap2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncKeyMap.js"() { + asAsyncKeyMap2 = async (source, keySelector) => { + const map = /* @__PURE__ */ new Map(); + for await (const item of source) { + const key = await keySelector(item); + const currentMapping = map.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map.set(key, [item]); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncSortedKeyValues.js +async function* asAsyncSortedKeyValues2(source, keySelector, ascending, comparer) { + const map = await asAsyncKeyMap2(source, keySelector); + const sortedKeys = [...map.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i = 0; i < sortedKeys.length; i++) { + yield map.get(sortedKeys[i]); + } + } else { + for (let i = sortedKeys.length - 1; i >= 0; i--) { + yield map.get(sortedKeys[i]); + } + } +} +var init_asAsyncSortedKeyValues2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncSortedKeyValues.js"() { + init_asAsyncKeyMap2(); + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncKeyMapSync.js +var asAsyncKeyMapSync2; +var init_asAsyncKeyMapSync2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncKeyMapSync.js"() { + asAsyncKeyMapSync2 = async (source, keySelector) => { + const map = /* @__PURE__ */ new Map(); + for (const item of source) { + const key = await keySelector(item); + const currentMapping = map.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map.set(key, [item]); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncSortedKeyValuesSync.js +async function* asAsyncSortedKeyValuesSync2(source, keySelector, ascending, comparer) { + const map = await asAsyncKeyMapSync2(source, keySelector); + const sortedKeys = [...map.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i = 0; i < sortedKeys.length; i++) { + yield map.get(sortedKeys[i]); + } + } else { + for (let i = sortedKeys.length - 1; i >= 0; i--) { + yield map.get(sortedKeys[i]); + } + } +} +var init_asAsyncSortedKeyValuesSync2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncSortedKeyValuesSync.js"() { + init_asAsyncKeyMapSync2(); + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_ordered/asKeyMap.js +var asKeyMap3; +var init_asKeyMap3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asKeyMap.js"() { + asKeyMap3 = async (source, keySelector) => { + const map = /* @__PURE__ */ new Map(); + for await (const item of source) { + const key = keySelector(item); + const currentMapping = map.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map.set(key, [item]); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_ordered/asSortedKeyValues.js +async function* asSortedKeyValues3(source, keySelector, ascending, comparer) { + const map = await asKeyMap3(source, keySelector); + const sortedKeys = [...map.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i = 0; i < sortedKeys.length; i++) { + yield map.get(sortedKeys[i]); + } + } else { + for (let i = sortedKeys.length - 1; i >= 0; i--) { + yield map.get(sortedKeys[i]); + } + } +} +var init_asSortedKeyValues3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asSortedKeyValues.js"() { + init_asKeyMap3(); + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_ordered/asKeyMapSync.js +var asKeyMapSync2; +var init_asKeyMapSync2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asKeyMapSync.js"() { + asKeyMapSync2 = (source, keySelector) => { + const map = /* @__PURE__ */ new Map(); + for (const item of source) { + const key = keySelector(item); + const currentMapping = map.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map.set(key, [item]); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_ordered/asSortedKeyValuesSync.js +async function* asSortedKeyValuesSync2(source, keySelector, ascending, comparer) { + const map = asKeyMapSync2(source, keySelector); + const sortedKeys = [...map.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i = 0; i < sortedKeys.length; i++) { + yield map.get(sortedKeys[i]); + } + } else { + for (let i = sortedKeys.length - 1; i >= 0; i--) { + yield map.get(sortedKeys[i]); + } + } +} +var init_asSortedKeyValuesSync2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asSortedKeyValuesSync.js"() { + init_asKeyMapSync2(); + } +}); + +// node_modules/linq-to-typescript/esm/parallel/OrderedParallelEnumerable.js +var OrderedParallelEnumerable; +var init_OrderedParallelEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/parallel/OrderedParallelEnumerable.js"() { + init_asAsyncSortedKeyValues2(); + init_asAsyncSortedKeyValuesSync2(); + init_asSortedKeyValues3(); + init_asSortedKeyValuesSync2(); + init_BasicParallelEnumerable(); + OrderedParallelEnumerable = class extends BasicParallelEnumerable { + constructor(orderedPairs) { + super({ + generator: async () => { + const asyncVals = orderedPairs(); + const array = []; + for await (const val of asyncVals) { + array.push(...val); + } + return array; + }, + type: 0 + }); + this.orderedPairs = orderedPairs; + } + static generateAsync(source, keySelector, ascending, comparer) { + let orderedPairs; + if (source instanceof OrderedParallelEnumerable) { + orderedPairs = async function* () { + for await (const pair of source.orderedPairs()) { + yield* asAsyncSortedKeyValuesSync2(pair, keySelector, ascending, comparer); + } + }; + } else { + orderedPairs = () => asAsyncSortedKeyValues2(source, keySelector, ascending, comparer); + } + return new OrderedParallelEnumerable(orderedPairs); + } + static generate(source, keySelector, ascending, comparer) { + let orderedPairs; + if (source instanceof OrderedParallelEnumerable) { + orderedPairs = async function* () { + for await (const pair of source.orderedPairs()) { + yield* asSortedKeyValuesSync2(pair, keySelector, ascending, comparer); + } + }; + } else { + orderedPairs = () => asSortedKeyValues3(source, keySelector, ascending, comparer); + } + return new OrderedParallelEnumerable(orderedPairs); + } + thenBy(keySelector, comparer) { + return OrderedParallelEnumerable.generate(this, keySelector, true, comparer); + } + thenByAsync(keySelector, comparer) { + return OrderedParallelEnumerable.generateAsync(this, keySelector, true, comparer); + } + thenByDescending(keySelector, comparer) { + return OrderedParallelEnumerable.generate(this, keySelector, false, comparer); + } + thenByDescendingAsync(keySelector, comparer) { + return OrderedParallelEnumerable.generateAsync(this, keySelector, false, comparer); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/orderBy.js +var orderBy3; +var init_orderBy3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/orderBy.js"() { + init_OrderedParallelEnumerable(); + orderBy3 = (source, keySelector, comparer) => { + return OrderedParallelEnumerable.generate(source, keySelector, true, comparer); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/orderByAsync.js +var orderByAsync3; +var init_orderByAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/orderByAsync.js"() { + init_OrderedParallelEnumerable(); + orderByAsync3 = (source, keySelector, comparer) => { + return OrderedParallelEnumerable.generateAsync(source, keySelector, true, comparer); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/orderByDescending.js +var orderByDescending3; +var init_orderByDescending3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/orderByDescending.js"() { + init_OrderedParallelEnumerable(); + orderByDescending3 = (source, keySelector, comparer) => { + return OrderedParallelEnumerable.generate(source, keySelector, false, comparer); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/orderByDescendingAsync.js +var orderByDescendingAsync3; +var init_orderByDescendingAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/orderByDescendingAsync.js"() { + init_OrderedParallelEnumerable(); + orderByDescendingAsync3 = (source, keySelector, comparer) => { + return OrderedParallelEnumerable.generateAsync(source, keySelector, false, comparer); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/partition.js +var partition3; +var init_partition3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/partition.js"() { + init_nextIteration(); + init_typeDataToArray(); + partition3 = async (source, predicate) => { + const dataFunc = nextIteration(source, (value) => { + return [predicate(value), value]; + }); + const values = await typeDataToArray(dataFunc); + const fail = []; + const pass = []; + for (const [passed, value] of values) { + if (passed) { + pass.push(value); + } else { + fail.push(value); + } + } + return [pass, fail]; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/partitionAsync.js +var partitionAsync3; +var init_partitionAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/partitionAsync.js"() { + init_nextIterationAsync(); + init_typeDataToArray(); + partitionAsync3 = async (source, predicate) => { + const dataFunc = nextIterationAsync(source, async (value) => { + const passed = await predicate(value); + return [passed, value]; + }); + const values = await typeDataToArray(dataFunc); + const fail = []; + const pass = []; + for (const [passed, value] of values) { + if (passed) { + pass.push(value); + } else { + fail.push(value); + } + } + return [pass, fail]; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/reverse.js +var reverse3; +var init_reverse3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/reverse.js"() { + init_BasicParallelEnumerable(); + reverse3 = (source) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 1: { + const generator = () => { + return dataFunc.generator().reverse(); + }; + return new BasicParallelEnumerable({ + generator, + type: dataFunc.type + }); + } + case 2: { + const generator = async () => { + const array = await dataFunc.generator(); + return array.reverse(); + }; + return new BasicParallelEnumerable({ + generator, + type: dataFunc.type + }); + } + case 0: { + const generator = async () => { + const array = await dataFunc.generator(); + return array.reverse(); + }; + return new BasicParallelEnumerable({ + generator, + type: dataFunc.type + }); + } + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationWithIndex.js +var nextIterationWithIndex; +var init_nextIterationWithIndex = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationWithIndex.js"() { + nextIterationWithIndex = (source, onfulfilled) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const generator = () => dataFunc.generator().then((x) => { + const convValues = new Array(x.length); + for (let i = 0; i < x.length; i++) { + convValues[i] = onfulfilled(x[i], i); + } + return convValues; + }); + return { + generator, + type: 0 + }; + } + case 1: { + const generator = () => { + const previousData = dataFunc.generator(); + const newPromises = new Array(previousData.length); + for (let i = 0; i < previousData.length; i++) { + newPromises[i] = previousData[i].then((value) => { + return onfulfilled(value, i); + }); + } + return newPromises; + }; + return { + generator, + type: 1 + }; + } + case 2: { + const generator = async () => { + const previousData = await dataFunc.generator(); + const newPromises = new Array(previousData.length); + for (let i = 0; i < previousData.length; i++) { + newPromises[i] = previousData[i].then((value) => onfulfilled(value, i)); + } + return newPromises; + }; + return { + generator, + type: 2 + }; + } + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/select.js +var select5; +var init_select3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/select.js"() { + init_BasicParallelEnumerable(); + init_nextIteration(); + init_nextIterationWithIndex(); + select5 = (source, key) => { + if (typeof key === "function") { + if (key.length === 1) { + return new BasicParallelEnumerable(nextIteration(source, key)); + } else { + return new BasicParallelEnumerable(nextIterationWithIndex(source, key)); + } + } else { + return new BasicParallelEnumerable(nextIteration(source, (x) => x[key])); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationWithIndexAsync.js +var nextIterationWithIndexAsync; +var init_nextIterationWithIndexAsync = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationWithIndexAsync.js"() { + nextIterationWithIndexAsync = (source, onfulfilled) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const generator = async () => { + const results = await dataFunc.generator(); + const newPromises = new Array(results.length); + for (let i = 0; i < results.length; i++) { + newPromises[i] = onfulfilled(results[i], i); + } + return newPromises; + }; + return { + generator, + type: 2 + }; + } + case 1: { + const generator = () => dataFunc.generator().map((promise, index) => promise.then((x) => onfulfilled(x, index))); + return { + generator, + type: 1 + }; + } + case 2: { + const generator = async () => { + const promises = await dataFunc.generator(); + return promises.map((promise, index) => promise.then((x) => onfulfilled(x, index))); + }; + return { + generator, + type: 2 + }; + } + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/selectAsync.js +var selectAsync5; +var init_selectAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/selectAsync.js"() { + init_BasicParallelEnumerable(); + init_nextIterationAsync(); + init_nextIterationWithIndexAsync(); + selectAsync5 = (source, keyOrSelector) => { + let generator; + if (typeof keyOrSelector === "function") { + if (keyOrSelector.length === 1) { + generator = nextIterationAsync(source, keyOrSelector); + } else { + generator = nextIterationWithIndexAsync(source, keyOrSelector); + } + } else { + generator = nextIterationAsync(source, (x) => x[keyOrSelector]); + } + return new BasicParallelEnumerable(generator); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/selectMany.js +var selectMany5; +var init_selectMany3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/selectMany.js"() { + init_BasicParallelEnumerable(); + init_nextIteration(); + init_nextIterationWithIndex(); + selectMany5 = (source, selector) => { + const generator = async () => { + let values; + if (typeof selector === "function") { + if (selector.length === 1) { + values = nextIteration(source, selector); + } else { + values = nextIterationWithIndex(source, selector); + } + } else { + values = nextIteration(source, (x) => x[selector]); + } + const valuesArray = []; + switch (values.type) { + case 0: { + for (const outer of await values.generator()) { + for (const y of outer) { + valuesArray.push(y); + } + } + break; + } + case 1: { + for (const outer of values.generator()) { + for (const y of await outer) { + valuesArray.push(y); + } + } + break; + } + case 2: { + for (const outer of await values.generator()) { + for (const y of await outer) { + valuesArray.push(y); + } + } + break; + } + } + return valuesArray; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/selectManyAsync.js +var selectManyAsync4; +var init_selectManyAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/selectManyAsync.js"() { + init_BasicParallelEnumerable(); + init_nextIterationAsync(); + init_nextIterationWithIndexAsync(); + selectManyAsync4 = (source, selector) => { + const generator = async () => { + let values; + if (selector.length === 1) { + values = nextIterationAsync(source, selector); + } else { + values = nextIterationWithIndexAsync(source, selector); + } + const valuesArray = []; + switch (values.type) { + case 1: { + for (const outer of values.generator()) { + for (const y of await outer) { + valuesArray.push(y); + } + } + break; + } + case 2: { + for (const outer of await values.generator()) { + for (const y of await outer) { + valuesArray.push(y); + } + } + break; + } + } + return valuesArray; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/sequenceEquals.js +var sequenceEquals3; +var init_sequenceEquals3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/sequenceEquals.js"() { + init_shared(); + sequenceEquals3 = async (first5, second, comparer = StrictEqualityComparer) => { + const firstArray = await first5.toArray(); + const secondArray = await second.toArray(); + if (firstArray.length !== secondArray.length) { + return false; + } + for (let i = 0; i < firstArray.length; i++) { + const firstResult = firstArray[i]; + const secondResult = secondArray[i]; + if (comparer(firstResult, secondResult) === false) { + return false; + } + } + return true; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/sequenceEqualsAsync.js +var sequenceEqualsAsync3; +var init_sequenceEqualsAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/sequenceEqualsAsync.js"() { + sequenceEqualsAsync3 = async (first5, second, comparer) => { + const firstArray = await first5.toArray(); + const secondArray = await second.toArray(); + if (firstArray.length !== secondArray.length) { + return false; + } + for (let i = 0; i < firstArray.length; i++) { + const firstResult = firstArray[i]; + const secondResult = secondArray[i]; + if (await comparer(firstResult, secondResult) === false) { + return false; + } + } + return true; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/single.js +var single4, single13, single23; +var init_single3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/single.js"() { + init_shared(); + init_toArray3(); + single4 = (source, predicate) => { + if (predicate) { + return single23(source, predicate); + } else { + return single13(source); + } + }; + single13 = async (source) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const results = await dataFunc.generator(); + if (results.length > 1) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else if (results.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return results[0]; + } + case 1: { + const results = dataFunc.generator(); + if (results.length > 1) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else if (results.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return results[0]; + } + case 2: { + const results = await dataFunc.generator(); + if (results.length > 1) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else if (results.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return await results[0]; + } + } + }; + single23 = async (source, predicate) => { + const results = await toArray3(source); + let hasValue = false; + let singleValue = null; + for (const value of results) { + if (predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return singleValue; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/singleAsync.js +var singleAsync3; +var init_singleAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/singleAsync.js"() { + init_shared(); + init_toArray3(); + singleAsync3 = async (source, predicate) => { + const results = await toArray3(source); + let hasValue = false; + let singleValue = null; + for (const value of results) { + if (await predicate(value) === true) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return singleValue; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/singleOrDefault.js +var singleOrDefault4, singleOrDefault13, singleOrDefault23; +var init_singleOrDefault3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/singleOrDefault.js"() { + init_shared(); + init_toArray3(); + singleOrDefault4 = (source, predicate) => { + if (predicate) { + return singleOrDefault23(source, predicate); + } else { + return singleOrDefault13(source); + } + }; + singleOrDefault13 = async (source) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const results = await dataFunc.generator(); + if (results.length > 1) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else if (results.length === 0) { + return null; + } + return results[0]; + } + case 1: { + const results = dataFunc.generator(); + if (results.length > 1) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else if (results.length === 0) { + return null; + } + return results[0]; + } + case 2: { + const results = await dataFunc.generator(); + if (results.length > 1) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else if (results.length === 0) { + return null; + } + return await results[0]; + } + } + }; + singleOrDefault23 = async (source, predicate) => { + const results = await toArray3(source); + let hasValue = false; + let singleValue = null; + for (const value of results) { + if (predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + return singleValue; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/singleOrDefaultAsync.js +var singleOrDefaultAsync3; +var init_singleOrDefaultAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/singleOrDefaultAsync.js"() { + init_shared(); + init_toArray3(); + singleOrDefaultAsync3 = async (source, predicate) => { + const results = await toArray3(source); + let hasValue = false; + let singleValue = null; + for (const value of results) { + if (await predicate(value) === true) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + return singleValue; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/skip.js +var skip3; +var init_skip3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/skip.js"() { + init_BasicParallelEnumerable(); + skip3 = (source, count5) => { + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 0: { + const generator = async () => (await dataFunc.generator()).slice(count5); + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + } + case 1: { + const generator = () => dataFunc.generator().slice(count5); + return new BasicParallelEnumerable({ + generator, + type: 1 + }); + } + case 2: { + const generator = async () => { + const dataInner = await dataFunc.generator(); + return dataInner.slice(count5); + }; + const dataFuncNew = { + generator, + type: 2 + }; + return new BasicParallelEnumerable(dataFuncNew); + } + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/skipWhile.js +var skipWhile4; +var init_skipWhile3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/skipWhile.js"() { + init_BasicParallelEnumerable(); + skipWhile4 = (source, predicate) => { + const generator = async () => { + const values = await source.toArray(); + let i = 0; + for (; i < values.length; i++) { + const value = values[i]; + if (predicate(value, i) === false) { + break; + } + } + const returnedValues = []; + for (; i < values.length; i++) { + returnedValues.push(values[i]); + } + return returnedValues; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/skipWhileAsync.js +var skipWhileAsync4; +var init_skipWhileAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/skipWhileAsync.js"() { + init_BasicParallelEnumerable(); + skipWhileAsync4 = (source, predicate) => { + const generator = async () => { + const values = await source.toArray(); + let i = 0; + for (; i < values.length; i++) { + const value = values[i]; + if (await predicate(value, i) === false) { + break; + } + } + const returnedValues = []; + for (; i < values.length; i++) { + returnedValues.push(values[i]); + } + return returnedValues; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/sum.js +var sum4, sum13, sum23; +var init_sum3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/sum.js"() { + sum4 = (source, selector) => { + if (selector) { + return sum23(source, selector); + } else { + return sum13(source); + } + }; + sum13 = async (source) => { + let totalSum = 0; + for (const value of await source.toArray()) { + totalSum += value; + } + return totalSum; + }; + sum23 = async (source, selector) => { + let total = 0; + for (const value of await source.toArray()) { + total += selector(value); + } + return total; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/sumAsync.js +var sumAsync3; +var init_sumAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/sumAsync.js"() { + init_nextIterationAsync(); + init_typeDataToArray(); + sumAsync3 = async (source, selector) => { + const dataFunc = nextIterationAsync(source, selector); + const values = await typeDataToArray(dataFunc); + let sum5 = 0; + for (const value of values) { + sum5 += value; + } + return sum5; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/take.js +var take3; +var init_take3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/take.js"() { + init_BasicParallelEnumerable(); + take3 = (source, amount) => { + const amountLeft = amount > 0 ? amount : 0; + const dataFunc = source.dataFunc; + switch (dataFunc.type) { + case 1: + const generator1 = () => dataFunc.generator().splice(0, amountLeft); + return new BasicParallelEnumerable({ + generator: generator1, + type: 1 + }); + case 2: + const generator2 = () => dataFunc.generator().then((x) => x.splice(0, amountLeft)); + return new BasicParallelEnumerable({ + generator: generator2, + type: 2 + }); + case 0: + default: + const generator3 = () => dataFunc.generator().then((x) => x.splice(0, amountLeft)); + return new BasicParallelEnumerable({ + generator: generator3, + type: 0 + }); + } + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/takeWhile.js +var takeWhile4; +var init_takeWhile3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/takeWhile.js"() { + init_BasicParallelEnumerable(); + takeWhile4 = (source, predicate) => { + const generator = async () => { + const values = await source.toArray(); + const results = new Array(); + if (predicate.length === 1) { + for (const value of values) { + if (predicate(value) === true) { + results.push(value); + } else { + break; + } + } + } else { + for (let i = 0; i < values.length; i++) { + const value = values[i]; + if (predicate(value, i) === true) { + results.push(value); + } else { + break; + } + } + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/takeWhileAsync.js +var takeWhileAsync4; +var init_takeWhileAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/takeWhileAsync.js"() { + init_BasicParallelEnumerable(); + takeWhileAsync4 = (source, predicate) => { + const generator = async () => { + const values = await source.toArray(); + const results = new Array(); + if (predicate.length === 1) { + const sPredicate = predicate; + for (const value of values) { + if (await sPredicate(value) === true) { + results.push(value); + } else { + break; + } + } + } else { + for (let i = 0; i < values.length; i++) { + const value = values[i]; + if (await predicate(value, i) === true) { + results.push(value); + } else { + break; + } + } + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/toMap.js +var toMap3; +var init_toMap3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/toMap.js"() { + init_nextIteration(); + init_typeDataToArray(); + toMap3 = async (source, selector) => { + const map = /* @__PURE__ */ new Map(); + const dataFunc = nextIteration(source, (value) => { + const key = selector(value); + return [key, value]; + }); + const keyValues = await typeDataToArray(dataFunc); + for (const [key, value] of keyValues) { + const array = map.get(key); + if (array === void 0) { + map.set(key, [value]); + } else { + array.push(value); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/toMapAsync.js +var toMapAsync3; +var init_toMapAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/toMapAsync.js"() { + init_nextIterationAsync(); + init_typeDataToArray(); + toMapAsync3 = async (source, selector) => { + const map = /* @__PURE__ */ new Map(); + const dataFunc = nextIterationAsync(source, async (value) => { + const key = await selector(value); + return [key, value]; + }); + const keyValues = await typeDataToArray(dataFunc); + for (const [key, value] of keyValues) { + const array = map.get(key); + if (array === void 0) { + map.set(key, [value]); + } else { + array.push(value); + } + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/toObject.js +var toObject3; +var init_toObject3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/toObject.js"() { + init_typeDataToArray(); + toObject3 = async (source, selector) => { + const dataFunc = source.dataFunc; + const values = await typeDataToArray(dataFunc); + const map = {}; + for (const value of values) { + map[selector(value)] = value; + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/toObjectAsync.js +var toObjectAsync3; +var init_toObjectAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/toObjectAsync.js"() { + init_nextIterationAsync(); + init_typeDataToArray(); + toObjectAsync3 = async (source, selector) => { + const dataFunc = nextIterationAsync(source, async (value) => { + const key = await selector(value); + return [key, value]; + }); + const keyValues = await typeDataToArray(dataFunc); + const map = {}; + for (const [key, value] of keyValues) { + map[key] = value; + } + return map; + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/toSet.js +var toSet3; +var init_toSet3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/toSet.js"() { + init_typeDataToArray(); + toSet3 = async (source) => { + const dataFunc = source.dataFunc; + const values = await typeDataToArray(dataFunc); + return new Set(values); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/union.js +var union4, union13, union23; +var init_union3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/union.js"() { + init_BasicParallelEnumerable(); + union4 = (first5, second, comparer) => { + if (comparer) { + return union23(first5, second, comparer); + } else { + return union13(first5, second); + } + }; + union13 = (first5, second) => { + const generator = async () => { + const set = /* @__PURE__ */ new Set(); + const secondPromise = second.toArray(); + for await (const item of first5) { + if (set.has(item) === false) { + set.add(item); + } + } + const secondValues = await secondPromise; + for (const item of secondValues) { + if (set.has(item) === false) { + set.add(item); + } + } + return [...set.keys()]; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + union23 = (first5, second, comparer) => { + const generator = async () => { + const result = []; + const values = await Promise.all([first5.toArray(), second.toArray()]); + for (const source of values) { + for (const value of source) { + let exists = false; + for (const resultValue of result) { + if (comparer(value, resultValue) === true) { + exists = true; + break; + } + } + if (exists === false) { + result.push(value); + } + } + } + return result; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/unionAsync.js +var unionAsync3; +var init_unionAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/unionAsync.js"() { + init_BasicParallelEnumerable(); + unionAsync3 = (first5, second, comparer) => { + const generator = async () => { + const result = []; + const values = await Promise.all([first5.toArray(), second.toArray()]); + for (const source of values) { + for (const value of source) { + let exists = false; + for (const resultValue of result) { + if (await comparer(value, resultValue) === true) { + exists = true; + break; + } + } + if (exists === false) { + result.push(value); + } + } + } + return result; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/where.js +var where4; +var init_where3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/where.js"() { + init_BasicParallelEnumerable(); + where4 = (source, predicate) => { + const generator = async () => { + const values = await source.toArray(); + return values.filter(predicate); + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/whereAsync.js +var whereAsync4; +var init_whereAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/whereAsync.js"() { + init_BasicParallelEnumerable(); + init_nextIterationWithIndexAsync(); + init_typeDataToArray(); + whereAsync4 = (source, predicate) => { + const generator = async () => { + const dataFunc = nextIterationWithIndexAsync(source, async (value, index) => { + const keep = await predicate(value, index); + return [keep, value]; + }); + const valuesAsync = await typeDataToArray(dataFunc); + const filteredValues = []; + for (const [keep, value] of valuesAsync) { + if (keep) { + filteredValues.push(value); + } + } + return filteredValues; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/zip.js +var zip4, zip13, zip23; +var init_zip3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/zip.js"() { + init_BasicParallelEnumerable(); + zip4 = (first5, second, resultSelector) => { + if (resultSelector) { + return zip23(first5, second, resultSelector); + } else { + return zip13(first5, second); + } + }; + zip13 = (source, second) => { + const generator = async () => { + const [left, right] = await Promise.all([source.toArray(), second.toArray()]); + const minLength = left.length < right.length ? left.length : right.length; + const results = new Array(minLength); + for (let i = 0; i < minLength; i++) { + const a = left[i]; + const b = right[i]; + results[i] = [a, b]; + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + zip23 = (source, second, resultSelector) => { + const generator = async () => { + const [left, right] = await Promise.all([source.toArray(), second.toArray()]); + const minLength = left.length < right.length ? left.length : right.length; + const results = new Array(minLength); + for (let i = 0; i < minLength; i++) { + const a = left[i]; + const b = right[i]; + results[i] = resultSelector(a, b); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/parallel/_private/zipAsync.js +var zipAsync3; +var init_zipAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/zipAsync.js"() { + init_BasicParallelEnumerable(); + zipAsync3 = (first5, second, resultSelector) => { + const generator = async () => { + const [left, right] = await Promise.all([first5.toArray(), second.toArray()]); + const minLength = left.length < right.length ? left.length : right.length; + const resultPromises = new Array(minLength); + for (let i = 0; i < minLength; i++) { + const a = left[i]; + const b = right[i]; + resultPromises[i] = resultSelector(a, b); + } + return Promise.all(resultPromises); + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } +}); + +// node_modules/linq-to-typescript/esm/initializer/bindLinqParallel.js +var bindLinqParallel; +var init_bindLinqParallel = __esm({ + "node_modules/linq-to-typescript/esm/initializer/bindLinqParallel.js"() { + init_aggregate3(); + init_all3(); + init_allAsync3(); + init_any3(); + init_anyAsync3(); + init_asAsync2(); + init_average3(); + init_averageAsync3(); + init_chunk3(); + init_concatenate3(); + init_contains3(); + init_containsAsync3(); + init_count3(); + init_countAsync3(); + init_defaultIfEmpty3(); + init_distinct3(); + init_distinctAsync3(); + init_each3(); + init_eachAsync3(); + init_elementAt3(); + init_elementAtOrDefault3(); + init_except3(); + init_exceptAsync3(); + init_first3(); + init_firstAsync3(); + init_firstOrDefault3(); + init_firstOrDefaultAsync3(); + init_groupBy3(); + init_groupByAsync3(); + init_groupByWithSel3(); + init_groupJoin3(); + init_groupJoinAsync3(); + init_intersect3(); + init_intersectAsync3(); + init_join3(); + init_last3(); + init_lastAsync3(); + init_lastOrDefault3(); + init_lastOrDefaultAsync3(); + init_max3(); + init_maxAsync3(); + init_min3(); + init_minAsync3(); + init_ofType3(); + init_orderBy3(); + init_orderByAsync3(); + init_orderByDescending3(); + init_orderByDescendingAsync3(); + init_partition3(); + init_partitionAsync3(); + init_reverse3(); + init_select3(); + init_selectAsync3(); + init_selectMany3(); + init_selectManyAsync3(); + init_sequenceEquals3(); + init_sequenceEqualsAsync3(); + init_single3(); + init_singleAsync3(); + init_singleOrDefault3(); + init_singleOrDefaultAsync3(); + init_skip3(); + init_skipWhile3(); + init_skipWhileAsync3(); + init_sum3(); + init_sumAsync3(); + init_take3(); + init_takeWhile3(); + init_takeWhileAsync3(); + init_toArray3(); + init_toMap3(); + init_toMapAsync3(); + init_toObject3(); + init_toObjectAsync3(); + init_toSet3(); + init_union3(); + init_unionAsync3(); + init_where3(); + init_whereAsync3(); + init_zip3(); + init_zipAsync3(); + bindLinqParallel = (object) => { + const prototype = object.prototype; + const bind = (func, key) => { + const wrapped = function(...params) { + return func(this, ...params); + }; + Object.defineProperty(wrapped, "length", { value: func.length - 1 }); + prototype[key] = wrapped; + }; + bind(aggregate5, "aggregate"); + bind(all3, "all"); + bind(allAsync3, "allAsync"); + bind(any4, "any"); + bind(anyAsync3, "anyAsync"); + bind(asAsync2, "asAsync"); + bind(average3, "average"); + bind(averageAsync3, "averageAsync"); + bind(chunk3, "chunk"); + bind(concatenate3, "concatenate"); + bind(contains3, "contains"); + bind(containsAsync3, "containsAsync"); + bind(count4, "count"); + bind(countAsync3, "countAsync"); + bind(defaultIfEmpty3, "defaultIfEmpty"); + bind(distinct3, "distinct"); + bind(distinctAsync3, "distinctAsync"); + bind(each3, "each"); + bind(eachAsync3, "eachAsync"); + bind(elementAt3, "elementAt"); + bind(elementAtOrDefault3, "elementAtOrDefault"); + bind(except3, "except"); + bind(exceptAsync3, "exceptAsync"); + bind(first4, "first"); + bind(firstAsync3, "firstAsync"); + bind(firstOrDefault4, "firstOrDefault"); + bind(firstOrDefaultAsync3, "firstOrDefaultAsync"); + bind(groupBy3, "groupBy"); + bind(groupByAsync3, "groupByAsync"); + bind(groupByWithSel3, "groupByWithSel"); + bind(groupJoin3, "groupJoin"); + bind(groupJoinAsync3, "groupJoinAsync"); + bind(groupJoin3, "groupJoin"); + bind(groupJoinAsync3, "groupJoinAsync"); + bind(intersect3, "intersect"); + bind(intersectAsync3, "intersectAsync"); + bind(join3, "joinByKey"); + bind(last4, "last"); + bind(lastAsync3, "lastAsync"); + bind(lastOrDefault4, "lastOrDefault"); + bind(lastOrDefaultAsync3, "lastOrDefaultAsync"); + bind(max4, "max"); + bind(maxAsync3, "maxAsync"); + bind(min4, "min"); + bind(minAsync3, "minAsync"); + bind(ofType3, "ofType"); + bind(orderBy3, "orderBy"); + bind(orderByAsync3, "orderByAsync"); + bind(orderByDescending3, "orderByDescending"); + bind(orderByDescendingAsync3, "orderByDescendingAsync"); + bind(partition3, "partition"); + bind(partitionAsync3, "partitionAsync"); + bind(reverse3, "reverse"); + bind(select5, "select"); + bind(selectAsync5, "selectAsync"); + bind(selectMany5, "selectMany"); + bind(selectManyAsync4, "selectManyAsync"); + bind(sequenceEquals3, "sequenceEquals"); + bind(sequenceEqualsAsync3, "sequenceEqualsAsync"); + bind(single4, "single"); + bind(singleAsync3, "singleAsync"); + bind(singleOrDefault4, "singleOrDefault"); + bind(singleOrDefaultAsync3, "singleOrDefaultAsync"); + bind(skip3, "skip"); + bind(skipWhile4, "skipWhile"); + bind(skipWhileAsync4, "skipWhileAsync"); + bind(sum4, "sum"); + bind(sumAsync3, "sumAsync"); + bind(take3, "take"); + bind(takeWhile4, "takeWhile"); + bind(takeWhileAsync4, "takeWhileAsync"); + bind(toArray3, "toArray"); + bind(toMap3, "toMap"); + bind(toMapAsync3, "toMapAsync"); + bind(toObject3, "toObject"); + bind(toObjectAsync3, "toObjectAsync"); + bind(toSet3, "toSet"); + bind(union4, "union"); + bind(unionAsync3, "unionAsync"); + bind(where4, "where"); + bind(whereAsync4, "whereAsync"); + bind(zip4, "zip"); + bind(zipAsync3, "zipAsync"); + }; + } +}); + +// node_modules/linq-to-typescript/esm/initializer/bindString.js +var bindString; +var init_bindString = __esm({ + "node_modules/linq-to-typescript/esm/initializer/bindString.js"() { + init_shared(); + init_BasicEnumerable(); + bindString = () => { + var _a; + const prototype = String.prototype; + const propertyNames = Object.getOwnPropertyNames(BasicEnumerable.prototype); + for (const prop of propertyNames) { + prototype[prop] = (_a = prototype[prop]) !== null && _a !== void 0 ? _a : BasicEnumerable.prototype[prop]; + } + prototype.first = function(predicate) { + if (predicate) { + for (let i = 0; i < this.length; i++) { + const value = this[i]; + if (predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + } + if (this.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return this[0]; + }; + prototype.firstOrDefault = function(predicate) { + if (predicate) { + for (let i = 0; i < this.length; i++) { + const value = this[i]; + if (predicate(value) === true) { + return value; + } + } + return null; + } + return this.length === 0 ? null : this[0]; + }; + prototype.count = function(predicate) { + if (predicate) { + let count5 = 0; + for (let i = 0; i < this.length; i++) { + if (predicate(this[i]) === true) { + count5++; + } + } + return count5; + } else { + return this.length; + } + }; + prototype.elementAt = function(index) { + if (index < 0 || index >= this.length) { + throw new ArgumentOutOfRangeException("index"); + } + return this[index]; + }; + prototype.elementAtOrDefault = function(index) { + return this[index] || null; + }; + prototype.last = function(predicate) { + if (predicate) { + for (let i = this.length - 1; i >= 0; i--) { + const value = this[i]; + if (predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + } else { + if (this.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return this[this.length - 1]; + } + }; + prototype.lastOrDefault = function(predicate) { + if (predicate) { + for (let i = this.length - 1; i >= 0; i--) { + const value = this[i]; + if (predicate(value) === true) { + return value; + } + } + return null; + } else { + return this.length === 0 ? null : this[this.length - 1]; + } + }; + prototype.reverse = function() { + const outer = this; + function* generator() { + for (let i = outer.length - 1; i >= 0; i--) { + yield outer[i]; + } + } + return new BasicEnumerable(generator); + }; + }; + } +}); + +// node_modules/linq-to-typescript/esm/initializer/initializeLinq.js +var initializeLinq; +var init_initializeLinq = __esm({ + "node_modules/linq-to-typescript/esm/initializer/initializeLinq.js"() { + init_bindArray(); + init_bindString(); + init_bindLinq(); + initializeLinq = () => { + bindLinq(Map); + bindLinq(Set); + bindString(); + bindArray(Array); + bindArray(Int8Array); + bindArray(Int16Array); + bindArray(Int32Array); + bindArray(Uint8Array); + bindArray(Uint8ClampedArray); + bindArray(Uint16Array); + bindArray(Uint32Array); + bindArray(Float32Array); + bindArray(Float64Array); + }; + } +}); + +// node_modules/linq-to-typescript/esm/initializer/initializer.js +var init_initializer = __esm({ + "node_modules/linq-to-typescript/esm/initializer/initializer.js"() { + init_BasicAsyncEnumerable(); + init_BasicParallelEnumerable(); + init_BasicEnumerable(); + init_bindArray(); + init_bindArrayEnumerable(); + init_bindLinq(); + init_bindLinqAsync(); + init_bindLinqParallel(); + init_bindString(); + init_initializeLinq(); + bindLinq(BasicEnumerable); + bindLinqAsync(BasicAsyncEnumerable); + bindLinqParallel(BasicParallelEnumerable); + bindArrayEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/sync/static/empty.js +var init_empty = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/empty.js"() { + init_BasicEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/sync/static/enumerateObject.js +var init_enumerateObject = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/enumerateObject.js"() { + init_BasicEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/sync/static/flatten.js +var init_flatten = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/flatten.js"() { + init_BasicEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/sync/static/from.js +var init_from = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/from.js"() { + init_BasicEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/sync/static/range.js +var init_range = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/range.js"() { + init_shared(); + init_BasicEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/sync/static/repeat.js +var init_repeat = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/repeat.js"() { + init_shared(); + init_BasicEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/sync/static/index.js +var init_static = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/index.js"() { + init_empty(); + init_enumerateObject(); + init_flatten(); + init_from(); + init_range(); + init_repeat(); + } +}); + +// node_modules/linq-to-typescript/esm/async/static/emptyAsync.js +var init_emptyAsync = __esm({ + "node_modules/linq-to-typescript/esm/async/static/emptyAsync.js"() { + init_BasicAsyncEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/async/static/enumerateObjectAsync.js +var init_enumerateObjectAsync = __esm({ + "node_modules/linq-to-typescript/esm/async/static/enumerateObjectAsync.js"() { + init_BasicAsyncEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/async/static/flattenAsync.js +var init_flattenAsync = __esm({ + "node_modules/linq-to-typescript/esm/async/static/flattenAsync.js"() { + init_BasicAsyncEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/async/static/rangeAsync.js +var init_rangeAsync = __esm({ + "node_modules/linq-to-typescript/esm/async/static/rangeAsync.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/async/static/repeatAsync.js +var init_repeatAsync = __esm({ + "node_modules/linq-to-typescript/esm/async/static/repeatAsync.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/async/static/index.js +var init_static2 = __esm({ + "node_modules/linq-to-typescript/esm/async/static/index.js"() { + init_emptyAsync(); + init_enumerateObjectAsync(); + init_flattenAsync(); + init_fromAsync(); + init_rangeAsync(); + init_repeatAsync(); + } +}); + +// node_modules/linq-to-typescript/esm/parallel/static/emptyParallel.js +var init_emptyParallel = __esm({ + "node_modules/linq-to-typescript/esm/parallel/static/emptyParallel.js"() { + init_BasicParallelEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/parallel/static/flattenParallel.js +var init_flattenParallel = __esm({ + "node_modules/linq-to-typescript/esm/parallel/static/flattenParallel.js"() { + init_BasicParallelEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/parallel/static/rangeParallel.js +var init_rangeParallel = __esm({ + "node_modules/linq-to-typescript/esm/parallel/static/rangeParallel.js"() { + init_shared(); + init_BasicParallelEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/parallel/static/repeatParallel.js +var init_repeatParallel = __esm({ + "node_modules/linq-to-typescript/esm/parallel/static/repeatParallel.js"() { + init_shared(); + init_BasicParallelEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/parallel/static/index.js +var init_static3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/static/index.js"() { + init_emptyParallel(); + init_flattenParallel(); + init_fromParallel(); + init_rangeParallel(); + init_repeatParallel(); + } +}); + +// node_modules/linq-to-typescript/esm/sync/isEnumerable.js +var init_isEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/sync/isEnumerable.js"() { + init_ArrayEnumerable(); + init_BasicEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/parallel/isParallelEnumerable.js +var init_isParallelEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/parallel/isParallelEnumerable.js"() { + init_BasicParallelEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/async/isAsyncEnumerable.js +var init_isAsyncEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/async/isAsyncEnumerable.js"() { + init_BasicAsyncEnumerable(); + } +}); + +// node_modules/linq-to-typescript/esm/index.js +var init_esm = __esm({ + "node_modules/linq-to-typescript/esm/index.js"() { + init_types(); + init_shared(); + init_ArrayEnumerable(); + init_initializer(); + init_static(); + init_static2(); + init_static3(); + init_isEnumerable(); + init_isParallelEnumerable(); + init_isAsyncEnumerable(); + } +}); + +// src/utils/linq.ts +var require_linq = __commonJS({ + "src/utils/linq.ts"() { + init_esm(); + initializeLinq(); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isFunction.js +var require_isFunction = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isFunction.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isFunction = void 0; + function isFunction(value) { + return typeof value === "function"; + } + exports2.isFunction = isFunction; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/createErrorClass.js +var require_createErrorClass = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/createErrorClass.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createErrorClass = void 0; + function createErrorClass(createImpl) { + var _super = function(instance) { + Error.call(instance); + instance.stack = new Error().stack; + }; + var ctorFunc = createImpl(_super); + ctorFunc.prototype = Object.create(Error.prototype); + ctorFunc.prototype.constructor = ctorFunc; + return ctorFunc; + } + exports2.createErrorClass = createErrorClass; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/UnsubscriptionError.js +var require_UnsubscriptionError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/UnsubscriptionError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UnsubscriptionError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports2.UnsubscriptionError = createErrorClass_1.createErrorClass(function(_super) { + return function UnsubscriptionErrorImpl(errors) { + _super(this); + this.message = errors ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function(err, i) { + return i + 1 + ") " + err.toString(); + }).join("\n ") : ""; + this.name = "UnsubscriptionError"; + this.errors = errors; + }; + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/arrRemove.js +var require_arrRemove = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/arrRemove.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.arrRemove = void 0; + function arrRemove(arr, item) { + if (arr) { + var index = arr.indexOf(item); + 0 <= index && arr.splice(index, 1); + } + } + exports2.arrRemove = arrRemove; + } +}); + +// node_modules/rxjs/dist/cjs/internal/Subscription.js +var require_Subscription = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/Subscription.js"(exports2) { + "use strict"; + var __values = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isSubscription = exports2.EMPTY_SUBSCRIPTION = exports2.Subscription = void 0; + var isFunction_1 = require_isFunction(); + var UnsubscriptionError_1 = require_UnsubscriptionError(); + var arrRemove_1 = require_arrRemove(); + var Subscription = function() { + function Subscription2(initialTeardown) { + this.initialTeardown = initialTeardown; + this.closed = false; + this._parentage = null; + this._finalizers = null; + } + Subscription2.prototype.unsubscribe = function() { + var e_1, _a, e_2, _b; + var errors; + if (!this.closed) { + this.closed = true; + var _parentage = this._parentage; + if (_parentage) { + this._parentage = null; + if (Array.isArray(_parentage)) { + try { + for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) { + var parent_1 = _parentage_1_1.value; + parent_1.remove(this); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) + _a.call(_parentage_1); + } finally { + if (e_1) + throw e_1.error; + } + } + } else { + _parentage.remove(this); + } + } + var initialFinalizer = this.initialTeardown; + if (isFunction_1.isFunction(initialFinalizer)) { + try { + initialFinalizer(); + } catch (e) { + errors = e instanceof UnsubscriptionError_1.UnsubscriptionError ? e.errors : [e]; + } + } + var _finalizers = this._finalizers; + if (_finalizers) { + this._finalizers = null; + try { + for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) { + var finalizer = _finalizers_1_1.value; + try { + execFinalizer(finalizer); + } catch (err) { + errors = errors !== null && errors !== void 0 ? errors : []; + if (err instanceof UnsubscriptionError_1.UnsubscriptionError) { + errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors)); + } else { + errors.push(err); + } + } + } + } catch (e_2_1) { + e_2 = { error: e_2_1 }; + } finally { + try { + if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) + _b.call(_finalizers_1); + } finally { + if (e_2) + throw e_2.error; + } + } + } + if (errors) { + throw new UnsubscriptionError_1.UnsubscriptionError(errors); + } + } + }; + Subscription2.prototype.add = function(teardown) { + var _a; + if (teardown && teardown !== this) { + if (this.closed) { + execFinalizer(teardown); + } else { + if (teardown instanceof Subscription2) { + if (teardown.closed || teardown._hasParent(this)) { + return; + } + teardown._addParent(this); + } + (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown); + } + } + }; + Subscription2.prototype._hasParent = function(parent) { + var _parentage = this._parentage; + return _parentage === parent || Array.isArray(_parentage) && _parentage.includes(parent); + }; + Subscription2.prototype._addParent = function(parent) { + var _parentage = this._parentage; + this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent; + }; + Subscription2.prototype._removeParent = function(parent) { + var _parentage = this._parentage; + if (_parentage === parent) { + this._parentage = null; + } else if (Array.isArray(_parentage)) { + arrRemove_1.arrRemove(_parentage, parent); + } + }; + Subscription2.prototype.remove = function(teardown) { + var _finalizers = this._finalizers; + _finalizers && arrRemove_1.arrRemove(_finalizers, teardown); + if (teardown instanceof Subscription2) { + teardown._removeParent(this); + } + }; + Subscription2.EMPTY = function() { + var empty2 = new Subscription2(); + empty2.closed = true; + return empty2; + }(); + return Subscription2; + }(); + exports2.Subscription = Subscription; + exports2.EMPTY_SUBSCRIPTION = Subscription.EMPTY; + function isSubscription(value) { + return value instanceof Subscription || value && "closed" in value && isFunction_1.isFunction(value.remove) && isFunction_1.isFunction(value.add) && isFunction_1.isFunction(value.unsubscribe); + } + exports2.isSubscription = isSubscription; + function execFinalizer(finalizer) { + if (isFunction_1.isFunction(finalizer)) { + finalizer(); + } else { + finalizer.unsubscribe(); + } + } + } +}); + +// node_modules/rxjs/dist/cjs/internal/config.js +var require_config = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/config.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.config = void 0; + exports2.config = { + onUnhandledError: null, + onStoppedNotification: null, + Promise: void 0, + useDeprecatedSynchronousErrorHandling: false, + useDeprecatedNextContext: false + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/timeoutProvider.js +var require_timeoutProvider = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/timeoutProvider.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.timeoutProvider = void 0; + exports2.timeoutProvider = { + setTimeout: function(handler, timeout) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + var delegate = exports2.timeoutProvider.delegate; + if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) { + return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args))); + } + return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args))); + }, + clearTimeout: function(handle) { + var delegate = exports2.timeoutProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle); + }, + delegate: void 0 + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/reportUnhandledError.js +var require_reportUnhandledError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/reportUnhandledError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.reportUnhandledError = void 0; + var config_1 = require_config(); + var timeoutProvider_1 = require_timeoutProvider(); + function reportUnhandledError(err) { + timeoutProvider_1.timeoutProvider.setTimeout(function() { + var onUnhandledError = config_1.config.onUnhandledError; + if (onUnhandledError) { + onUnhandledError(err); + } else { + throw err; + } + }); + } + exports2.reportUnhandledError = reportUnhandledError; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/noop.js +var require_noop = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/noop.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.noop = void 0; + function noop() { + } + exports2.noop = noop; + } +}); + +// node_modules/rxjs/dist/cjs/internal/NotificationFactories.js +var require_NotificationFactories = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/NotificationFactories.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createNotification = exports2.nextNotification = exports2.errorNotification = exports2.COMPLETE_NOTIFICATION = void 0; + exports2.COMPLETE_NOTIFICATION = function() { + return createNotification("C", void 0, void 0); + }(); + function errorNotification(error) { + return createNotification("E", void 0, error); + } + exports2.errorNotification = errorNotification; + function nextNotification(value) { + return createNotification("N", value, void 0); + } + exports2.nextNotification = nextNotification; + function createNotification(kind, value, error) { + return { + kind, + value, + error + }; + } + exports2.createNotification = createNotification; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/errorContext.js +var require_errorContext = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/errorContext.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.captureError = exports2.errorContext = void 0; + var config_1 = require_config(); + var context = null; + function errorContext(cb) { + if (config_1.config.useDeprecatedSynchronousErrorHandling) { + var isRoot = !context; + if (isRoot) { + context = { errorThrown: false, error: null }; + } + cb(); + if (isRoot) { + var _a = context, errorThrown = _a.errorThrown, error = _a.error; + context = null; + if (errorThrown) { + throw error; + } + } + } else { + cb(); + } + } + exports2.errorContext = errorContext; + function captureError(err) { + if (config_1.config.useDeprecatedSynchronousErrorHandling && context) { + context.errorThrown = true; + context.error = err; + } + } + exports2.captureError = captureError; + } +}); + +// node_modules/rxjs/dist/cjs/internal/Subscriber.js +var require_Subscriber = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/Subscriber.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.EMPTY_OBSERVER = exports2.SafeSubscriber = exports2.Subscriber = void 0; + var isFunction_1 = require_isFunction(); + var Subscription_1 = require_Subscription(); + var config_1 = require_config(); + var reportUnhandledError_1 = require_reportUnhandledError(); + var noop_1 = require_noop(); + var NotificationFactories_1 = require_NotificationFactories(); + var timeoutProvider_1 = require_timeoutProvider(); + var errorContext_1 = require_errorContext(); + var Subscriber = function(_super) { + __extends(Subscriber2, _super); + function Subscriber2(destination) { + var _this = _super.call(this) || this; + _this.isStopped = false; + if (destination) { + _this.destination = destination; + if (Subscription_1.isSubscription(destination)) { + destination.add(_this); + } + } else { + _this.destination = exports2.EMPTY_OBSERVER; + } + return _this; + } + Subscriber2.create = function(next, error, complete) { + return new SafeSubscriber(next, error, complete); + }; + Subscriber2.prototype.next = function(value) { + if (this.isStopped) { + handleStoppedNotification(NotificationFactories_1.nextNotification(value), this); + } else { + this._next(value); + } + }; + Subscriber2.prototype.error = function(err) { + if (this.isStopped) { + handleStoppedNotification(NotificationFactories_1.errorNotification(err), this); + } else { + this.isStopped = true; + this._error(err); + } + }; + Subscriber2.prototype.complete = function() { + if (this.isStopped) { + handleStoppedNotification(NotificationFactories_1.COMPLETE_NOTIFICATION, this); + } else { + this.isStopped = true; + this._complete(); + } + }; + Subscriber2.prototype.unsubscribe = function() { + if (!this.closed) { + this.isStopped = true; + _super.prototype.unsubscribe.call(this); + this.destination = null; + } + }; + Subscriber2.prototype._next = function(value) { + this.destination.next(value); + }; + Subscriber2.prototype._error = function(err) { + try { + this.destination.error(err); + } finally { + this.unsubscribe(); + } + }; + Subscriber2.prototype._complete = function() { + try { + this.destination.complete(); + } finally { + this.unsubscribe(); + } + }; + return Subscriber2; + }(Subscription_1.Subscription); + exports2.Subscriber = Subscriber; + var _bind = Function.prototype.bind; + function bind(fn, thisArg) { + return _bind.call(fn, thisArg); + } + var ConsumerObserver = function() { + function ConsumerObserver2(partialObserver) { + this.partialObserver = partialObserver; + } + ConsumerObserver2.prototype.next = function(value) { + var partialObserver = this.partialObserver; + if (partialObserver.next) { + try { + partialObserver.next(value); + } catch (error) { + handleUnhandledError(error); + } + } + }; + ConsumerObserver2.prototype.error = function(err) { + var partialObserver = this.partialObserver; + if (partialObserver.error) { + try { + partialObserver.error(err); + } catch (error) { + handleUnhandledError(error); + } + } else { + handleUnhandledError(err); + } + }; + ConsumerObserver2.prototype.complete = function() { + var partialObserver = this.partialObserver; + if (partialObserver.complete) { + try { + partialObserver.complete(); + } catch (error) { + handleUnhandledError(error); + } + } + }; + return ConsumerObserver2; + }(); + var SafeSubscriber = function(_super) { + __extends(SafeSubscriber2, _super); + function SafeSubscriber2(observerOrNext, error, complete) { + var _this = _super.call(this) || this; + var partialObserver; + if (isFunction_1.isFunction(observerOrNext) || !observerOrNext) { + partialObserver = { + next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : void 0, + error: error !== null && error !== void 0 ? error : void 0, + complete: complete !== null && complete !== void 0 ? complete : void 0 + }; + } else { + var context_1; + if (_this && config_1.config.useDeprecatedNextContext) { + context_1 = Object.create(observerOrNext); + context_1.unsubscribe = function() { + return _this.unsubscribe(); + }; + partialObserver = { + next: observerOrNext.next && bind(observerOrNext.next, context_1), + error: observerOrNext.error && bind(observerOrNext.error, context_1), + complete: observerOrNext.complete && bind(observerOrNext.complete, context_1) + }; + } else { + partialObserver = observerOrNext; + } + } + _this.destination = new ConsumerObserver(partialObserver); + return _this; + } + return SafeSubscriber2; + }(Subscriber); + exports2.SafeSubscriber = SafeSubscriber; + function handleUnhandledError(error) { + if (config_1.config.useDeprecatedSynchronousErrorHandling) { + errorContext_1.captureError(error); + } else { + reportUnhandledError_1.reportUnhandledError(error); + } + } + function defaultErrorHandler(err) { + throw err; + } + function handleStoppedNotification(notification, subscriber) { + var onStoppedNotification = config_1.config.onStoppedNotification; + onStoppedNotification && timeoutProvider_1.timeoutProvider.setTimeout(function() { + return onStoppedNotification(notification, subscriber); + }); + } + exports2.EMPTY_OBSERVER = { + closed: true, + next: noop_1.noop, + error: defaultErrorHandler, + complete: noop_1.noop + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/symbol/observable.js +var require_observable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/symbol/observable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.observable = void 0; + exports2.observable = function() { + return typeof Symbol === "function" && Symbol.observable || "@@observable"; + }(); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/identity.js +var require_identity = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/identity.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.identity = void 0; + function identity(x) { + return x; + } + exports2.identity = identity; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/pipe.js +var require_pipe = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/pipe.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.pipeFromArray = exports2.pipe = void 0; + var identity_1 = require_identity(); + function pipe() { + var fns = []; + for (var _i = 0; _i < arguments.length; _i++) { + fns[_i] = arguments[_i]; + } + return pipeFromArray(fns); + } + exports2.pipe = pipe; + function pipeFromArray(fns) { + if (fns.length === 0) { + return identity_1.identity; + } + if (fns.length === 1) { + return fns[0]; + } + return function piped(input) { + return fns.reduce(function(prev, fn) { + return fn(prev); + }, input); + }; + } + exports2.pipeFromArray = pipeFromArray; + } +}); + +// node_modules/rxjs/dist/cjs/internal/Observable.js +var require_Observable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/Observable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Observable = void 0; + var Subscriber_1 = require_Subscriber(); + var Subscription_1 = require_Subscription(); + var observable_1 = require_observable(); + var pipe_1 = require_pipe(); + var config_1 = require_config(); + var isFunction_1 = require_isFunction(); + var errorContext_1 = require_errorContext(); + var Observable2 = function() { + function Observable3(subscribe) { + if (subscribe) { + this._subscribe = subscribe; + } + } + Observable3.prototype.lift = function(operator) { + var observable = new Observable3(); + observable.source = this; + observable.operator = operator; + return observable; + }; + Observable3.prototype.subscribe = function(observerOrNext, error, complete) { + var _this = this; + var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new Subscriber_1.SafeSubscriber(observerOrNext, error, complete); + errorContext_1.errorContext(function() { + var _a = _this, operator = _a.operator, source = _a.source; + subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber)); + }); + return subscriber; + }; + Observable3.prototype._trySubscribe = function(sink) { + try { + return this._subscribe(sink); + } catch (err) { + sink.error(err); + } + }; + Observable3.prototype.forEach = function(next, promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function(resolve, reject) { + var subscriber = new Subscriber_1.SafeSubscriber({ + next: function(value) { + try { + next(value); + } catch (err) { + reject(err); + subscriber.unsubscribe(); + } + }, + error: reject, + complete: resolve + }); + _this.subscribe(subscriber); + }); + }; + Observable3.prototype._subscribe = function(subscriber) { + var _a; + return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber); + }; + Observable3.prototype[observable_1.observable] = function() { + return this; + }; + Observable3.prototype.pipe = function() { + var operations = []; + for (var _i = 0; _i < arguments.length; _i++) { + operations[_i] = arguments[_i]; + } + return pipe_1.pipeFromArray(operations)(this); + }; + Observable3.prototype.toPromise = function(promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function(resolve, reject) { + var value; + _this.subscribe(function(x) { + return value = x; + }, function(err) { + return reject(err); + }, function() { + return resolve(value); + }); + }); + }; + Observable3.create = function(subscribe) { + return new Observable3(subscribe); + }; + return Observable3; + }(); + exports2.Observable = Observable2; + function getPromiseCtor(promiseCtor) { + var _a; + return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config_1.config.Promise) !== null && _a !== void 0 ? _a : Promise; + } + function isObserver(value) { + return value && isFunction_1.isFunction(value.next) && isFunction_1.isFunction(value.error) && isFunction_1.isFunction(value.complete); + } + function isSubscriber(value) { + return value && value instanceof Subscriber_1.Subscriber || isObserver(value) && Subscription_1.isSubscription(value); + } + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/lift.js +var require_lift = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/lift.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.operate = exports2.hasLift = void 0; + var isFunction_1 = require_isFunction(); + function hasLift(source) { + return isFunction_1.isFunction(source === null || source === void 0 ? void 0 : source.lift); + } + exports2.hasLift = hasLift; + function operate(init) { + return function(source) { + if (hasLift(source)) { + return source.lift(function(liftedSource) { + try { + return init(liftedSource, this); + } catch (err) { + this.error(err); + } + }); + } + throw new TypeError("Unable to lift unknown Observable type"); + }; + } + exports2.operate = operate; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js +var require_OperatorSubscriber = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.OperatorSubscriber = exports2.createOperatorSubscriber = void 0; + var Subscriber_1 = require_Subscriber(); + function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { + return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); + } + exports2.createOperatorSubscriber = createOperatorSubscriber; + var OperatorSubscriber = function(_super) { + __extends(OperatorSubscriber2, _super); + function OperatorSubscriber2(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { + var _this = _super.call(this, destination) || this; + _this.onFinalize = onFinalize; + _this.shouldUnsubscribe = shouldUnsubscribe; + _this._next = onNext ? function(value) { + try { + onNext(value); + } catch (err) { + destination.error(err); + } + } : _super.prototype._next; + _this._error = onError ? function(err) { + try { + onError(err); + } catch (err2) { + destination.error(err2); + } finally { + this.unsubscribe(); + } + } : _super.prototype._error; + _this._complete = onComplete ? function() { + try { + onComplete(); + } catch (err) { + destination.error(err); + } finally { + this.unsubscribe(); + } + } : _super.prototype._complete; + return _this; + } + OperatorSubscriber2.prototype.unsubscribe = function() { + var _a; + if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { + var closed_1 = this.closed; + _super.prototype.unsubscribe.call(this); + !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); + } + }; + return OperatorSubscriber2; + }(Subscriber_1.Subscriber); + exports2.OperatorSubscriber = OperatorSubscriber; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/refCount.js +var require_refCount = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/refCount.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.refCount = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function refCount() { + return lift_1.operate(function(source, subscriber) { + var connection = null; + source._refCount++; + var refCounter = OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, void 0, void 0, function() { + if (!source || source._refCount <= 0 || 0 < --source._refCount) { + connection = null; + return; + } + var sharedConnection = source._connection; + var conn = connection; + connection = null; + if (sharedConnection && (!conn || sharedConnection === conn)) { + sharedConnection.unsubscribe(); + } + subscriber.unsubscribe(); + }); + source.subscribe(refCounter); + if (!refCounter.closed) { + connection = source.connect(); + } + }); + } + exports2.refCount = refCount; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/ConnectableObservable.js +var require_ConnectableObservable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/ConnectableObservable.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ConnectableObservable = void 0; + var Observable_1 = require_Observable(); + var Subscription_1 = require_Subscription(); + var refCount_1 = require_refCount(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var lift_1 = require_lift(); + var ConnectableObservable = function(_super) { + __extends(ConnectableObservable2, _super); + function ConnectableObservable2(source, subjectFactory) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subjectFactory = subjectFactory; + _this._subject = null; + _this._refCount = 0; + _this._connection = null; + if (lift_1.hasLift(source)) { + _this.lift = source.lift; + } + return _this; + } + ConnectableObservable2.prototype._subscribe = function(subscriber) { + return this.getSubject().subscribe(subscriber); + }; + ConnectableObservable2.prototype.getSubject = function() { + var subject = this._subject; + if (!subject || subject.isStopped) { + this._subject = this.subjectFactory(); + } + return this._subject; + }; + ConnectableObservable2.prototype._teardown = function() { + this._refCount = 0; + var _connection = this._connection; + this._subject = this._connection = null; + _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe(); + }; + ConnectableObservable2.prototype.connect = function() { + var _this = this; + var connection = this._connection; + if (!connection) { + connection = this._connection = new Subscription_1.Subscription(); + var subject_1 = this.getSubject(); + connection.add(this.source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subject_1, void 0, function() { + _this._teardown(); + subject_1.complete(); + }, function(err) { + _this._teardown(); + subject_1.error(err); + }, function() { + return _this._teardown(); + }))); + if (connection.closed) { + this._connection = null; + connection = Subscription_1.Subscription.EMPTY; + } + } + return connection; + }; + ConnectableObservable2.prototype.refCount = function() { + return refCount_1.refCount()(this); + }; + return ConnectableObservable2; + }(Observable_1.Observable); + exports2.ConnectableObservable = ConnectableObservable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/performanceTimestampProvider.js +var require_performanceTimestampProvider = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/performanceTimestampProvider.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.performanceTimestampProvider = void 0; + exports2.performanceTimestampProvider = { + now: function() { + return (exports2.performanceTimestampProvider.delegate || performance).now(); + }, + delegate: void 0 + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/animationFrameProvider.js +var require_animationFrameProvider = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/animationFrameProvider.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.animationFrameProvider = void 0; + var Subscription_1 = require_Subscription(); + exports2.animationFrameProvider = { + schedule: function(callback) { + var request = requestAnimationFrame; + var cancel = cancelAnimationFrame; + var delegate = exports2.animationFrameProvider.delegate; + if (delegate) { + request = delegate.requestAnimationFrame; + cancel = delegate.cancelAnimationFrame; + } + var handle = request(function(timestamp) { + cancel = void 0; + callback(timestamp); + }); + return new Subscription_1.Subscription(function() { + return cancel === null || cancel === void 0 ? void 0 : cancel(handle); + }); + }, + requestAnimationFrame: function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var delegate = exports2.animationFrameProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args))); + }, + cancelAnimationFrame: function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var delegate = exports2.animationFrameProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args))); + }, + delegate: void 0 + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/dom/animationFrames.js +var require_animationFrames = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/dom/animationFrames.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.animationFrames = void 0; + var Observable_1 = require_Observable(); + var Subscription_1 = require_Subscription(); + var performanceTimestampProvider_1 = require_performanceTimestampProvider(); + var animationFrameProvider_1 = require_animationFrameProvider(); + function animationFrames(timestampProvider) { + return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES; + } + exports2.animationFrames = animationFrames; + function animationFramesFactory(timestampProvider) { + var schedule = animationFrameProvider_1.animationFrameProvider.schedule; + return new Observable_1.Observable(function(subscriber) { + var subscription = new Subscription_1.Subscription(); + var provider = timestampProvider || performanceTimestampProvider_1.performanceTimestampProvider; + var start = provider.now(); + var run = function(timestamp) { + var now = provider.now(); + subscriber.next({ + timestamp: timestampProvider ? now : timestamp, + elapsed: now - start + }); + if (!subscriber.closed) { + subscription.add(schedule(run)); + } + }; + subscription.add(schedule(run)); + return subscription; + }); + } + var DEFAULT_ANIMATION_FRAMES = animationFramesFactory(); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/ObjectUnsubscribedError.js +var require_ObjectUnsubscribedError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/ObjectUnsubscribedError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ObjectUnsubscribedError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports2.ObjectUnsubscribedError = createErrorClass_1.createErrorClass(function(_super) { + return function ObjectUnsubscribedErrorImpl() { + _super(this); + this.name = "ObjectUnsubscribedError"; + this.message = "object unsubscribed"; + }; + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/Subject.js +var require_Subject = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/Subject.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + var __values = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AnonymousSubject = exports2.Subject = void 0; + var Observable_1 = require_Observable(); + var Subscription_1 = require_Subscription(); + var ObjectUnsubscribedError_1 = require_ObjectUnsubscribedError(); + var arrRemove_1 = require_arrRemove(); + var errorContext_1 = require_errorContext(); + var Subject2 = function(_super) { + __extends(Subject3, _super); + function Subject3() { + var _this = _super.call(this) || this; + _this.closed = false; + _this.currentObservers = null; + _this.observers = []; + _this.isStopped = false; + _this.hasError = false; + _this.thrownError = null; + return _this; + } + Subject3.prototype.lift = function(operator) { + var subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + }; + Subject3.prototype._throwIfClosed = function() { + if (this.closed) { + throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError(); + } + }; + Subject3.prototype.next = function(value) { + var _this = this; + errorContext_1.errorContext(function() { + var e_1, _a; + _this._throwIfClosed(); + if (!_this.isStopped) { + if (!_this.currentObservers) { + _this.currentObservers = Array.from(_this.observers); + } + try { + for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) { + var observer = _c.value; + observer.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (_c && !_c.done && (_a = _b.return)) + _a.call(_b); + } finally { + if (e_1) + throw e_1.error; + } + } + } + }); + }; + Subject3.prototype.error = function(err) { + var _this = this; + errorContext_1.errorContext(function() { + _this._throwIfClosed(); + if (!_this.isStopped) { + _this.hasError = _this.isStopped = true; + _this.thrownError = err; + var observers = _this.observers; + while (observers.length) { + observers.shift().error(err); + } + } + }); + }; + Subject3.prototype.complete = function() { + var _this = this; + errorContext_1.errorContext(function() { + _this._throwIfClosed(); + if (!_this.isStopped) { + _this.isStopped = true; + var observers = _this.observers; + while (observers.length) { + observers.shift().complete(); + } + } + }); + }; + Subject3.prototype.unsubscribe = function() { + this.isStopped = this.closed = true; + this.observers = this.currentObservers = null; + }; + Object.defineProperty(Subject3.prototype, "observed", { + get: function() { + var _a; + return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0; + }, + enumerable: false, + configurable: true + }); + Subject3.prototype._trySubscribe = function(subscriber) { + this._throwIfClosed(); + return _super.prototype._trySubscribe.call(this, subscriber); + }; + Subject3.prototype._subscribe = function(subscriber) { + this._throwIfClosed(); + this._checkFinalizedStatuses(subscriber); + return this._innerSubscribe(subscriber); + }; + Subject3.prototype._innerSubscribe = function(subscriber) { + var _this = this; + var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers; + if (hasError || isStopped) { + return Subscription_1.EMPTY_SUBSCRIPTION; + } + this.currentObservers = null; + observers.push(subscriber); + return new Subscription_1.Subscription(function() { + _this.currentObservers = null; + arrRemove_1.arrRemove(observers, subscriber); + }); + }; + Subject3.prototype._checkFinalizedStatuses = function(subscriber) { + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped; + if (hasError) { + subscriber.error(thrownError); + } else if (isStopped) { + subscriber.complete(); + } + }; + Subject3.prototype.asObservable = function() { + var observable = new Observable_1.Observable(); + observable.source = this; + return observable; + }; + Subject3.create = function(destination, source) { + return new AnonymousSubject(destination, source); + }; + return Subject3; + }(Observable_1.Observable); + exports2.Subject = Subject2; + var AnonymousSubject = function(_super) { + __extends(AnonymousSubject2, _super); + function AnonymousSubject2(destination, source) { + var _this = _super.call(this) || this; + _this.destination = destination; + _this.source = source; + return _this; + } + AnonymousSubject2.prototype.next = function(value) { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value); + }; + AnonymousSubject2.prototype.error = function(err) { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err); + }; + AnonymousSubject2.prototype.complete = function() { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a); + }; + AnonymousSubject2.prototype._subscribe = function(subscriber) { + var _a, _b; + return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : Subscription_1.EMPTY_SUBSCRIPTION; + }; + return AnonymousSubject2; + }(Subject2); + exports2.AnonymousSubject = AnonymousSubject; + } +}); + +// node_modules/rxjs/dist/cjs/internal/BehaviorSubject.js +var require_BehaviorSubject = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/BehaviorSubject.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BehaviorSubject = void 0; + var Subject_1 = require_Subject(); + var BehaviorSubject = function(_super) { + __extends(BehaviorSubject2, _super); + function BehaviorSubject2(_value) { + var _this = _super.call(this) || this; + _this._value = _value; + return _this; + } + Object.defineProperty(BehaviorSubject2.prototype, "value", { + get: function() { + return this.getValue(); + }, + enumerable: false, + configurable: true + }); + BehaviorSubject2.prototype._subscribe = function(subscriber) { + var subscription = _super.prototype._subscribe.call(this, subscriber); + !subscription.closed && subscriber.next(this._value); + return subscription; + }; + BehaviorSubject2.prototype.getValue = function() { + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value; + if (hasError) { + throw thrownError; + } + this._throwIfClosed(); + return _value; + }; + BehaviorSubject2.prototype.next = function(value) { + _super.prototype.next.call(this, this._value = value); + }; + return BehaviorSubject2; + }(Subject_1.Subject); + exports2.BehaviorSubject = BehaviorSubject; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/dateTimestampProvider.js +var require_dateTimestampProvider = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/dateTimestampProvider.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.dateTimestampProvider = void 0; + exports2.dateTimestampProvider = { + now: function() { + return (exports2.dateTimestampProvider.delegate || Date).now(); + }, + delegate: void 0 + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/ReplaySubject.js +var require_ReplaySubject = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/ReplaySubject.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ReplaySubject = void 0; + var Subject_1 = require_Subject(); + var dateTimestampProvider_1 = require_dateTimestampProvider(); + var ReplaySubject = function(_super) { + __extends(ReplaySubject2, _super); + function ReplaySubject2(_bufferSize, _windowTime, _timestampProvider) { + if (_bufferSize === void 0) { + _bufferSize = Infinity; + } + if (_windowTime === void 0) { + _windowTime = Infinity; + } + if (_timestampProvider === void 0) { + _timestampProvider = dateTimestampProvider_1.dateTimestampProvider; + } + var _this = _super.call(this) || this; + _this._bufferSize = _bufferSize; + _this._windowTime = _windowTime; + _this._timestampProvider = _timestampProvider; + _this._buffer = []; + _this._infiniteTimeWindow = true; + _this._infiniteTimeWindow = _windowTime === Infinity; + _this._bufferSize = Math.max(1, _bufferSize); + _this._windowTime = Math.max(1, _windowTime); + return _this; + } + ReplaySubject2.prototype.next = function(value) { + var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime; + if (!isStopped) { + _buffer.push(value); + !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime); + } + this._trimBuffer(); + _super.prototype.next.call(this, value); + }; + ReplaySubject2.prototype._subscribe = function(subscriber) { + this._throwIfClosed(); + this._trimBuffer(); + var subscription = this._innerSubscribe(subscriber); + var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer; + var copy = _buffer.slice(); + for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) { + subscriber.next(copy[i]); + } + this._checkFinalizedStatuses(subscriber); + return subscription; + }; + ReplaySubject2.prototype._trimBuffer = function() { + var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow; + var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize; + _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize); + if (!_infiniteTimeWindow) { + var now = _timestampProvider.now(); + var last5 = 0; + for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) { + last5 = i; + } + last5 && _buffer.splice(0, last5 + 1); + } + }; + return ReplaySubject2; + }(Subject_1.Subject); + exports2.ReplaySubject = ReplaySubject; + } +}); + +// node_modules/rxjs/dist/cjs/internal/AsyncSubject.js +var require_AsyncSubject = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/AsyncSubject.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AsyncSubject = void 0; + var Subject_1 = require_Subject(); + var AsyncSubject = function(_super) { + __extends(AsyncSubject2, _super); + function AsyncSubject2() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._value = null; + _this._hasValue = false; + _this._isComplete = false; + return _this; + } + AsyncSubject2.prototype._checkFinalizedStatuses = function(subscriber) { + var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete; + if (hasError) { + subscriber.error(thrownError); + } else if (isStopped || _isComplete) { + _hasValue && subscriber.next(_value); + subscriber.complete(); + } + }; + AsyncSubject2.prototype.next = function(value) { + if (!this.isStopped) { + this._value = value; + this._hasValue = true; + } + }; + AsyncSubject2.prototype.complete = function() { + var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete; + if (!_isComplete) { + this._isComplete = true; + _hasValue && _super.prototype.next.call(this, _value); + _super.prototype.complete.call(this); + } + }; + return AsyncSubject2; + }(Subject_1.Subject); + exports2.AsyncSubject = AsyncSubject; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/Action.js +var require_Action = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/Action.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Action = void 0; + var Subscription_1 = require_Subscription(); + var Action = function(_super) { + __extends(Action2, _super); + function Action2(scheduler, work) { + return _super.call(this) || this; + } + Action2.prototype.schedule = function(state, delay) { + if (delay === void 0) { + delay = 0; + } + return this; + }; + return Action2; + }(Subscription_1.Subscription); + exports2.Action = Action; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/intervalProvider.js +var require_intervalProvider = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/intervalProvider.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.intervalProvider = void 0; + exports2.intervalProvider = { + setInterval: function(handler, timeout) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + var delegate = exports2.intervalProvider.delegate; + if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) { + return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args))); + } + return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args))); + }, + clearInterval: function(handle) { + var delegate = exports2.intervalProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle); + }, + delegate: void 0 + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/AsyncAction.js +var require_AsyncAction = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/AsyncAction.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AsyncAction = void 0; + var Action_1 = require_Action(); + var intervalProvider_1 = require_intervalProvider(); + var arrRemove_1 = require_arrRemove(); + var AsyncAction = function(_super) { + __extends(AsyncAction2, _super); + function AsyncAction2(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.pending = false; + return _this; + } + AsyncAction2.prototype.schedule = function(state, delay) { + if (delay === void 0) { + delay = 0; + } + if (this.closed) { + return this; + } + this.state = state; + var id = this.id; + var scheduler = this.scheduler; + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, delay); + } + this.pending = true; + this.delay = delay; + this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); + return this; + }; + AsyncAction2.prototype.requestAsyncId = function(scheduler, _id, delay) { + if (delay === void 0) { + delay = 0; + } + return intervalProvider_1.intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay); + }; + AsyncAction2.prototype.recycleAsyncId = function(_scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay != null && this.delay === delay && this.pending === false) { + return id; + } + intervalProvider_1.intervalProvider.clearInterval(id); + return void 0; + }; + AsyncAction2.prototype.execute = function(state, delay) { + if (this.closed) { + return new Error("executing a cancelled action"); + } + this.pending = false; + var error = this._execute(state, delay); + if (error) { + return error; + } else if (this.pending === false && this.id != null) { + this.id = this.recycleAsyncId(this.scheduler, this.id, null); + } + }; + AsyncAction2.prototype._execute = function(state, _delay) { + var errored = false; + var errorValue; + try { + this.work(state); + } catch (e) { + errored = true; + errorValue = e ? e : new Error("Scheduled action threw falsy error"); + } + if (errored) { + this.unsubscribe(); + return errorValue; + } + }; + AsyncAction2.prototype.unsubscribe = function() { + if (!this.closed) { + var _a = this, id = _a.id, scheduler = _a.scheduler; + var actions = scheduler.actions; + this.work = this.state = this.scheduler = null; + this.pending = false; + arrRemove_1.arrRemove(actions, this); + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, null); + } + this.delay = null; + _super.prototype.unsubscribe.call(this); + } + }; + return AsyncAction2; + }(Action_1.Action); + exports2.AsyncAction = AsyncAction; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/Immediate.js +var require_Immediate = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/Immediate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TestTools = exports2.Immediate = void 0; + var nextHandle = 1; + var resolved; + var activeHandles = {}; + function findAndClearHandle(handle) { + if (handle in activeHandles) { + delete activeHandles[handle]; + return true; + } + return false; + } + exports2.Immediate = { + setImmediate: function(cb) { + var handle = nextHandle++; + activeHandles[handle] = true; + if (!resolved) { + resolved = Promise.resolve(); + } + resolved.then(function() { + return findAndClearHandle(handle) && cb(); + }); + return handle; + }, + clearImmediate: function(handle) { + findAndClearHandle(handle); + } + }; + exports2.TestTools = { + pending: function() { + return Object.keys(activeHandles).length; + } + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/immediateProvider.js +var require_immediateProvider = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/immediateProvider.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.immediateProvider = void 0; + var Immediate_1 = require_Immediate(); + var setImmediate = Immediate_1.Immediate.setImmediate; + var clearImmediate = Immediate_1.Immediate.clearImmediate; + exports2.immediateProvider = { + setImmediate: function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var delegate = exports2.immediateProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate).apply(void 0, __spreadArray([], __read(args))); + }, + clearImmediate: function(handle) { + var delegate = exports2.immediateProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle); + }, + delegate: void 0 + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/AsapAction.js +var require_AsapAction = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/AsapAction.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AsapAction = void 0; + var AsyncAction_1 = require_AsyncAction(); + var immediateProvider_1 = require_immediateProvider(); + var AsapAction = function(_super) { + __extends(AsapAction2, _super); + function AsapAction2(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + AsapAction2.prototype.requestAsyncId = function(scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler._scheduled || (scheduler._scheduled = immediateProvider_1.immediateProvider.setImmediate(scheduler.flush.bind(scheduler, void 0))); + }; + AsapAction2.prototype.recycleAsyncId = function(scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay != null && delay > 0 || delay == null && this.delay > 0) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + if (!scheduler.actions.some(function(action) { + return action.id === id; + })) { + immediateProvider_1.immediateProvider.clearImmediate(id); + scheduler._scheduled = void 0; + } + return void 0; + }; + return AsapAction2; + }(AsyncAction_1.AsyncAction); + exports2.AsapAction = AsapAction; + } +}); + +// node_modules/rxjs/dist/cjs/internal/Scheduler.js +var require_Scheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/Scheduler.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Scheduler = void 0; + var dateTimestampProvider_1 = require_dateTimestampProvider(); + var Scheduler = function() { + function Scheduler2(schedulerActionCtor, now) { + if (now === void 0) { + now = Scheduler2.now; + } + this.schedulerActionCtor = schedulerActionCtor; + this.now = now; + } + Scheduler2.prototype.schedule = function(work, delay, state) { + if (delay === void 0) { + delay = 0; + } + return new this.schedulerActionCtor(this, work).schedule(state, delay); + }; + Scheduler2.now = dateTimestampProvider_1.dateTimestampProvider.now; + return Scheduler2; + }(); + exports2.Scheduler = Scheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/AsyncScheduler.js +var require_AsyncScheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/AsyncScheduler.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AsyncScheduler = void 0; + var Scheduler_1 = require_Scheduler(); + var AsyncScheduler = function(_super) { + __extends(AsyncScheduler2, _super); + function AsyncScheduler2(SchedulerAction, now) { + if (now === void 0) { + now = Scheduler_1.Scheduler.now; + } + var _this = _super.call(this, SchedulerAction, now) || this; + _this.actions = []; + _this._active = false; + _this._scheduled = void 0; + return _this; + } + AsyncScheduler2.prototype.flush = function(action) { + var actions = this.actions; + if (this._active) { + actions.push(action); + return; + } + var error; + this._active = true; + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (action = actions.shift()); + this._active = false; + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AsyncScheduler2; + }(Scheduler_1.Scheduler); + exports2.AsyncScheduler = AsyncScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/AsapScheduler.js +var require_AsapScheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/AsapScheduler.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AsapScheduler = void 0; + var AsyncScheduler_1 = require_AsyncScheduler(); + var AsapScheduler = function(_super) { + __extends(AsapScheduler2, _super); + function AsapScheduler2() { + return _super !== null && _super.apply(this, arguments) || this; + } + AsapScheduler2.prototype.flush = function(action) { + this._active = true; + var flushId = this._scheduled; + this._scheduled = void 0; + var actions = this.actions; + var error; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while ((action = actions[0]) && action.id === flushId && actions.shift()); + this._active = false; + if (error) { + while ((action = actions[0]) && action.id === flushId && actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AsapScheduler2; + }(AsyncScheduler_1.AsyncScheduler); + exports2.AsapScheduler = AsapScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/asap.js +var require_asap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/asap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.asap = exports2.asapScheduler = void 0; + var AsapAction_1 = require_AsapAction(); + var AsapScheduler_1 = require_AsapScheduler(); + exports2.asapScheduler = new AsapScheduler_1.AsapScheduler(AsapAction_1.AsapAction); + exports2.asap = exports2.asapScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/async.js +var require_async = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/async.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.async = exports2.asyncScheduler = void 0; + var AsyncAction_1 = require_AsyncAction(); + var AsyncScheduler_1 = require_AsyncScheduler(); + exports2.asyncScheduler = new AsyncScheduler_1.AsyncScheduler(AsyncAction_1.AsyncAction); + exports2.async = exports2.asyncScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/QueueAction.js +var require_QueueAction = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/QueueAction.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.QueueAction = void 0; + var AsyncAction_1 = require_AsyncAction(); + var QueueAction = function(_super) { + __extends(QueueAction2, _super); + function QueueAction2(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + QueueAction2.prototype.schedule = function(state, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay > 0) { + return _super.prototype.schedule.call(this, state, delay); + } + this.delay = delay; + this.state = state; + this.scheduler.flush(this); + return this; + }; + QueueAction2.prototype.execute = function(state, delay) { + return delay > 0 || this.closed ? _super.prototype.execute.call(this, state, delay) : this._execute(state, delay); + }; + QueueAction2.prototype.requestAsyncId = function(scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay != null && delay > 0 || delay == null && this.delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + return scheduler.flush(this); + }; + return QueueAction2; + }(AsyncAction_1.AsyncAction); + exports2.QueueAction = QueueAction; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/QueueScheduler.js +var require_QueueScheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/QueueScheduler.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.QueueScheduler = void 0; + var AsyncScheduler_1 = require_AsyncScheduler(); + var QueueScheduler = function(_super) { + __extends(QueueScheduler2, _super); + function QueueScheduler2() { + return _super !== null && _super.apply(this, arguments) || this; + } + return QueueScheduler2; + }(AsyncScheduler_1.AsyncScheduler); + exports2.QueueScheduler = QueueScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/queue.js +var require_queue = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/queue.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.queue = exports2.queueScheduler = void 0; + var QueueAction_1 = require_QueueAction(); + var QueueScheduler_1 = require_QueueScheduler(); + exports2.queueScheduler = new QueueScheduler_1.QueueScheduler(QueueAction_1.QueueAction); + exports2.queue = exports2.queueScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameAction.js +var require_AnimationFrameAction = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameAction.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AnimationFrameAction = void 0; + var AsyncAction_1 = require_AsyncAction(); + var animationFrameProvider_1 = require_animationFrameProvider(); + var AnimationFrameAction = function(_super) { + __extends(AnimationFrameAction2, _super); + function AnimationFrameAction2(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + AnimationFrameAction2.prototype.requestAsyncId = function(scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider_1.animationFrameProvider.requestAnimationFrame(function() { + return scheduler.flush(void 0); + })); + }; + AnimationFrameAction2.prototype.recycleAsyncId = function(scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay != null && delay > 0 || delay == null && this.delay > 0) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + if (!scheduler.actions.some(function(action) { + return action.id === id; + })) { + animationFrameProvider_1.animationFrameProvider.cancelAnimationFrame(id); + scheduler._scheduled = void 0; + } + return void 0; + }; + return AnimationFrameAction2; + }(AsyncAction_1.AsyncAction); + exports2.AnimationFrameAction = AnimationFrameAction; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameScheduler.js +var require_AnimationFrameScheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameScheduler.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AnimationFrameScheduler = void 0; + var AsyncScheduler_1 = require_AsyncScheduler(); + var AnimationFrameScheduler = function(_super) { + __extends(AnimationFrameScheduler2, _super); + function AnimationFrameScheduler2() { + return _super !== null && _super.apply(this, arguments) || this; + } + AnimationFrameScheduler2.prototype.flush = function(action) { + this._active = true; + var flushId = this._scheduled; + this._scheduled = void 0; + var actions = this.actions; + var error; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while ((action = actions[0]) && action.id === flushId && actions.shift()); + this._active = false; + if (error) { + while ((action = actions[0]) && action.id === flushId && actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AnimationFrameScheduler2; + }(AsyncScheduler_1.AsyncScheduler); + exports2.AnimationFrameScheduler = AnimationFrameScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/animationFrame.js +var require_animationFrame = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/animationFrame.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.animationFrame = exports2.animationFrameScheduler = void 0; + var AnimationFrameAction_1 = require_AnimationFrameAction(); + var AnimationFrameScheduler_1 = require_AnimationFrameScheduler(); + exports2.animationFrameScheduler = new AnimationFrameScheduler_1.AnimationFrameScheduler(AnimationFrameAction_1.AnimationFrameAction); + exports2.animationFrame = exports2.animationFrameScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js +var require_VirtualTimeScheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js"(exports2) { + "use strict"; + var __extends = exports2 && exports2.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.VirtualAction = exports2.VirtualTimeScheduler = void 0; + var AsyncAction_1 = require_AsyncAction(); + var Subscription_1 = require_Subscription(); + var AsyncScheduler_1 = require_AsyncScheduler(); + var VirtualTimeScheduler = function(_super) { + __extends(VirtualTimeScheduler2, _super); + function VirtualTimeScheduler2(schedulerActionCtor, maxFrames) { + if (schedulerActionCtor === void 0) { + schedulerActionCtor = VirtualAction; + } + if (maxFrames === void 0) { + maxFrames = Infinity; + } + var _this = _super.call(this, schedulerActionCtor, function() { + return _this.frame; + }) || this; + _this.maxFrames = maxFrames; + _this.frame = 0; + _this.index = -1; + return _this; + } + VirtualTimeScheduler2.prototype.flush = function() { + var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; + var error; + var action; + while ((action = actions[0]) && action.delay <= maxFrames) { + actions.shift(); + this.frame = action.delay; + if (error = action.execute(action.state, action.delay)) { + break; + } + } + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + VirtualTimeScheduler2.frameTimeFactor = 10; + return VirtualTimeScheduler2; + }(AsyncScheduler_1.AsyncScheduler); + exports2.VirtualTimeScheduler = VirtualTimeScheduler; + var VirtualAction = function(_super) { + __extends(VirtualAction2, _super); + function VirtualAction2(scheduler, work, index) { + if (index === void 0) { + index = scheduler.index += 1; + } + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.index = index; + _this.active = true; + _this.index = scheduler.index = index; + return _this; + } + VirtualAction2.prototype.schedule = function(state, delay) { + if (delay === void 0) { + delay = 0; + } + if (Number.isFinite(delay)) { + if (!this.id) { + return _super.prototype.schedule.call(this, state, delay); + } + this.active = false; + var action = new VirtualAction2(this.scheduler, this.work); + this.add(action); + return action.schedule(state, delay); + } else { + return Subscription_1.Subscription.EMPTY; + } + }; + VirtualAction2.prototype.requestAsyncId = function(scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + this.delay = scheduler.frame + delay; + var actions = scheduler.actions; + actions.push(this); + actions.sort(VirtualAction2.sortActions); + return true; + }; + VirtualAction2.prototype.recycleAsyncId = function(scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + return void 0; + }; + VirtualAction2.prototype._execute = function(state, delay) { + if (this.active === true) { + return _super.prototype._execute.call(this, state, delay); + } + }; + VirtualAction2.sortActions = function(a, b) { + if (a.delay === b.delay) { + if (a.index === b.index) { + return 0; + } else if (a.index > b.index) { + return 1; + } else { + return -1; + } + } else if (a.delay > b.delay) { + return 1; + } else { + return -1; + } + }; + return VirtualAction2; + }(AsyncAction_1.AsyncAction); + exports2.VirtualAction = VirtualAction; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/empty.js +var require_empty = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/empty.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.empty = exports2.EMPTY = void 0; + var Observable_1 = require_Observable(); + exports2.EMPTY = new Observable_1.Observable(function(subscriber) { + return subscriber.complete(); + }); + function empty2(scheduler) { + return scheduler ? emptyScheduled(scheduler) : exports2.EMPTY; + } + exports2.empty = empty2; + function emptyScheduled(scheduler) { + return new Observable_1.Observable(function(subscriber) { + return scheduler.schedule(function() { + return subscriber.complete(); + }); + }); + } + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isScheduler.js +var require_isScheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isScheduler.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isScheduler = void 0; + var isFunction_1 = require_isFunction(); + function isScheduler(value) { + return value && isFunction_1.isFunction(value.schedule); + } + exports2.isScheduler = isScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/args.js +var require_args = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/args.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.popNumber = exports2.popScheduler = exports2.popResultSelector = void 0; + var isFunction_1 = require_isFunction(); + var isScheduler_1 = require_isScheduler(); + function last5(arr) { + return arr[arr.length - 1]; + } + function popResultSelector(args) { + return isFunction_1.isFunction(last5(args)) ? args.pop() : void 0; + } + exports2.popResultSelector = popResultSelector; + function popScheduler(args) { + return isScheduler_1.isScheduler(last5(args)) ? args.pop() : void 0; + } + exports2.popScheduler = popScheduler; + function popNumber(args, defaultValue) { + return typeof last5(args) === "number" ? args.pop() : defaultValue; + } + exports2.popNumber = popNumber; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isArrayLike.js +var require_isArrayLike = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isArrayLike.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isArrayLike = void 0; + exports2.isArrayLike = function(x) { + return x && typeof x.length === "number" && typeof x !== "function"; + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isPromise.js +var require_isPromise = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isPromise.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isPromise = void 0; + var isFunction_1 = require_isFunction(); + function isPromise(value) { + return isFunction_1.isFunction(value === null || value === void 0 ? void 0 : value.then); + } + exports2.isPromise = isPromise; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isInteropObservable.js +var require_isInteropObservable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isInteropObservable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isInteropObservable = void 0; + var observable_1 = require_observable(); + var isFunction_1 = require_isFunction(); + function isInteropObservable(input) { + return isFunction_1.isFunction(input[observable_1.observable]); + } + exports2.isInteropObservable = isInteropObservable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isAsyncIterable.js +var require_isAsyncIterable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isAsyncIterable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isAsyncIterable = void 0; + var isFunction_1 = require_isFunction(); + function isAsyncIterable(obj) { + return Symbol.asyncIterator && isFunction_1.isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]); + } + exports2.isAsyncIterable = isAsyncIterable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/throwUnobservableError.js +var require_throwUnobservableError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/throwUnobservableError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createInvalidObservableTypeError = void 0; + function createInvalidObservableTypeError(input) { + return new TypeError("You provided " + (input !== null && typeof input === "object" ? "an invalid object" : "'" + input + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable."); + } + exports2.createInvalidObservableTypeError = createInvalidObservableTypeError; + } +}); + +// node_modules/rxjs/dist/cjs/internal/symbol/iterator.js +var require_iterator = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/symbol/iterator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.iterator = exports2.getSymbolIterator = void 0; + function getSymbolIterator() { + if (typeof Symbol !== "function" || !Symbol.iterator) { + return "@@iterator"; + } + return Symbol.iterator; + } + exports2.getSymbolIterator = getSymbolIterator; + exports2.iterator = getSymbolIterator(); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isIterable.js +var require_isIterable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isIterable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isIterable = void 0; + var iterator_1 = require_iterator(); + var isFunction_1 = require_isFunction(); + function isIterable(input) { + return isFunction_1.isFunction(input === null || input === void 0 ? void 0 : input[iterator_1.iterator]); + } + exports2.isIterable = isIterable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isReadableStreamLike.js +var require_isReadableStreamLike = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isReadableStreamLike.js"(exports2) { + "use strict"; + var __generator = exports2 && exports2.__generator || function(thisArg, body) { + var _ = { label: 0, sent: function() { + if (t[0] & 1) + throw t[1]; + return t[1]; + }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + function step(op) { + if (f) + throw new TypeError("Generator is already executing."); + while (_) + try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) + return t; + if (y = 0, t) + op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) + _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + var __await = exports2 && exports2.__await || function(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); + }; + var __asyncGenerator = exports2 && exports2.__asyncGenerator || function(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { + return this; + }, i; + function verb(n) { + if (g[n]) + i[n] = function(v) { + return new Promise(function(a, b) { + q.push([n, v, a, b]) > 1 || resume(n, v); + }); + }; + } + function resume(n, v) { + try { + step(g[n](v)); + } catch (e) { + settle(q[0][3], e); + } + } + function step(r) { + r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); + } + function fulfill(value) { + resume("next", value); + } + function reject(value) { + resume("throw", value); + } + function settle(f, v) { + if (f(v), q.shift(), q.length) + resume(q[0][0], q[0][1]); + } + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isReadableStreamLike = exports2.readableStreamLikeToAsyncGenerator = void 0; + var isFunction_1 = require_isFunction(); + function readableStreamLikeToAsyncGenerator(readableStream) { + return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() { + var reader, _a, value, done; + return __generator(this, function(_b) { + switch (_b.label) { + case 0: + reader = readableStream.getReader(); + _b.label = 1; + case 1: + _b.trys.push([1, , 9, 10]); + _b.label = 2; + case 2: + if (false) + return [3, 8]; + return [4, __await(reader.read())]; + case 3: + _a = _b.sent(), value = _a.value, done = _a.done; + if (!done) + return [3, 5]; + return [4, __await(void 0)]; + case 4: + return [2, _b.sent()]; + case 5: + return [4, __await(value)]; + case 6: + return [4, _b.sent()]; + case 7: + _b.sent(); + return [3, 2]; + case 8: + return [3, 10]; + case 9: + reader.releaseLock(); + return [7]; + case 10: + return [2]; + } + }); + }); + } + exports2.readableStreamLikeToAsyncGenerator = readableStreamLikeToAsyncGenerator; + function isReadableStreamLike(obj) { + return isFunction_1.isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader); + } + exports2.isReadableStreamLike = isReadableStreamLike; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/innerFrom.js +var require_innerFrom = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/innerFrom.js"(exports2) { + "use strict"; + var __awaiter = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator = exports2 && exports2.__generator || function(thisArg, body) { + var _ = { label: 0, sent: function() { + if (t[0] & 1) + throw t[1]; + return t[1]; + }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + function step(op) { + if (f) + throw new TypeError("Generator is already executing."); + while (_) + try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) + return t; + if (y = 0, t) + op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) + _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + var __asyncValues = exports2 && exports2.__asyncValues || function(o) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { + return this; + }, i); + function verb(n) { + i[n] = o[n] && function(v) { + return new Promise(function(resolve, reject) { + v = o[n](v), settle(resolve, reject, v.done, v.value); + }); + }; + } + function settle(resolve, reject, d, v) { + Promise.resolve(v).then(function(v2) { + resolve({ value: v2, done: d }); + }, reject); + } + }; + var __values = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromReadableStreamLike = exports2.fromAsyncIterable = exports2.fromIterable = exports2.fromPromise = exports2.fromArrayLike = exports2.fromInteropObservable = exports2.innerFrom = void 0; + var isArrayLike_1 = require_isArrayLike(); + var isPromise_1 = require_isPromise(); + var Observable_1 = require_Observable(); + var isInteropObservable_1 = require_isInteropObservable(); + var isAsyncIterable_1 = require_isAsyncIterable(); + var throwUnobservableError_1 = require_throwUnobservableError(); + var isIterable_1 = require_isIterable(); + var isReadableStreamLike_1 = require_isReadableStreamLike(); + var isFunction_1 = require_isFunction(); + var reportUnhandledError_1 = require_reportUnhandledError(); + var observable_1 = require_observable(); + function innerFrom(input) { + if (input instanceof Observable_1.Observable) { + return input; + } + if (input != null) { + if (isInteropObservable_1.isInteropObservable(input)) { + return fromInteropObservable(input); + } + if (isArrayLike_1.isArrayLike(input)) { + return fromArrayLike(input); + } + if (isPromise_1.isPromise(input)) { + return fromPromise(input); + } + if (isAsyncIterable_1.isAsyncIterable(input)) { + return fromAsyncIterable(input); + } + if (isIterable_1.isIterable(input)) { + return fromIterable(input); + } + if (isReadableStreamLike_1.isReadableStreamLike(input)) { + return fromReadableStreamLike(input); + } + } + throw throwUnobservableError_1.createInvalidObservableTypeError(input); + } + exports2.innerFrom = innerFrom; + function fromInteropObservable(obj) { + return new Observable_1.Observable(function(subscriber) { + var obs = obj[observable_1.observable](); + if (isFunction_1.isFunction(obs.subscribe)) { + return obs.subscribe(subscriber); + } + throw new TypeError("Provided object does not correctly implement Symbol.observable"); + }); + } + exports2.fromInteropObservable = fromInteropObservable; + function fromArrayLike(array) { + return new Observable_1.Observable(function(subscriber) { + for (var i = 0; i < array.length && !subscriber.closed; i++) { + subscriber.next(array[i]); + } + subscriber.complete(); + }); + } + exports2.fromArrayLike = fromArrayLike; + function fromPromise(promise) { + return new Observable_1.Observable(function(subscriber) { + promise.then(function(value) { + if (!subscriber.closed) { + subscriber.next(value); + subscriber.complete(); + } + }, function(err) { + return subscriber.error(err); + }).then(null, reportUnhandledError_1.reportUnhandledError); + }); + } + exports2.fromPromise = fromPromise; + function fromIterable(iterable) { + return new Observable_1.Observable(function(subscriber) { + var e_1, _a; + try { + for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) { + var value = iterable_1_1.value; + subscriber.next(value); + if (subscriber.closed) { + return; + } + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) + _a.call(iterable_1); + } finally { + if (e_1) + throw e_1.error; + } + } + subscriber.complete(); + }); + } + exports2.fromIterable = fromIterable; + function fromAsyncIterable(asyncIterable) { + return new Observable_1.Observable(function(subscriber) { + process(asyncIterable, subscriber).catch(function(err) { + return subscriber.error(err); + }); + }); + } + exports2.fromAsyncIterable = fromAsyncIterable; + function fromReadableStreamLike(readableStream) { + return fromAsyncIterable(isReadableStreamLike_1.readableStreamLikeToAsyncGenerator(readableStream)); + } + exports2.fromReadableStreamLike = fromReadableStreamLike; + function process(asyncIterable, subscriber) { + var asyncIterable_1, asyncIterable_1_1; + var e_2, _a; + return __awaiter(this, void 0, void 0, function() { + var value, e_2_1; + return __generator(this, function(_b) { + switch (_b.label) { + case 0: + _b.trys.push([0, 5, 6, 11]); + asyncIterable_1 = __asyncValues(asyncIterable); + _b.label = 1; + case 1: + return [4, asyncIterable_1.next()]; + case 2: + if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) + return [3, 4]; + value = asyncIterable_1_1.value; + subscriber.next(value); + if (subscriber.closed) { + return [2]; + } + _b.label = 3; + case 3: + return [3, 1]; + case 4: + return [3, 11]; + case 5: + e_2_1 = _b.sent(); + e_2 = { error: e_2_1 }; + return [3, 11]; + case 6: + _b.trys.push([6, , 9, 10]); + if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) + return [3, 8]; + return [4, _a.call(asyncIterable_1)]; + case 7: + _b.sent(); + _b.label = 8; + case 8: + return [3, 10]; + case 9: + if (e_2) + throw e_2.error; + return [7]; + case 10: + return [7]; + case 11: + subscriber.complete(); + return [2]; + } + }); + }); + } + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/executeSchedule.js +var require_executeSchedule = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/executeSchedule.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.executeSchedule = void 0; + function executeSchedule(parentSubscription, scheduler, work, delay, repeat2) { + if (delay === void 0) { + delay = 0; + } + if (repeat2 === void 0) { + repeat2 = false; + } + var scheduleSubscription = scheduler.schedule(function() { + work(); + if (repeat2) { + parentSubscription.add(this.schedule(null, delay)); + } else { + this.unsubscribe(); + } + }, delay); + parentSubscription.add(scheduleSubscription); + if (!repeat2) { + return scheduleSubscription; + } + } + exports2.executeSchedule = executeSchedule; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/observeOn.js +var require_observeOn = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/observeOn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.observeOn = void 0; + var executeSchedule_1 = require_executeSchedule(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function observeOn(scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + return subscriber.next(value); + }, delay); + }, function() { + return executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + return subscriber.complete(); + }, delay); + }, function(err) { + return executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + return subscriber.error(err); + }, delay); + })); + }); + } + exports2.observeOn = observeOn; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/subscribeOn.js +var require_subscribeOn = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/subscribeOn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.subscribeOn = void 0; + var lift_1 = require_lift(); + function subscribeOn(scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + return lift_1.operate(function(source, subscriber) { + subscriber.add(scheduler.schedule(function() { + return source.subscribe(subscriber); + }, delay)); + }); + } + exports2.subscribeOn = subscribeOn; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/scheduleObservable.js +var require_scheduleObservable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/scheduleObservable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scheduleObservable = void 0; + var innerFrom_1 = require_innerFrom(); + var observeOn_1 = require_observeOn(); + var subscribeOn_1 = require_subscribeOn(); + function scheduleObservable(input, scheduler) { + return innerFrom_1.innerFrom(input).pipe(subscribeOn_1.subscribeOn(scheduler), observeOn_1.observeOn(scheduler)); + } + exports2.scheduleObservable = scheduleObservable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/schedulePromise.js +var require_schedulePromise = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/schedulePromise.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.schedulePromise = void 0; + var innerFrom_1 = require_innerFrom(); + var observeOn_1 = require_observeOn(); + var subscribeOn_1 = require_subscribeOn(); + function schedulePromise(input, scheduler) { + return innerFrom_1.innerFrom(input).pipe(subscribeOn_1.subscribeOn(scheduler), observeOn_1.observeOn(scheduler)); + } + exports2.schedulePromise = schedulePromise; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/scheduleArray.js +var require_scheduleArray = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/scheduleArray.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scheduleArray = void 0; + var Observable_1 = require_Observable(); + function scheduleArray(input, scheduler) { + return new Observable_1.Observable(function(subscriber) { + var i = 0; + return scheduler.schedule(function() { + if (i === input.length) { + subscriber.complete(); + } else { + subscriber.next(input[i++]); + if (!subscriber.closed) { + this.schedule(); + } + } + }); + }); + } + exports2.scheduleArray = scheduleArray; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/scheduleIterable.js +var require_scheduleIterable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/scheduleIterable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scheduleIterable = void 0; + var Observable_1 = require_Observable(); + var iterator_1 = require_iterator(); + var isFunction_1 = require_isFunction(); + var executeSchedule_1 = require_executeSchedule(); + function scheduleIterable(input, scheduler) { + return new Observable_1.Observable(function(subscriber) { + var iterator; + executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + iterator = input[iterator_1.iterator](); + executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + var _a; + var value; + var done; + try { + _a = iterator.next(), value = _a.value, done = _a.done; + } catch (err) { + subscriber.error(err); + return; + } + if (done) { + subscriber.complete(); + } else { + subscriber.next(value); + } + }, 0, true); + }); + return function() { + return isFunction_1.isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); + }; + }); + } + exports2.scheduleIterable = scheduleIterable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/scheduleAsyncIterable.js +var require_scheduleAsyncIterable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/scheduleAsyncIterable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scheduleAsyncIterable = void 0; + var Observable_1 = require_Observable(); + var executeSchedule_1 = require_executeSchedule(); + function scheduleAsyncIterable(input, scheduler) { + if (!input) { + throw new Error("Iterable cannot be null"); + } + return new Observable_1.Observable(function(subscriber) { + executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + var iterator = input[Symbol.asyncIterator](); + executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + iterator.next().then(function(result) { + if (result.done) { + subscriber.complete(); + } else { + subscriber.next(result.value); + } + }); + }, 0, true); + }); + }); + } + exports2.scheduleAsyncIterable = scheduleAsyncIterable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/scheduleReadableStreamLike.js +var require_scheduleReadableStreamLike = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/scheduleReadableStreamLike.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scheduleReadableStreamLike = void 0; + var scheduleAsyncIterable_1 = require_scheduleAsyncIterable(); + var isReadableStreamLike_1 = require_isReadableStreamLike(); + function scheduleReadableStreamLike(input, scheduler) { + return scheduleAsyncIterable_1.scheduleAsyncIterable(isReadableStreamLike_1.readableStreamLikeToAsyncGenerator(input), scheduler); + } + exports2.scheduleReadableStreamLike = scheduleReadableStreamLike; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/scheduled.js +var require_scheduled = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/scheduled.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scheduled = void 0; + var scheduleObservable_1 = require_scheduleObservable(); + var schedulePromise_1 = require_schedulePromise(); + var scheduleArray_1 = require_scheduleArray(); + var scheduleIterable_1 = require_scheduleIterable(); + var scheduleAsyncIterable_1 = require_scheduleAsyncIterable(); + var isInteropObservable_1 = require_isInteropObservable(); + var isPromise_1 = require_isPromise(); + var isArrayLike_1 = require_isArrayLike(); + var isIterable_1 = require_isIterable(); + var isAsyncIterable_1 = require_isAsyncIterable(); + var throwUnobservableError_1 = require_throwUnobservableError(); + var isReadableStreamLike_1 = require_isReadableStreamLike(); + var scheduleReadableStreamLike_1 = require_scheduleReadableStreamLike(); + function scheduled(input, scheduler) { + if (input != null) { + if (isInteropObservable_1.isInteropObservable(input)) { + return scheduleObservable_1.scheduleObservable(input, scheduler); + } + if (isArrayLike_1.isArrayLike(input)) { + return scheduleArray_1.scheduleArray(input, scheduler); + } + if (isPromise_1.isPromise(input)) { + return schedulePromise_1.schedulePromise(input, scheduler); + } + if (isAsyncIterable_1.isAsyncIterable(input)) { + return scheduleAsyncIterable_1.scheduleAsyncIterable(input, scheduler); + } + if (isIterable_1.isIterable(input)) { + return scheduleIterable_1.scheduleIterable(input, scheduler); + } + if (isReadableStreamLike_1.isReadableStreamLike(input)) { + return scheduleReadableStreamLike_1.scheduleReadableStreamLike(input, scheduler); + } + } + throw throwUnobservableError_1.createInvalidObservableTypeError(input); + } + exports2.scheduled = scheduled; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/from.js +var require_from = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/from.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.from = void 0; + var scheduled_1 = require_scheduled(); + var innerFrom_1 = require_innerFrom(); + function from2(input, scheduler) { + return scheduler ? scheduled_1.scheduled(input, scheduler) : innerFrom_1.innerFrom(input); + } + exports2.from = from2; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/of.js +var require_of = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/of.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.of = void 0; + var args_1 = require_args(); + var from_1 = require_from(); + function of() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args_1.popScheduler(args); + return from_1.from(args, scheduler); + } + exports2.of = of; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/throwError.js +var require_throwError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/throwError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.throwError = void 0; + var Observable_1 = require_Observable(); + var isFunction_1 = require_isFunction(); + function throwError(errorOrErrorFactory, scheduler) { + var errorFactory = isFunction_1.isFunction(errorOrErrorFactory) ? errorOrErrorFactory : function() { + return errorOrErrorFactory; + }; + var init = function(subscriber) { + return subscriber.error(errorFactory()); + }; + return new Observable_1.Observable(scheduler ? function(subscriber) { + return scheduler.schedule(init, 0, subscriber); + } : init); + } + exports2.throwError = throwError; + } +}); + +// node_modules/rxjs/dist/cjs/internal/Notification.js +var require_Notification = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/Notification.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.observeNotification = exports2.Notification = exports2.NotificationKind = void 0; + var empty_1 = require_empty(); + var of_1 = require_of(); + var throwError_1 = require_throwError(); + var isFunction_1 = require_isFunction(); + var NotificationKind; + (function(NotificationKind2) { + NotificationKind2["NEXT"] = "N"; + NotificationKind2["ERROR"] = "E"; + NotificationKind2["COMPLETE"] = "C"; + })(NotificationKind = exports2.NotificationKind || (exports2.NotificationKind = {})); + var Notification = function() { + function Notification2(kind, value, error) { + this.kind = kind; + this.value = value; + this.error = error; + this.hasValue = kind === "N"; + } + Notification2.prototype.observe = function(observer) { + return observeNotification(this, observer); + }; + Notification2.prototype.do = function(nextHandler, errorHandler, completeHandler) { + var _a = this, kind = _a.kind, value = _a.value, error = _a.error; + return kind === "N" ? nextHandler === null || nextHandler === void 0 ? void 0 : nextHandler(value) : kind === "E" ? errorHandler === null || errorHandler === void 0 ? void 0 : errorHandler(error) : completeHandler === null || completeHandler === void 0 ? void 0 : completeHandler(); + }; + Notification2.prototype.accept = function(nextOrObserver, error, complete) { + var _a; + return isFunction_1.isFunction((_a = nextOrObserver) === null || _a === void 0 ? void 0 : _a.next) ? this.observe(nextOrObserver) : this.do(nextOrObserver, error, complete); + }; + Notification2.prototype.toObservable = function() { + var _a = this, kind = _a.kind, value = _a.value, error = _a.error; + var result = kind === "N" ? of_1.of(value) : kind === "E" ? throwError_1.throwError(function() { + return error; + }) : kind === "C" ? empty_1.EMPTY : 0; + if (!result) { + throw new TypeError("Unexpected notification kind " + kind); + } + return result; + }; + Notification2.createNext = function(value) { + return new Notification2("N", value); + }; + Notification2.createError = function(err) { + return new Notification2("E", void 0, err); + }; + Notification2.createComplete = function() { + return Notification2.completeNotification; + }; + Notification2.completeNotification = new Notification2("C"); + return Notification2; + }(); + exports2.Notification = Notification; + function observeNotification(notification, observer) { + var _a, _b, _c; + var _d = notification, kind = _d.kind, value = _d.value, error = _d.error; + if (typeof kind !== "string") { + throw new TypeError('Invalid notification, missing "kind"'); + } + kind === "N" ? (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, value) : kind === "E" ? (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, error) : (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer); + } + exports2.observeNotification = observeNotification; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isObservable.js +var require_isObservable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isObservable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isObservable = void 0; + var Observable_1 = require_Observable(); + var isFunction_1 = require_isFunction(); + function isObservable(obj) { + return !!obj && (obj instanceof Observable_1.Observable || isFunction_1.isFunction(obj.lift) && isFunction_1.isFunction(obj.subscribe)); + } + exports2.isObservable = isObservable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/EmptyError.js +var require_EmptyError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/EmptyError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.EmptyError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports2.EmptyError = createErrorClass_1.createErrorClass(function(_super) { + return function EmptyErrorImpl() { + _super(this); + this.name = "EmptyError"; + this.message = "no elements in sequence"; + }; + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/lastValueFrom.js +var require_lastValueFrom = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/lastValueFrom.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.lastValueFrom = void 0; + var EmptyError_1 = require_EmptyError(); + function lastValueFrom(source, config) { + var hasConfig = typeof config === "object"; + return new Promise(function(resolve, reject) { + var _hasValue = false; + var _value; + source.subscribe({ + next: function(value) { + _value = value; + _hasValue = true; + }, + error: reject, + complete: function() { + if (_hasValue) { + resolve(_value); + } else if (hasConfig) { + resolve(config.defaultValue); + } else { + reject(new EmptyError_1.EmptyError()); + } + } + }); + }); + } + exports2.lastValueFrom = lastValueFrom; + } +}); + +// node_modules/rxjs/dist/cjs/internal/firstValueFrom.js +var require_firstValueFrom = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/firstValueFrom.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.firstValueFrom = void 0; + var EmptyError_1 = require_EmptyError(); + var Subscriber_1 = require_Subscriber(); + function firstValueFrom(source, config) { + var hasConfig = typeof config === "object"; + return new Promise(function(resolve, reject) { + var subscriber = new Subscriber_1.SafeSubscriber({ + next: function(value) { + resolve(value); + subscriber.unsubscribe(); + }, + error: reject, + complete: function() { + if (hasConfig) { + resolve(config.defaultValue); + } else { + reject(new EmptyError_1.EmptyError()); + } + } + }); + source.subscribe(subscriber); + }); + } + exports2.firstValueFrom = firstValueFrom; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/ArgumentOutOfRangeError.js +var require_ArgumentOutOfRangeError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/ArgumentOutOfRangeError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ArgumentOutOfRangeError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports2.ArgumentOutOfRangeError = createErrorClass_1.createErrorClass(function(_super) { + return function ArgumentOutOfRangeErrorImpl() { + _super(this); + this.name = "ArgumentOutOfRangeError"; + this.message = "argument out of range"; + }; + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/NotFoundError.js +var require_NotFoundError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/NotFoundError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NotFoundError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports2.NotFoundError = createErrorClass_1.createErrorClass(function(_super) { + return function NotFoundErrorImpl(message) { + _super(this); + this.name = "NotFoundError"; + this.message = message; + }; + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/SequenceError.js +var require_SequenceError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/SequenceError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SequenceError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports2.SequenceError = createErrorClass_1.createErrorClass(function(_super) { + return function SequenceErrorImpl(message) { + _super(this); + this.name = "SequenceError"; + this.message = message; + }; + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isDate.js +var require_isDate = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isDate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isValidDate = void 0; + function isValidDate(value) { + return value instanceof Date && !isNaN(value); + } + exports2.isValidDate = isValidDate; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/timeout.js +var require_timeout = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/timeout.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.timeout = exports2.TimeoutError = void 0; + var async_1 = require_async(); + var isDate_1 = require_isDate(); + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var createErrorClass_1 = require_createErrorClass(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var executeSchedule_1 = require_executeSchedule(); + exports2.TimeoutError = createErrorClass_1.createErrorClass(function(_super) { + return function TimeoutErrorImpl(info) { + if (info === void 0) { + info = null; + } + _super(this); + this.message = "Timeout has occurred"; + this.name = "TimeoutError"; + this.info = info; + }; + }); + function timeout(config, schedulerArg) { + var _a = isDate_1.isValidDate(config) ? { first: config } : typeof config === "number" ? { each: config } : config, first5 = _a.first, each4 = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : async_1.asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d; + if (first5 == null && each4 == null) { + throw new TypeError("No timeout provided."); + } + return lift_1.operate(function(source, subscriber) { + var originalSourceSubscription; + var timerSubscription; + var lastValue = null; + var seen = 0; + var startTimer = function(delay) { + timerSubscription = executeSchedule_1.executeSchedule(subscriber, scheduler, function() { + try { + originalSourceSubscription.unsubscribe(); + innerFrom_1.innerFrom(_with({ + meta, + lastValue, + seen + })).subscribe(subscriber); + } catch (err) { + subscriber.error(err); + } + }, delay); + }; + originalSourceSubscription = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe(); + seen++; + subscriber.next(lastValue = value); + each4 > 0 && startTimer(each4); + }, void 0, void 0, function() { + if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) { + timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe(); + } + lastValue = null; + })); + !seen && startTimer(first5 != null ? typeof first5 === "number" ? first5 : +first5 - scheduler.now() : each4); + }); + } + exports2.timeout = timeout; + function timeoutErrorFactory(info) { + throw new exports2.TimeoutError(info); + } + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/map.js +var require_map = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/map.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.map = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function map(project, thisArg) { + return lift_1.operate(function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + subscriber.next(project.call(thisArg, value, index++)); + })); + }); + } + exports2.map = map; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/mapOneOrManyArgs.js +var require_mapOneOrManyArgs = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/mapOneOrManyArgs.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mapOneOrManyArgs = void 0; + var map_1 = require_map(); + var isArray = Array.isArray; + function callOrApply(fn, args) { + return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args); + } + function mapOneOrManyArgs(fn) { + return map_1.map(function(args) { + return callOrApply(fn, args); + }); + } + exports2.mapOneOrManyArgs = mapOneOrManyArgs; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/bindCallbackInternals.js +var require_bindCallbackInternals = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/bindCallbackInternals.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bindCallbackInternals = void 0; + var isScheduler_1 = require_isScheduler(); + var Observable_1 = require_Observable(); + var subscribeOn_1 = require_subscribeOn(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var observeOn_1 = require_observeOn(); + var AsyncSubject_1 = require_AsyncSubject(); + function bindCallbackInternals(isNodeStyle, callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (isScheduler_1.isScheduler(resultSelector)) { + scheduler = resultSelector; + } else { + return function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindCallbackInternals(isNodeStyle, callbackFunc, scheduler).apply(this, args).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); + }; + } + } + if (scheduler) { + return function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindCallbackInternals(isNodeStyle, callbackFunc).apply(this, args).pipe(subscribeOn_1.subscribeOn(scheduler), observeOn_1.observeOn(scheduler)); + }; + } + return function() { + var _this = this; + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var subject = new AsyncSubject_1.AsyncSubject(); + var uninitialized = true; + return new Observable_1.Observable(function(subscriber) { + var subs = subject.subscribe(subscriber); + if (uninitialized) { + uninitialized = false; + var isAsync_1 = false; + var isComplete_1 = false; + callbackFunc.apply(_this, __spreadArray(__spreadArray([], __read(args)), [ + function() { + var results = []; + for (var _i2 = 0; _i2 < arguments.length; _i2++) { + results[_i2] = arguments[_i2]; + } + if (isNodeStyle) { + var err = results.shift(); + if (err != null) { + subject.error(err); + return; + } + } + subject.next(1 < results.length ? results : results[0]); + isComplete_1 = true; + if (isAsync_1) { + subject.complete(); + } + } + ])); + if (isComplete_1) { + subject.complete(); + } + isAsync_1 = true; + } + return subs; + }); + }; + } + exports2.bindCallbackInternals = bindCallbackInternals; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/bindCallback.js +var require_bindCallback = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/bindCallback.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bindCallback = void 0; + var bindCallbackInternals_1 = require_bindCallbackInternals(); + function bindCallback(callbackFunc, resultSelector, scheduler) { + return bindCallbackInternals_1.bindCallbackInternals(false, callbackFunc, resultSelector, scheduler); + } + exports2.bindCallback = bindCallback; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/bindNodeCallback.js +var require_bindNodeCallback = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/bindNodeCallback.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bindNodeCallback = void 0; + var bindCallbackInternals_1 = require_bindCallbackInternals(); + function bindNodeCallback(callbackFunc, resultSelector, scheduler) { + return bindCallbackInternals_1.bindCallbackInternals(true, callbackFunc, resultSelector, scheduler); + } + exports2.bindNodeCallback = bindNodeCallback; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/argsArgArrayOrObject.js +var require_argsArgArrayOrObject = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/argsArgArrayOrObject.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.argsArgArrayOrObject = void 0; + var isArray = Array.isArray; + var getPrototypeOf = Object.getPrototypeOf; + var objectProto = Object.prototype; + var getKeys = Object.keys; + function argsArgArrayOrObject(args) { + if (args.length === 1) { + var first_1 = args[0]; + if (isArray(first_1)) { + return { args: first_1, keys: null }; + } + if (isPOJO(first_1)) { + var keys = getKeys(first_1); + return { + args: keys.map(function(key) { + return first_1[key]; + }), + keys + }; + } + } + return { args, keys: null }; + } + exports2.argsArgArrayOrObject = argsArgArrayOrObject; + function isPOJO(obj) { + return obj && typeof obj === "object" && getPrototypeOf(obj) === objectProto; + } + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/createObject.js +var require_createObject = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/createObject.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createObject = void 0; + function createObject(keys, values) { + return keys.reduce(function(result, key, i) { + return result[key] = values[i], result; + }, {}); + } + exports2.createObject = createObject; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/combineLatest.js +var require_combineLatest = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/combineLatest.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.combineLatestInit = exports2.combineLatest = void 0; + var Observable_1 = require_Observable(); + var argsArgArrayOrObject_1 = require_argsArgArrayOrObject(); + var from_1 = require_from(); + var identity_1 = require_identity(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var args_1 = require_args(); + var createObject_1 = require_createObject(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var executeSchedule_1 = require_executeSchedule(); + function combineLatest() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args_1.popScheduler(args); + var resultSelector = args_1.popResultSelector(args); + var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), observables = _a.args, keys = _a.keys; + if (observables.length === 0) { + return from_1.from([], scheduler); + } + var result = new Observable_1.Observable(combineLatestInit(observables, scheduler, keys ? function(values) { + return createObject_1.createObject(keys, values); + } : identity_1.identity)); + return resultSelector ? result.pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)) : result; + } + exports2.combineLatest = combineLatest; + function combineLatestInit(observables, scheduler, valueTransform) { + if (valueTransform === void 0) { + valueTransform = identity_1.identity; + } + return function(subscriber) { + maybeSchedule(scheduler, function() { + var length = observables.length; + var values = new Array(length); + var active = length; + var remainingFirstValues = length; + var _loop_1 = function(i2) { + maybeSchedule(scheduler, function() { + var source = from_1.from(observables[i2], scheduler); + var hasFirstValue = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + values[i2] = value; + if (!hasFirstValue) { + hasFirstValue = true; + remainingFirstValues--; + } + if (!remainingFirstValues) { + subscriber.next(valueTransform(values.slice())); + } + }, function() { + if (!--active) { + subscriber.complete(); + } + })); + }, subscriber); + }; + for (var i = 0; i < length; i++) { + _loop_1(i); + } + }, subscriber); + }; + } + exports2.combineLatestInit = combineLatestInit; + function maybeSchedule(scheduler, execute, subscription) { + if (scheduler) { + executeSchedule_1.executeSchedule(subscription, scheduler, execute); + } else { + execute(); + } + } + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js +var require_mergeInternals = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeInternals = void 0; + var innerFrom_1 = require_innerFrom(); + var executeSchedule_1 = require_executeSchedule(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) { + var buffer = []; + var active = 0; + var index = 0; + var isComplete = false; + var checkComplete = function() { + if (isComplete && !buffer.length && !active) { + subscriber.complete(); + } + }; + var outerNext = function(value) { + return active < concurrent ? doInnerSub(value) : buffer.push(value); + }; + var doInnerSub = function(value) { + expand && subscriber.next(value); + active++; + var innerComplete = false; + innerFrom_1.innerFrom(project(value, index++)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(innerValue) { + onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue); + if (expand) { + outerNext(innerValue); + } else { + subscriber.next(innerValue); + } + }, function() { + innerComplete = true; + }, void 0, function() { + if (innerComplete) { + try { + active--; + var _loop_1 = function() { + var bufferedValue = buffer.shift(); + if (innerSubScheduler) { + executeSchedule_1.executeSchedule(subscriber, innerSubScheduler, function() { + return doInnerSub(bufferedValue); + }); + } else { + doInnerSub(bufferedValue); + } + }; + while (buffer.length && active < concurrent) { + _loop_1(); + } + checkComplete(); + } catch (err) { + subscriber.error(err); + } + } + })); + }; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, outerNext, function() { + isComplete = true; + checkComplete(); + })); + return function() { + additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer(); + }; + } + exports2.mergeInternals = mergeInternals; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mergeMap.js +var require_mergeMap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mergeMap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeMap = void 0; + var map_1 = require_map(); + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var mergeInternals_1 = require_mergeInternals(); + var isFunction_1 = require_isFunction(); + function mergeMap(project, resultSelector, concurrent) { + if (concurrent === void 0) { + concurrent = Infinity; + } + if (isFunction_1.isFunction(resultSelector)) { + return mergeMap(function(a, i) { + return map_1.map(function(b, ii) { + return resultSelector(a, b, i, ii); + })(innerFrom_1.innerFrom(project(a, i))); + }, concurrent); + } else if (typeof resultSelector === "number") { + concurrent = resultSelector; + } + return lift_1.operate(function(source, subscriber) { + return mergeInternals_1.mergeInternals(source, subscriber, project, concurrent); + }); + } + exports2.mergeMap = mergeMap; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mergeAll.js +var require_mergeAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mergeAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeAll = void 0; + var mergeMap_1 = require_mergeMap(); + var identity_1 = require_identity(); + function mergeAll(concurrent) { + if (concurrent === void 0) { + concurrent = Infinity; + } + return mergeMap_1.mergeMap(identity_1.identity, concurrent); + } + exports2.mergeAll = mergeAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/concatAll.js +var require_concatAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/concatAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.concatAll = void 0; + var mergeAll_1 = require_mergeAll(); + function concatAll() { + return mergeAll_1.mergeAll(1); + } + exports2.concatAll = concatAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/concat.js +var require_concat = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/concat.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.concat = void 0; + var concatAll_1 = require_concatAll(); + var args_1 = require_args(); + var from_1 = require_from(); + function concat() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return concatAll_1.concatAll()(from_1.from(args, args_1.popScheduler(args))); + } + exports2.concat = concat; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/defer.js +var require_defer = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/defer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.defer = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + function defer(observableFactory) { + return new Observable_1.Observable(function(subscriber) { + innerFrom_1.innerFrom(observableFactory()).subscribe(subscriber); + }); + } + exports2.defer = defer; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/connectable.js +var require_connectable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/connectable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.connectable = void 0; + var Subject_1 = require_Subject(); + var Observable_1 = require_Observable(); + var defer_1 = require_defer(); + var DEFAULT_CONFIG = { + connector: function() { + return new Subject_1.Subject(); + }, + resetOnDisconnect: true + }; + function connectable(source, config) { + if (config === void 0) { + config = DEFAULT_CONFIG; + } + var connection = null; + var connector = config.connector, _a = config.resetOnDisconnect, resetOnDisconnect = _a === void 0 ? true : _a; + var subject = connector(); + var result = new Observable_1.Observable(function(subscriber) { + return subject.subscribe(subscriber); + }); + result.connect = function() { + if (!connection || connection.closed) { + connection = defer_1.defer(function() { + return source; + }).subscribe(subject); + if (resetOnDisconnect) { + connection.add(function() { + return subject = connector(); + }); + } + } + return connection; + }; + return result; + } + exports2.connectable = connectable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/forkJoin.js +var require_forkJoin = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/forkJoin.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.forkJoin = void 0; + var Observable_1 = require_Observable(); + var argsArgArrayOrObject_1 = require_argsArgArrayOrObject(); + var innerFrom_1 = require_innerFrom(); + var args_1 = require_args(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var createObject_1 = require_createObject(); + function forkJoin() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var resultSelector = args_1.popResultSelector(args); + var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), sources = _a.args, keys = _a.keys; + var result = new Observable_1.Observable(function(subscriber) { + var length = sources.length; + if (!length) { + subscriber.complete(); + return; + } + var values = new Array(length); + var remainingCompletions = length; + var remainingEmissions = length; + var _loop_1 = function(sourceIndex2) { + var hasValue = false; + innerFrom_1.innerFrom(sources[sourceIndex2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (!hasValue) { + hasValue = true; + remainingEmissions--; + } + values[sourceIndex2] = value; + }, function() { + return remainingCompletions--; + }, void 0, function() { + if (!remainingCompletions || !hasValue) { + if (!remainingEmissions) { + subscriber.next(keys ? createObject_1.createObject(keys, values) : values); + } + subscriber.complete(); + } + })); + }; + for (var sourceIndex = 0; sourceIndex < length; sourceIndex++) { + _loop_1(sourceIndex); + } + }); + return resultSelector ? result.pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)) : result; + } + exports2.forkJoin = forkJoin; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/fromEvent.js +var require_fromEvent = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/fromEvent.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromEvent = void 0; + var innerFrom_1 = require_innerFrom(); + var Observable_1 = require_Observable(); + var mergeMap_1 = require_mergeMap(); + var isArrayLike_1 = require_isArrayLike(); + var isFunction_1 = require_isFunction(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var nodeEventEmitterMethods = ["addListener", "removeListener"]; + var eventTargetMethods = ["addEventListener", "removeEventListener"]; + var jqueryMethods = ["on", "off"]; + function fromEvent(target, eventName, options, resultSelector) { + if (isFunction_1.isFunction(options)) { + resultSelector = options; + options = void 0; + } + if (resultSelector) { + return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); + } + var _a = __read(isEventTarget(target) ? eventTargetMethods.map(function(methodName) { + return function(handler) { + return target[methodName](eventName, handler, options); + }; + }) : isNodeStyleEventEmitter(target) ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) : isJQueryStyleEventEmitter(target) ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) : [], 2), add = _a[0], remove = _a[1]; + if (!add) { + if (isArrayLike_1.isArrayLike(target)) { + return mergeMap_1.mergeMap(function(subTarget) { + return fromEvent(subTarget, eventName, options); + })(innerFrom_1.innerFrom(target)); + } + } + if (!add) { + throw new TypeError("Invalid event target"); + } + return new Observable_1.Observable(function(subscriber) { + var handler = function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return subscriber.next(1 < args.length ? args : args[0]); + }; + add(handler); + return function() { + return remove(handler); + }; + }); + } + exports2.fromEvent = fromEvent; + function toCommonHandlerRegistry(target, eventName) { + return function(methodName) { + return function(handler) { + return target[methodName](eventName, handler); + }; + }; + } + function isNodeStyleEventEmitter(target) { + return isFunction_1.isFunction(target.addListener) && isFunction_1.isFunction(target.removeListener); + } + function isJQueryStyleEventEmitter(target) { + return isFunction_1.isFunction(target.on) && isFunction_1.isFunction(target.off); + } + function isEventTarget(target) { + return isFunction_1.isFunction(target.addEventListener) && isFunction_1.isFunction(target.removeEventListener); + } + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/fromEventPattern.js +var require_fromEventPattern = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/fromEventPattern.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromEventPattern = void 0; + var Observable_1 = require_Observable(); + var isFunction_1 = require_isFunction(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + function fromEventPattern(addHandler, removeHandler, resultSelector) { + if (resultSelector) { + return fromEventPattern(addHandler, removeHandler).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); + } + return new Observable_1.Observable(function(subscriber) { + var handler = function() { + var e = []; + for (var _i = 0; _i < arguments.length; _i++) { + e[_i] = arguments[_i]; + } + return subscriber.next(e.length === 1 ? e[0] : e); + }; + var retValue = addHandler(handler); + return isFunction_1.isFunction(removeHandler) ? function() { + return removeHandler(handler, retValue); + } : void 0; + }); + } + exports2.fromEventPattern = fromEventPattern; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/generate.js +var require_generate = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/generate.js"(exports2) { + "use strict"; + var __generator = exports2 && exports2.__generator || function(thisArg, body) { + var _ = { label: 0, sent: function() { + if (t[0] & 1) + throw t[1]; + return t[1]; + }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + function step(op) { + if (f) + throw new TypeError("Generator is already executing."); + while (_) + try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) + return t; + if (y = 0, t) + op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) + _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.generate = void 0; + var identity_1 = require_identity(); + var isScheduler_1 = require_isScheduler(); + var defer_1 = require_defer(); + var scheduleIterable_1 = require_scheduleIterable(); + function generate(initialStateOrOptions, condition, iterate, resultSelectorOrScheduler, scheduler) { + var _a, _b; + var resultSelector; + var initialState; + if (arguments.length === 1) { + _a = initialStateOrOptions, initialState = _a.initialState, condition = _a.condition, iterate = _a.iterate, _b = _a.resultSelector, resultSelector = _b === void 0 ? identity_1.identity : _b, scheduler = _a.scheduler; + } else { + initialState = initialStateOrOptions; + if (!resultSelectorOrScheduler || isScheduler_1.isScheduler(resultSelectorOrScheduler)) { + resultSelector = identity_1.identity; + scheduler = resultSelectorOrScheduler; + } else { + resultSelector = resultSelectorOrScheduler; + } + } + function gen() { + var state; + return __generator(this, function(_a2) { + switch (_a2.label) { + case 0: + state = initialState; + _a2.label = 1; + case 1: + if (!(!condition || condition(state))) + return [3, 4]; + return [4, resultSelector(state)]; + case 2: + _a2.sent(); + _a2.label = 3; + case 3: + state = iterate(state); + return [3, 1]; + case 4: + return [2]; + } + }); + } + return defer_1.defer(scheduler ? function() { + return scheduleIterable_1.scheduleIterable(gen(), scheduler); + } : gen); + } + exports2.generate = generate; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/iif.js +var require_iif = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/iif.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.iif = void 0; + var defer_1 = require_defer(); + function iif(condition, trueResult, falseResult) { + return defer_1.defer(function() { + return condition() ? trueResult : falseResult; + }); + } + exports2.iif = iif; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/timer.js +var require_timer = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/timer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.timer = void 0; + var Observable_1 = require_Observable(); + var async_1 = require_async(); + var isScheduler_1 = require_isScheduler(); + var isDate_1 = require_isDate(); + function timer(dueTime, intervalOrScheduler, scheduler) { + if (dueTime === void 0) { + dueTime = 0; + } + if (scheduler === void 0) { + scheduler = async_1.async; + } + var intervalDuration = -1; + if (intervalOrScheduler != null) { + if (isScheduler_1.isScheduler(intervalOrScheduler)) { + scheduler = intervalOrScheduler; + } else { + intervalDuration = intervalOrScheduler; + } + } + return new Observable_1.Observable(function(subscriber) { + var due = isDate_1.isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime; + if (due < 0) { + due = 0; + } + var n = 0; + return scheduler.schedule(function() { + if (!subscriber.closed) { + subscriber.next(n++); + if (0 <= intervalDuration) { + this.schedule(void 0, intervalDuration); + } else { + subscriber.complete(); + } + } + }, due); + }); + } + exports2.timer = timer; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/interval.js +var require_interval = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/interval.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.interval = void 0; + var async_1 = require_async(); + var timer_1 = require_timer(); + function interval(period, scheduler) { + if (period === void 0) { + period = 0; + } + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + if (period < 0) { + period = 0; + } + return timer_1.timer(period, period, scheduler); + } + exports2.interval = interval; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/merge.js +var require_merge = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/merge.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.merge = void 0; + var mergeAll_1 = require_mergeAll(); + var innerFrom_1 = require_innerFrom(); + var empty_1 = require_empty(); + var args_1 = require_args(); + var from_1 = require_from(); + function merge() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args_1.popScheduler(args); + var concurrent = args_1.popNumber(args, Infinity); + var sources = args; + return !sources.length ? empty_1.EMPTY : sources.length === 1 ? innerFrom_1.innerFrom(sources[0]) : mergeAll_1.mergeAll(concurrent)(from_1.from(sources, scheduler)); + } + exports2.merge = merge; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/never.js +var require_never = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/never.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.never = exports2.NEVER = void 0; + var Observable_1 = require_Observable(); + var noop_1 = require_noop(); + exports2.NEVER = new Observable_1.Observable(noop_1.noop); + function never() { + return exports2.NEVER; + } + exports2.never = never; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/argsOrArgArray.js +var require_argsOrArgArray = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/argsOrArgArray.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.argsOrArgArray = void 0; + var isArray = Array.isArray; + function argsOrArgArray(args) { + return args.length === 1 && isArray(args[0]) ? args[0] : args; + } + exports2.argsOrArgArray = argsOrArgArray; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/onErrorResumeNext.js +var require_onErrorResumeNext = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/onErrorResumeNext.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.onErrorResumeNext = void 0; + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + function onErrorResumeNext() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + var nextSources = argsOrArgArray_1.argsOrArgArray(sources); + return lift_1.operate(function(source, subscriber) { + var remaining = __spreadArray([source], __read(nextSources)); + var subscribeNext = function() { + if (!subscriber.closed) { + if (remaining.length > 0) { + var nextSource = void 0; + try { + nextSource = innerFrom_1.innerFrom(remaining.shift()); + } catch (err) { + subscribeNext(); + return; + } + var innerSub = OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, noop_1.noop, noop_1.noop); + nextSource.subscribe(innerSub); + innerSub.add(subscribeNext); + } else { + subscriber.complete(); + } + } + }; + subscribeNext(); + }); + } + exports2.onErrorResumeNext = onErrorResumeNext; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/onErrorResumeNext.js +var require_onErrorResumeNext2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/onErrorResumeNext.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.onErrorResumeNext = void 0; + var empty_1 = require_empty(); + var onErrorResumeNext_1 = require_onErrorResumeNext(); + var argsOrArgArray_1 = require_argsOrArgArray(); + function onErrorResumeNext() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + return onErrorResumeNext_1.onErrorResumeNext(argsOrArgArray_1.argsOrArgArray(sources))(empty_1.EMPTY); + } + exports2.onErrorResumeNext = onErrorResumeNext; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/pairs.js +var require_pairs = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/pairs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.pairs = void 0; + var from_1 = require_from(); + function pairs(obj, scheduler) { + return from_1.from(Object.entries(obj), scheduler); + } + exports2.pairs = pairs; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/not.js +var require_not = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/not.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.not = void 0; + function not(pred, thisArg) { + return function(value, index) { + return !pred.call(thisArg, value, index); + }; + } + exports2.not = not; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/filter.js +var require_filter = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/filter.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.filter = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function filter(predicate, thisArg) { + return lift_1.operate(function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return predicate.call(thisArg, value, index++) && subscriber.next(value); + })); + }); + } + exports2.filter = filter; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/partition.js +var require_partition = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/partition.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.partition = void 0; + var not_1 = require_not(); + var filter_1 = require_filter(); + var innerFrom_1 = require_innerFrom(); + function partition4(source, predicate, thisArg) { + return [filter_1.filter(predicate, thisArg)(innerFrom_1.innerFrom(source)), filter_1.filter(not_1.not(predicate, thisArg))(innerFrom_1.innerFrom(source))]; + } + exports2.partition = partition4; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/race.js +var require_race = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/race.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.raceInit = exports2.race = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function race() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + sources = argsOrArgArray_1.argsOrArgArray(sources); + return sources.length === 1 ? innerFrom_1.innerFrom(sources[0]) : new Observable_1.Observable(raceInit(sources)); + } + exports2.race = race; + function raceInit(sources) { + return function(subscriber) { + var subscriptions = []; + var _loop_1 = function(i2) { + subscriptions.push(innerFrom_1.innerFrom(sources[i2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (subscriptions) { + for (var s = 0; s < subscriptions.length; s++) { + s !== i2 && subscriptions[s].unsubscribe(); + } + subscriptions = null; + } + subscriber.next(value); + }))); + }; + for (var i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) { + _loop_1(i); + } + }; + } + exports2.raceInit = raceInit; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/range.js +var require_range = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/range.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.range = void 0; + var Observable_1 = require_Observable(); + var empty_1 = require_empty(); + function range2(start, count5, scheduler) { + if (count5 == null) { + count5 = start; + start = 0; + } + if (count5 <= 0) { + return empty_1.EMPTY; + } + var end = count5 + start; + return new Observable_1.Observable(scheduler ? function(subscriber) { + var n = start; + return scheduler.schedule(function() { + if (n < end) { + subscriber.next(n++); + this.schedule(); + } else { + subscriber.complete(); + } + }); + } : function(subscriber) { + var n = start; + while (n < end && !subscriber.closed) { + subscriber.next(n++); + } + subscriber.complete(); + }); + } + exports2.range = range2; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/using.js +var require_using = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/using.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.using = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + var empty_1 = require_empty(); + function using(resourceFactory, observableFactory) { + return new Observable_1.Observable(function(subscriber) { + var resource = resourceFactory(); + var result = observableFactory(resource); + var source = result ? innerFrom_1.innerFrom(result) : empty_1.EMPTY; + source.subscribe(subscriber); + return function() { + if (resource) { + resource.unsubscribe(); + } + }; + }); + } + exports2.using = using; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/zip.js +var require_zip = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/zip.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.zip = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var empty_1 = require_empty(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var args_1 = require_args(); + function zip5() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var resultSelector = args_1.popResultSelector(args); + var sources = argsOrArgArray_1.argsOrArgArray(args); + return sources.length ? new Observable_1.Observable(function(subscriber) { + var buffers = sources.map(function() { + return []; + }); + var completed = sources.map(function() { + return false; + }); + subscriber.add(function() { + buffers = completed = null; + }); + var _loop_1 = function(sourceIndex2) { + innerFrom_1.innerFrom(sources[sourceIndex2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + buffers[sourceIndex2].push(value); + if (buffers.every(function(buffer) { + return buffer.length; + })) { + var result = buffers.map(function(buffer) { + return buffer.shift(); + }); + subscriber.next(resultSelector ? resultSelector.apply(void 0, __spreadArray([], __read(result))) : result); + if (buffers.some(function(buffer, i) { + return !buffer.length && completed[i]; + })) { + subscriber.complete(); + } + } + }, function() { + completed[sourceIndex2] = true; + !buffers[sourceIndex2].length && subscriber.complete(); + })); + }; + for (var sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) { + _loop_1(sourceIndex); + } + return function() { + buffers = completed = null; + }; + }) : empty_1.EMPTY; + } + exports2.zip = zip5; + } +}); + +// node_modules/rxjs/dist/cjs/internal/types.js +var require_types = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/types.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/audit.js +var require_audit = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/audit.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.audit = void 0; + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function audit(durationSelector) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + var lastValue = null; + var durationSubscriber = null; + var isComplete = false; + var endDuration = function() { + durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe(); + durationSubscriber = null; + if (hasValue) { + hasValue = false; + var value = lastValue; + lastValue = null; + subscriber.next(value); + } + isComplete && subscriber.complete(); + }; + var cleanupDuration = function() { + durationSubscriber = null; + isComplete && subscriber.complete(); + }; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + lastValue = value; + if (!durationSubscriber) { + innerFrom_1.innerFrom(durationSelector(value)).subscribe(durationSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, endDuration, cleanupDuration)); + } + }, function() { + isComplete = true; + (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete(); + })); + }); + } + exports2.audit = audit; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/auditTime.js +var require_auditTime = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/auditTime.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.auditTime = void 0; + var async_1 = require_async(); + var audit_1 = require_audit(); + var timer_1 = require_timer(); + function auditTime(duration, scheduler) { + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + return audit_1.audit(function() { + return timer_1.timer(duration, scheduler); + }); + } + exports2.auditTime = auditTime; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/buffer.js +var require_buffer = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/buffer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.buffer = void 0; + var lift_1 = require_lift(); + var noop_1 = require_noop(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function buffer(closingNotifier) { + return lift_1.operate(function(source, subscriber) { + var currentBuffer = []; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return currentBuffer.push(value); + }, function() { + subscriber.next(currentBuffer); + subscriber.complete(); + })); + closingNotifier.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + var b = currentBuffer; + currentBuffer = []; + subscriber.next(b); + }, noop_1.noop)); + return function() { + currentBuffer = null; + }; + }); + } + exports2.buffer = buffer; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/bufferCount.js +var require_bufferCount = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/bufferCount.js"(exports2) { + "use strict"; + var __values = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bufferCount = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var arrRemove_1 = require_arrRemove(); + function bufferCount(bufferSize, startBufferEvery) { + if (startBufferEvery === void 0) { + startBufferEvery = null; + } + startBufferEvery = startBufferEvery !== null && startBufferEvery !== void 0 ? startBufferEvery : bufferSize; + return lift_1.operate(function(source, subscriber) { + var buffers = []; + var count5 = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a, e_2, _b; + var toEmit = null; + if (count5++ % startBufferEvery === 0) { + buffers.push([]); + } + try { + for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) { + var buffer = buffers_1_1.value; + buffer.push(value); + if (bufferSize <= buffer.length) { + toEmit = toEmit !== null && toEmit !== void 0 ? toEmit : []; + toEmit.push(buffer); + } + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) + _a.call(buffers_1); + } finally { + if (e_1) + throw e_1.error; + } + } + if (toEmit) { + try { + for (var toEmit_1 = __values(toEmit), toEmit_1_1 = toEmit_1.next(); !toEmit_1_1.done; toEmit_1_1 = toEmit_1.next()) { + var buffer = toEmit_1_1.value; + arrRemove_1.arrRemove(buffers, buffer); + subscriber.next(buffer); + } + } catch (e_2_1) { + e_2 = { error: e_2_1 }; + } finally { + try { + if (toEmit_1_1 && !toEmit_1_1.done && (_b = toEmit_1.return)) + _b.call(toEmit_1); + } finally { + if (e_2) + throw e_2.error; + } + } + } + }, function() { + var e_3, _a; + try { + for (var buffers_2 = __values(buffers), buffers_2_1 = buffers_2.next(); !buffers_2_1.done; buffers_2_1 = buffers_2.next()) { + var buffer = buffers_2_1.value; + subscriber.next(buffer); + } + } catch (e_3_1) { + e_3 = { error: e_3_1 }; + } finally { + try { + if (buffers_2_1 && !buffers_2_1.done && (_a = buffers_2.return)) + _a.call(buffers_2); + } finally { + if (e_3) + throw e_3.error; + } + } + subscriber.complete(); + }, void 0, function() { + buffers = null; + })); + }); + } + exports2.bufferCount = bufferCount; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/bufferTime.js +var require_bufferTime = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/bufferTime.js"(exports2) { + "use strict"; + var __values = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bufferTime = void 0; + var Subscription_1 = require_Subscription(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var arrRemove_1 = require_arrRemove(); + var async_1 = require_async(); + var args_1 = require_args(); + var executeSchedule_1 = require_executeSchedule(); + function bufferTime(bufferTimeSpan) { + var _a, _b; + var otherArgs = []; + for (var _i = 1; _i < arguments.length; _i++) { + otherArgs[_i - 1] = arguments[_i]; + } + var scheduler = (_a = args_1.popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : async_1.asyncScheduler; + var bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null; + var maxBufferSize = otherArgs[1] || Infinity; + return lift_1.operate(function(source, subscriber) { + var bufferRecords = []; + var restartOnEmit = false; + var emit = function(record) { + var buffer = record.buffer, subs = record.subs; + subs.unsubscribe(); + arrRemove_1.arrRemove(bufferRecords, record); + subscriber.next(buffer); + restartOnEmit && startBuffer(); + }; + var startBuffer = function() { + if (bufferRecords) { + var subs = new Subscription_1.Subscription(); + subscriber.add(subs); + var buffer = []; + var record_1 = { + buffer, + subs + }; + bufferRecords.push(record_1); + executeSchedule_1.executeSchedule(subs, scheduler, function() { + return emit(record_1); + }, bufferTimeSpan); + } + }; + if (bufferCreationInterval !== null && bufferCreationInterval >= 0) { + executeSchedule_1.executeSchedule(subscriber, scheduler, startBuffer, bufferCreationInterval, true); + } else { + restartOnEmit = true; + } + startBuffer(); + var bufferTimeSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a2; + var recordsCopy = bufferRecords.slice(); + try { + for (var recordsCopy_1 = __values(recordsCopy), recordsCopy_1_1 = recordsCopy_1.next(); !recordsCopy_1_1.done; recordsCopy_1_1 = recordsCopy_1.next()) { + var record = recordsCopy_1_1.value; + var buffer = record.buffer; + buffer.push(value); + maxBufferSize <= buffer.length && emit(record); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a2 = recordsCopy_1.return)) + _a2.call(recordsCopy_1); + } finally { + if (e_1) + throw e_1.error; + } + } + }, function() { + while (bufferRecords === null || bufferRecords === void 0 ? void 0 : bufferRecords.length) { + subscriber.next(bufferRecords.shift().buffer); + } + bufferTimeSubscriber === null || bufferTimeSubscriber === void 0 ? void 0 : bufferTimeSubscriber.unsubscribe(); + subscriber.complete(); + subscriber.unsubscribe(); + }, void 0, function() { + return bufferRecords = null; + }); + source.subscribe(bufferTimeSubscriber); + }); + } + exports2.bufferTime = bufferTime; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/bufferToggle.js +var require_bufferToggle = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/bufferToggle.js"(exports2) { + "use strict"; + var __values = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bufferToggle = void 0; + var Subscription_1 = require_Subscription(); + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + var arrRemove_1 = require_arrRemove(); + function bufferToggle(openings, closingSelector) { + return lift_1.operate(function(source, subscriber) { + var buffers = []; + innerFrom_1.innerFrom(openings).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(openValue) { + var buffer = []; + buffers.push(buffer); + var closingSubscription = new Subscription_1.Subscription(); + var emitBuffer = function() { + arrRemove_1.arrRemove(buffers, buffer); + subscriber.next(buffer); + closingSubscription.unsubscribe(); + }; + closingSubscription.add(innerFrom_1.innerFrom(closingSelector(openValue)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, emitBuffer, noop_1.noop))); + }, noop_1.noop)); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a; + try { + for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) { + var buffer = buffers_1_1.value; + buffer.push(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) + _a.call(buffers_1); + } finally { + if (e_1) + throw e_1.error; + } + } + }, function() { + while (buffers.length > 0) { + subscriber.next(buffers.shift()); + } + subscriber.complete(); + })); + }); + } + exports2.bufferToggle = bufferToggle; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/bufferWhen.js +var require_bufferWhen = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/bufferWhen.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bufferWhen = void 0; + var lift_1 = require_lift(); + var noop_1 = require_noop(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function bufferWhen(closingSelector) { + return lift_1.operate(function(source, subscriber) { + var buffer = null; + var closingSubscriber = null; + var openBuffer = function() { + closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe(); + var b = buffer; + buffer = []; + b && subscriber.next(b); + innerFrom_1.innerFrom(closingSelector()).subscribe(closingSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, openBuffer, noop_1.noop)); + }; + openBuffer(); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return buffer === null || buffer === void 0 ? void 0 : buffer.push(value); + }, function() { + buffer && subscriber.next(buffer); + subscriber.complete(); + }, void 0, function() { + return buffer = closingSubscriber = null; + })); + }); + } + exports2.bufferWhen = bufferWhen; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/catchError.js +var require_catchError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/catchError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.catchError = void 0; + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var lift_1 = require_lift(); + function catchError(selector) { + return lift_1.operate(function(source, subscriber) { + var innerSub = null; + var syncUnsub = false; + var handledResult; + innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, void 0, function(err) { + handledResult = innerFrom_1.innerFrom(selector(err, catchError(selector)(source))); + if (innerSub) { + innerSub.unsubscribe(); + innerSub = null; + handledResult.subscribe(subscriber); + } else { + syncUnsub = true; + } + })); + if (syncUnsub) { + innerSub.unsubscribe(); + innerSub = null; + handledResult.subscribe(subscriber); + } + }); + } + exports2.catchError = catchError; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/scanInternals.js +var require_scanInternals = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/scanInternals.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scanInternals = void 0; + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) { + return function(source, subscriber) { + var hasState = hasSeed; + var state = seed; + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var i = index++; + state = hasState ? accumulator(state, value, i) : (hasState = true, value); + emitOnNext && subscriber.next(state); + }, emitBeforeComplete && function() { + hasState && subscriber.next(state); + subscriber.complete(); + })); + }; + } + exports2.scanInternals = scanInternals; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/reduce.js +var require_reduce = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/reduce.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.reduce = void 0; + var scanInternals_1 = require_scanInternals(); + var lift_1 = require_lift(); + function reduce(accumulator, seed) { + return lift_1.operate(scanInternals_1.scanInternals(accumulator, seed, arguments.length >= 2, false, true)); + } + exports2.reduce = reduce; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/toArray.js +var require_toArray = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/toArray.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.toArray = void 0; + var reduce_1 = require_reduce(); + var lift_1 = require_lift(); + var arrReducer = function(arr, value) { + return arr.push(value), arr; + }; + function toArray4() { + return lift_1.operate(function(source, subscriber) { + reduce_1.reduce(arrReducer, [])(source).subscribe(subscriber); + }); + } + exports2.toArray = toArray4; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/joinAllInternals.js +var require_joinAllInternals = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/joinAllInternals.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.joinAllInternals = void 0; + var identity_1 = require_identity(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var pipe_1 = require_pipe(); + var mergeMap_1 = require_mergeMap(); + var toArray_1 = require_toArray(); + function joinAllInternals(joinFn, project) { + return pipe_1.pipe(toArray_1.toArray(), mergeMap_1.mergeMap(function(sources) { + return joinFn(sources); + }), project ? mapOneOrManyArgs_1.mapOneOrManyArgs(project) : identity_1.identity); + } + exports2.joinAllInternals = joinAllInternals; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/combineLatestAll.js +var require_combineLatestAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/combineLatestAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.combineLatestAll = void 0; + var combineLatest_1 = require_combineLatest(); + var joinAllInternals_1 = require_joinAllInternals(); + function combineLatestAll(project) { + return joinAllInternals_1.joinAllInternals(combineLatest_1.combineLatest, project); + } + exports2.combineLatestAll = combineLatestAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/combineAll.js +var require_combineAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/combineAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.combineAll = void 0; + var combineLatestAll_1 = require_combineLatestAll(); + exports2.combineAll = combineLatestAll_1.combineLatestAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/combineLatest.js +var require_combineLatest2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/combineLatest.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.combineLatest = void 0; + var combineLatest_1 = require_combineLatest(); + var lift_1 = require_lift(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var pipe_1 = require_pipe(); + var args_1 = require_args(); + function combineLatest() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var resultSelector = args_1.popResultSelector(args); + return resultSelector ? pipe_1.pipe(combineLatest.apply(void 0, __spreadArray([], __read(args))), mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)) : lift_1.operate(function(source, subscriber) { + combineLatest_1.combineLatestInit(__spreadArray([source], __read(argsOrArgArray_1.argsOrArgArray(args))))(subscriber); + }); + } + exports2.combineLatest = combineLatest; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/combineLatestWith.js +var require_combineLatestWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/combineLatestWith.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.combineLatestWith = void 0; + var combineLatest_1 = require_combineLatest2(); + function combineLatestWith() { + var otherSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherSources[_i] = arguments[_i]; + } + return combineLatest_1.combineLatest.apply(void 0, __spreadArray([], __read(otherSources))); + } + exports2.combineLatestWith = combineLatestWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/concatMap.js +var require_concatMap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/concatMap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.concatMap = void 0; + var mergeMap_1 = require_mergeMap(); + var isFunction_1 = require_isFunction(); + function concatMap(project, resultSelector) { + return isFunction_1.isFunction(resultSelector) ? mergeMap_1.mergeMap(project, resultSelector, 1) : mergeMap_1.mergeMap(project, 1); + } + exports2.concatMap = concatMap; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/concatMapTo.js +var require_concatMapTo = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/concatMapTo.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.concatMapTo = void 0; + var concatMap_1 = require_concatMap(); + var isFunction_1 = require_isFunction(); + function concatMapTo(innerObservable, resultSelector) { + return isFunction_1.isFunction(resultSelector) ? concatMap_1.concatMap(function() { + return innerObservable; + }, resultSelector) : concatMap_1.concatMap(function() { + return innerObservable; + }); + } + exports2.concatMapTo = concatMapTo; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/concat.js +var require_concat2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/concat.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.concat = void 0; + var lift_1 = require_lift(); + var concatAll_1 = require_concatAll(); + var args_1 = require_args(); + var from_1 = require_from(); + function concat() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args_1.popScheduler(args); + return lift_1.operate(function(source, subscriber) { + concatAll_1.concatAll()(from_1.from(__spreadArray([source], __read(args)), scheduler)).subscribe(subscriber); + }); + } + exports2.concat = concat; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/concatWith.js +var require_concatWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/concatWith.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.concatWith = void 0; + var concat_1 = require_concat2(); + function concatWith() { + var otherSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherSources[_i] = arguments[_i]; + } + return concat_1.concat.apply(void 0, __spreadArray([], __read(otherSources))); + } + exports2.concatWith = concatWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/fromSubscribable.js +var require_fromSubscribable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/fromSubscribable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromSubscribable = void 0; + var Observable_1 = require_Observable(); + function fromSubscribable(subscribable) { + return new Observable_1.Observable(function(subscriber) { + return subscribable.subscribe(subscriber); + }); + } + exports2.fromSubscribable = fromSubscribable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/connect.js +var require_connect = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/connect.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.connect = void 0; + var Subject_1 = require_Subject(); + var from_1 = require_from(); + var lift_1 = require_lift(); + var fromSubscribable_1 = require_fromSubscribable(); + var DEFAULT_CONFIG = { + connector: function() { + return new Subject_1.Subject(); + } + }; + function connect(selector, config) { + if (config === void 0) { + config = DEFAULT_CONFIG; + } + var connector = config.connector; + return lift_1.operate(function(source, subscriber) { + var subject = connector(); + from_1.from(selector(fromSubscribable_1.fromSubscribable(subject))).subscribe(subscriber); + subscriber.add(source.subscribe(subject)); + }); + } + exports2.connect = connect; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/count.js +var require_count = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/count.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.count = void 0; + var reduce_1 = require_reduce(); + function count5(predicate) { + return reduce_1.reduce(function(total, value, i) { + return !predicate || predicate(value, i) ? total + 1 : total; + }, 0); + } + exports2.count = count5; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/debounce.js +var require_debounce = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/debounce.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.debounce = void 0; + var lift_1 = require_lift(); + var noop_1 = require_noop(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function debounce(durationSelector) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + var lastValue = null; + var durationSubscriber = null; + var emit = function() { + durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe(); + durationSubscriber = null; + if (hasValue) { + hasValue = false; + var value = lastValue; + lastValue = null; + subscriber.next(value); + } + }; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe(); + hasValue = true; + lastValue = value; + durationSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, emit, noop_1.noop); + innerFrom_1.innerFrom(durationSelector(value)).subscribe(durationSubscriber); + }, function() { + emit(); + subscriber.complete(); + }, void 0, function() { + lastValue = durationSubscriber = null; + })); + }); + } + exports2.debounce = debounce; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/debounceTime.js +var require_debounceTime = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/debounceTime.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.debounceTime = void 0; + var async_1 = require_async(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function debounceTime(dueTime, scheduler) { + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + return lift_1.operate(function(source, subscriber) { + var activeTask = null; + var lastValue = null; + var lastTime = null; + var emit = function() { + if (activeTask) { + activeTask.unsubscribe(); + activeTask = null; + var value = lastValue; + lastValue = null; + subscriber.next(value); + } + }; + function emitWhenIdle() { + var targetTime = lastTime + dueTime; + var now = scheduler.now(); + if (now < targetTime) { + activeTask = this.schedule(void 0, targetTime - now); + subscriber.add(activeTask); + return; + } + emit(); + } + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + lastValue = value; + lastTime = scheduler.now(); + if (!activeTask) { + activeTask = scheduler.schedule(emitWhenIdle, dueTime); + subscriber.add(activeTask); + } + }, function() { + emit(); + subscriber.complete(); + }, void 0, function() { + lastValue = activeTask = null; + })); + }); + } + exports2.debounceTime = debounceTime; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/defaultIfEmpty.js +var require_defaultIfEmpty = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/defaultIfEmpty.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.defaultIfEmpty = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function defaultIfEmpty4(defaultValue) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + subscriber.next(value); + }, function() { + if (!hasValue) { + subscriber.next(defaultValue); + } + subscriber.complete(); + })); + }); + } + exports2.defaultIfEmpty = defaultIfEmpty4; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/take.js +var require_take = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/take.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.take = void 0; + var empty_1 = require_empty(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function take4(count5) { + return count5 <= 0 ? function() { + return empty_1.EMPTY; + } : lift_1.operate(function(source, subscriber) { + var seen = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (++seen <= count5) { + subscriber.next(value); + if (count5 <= seen) { + subscriber.complete(); + } + } + })); + }); + } + exports2.take = take4; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/ignoreElements.js +var require_ignoreElements = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/ignoreElements.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ignoreElements = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + function ignoreElements() { + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, noop_1.noop)); + }); + } + exports2.ignoreElements = ignoreElements; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mapTo.js +var require_mapTo = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mapTo.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mapTo = void 0; + var map_1 = require_map(); + function mapTo(value) { + return map_1.map(function() { + return value; + }); + } + exports2.mapTo = mapTo; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/delayWhen.js +var require_delayWhen = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/delayWhen.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.delayWhen = void 0; + var concat_1 = require_concat(); + var take_1 = require_take(); + var ignoreElements_1 = require_ignoreElements(); + var mapTo_1 = require_mapTo(); + var mergeMap_1 = require_mergeMap(); + function delayWhen(delayDurationSelector, subscriptionDelay) { + if (subscriptionDelay) { + return function(source) { + return concat_1.concat(subscriptionDelay.pipe(take_1.take(1), ignoreElements_1.ignoreElements()), source.pipe(delayWhen(delayDurationSelector))); + }; + } + return mergeMap_1.mergeMap(function(value, index) { + return delayDurationSelector(value, index).pipe(take_1.take(1), mapTo_1.mapTo(value)); + }); + } + exports2.delayWhen = delayWhen; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/delay.js +var require_delay = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/delay.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.delay = void 0; + var async_1 = require_async(); + var delayWhen_1 = require_delayWhen(); + var timer_1 = require_timer(); + function delay(due, scheduler) { + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + var duration = timer_1.timer(due, scheduler); + return delayWhen_1.delayWhen(function() { + return duration; + }); + } + exports2.delay = delay; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/dematerialize.js +var require_dematerialize = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/dematerialize.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.dematerialize = void 0; + var Notification_1 = require_Notification(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function dematerialize() { + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(notification) { + return Notification_1.observeNotification(notification, subscriber); + })); + }); + } + exports2.dematerialize = dematerialize; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/distinct.js +var require_distinct = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/distinct.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.distinct = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + function distinct4(keySelector, flushes) { + return lift_1.operate(function(source, subscriber) { + var distinctKeys = /* @__PURE__ */ new Set(); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var key = keySelector ? keySelector(value) : value; + if (!distinctKeys.has(key)) { + distinctKeys.add(key); + subscriber.next(value); + } + })); + flushes === null || flushes === void 0 ? void 0 : flushes.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + return distinctKeys.clear(); + }, noop_1.noop)); + }); + } + exports2.distinct = distinct4; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/distinctUntilChanged.js +var require_distinctUntilChanged = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/distinctUntilChanged.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.distinctUntilChanged = void 0; + var identity_1 = require_identity(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function distinctUntilChanged(comparator, keySelector) { + if (keySelector === void 0) { + keySelector = identity_1.identity; + } + comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare; + return lift_1.operate(function(source, subscriber) { + var previousKey; + var first5 = true; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var currentKey = keySelector(value); + if (first5 || !comparator(previousKey, currentKey)) { + first5 = false; + previousKey = currentKey; + subscriber.next(value); + } + })); + }); + } + exports2.distinctUntilChanged = distinctUntilChanged; + function defaultCompare(a, b) { + return a === b; + } + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/distinctUntilKeyChanged.js +var require_distinctUntilKeyChanged = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/distinctUntilKeyChanged.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.distinctUntilKeyChanged = void 0; + var distinctUntilChanged_1 = require_distinctUntilChanged(); + function distinctUntilKeyChanged(key, compare) { + return distinctUntilChanged_1.distinctUntilChanged(function(x, y) { + return compare ? compare(x[key], y[key]) : x[key] === y[key]; + }); + } + exports2.distinctUntilKeyChanged = distinctUntilKeyChanged; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/throwIfEmpty.js +var require_throwIfEmpty = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/throwIfEmpty.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.throwIfEmpty = void 0; + var EmptyError_1 = require_EmptyError(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function throwIfEmpty(errorFactory) { + if (errorFactory === void 0) { + errorFactory = defaultErrorFactory; + } + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + subscriber.next(value); + }, function() { + return hasValue ? subscriber.complete() : subscriber.error(errorFactory()); + })); + }); + } + exports2.throwIfEmpty = throwIfEmpty; + function defaultErrorFactory() { + return new EmptyError_1.EmptyError(); + } + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/elementAt.js +var require_elementAt = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/elementAt.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.elementAt = void 0; + var ArgumentOutOfRangeError_1 = require_ArgumentOutOfRangeError(); + var filter_1 = require_filter(); + var throwIfEmpty_1 = require_throwIfEmpty(); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + var take_1 = require_take(); + function elementAt4(index, defaultValue) { + if (index < 0) { + throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); + } + var hasDefaultValue = arguments.length >= 2; + return function(source) { + return source.pipe(filter_1.filter(function(v, i) { + return i === index; + }), take_1.take(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function() { + return new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); + })); + }; + } + exports2.elementAt = elementAt4; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/endWith.js +var require_endWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/endWith.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.endWith = void 0; + var concat_1 = require_concat(); + var of_1 = require_of(); + function endWith() { + var values = []; + for (var _i = 0; _i < arguments.length; _i++) { + values[_i] = arguments[_i]; + } + return function(source) { + return concat_1.concat(source, of_1.of.apply(void 0, __spreadArray([], __read(values)))); + }; + } + exports2.endWith = endWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/every.js +var require_every = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/every.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.every = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function every(predicate, thisArg) { + return lift_1.operate(function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (!predicate.call(thisArg, value, index++, source)) { + subscriber.next(false); + subscriber.complete(); + } + }, function() { + subscriber.next(true); + subscriber.complete(); + })); + }); + } + exports2.every = every; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/exhaustAll.js +var require_exhaustAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/exhaustAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exhaustAll = void 0; + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function exhaustAll() { + return lift_1.operate(function(source, subscriber) { + var isComplete = false; + var innerSub = null; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(inner) { + if (!innerSub) { + innerSub = innerFrom_1.innerFrom(inner).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, function() { + innerSub = null; + isComplete && subscriber.complete(); + })); + } + }, function() { + isComplete = true; + !innerSub && subscriber.complete(); + })); + }); + } + exports2.exhaustAll = exhaustAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/exhaust.js +var require_exhaust = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/exhaust.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exhaust = void 0; + var exhaustAll_1 = require_exhaustAll(); + exports2.exhaust = exhaustAll_1.exhaustAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/exhaustMap.js +var require_exhaustMap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/exhaustMap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exhaustMap = void 0; + var map_1 = require_map(); + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function exhaustMap(project, resultSelector) { + if (resultSelector) { + return function(source) { + return source.pipe(exhaustMap(function(a, i) { + return innerFrom_1.innerFrom(project(a, i)).pipe(map_1.map(function(b, ii) { + return resultSelector(a, b, i, ii); + })); + })); + }; + } + return lift_1.operate(function(source, subscriber) { + var index = 0; + var innerSub = null; + var isComplete = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(outerValue) { + if (!innerSub) { + innerSub = OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, function() { + innerSub = null; + isComplete && subscriber.complete(); + }); + innerFrom_1.innerFrom(project(outerValue, index++)).subscribe(innerSub); + } + }, function() { + isComplete = true; + !innerSub && subscriber.complete(); + })); + }); + } + exports2.exhaustMap = exhaustMap; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/expand.js +var require_expand = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/expand.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.expand = void 0; + var lift_1 = require_lift(); + var mergeInternals_1 = require_mergeInternals(); + function expand(project, concurrent, scheduler) { + if (concurrent === void 0) { + concurrent = Infinity; + } + concurrent = (concurrent || 0) < 1 ? Infinity : concurrent; + return lift_1.operate(function(source, subscriber) { + return mergeInternals_1.mergeInternals(source, subscriber, project, concurrent, void 0, true, scheduler); + }); + } + exports2.expand = expand; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/finalize.js +var require_finalize = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/finalize.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.finalize = void 0; + var lift_1 = require_lift(); + function finalize(callback) { + return lift_1.operate(function(source, subscriber) { + try { + source.subscribe(subscriber); + } finally { + subscriber.add(callback); + } + }); + } + exports2.finalize = finalize; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/find.js +var require_find = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/find.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createFind = exports2.find = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function find2(predicate, thisArg) { + return lift_1.operate(createFind(predicate, thisArg, "value")); + } + exports2.find = find2; + function createFind(predicate, thisArg, emit) { + var findIndex = emit === "index"; + return function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var i = index++; + if (predicate.call(thisArg, value, i, source)) { + subscriber.next(findIndex ? i : value); + subscriber.complete(); + } + }, function() { + subscriber.next(findIndex ? -1 : void 0); + subscriber.complete(); + })); + }; + } + exports2.createFind = createFind; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/findIndex.js +var require_findIndex = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/findIndex.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.findIndex = void 0; + var lift_1 = require_lift(); + var find_1 = require_find(); + function findIndex(predicate, thisArg) { + return lift_1.operate(find_1.createFind(predicate, thisArg, "index")); + } + exports2.findIndex = findIndex; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/first.js +var require_first = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/first.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.first = void 0; + var EmptyError_1 = require_EmptyError(); + var filter_1 = require_filter(); + var take_1 = require_take(); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + var throwIfEmpty_1 = require_throwIfEmpty(); + var identity_1 = require_identity(); + function first5(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function(source) { + return source.pipe(predicate ? filter_1.filter(function(v, i) { + return predicate(v, i, source); + }) : identity_1.identity, take_1.take(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function() { + return new EmptyError_1.EmptyError(); + })); + }; + } + exports2.first = first5; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/groupBy.js +var require_groupBy = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/groupBy.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.groupBy = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function groupBy4(keySelector, elementOrOptions, duration, connector) { + return lift_1.operate(function(source, subscriber) { + var element; + if (!elementOrOptions || typeof elementOrOptions === "function") { + element = elementOrOptions; + } else { + duration = elementOrOptions.duration, element = elementOrOptions.element, connector = elementOrOptions.connector; + } + var groups = /* @__PURE__ */ new Map(); + var notify = function(cb) { + groups.forEach(cb); + cb(subscriber); + }; + var handleError = function(err) { + return notify(function(consumer) { + return consumer.error(err); + }); + }; + var activeGroups = 0; + var teardownAttempted = false; + var groupBySourceSubscriber = new OperatorSubscriber_1.OperatorSubscriber(subscriber, function(value) { + try { + var key_1 = keySelector(value); + var group_1 = groups.get(key_1); + if (!group_1) { + groups.set(key_1, group_1 = connector ? connector() : new Subject_1.Subject()); + var grouped = createGroupedObservable(key_1, group_1); + subscriber.next(grouped); + if (duration) { + var durationSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(group_1, function() { + group_1.complete(); + durationSubscriber_1 === null || durationSubscriber_1 === void 0 ? void 0 : durationSubscriber_1.unsubscribe(); + }, void 0, void 0, function() { + return groups.delete(key_1); + }); + groupBySourceSubscriber.add(innerFrom_1.innerFrom(duration(grouped)).subscribe(durationSubscriber_1)); + } + } + group_1.next(element ? element(value) : value); + } catch (err) { + handleError(err); + } + }, function() { + return notify(function(consumer) { + return consumer.complete(); + }); + }, handleError, function() { + return groups.clear(); + }, function() { + teardownAttempted = true; + return activeGroups === 0; + }); + source.subscribe(groupBySourceSubscriber); + function createGroupedObservable(key, groupSubject) { + var result = new Observable_1.Observable(function(groupSubscriber) { + activeGroups++; + var innerSub = groupSubject.subscribe(groupSubscriber); + return function() { + innerSub.unsubscribe(); + --activeGroups === 0 && teardownAttempted && groupBySourceSubscriber.unsubscribe(); + }; + }); + result.key = key; + return result; + } + }); + } + exports2.groupBy = groupBy4; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/isEmpty.js +var require_isEmpty = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/isEmpty.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isEmpty = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function isEmpty() { + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + subscriber.next(false); + subscriber.complete(); + }, function() { + subscriber.next(true); + subscriber.complete(); + })); + }); + } + exports2.isEmpty = isEmpty; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/takeLast.js +var require_takeLast = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/takeLast.js"(exports2) { + "use strict"; + var __values = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.takeLast = void 0; + var empty_1 = require_empty(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function takeLast(count5) { + return count5 <= 0 ? function() { + return empty_1.EMPTY; + } : lift_1.operate(function(source, subscriber) { + var buffer = []; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + buffer.push(value); + count5 < buffer.length && buffer.shift(); + }, function() { + var e_1, _a; + try { + for (var buffer_1 = __values(buffer), buffer_1_1 = buffer_1.next(); !buffer_1_1.done; buffer_1_1 = buffer_1.next()) { + var value = buffer_1_1.value; + subscriber.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return)) + _a.call(buffer_1); + } finally { + if (e_1) + throw e_1.error; + } + } + subscriber.complete(); + }, void 0, function() { + buffer = null; + })); + }); + } + exports2.takeLast = takeLast; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/last.js +var require_last = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/last.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.last = void 0; + var EmptyError_1 = require_EmptyError(); + var filter_1 = require_filter(); + var takeLast_1 = require_takeLast(); + var throwIfEmpty_1 = require_throwIfEmpty(); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + var identity_1 = require_identity(); + function last5(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function(source) { + return source.pipe(predicate ? filter_1.filter(function(v, i) { + return predicate(v, i, source); + }) : identity_1.identity, takeLast_1.takeLast(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function() { + return new EmptyError_1.EmptyError(); + })); + }; + } + exports2.last = last5; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/materialize.js +var require_materialize = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/materialize.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.materialize = void 0; + var Notification_1 = require_Notification(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function materialize() { + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + subscriber.next(Notification_1.Notification.createNext(value)); + }, function() { + subscriber.next(Notification_1.Notification.createComplete()); + subscriber.complete(); + }, function(err) { + subscriber.next(Notification_1.Notification.createError(err)); + subscriber.complete(); + })); + }); + } + exports2.materialize = materialize; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/max.js +var require_max = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/max.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.max = void 0; + var reduce_1 = require_reduce(); + var isFunction_1 = require_isFunction(); + function max5(comparer) { + return reduce_1.reduce(isFunction_1.isFunction(comparer) ? function(x, y) { + return comparer(x, y) > 0 ? x : y; + } : function(x, y) { + return x > y ? x : y; + }); + } + exports2.max = max5; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/flatMap.js +var require_flatMap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/flatMap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.flatMap = void 0; + var mergeMap_1 = require_mergeMap(); + exports2.flatMap = mergeMap_1.mergeMap; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mergeMapTo.js +var require_mergeMapTo = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mergeMapTo.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeMapTo = void 0; + var mergeMap_1 = require_mergeMap(); + var isFunction_1 = require_isFunction(); + function mergeMapTo(innerObservable, resultSelector, concurrent) { + if (concurrent === void 0) { + concurrent = Infinity; + } + if (isFunction_1.isFunction(resultSelector)) { + return mergeMap_1.mergeMap(function() { + return innerObservable; + }, resultSelector, concurrent); + } + if (typeof resultSelector === "number") { + concurrent = resultSelector; + } + return mergeMap_1.mergeMap(function() { + return innerObservable; + }, concurrent); + } + exports2.mergeMapTo = mergeMapTo; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mergeScan.js +var require_mergeScan = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mergeScan.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeScan = void 0; + var lift_1 = require_lift(); + var mergeInternals_1 = require_mergeInternals(); + function mergeScan(accumulator, seed, concurrent) { + if (concurrent === void 0) { + concurrent = Infinity; + } + return lift_1.operate(function(source, subscriber) { + var state = seed; + return mergeInternals_1.mergeInternals(source, subscriber, function(value, index) { + return accumulator(state, value, index); + }, concurrent, function(value) { + state = value; + }, false, void 0, function() { + return state = null; + }); + }); + } + exports2.mergeScan = mergeScan; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/merge.js +var require_merge2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/merge.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.merge = void 0; + var lift_1 = require_lift(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var mergeAll_1 = require_mergeAll(); + var args_1 = require_args(); + var from_1 = require_from(); + function merge() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args_1.popScheduler(args); + var concurrent = args_1.popNumber(args, Infinity); + args = argsOrArgArray_1.argsOrArgArray(args); + return lift_1.operate(function(source, subscriber) { + mergeAll_1.mergeAll(concurrent)(from_1.from(__spreadArray([source], __read(args)), scheduler)).subscribe(subscriber); + }); + } + exports2.merge = merge; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mergeWith.js +var require_mergeWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mergeWith.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeWith = void 0; + var merge_1 = require_merge2(); + function mergeWith() { + var otherSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherSources[_i] = arguments[_i]; + } + return merge_1.merge.apply(void 0, __spreadArray([], __read(otherSources))); + } + exports2.mergeWith = mergeWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/min.js +var require_min = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/min.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.min = void 0; + var reduce_1 = require_reduce(); + var isFunction_1 = require_isFunction(); + function min5(comparer) { + return reduce_1.reduce(isFunction_1.isFunction(comparer) ? function(x, y) { + return comparer(x, y) < 0 ? x : y; + } : function(x, y) { + return x < y ? x : y; + }); + } + exports2.min = min5; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/multicast.js +var require_multicast = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/multicast.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.multicast = void 0; + var ConnectableObservable_1 = require_ConnectableObservable(); + var isFunction_1 = require_isFunction(); + var connect_1 = require_connect(); + function multicast(subjectOrSubjectFactory, selector) { + var subjectFactory = isFunction_1.isFunction(subjectOrSubjectFactory) ? subjectOrSubjectFactory : function() { + return subjectOrSubjectFactory; + }; + if (isFunction_1.isFunction(selector)) { + return connect_1.connect(selector, { + connector: subjectFactory + }); + } + return function(source) { + return new ConnectableObservable_1.ConnectableObservable(source, subjectFactory); + }; + } + exports2.multicast = multicast; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/pairwise.js +var require_pairwise = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/pairwise.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.pairwise = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function pairwise() { + return lift_1.operate(function(source, subscriber) { + var prev; + var hasPrev = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var p = prev; + prev = value; + hasPrev && subscriber.next([p, value]); + hasPrev = true; + })); + }); + } + exports2.pairwise = pairwise; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/pluck.js +var require_pluck = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/pluck.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.pluck = void 0; + var map_1 = require_map(); + function pluck() { + var properties = []; + for (var _i = 0; _i < arguments.length; _i++) { + properties[_i] = arguments[_i]; + } + var length = properties.length; + if (length === 0) { + throw new Error("list of properties cannot be empty."); + } + return map_1.map(function(x) { + var currentProp = x; + for (var i = 0; i < length; i++) { + var p = currentProp === null || currentProp === void 0 ? void 0 : currentProp[properties[i]]; + if (typeof p !== "undefined") { + currentProp = p; + } else { + return void 0; + } + } + return currentProp; + }); + } + exports2.pluck = pluck; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/publish.js +var require_publish = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/publish.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.publish = void 0; + var Subject_1 = require_Subject(); + var multicast_1 = require_multicast(); + var connect_1 = require_connect(); + function publish(selector) { + return selector ? function(source) { + return connect_1.connect(selector)(source); + } : function(source) { + return multicast_1.multicast(new Subject_1.Subject())(source); + }; + } + exports2.publish = publish; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/publishBehavior.js +var require_publishBehavior = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/publishBehavior.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.publishBehavior = void 0; + var BehaviorSubject_1 = require_BehaviorSubject(); + var ConnectableObservable_1 = require_ConnectableObservable(); + function publishBehavior(initialValue) { + return function(source) { + var subject = new BehaviorSubject_1.BehaviorSubject(initialValue); + return new ConnectableObservable_1.ConnectableObservable(source, function() { + return subject; + }); + }; + } + exports2.publishBehavior = publishBehavior; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/publishLast.js +var require_publishLast = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/publishLast.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.publishLast = void 0; + var AsyncSubject_1 = require_AsyncSubject(); + var ConnectableObservable_1 = require_ConnectableObservable(); + function publishLast() { + return function(source) { + var subject = new AsyncSubject_1.AsyncSubject(); + return new ConnectableObservable_1.ConnectableObservable(source, function() { + return subject; + }); + }; + } + exports2.publishLast = publishLast; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/publishReplay.js +var require_publishReplay = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/publishReplay.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.publishReplay = void 0; + var ReplaySubject_1 = require_ReplaySubject(); + var multicast_1 = require_multicast(); + var isFunction_1 = require_isFunction(); + function publishReplay(bufferSize, windowTime, selectorOrScheduler, timestampProvider) { + if (selectorOrScheduler && !isFunction_1.isFunction(selectorOrScheduler)) { + timestampProvider = selectorOrScheduler; + } + var selector = isFunction_1.isFunction(selectorOrScheduler) ? selectorOrScheduler : void 0; + return function(source) { + return multicast_1.multicast(new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, timestampProvider), selector)(source); + }; + } + exports2.publishReplay = publishReplay; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/raceWith.js +var require_raceWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/raceWith.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.raceWith = void 0; + var race_1 = require_race(); + var lift_1 = require_lift(); + var identity_1 = require_identity(); + function raceWith() { + var otherSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherSources[_i] = arguments[_i]; + } + return !otherSources.length ? identity_1.identity : lift_1.operate(function(source, subscriber) { + race_1.raceInit(__spreadArray([source], __read(otherSources)))(subscriber); + }); + } + exports2.raceWith = raceWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/repeat.js +var require_repeat = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/repeat.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.repeat = void 0; + var empty_1 = require_empty(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + var timer_1 = require_timer(); + function repeat2(countOrConfig) { + var _a; + var count5 = Infinity; + var delay; + if (countOrConfig != null) { + if (typeof countOrConfig === "object") { + _a = countOrConfig.count, count5 = _a === void 0 ? Infinity : _a, delay = countOrConfig.delay; + } else { + count5 = countOrConfig; + } + } + return count5 <= 0 ? function() { + return empty_1.EMPTY; + } : lift_1.operate(function(source, subscriber) { + var soFar = 0; + var sourceSub; + var resubscribe = function() { + sourceSub === null || sourceSub === void 0 ? void 0 : sourceSub.unsubscribe(); + sourceSub = null; + if (delay != null) { + var notifier = typeof delay === "number" ? timer_1.timer(delay) : innerFrom_1.innerFrom(delay(soFar)); + var notifierSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + notifierSubscriber_1.unsubscribe(); + subscribeToSource(); + }); + notifier.subscribe(notifierSubscriber_1); + } else { + subscribeToSource(); + } + }; + var subscribeToSource = function() { + var syncUnsub = false; + sourceSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, function() { + if (++soFar < count5) { + if (sourceSub) { + resubscribe(); + } else { + syncUnsub = true; + } + } else { + subscriber.complete(); + } + })); + if (syncUnsub) { + resubscribe(); + } + }; + subscribeToSource(); + }); + } + exports2.repeat = repeat2; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/repeatWhen.js +var require_repeatWhen = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/repeatWhen.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.repeatWhen = void 0; + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function repeatWhen(notifier) { + return lift_1.operate(function(source, subscriber) { + var innerSub; + var syncResub = false; + var completions$; + var isNotifierComplete = false; + var isMainComplete = false; + var checkComplete = function() { + return isMainComplete && isNotifierComplete && (subscriber.complete(), true); + }; + var getCompletionSubject = function() { + if (!completions$) { + completions$ = new Subject_1.Subject(); + notifier(completions$).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + if (innerSub) { + subscribeForRepeatWhen(); + } else { + syncResub = true; + } + }, function() { + isNotifierComplete = true; + checkComplete(); + })); + } + return completions$; + }; + var subscribeForRepeatWhen = function() { + isMainComplete = false; + innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, function() { + isMainComplete = true; + !checkComplete() && getCompletionSubject().next(); + })); + if (syncResub) { + innerSub.unsubscribe(); + innerSub = null; + syncResub = false; + subscribeForRepeatWhen(); + } + }; + subscribeForRepeatWhen(); + }); + } + exports2.repeatWhen = repeatWhen; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/retry.js +var require_retry = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/retry.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.retry = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var identity_1 = require_identity(); + var timer_1 = require_timer(); + var innerFrom_1 = require_innerFrom(); + function retry(configOrCount) { + if (configOrCount === void 0) { + configOrCount = Infinity; + } + var config; + if (configOrCount && typeof configOrCount === "object") { + config = configOrCount; + } else { + config = { + count: configOrCount + }; + } + var _a = config.count, count5 = _a === void 0 ? Infinity : _a, delay = config.delay, _b = config.resetOnSuccess, resetOnSuccess = _b === void 0 ? false : _b; + return count5 <= 0 ? identity_1.identity : lift_1.operate(function(source, subscriber) { + var soFar = 0; + var innerSub; + var subscribeForRetry = function() { + var syncUnsub = false; + innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (resetOnSuccess) { + soFar = 0; + } + subscriber.next(value); + }, void 0, function(err) { + if (soFar++ < count5) { + var resub_1 = function() { + if (innerSub) { + innerSub.unsubscribe(); + innerSub = null; + subscribeForRetry(); + } else { + syncUnsub = true; + } + }; + if (delay != null) { + var notifier = typeof delay === "number" ? timer_1.timer(delay) : innerFrom_1.innerFrom(delay(err, soFar)); + var notifierSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + notifierSubscriber_1.unsubscribe(); + resub_1(); + }, function() { + subscriber.complete(); + }); + notifier.subscribe(notifierSubscriber_1); + } else { + resub_1(); + } + } else { + subscriber.error(err); + } + })); + if (syncUnsub) { + innerSub.unsubscribe(); + innerSub = null; + subscribeForRetry(); + } + }; + subscribeForRetry(); + }); + } + exports2.retry = retry; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/retryWhen.js +var require_retryWhen = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/retryWhen.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.retryWhen = void 0; + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function retryWhen(notifier) { + return lift_1.operate(function(source, subscriber) { + var innerSub; + var syncResub = false; + var errors$; + var subscribeForRetryWhen = function() { + innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, void 0, function(err) { + if (!errors$) { + errors$ = new Subject_1.Subject(); + notifier(errors$).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + return innerSub ? subscribeForRetryWhen() : syncResub = true; + })); + } + if (errors$) { + errors$.next(err); + } + })); + if (syncResub) { + innerSub.unsubscribe(); + innerSub = null; + syncResub = false; + subscribeForRetryWhen(); + } + }; + subscribeForRetryWhen(); + }); + } + exports2.retryWhen = retryWhen; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/sample.js +var require_sample = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/sample.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.sample = void 0; + var lift_1 = require_lift(); + var noop_1 = require_noop(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function sample(notifier) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + var lastValue = null; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + lastValue = value; + })); + notifier.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + if (hasValue) { + hasValue = false; + var value = lastValue; + lastValue = null; + subscriber.next(value); + } + }, noop_1.noop)); + }); + } + exports2.sample = sample; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/sampleTime.js +var require_sampleTime = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/sampleTime.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.sampleTime = void 0; + var async_1 = require_async(); + var sample_1 = require_sample(); + var interval_1 = require_interval(); + function sampleTime(period, scheduler) { + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + return sample_1.sample(interval_1.interval(period, scheduler)); + } + exports2.sampleTime = sampleTime; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/scan.js +var require_scan = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/scan.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scan = void 0; + var lift_1 = require_lift(); + var scanInternals_1 = require_scanInternals(); + function scan(accumulator, seed) { + return lift_1.operate(scanInternals_1.scanInternals(accumulator, seed, arguments.length >= 2, true)); + } + exports2.scan = scan; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/sequenceEqual.js +var require_sequenceEqual = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/sequenceEqual.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.sequenceEqual = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function sequenceEqual(compareTo, comparator) { + if (comparator === void 0) { + comparator = function(a, b) { + return a === b; + }; + } + return lift_1.operate(function(source, subscriber) { + var aState = createState(); + var bState = createState(); + var emit = function(isEqual) { + subscriber.next(isEqual); + subscriber.complete(); + }; + var createSubscriber = function(selfState, otherState) { + var sequenceEqualSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(a) { + var buffer = otherState.buffer, complete = otherState.complete; + if (buffer.length === 0) { + complete ? emit(false) : selfState.buffer.push(a); + } else { + !comparator(a, buffer.shift()) && emit(false); + } + }, function() { + selfState.complete = true; + var complete = otherState.complete, buffer = otherState.buffer; + complete && emit(buffer.length === 0); + sequenceEqualSubscriber === null || sequenceEqualSubscriber === void 0 ? void 0 : sequenceEqualSubscriber.unsubscribe(); + }); + return sequenceEqualSubscriber; + }; + source.subscribe(createSubscriber(aState, bState)); + compareTo.subscribe(createSubscriber(bState, aState)); + }); + } + exports2.sequenceEqual = sequenceEqual; + function createState() { + return { + buffer: [], + complete: false + }; + } + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/share.js +var require_share = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/share.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.share = void 0; + var from_1 = require_from(); + var take_1 = require_take(); + var Subject_1 = require_Subject(); + var Subscriber_1 = require_Subscriber(); + var lift_1 = require_lift(); + function share(options) { + if (options === void 0) { + options = {}; + } + var _a = options.connector, connector = _a === void 0 ? function() { + return new Subject_1.Subject(); + } : _a, _b = options.resetOnError, resetOnError = _b === void 0 ? true : _b, _c = options.resetOnComplete, resetOnComplete = _c === void 0 ? true : _c, _d = options.resetOnRefCountZero, resetOnRefCountZero = _d === void 0 ? true : _d; + return function(wrapperSource) { + var connection = null; + var resetConnection = null; + var subject = null; + var refCount = 0; + var hasCompleted = false; + var hasErrored = false; + var cancelReset = function() { + resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe(); + resetConnection = null; + }; + var reset = function() { + cancelReset(); + connection = subject = null; + hasCompleted = hasErrored = false; + }; + var resetAndUnsubscribe = function() { + var conn = connection; + reset(); + conn === null || conn === void 0 ? void 0 : conn.unsubscribe(); + }; + return lift_1.operate(function(source, subscriber) { + refCount++; + if (!hasErrored && !hasCompleted) { + cancelReset(); + } + var dest = subject = subject !== null && subject !== void 0 ? subject : connector(); + subscriber.add(function() { + refCount--; + if (refCount === 0 && !hasErrored && !hasCompleted) { + resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero); + } + }); + dest.subscribe(subscriber); + if (!connection) { + connection = new Subscriber_1.SafeSubscriber({ + next: function(value) { + return dest.next(value); + }, + error: function(err) { + hasErrored = true; + cancelReset(); + resetConnection = handleReset(reset, resetOnError, err); + dest.error(err); + }, + complete: function() { + hasCompleted = true; + cancelReset(); + resetConnection = handleReset(reset, resetOnComplete); + dest.complete(); + } + }); + from_1.from(source).subscribe(connection); + } + })(wrapperSource); + }; + } + exports2.share = share; + function handleReset(reset, on) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + if (on === true) { + reset(); + return null; + } + if (on === false) { + return null; + } + return on.apply(void 0, __spreadArray([], __read(args))).pipe(take_1.take(1)).subscribe(function() { + return reset(); + }); + } + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/shareReplay.js +var require_shareReplay = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/shareReplay.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.shareReplay = void 0; + var ReplaySubject_1 = require_ReplaySubject(); + var share_1 = require_share(); + function shareReplay(configOrBufferSize, windowTime, scheduler) { + var _a, _b, _c; + var bufferSize; + var refCount = false; + if (configOrBufferSize && typeof configOrBufferSize === "object") { + _a = configOrBufferSize.bufferSize, bufferSize = _a === void 0 ? Infinity : _a, _b = configOrBufferSize.windowTime, windowTime = _b === void 0 ? Infinity : _b, _c = configOrBufferSize.refCount, refCount = _c === void 0 ? false : _c, scheduler = configOrBufferSize.scheduler; + } else { + bufferSize = configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity; + } + return share_1.share({ + connector: function() { + return new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, scheduler); + }, + resetOnError: true, + resetOnComplete: false, + resetOnRefCountZero: refCount + }); + } + exports2.shareReplay = shareReplay; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/single.js +var require_single = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/single.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.single = void 0; + var EmptyError_1 = require_EmptyError(); + var SequenceError_1 = require_SequenceError(); + var NotFoundError_1 = require_NotFoundError(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function single5(predicate) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + var singleValue; + var seenValue = false; + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + seenValue = true; + if (!predicate || predicate(value, index++, source)) { + hasValue && subscriber.error(new SequenceError_1.SequenceError("Too many matching values")); + hasValue = true; + singleValue = value; + } + }, function() { + if (hasValue) { + subscriber.next(singleValue); + subscriber.complete(); + } else { + subscriber.error(seenValue ? new NotFoundError_1.NotFoundError("No matching values") : new EmptyError_1.EmptyError()); + } + })); + }); + } + exports2.single = single5; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/skip.js +var require_skip = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/skip.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.skip = void 0; + var filter_1 = require_filter(); + function skip4(count5) { + return filter_1.filter(function(_, index) { + return count5 <= index; + }); + } + exports2.skip = skip4; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/skipLast.js +var require_skipLast = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/skipLast.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.skipLast = void 0; + var identity_1 = require_identity(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function skipLast(skipCount) { + return skipCount <= 0 ? identity_1.identity : lift_1.operate(function(source, subscriber) { + var ring = new Array(skipCount); + var seen = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var valueIndex = seen++; + if (valueIndex < skipCount) { + ring[valueIndex] = value; + } else { + var index = valueIndex % skipCount; + var oldValue = ring[index]; + ring[index] = value; + subscriber.next(oldValue); + } + })); + return function() { + ring = null; + }; + }); + } + exports2.skipLast = skipLast; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/skipUntil.js +var require_skipUntil = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/skipUntil.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.skipUntil = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + var noop_1 = require_noop(); + function skipUntil(notifier) { + return lift_1.operate(function(source, subscriber) { + var taking = false; + var skipSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + skipSubscriber === null || skipSubscriber === void 0 ? void 0 : skipSubscriber.unsubscribe(); + taking = true; + }, noop_1.noop); + innerFrom_1.innerFrom(notifier).subscribe(skipSubscriber); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return taking && subscriber.next(value); + })); + }); + } + exports2.skipUntil = skipUntil; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/skipWhile.js +var require_skipWhile = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/skipWhile.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.skipWhile = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function skipWhile5(predicate) { + return lift_1.operate(function(source, subscriber) { + var taking = false; + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return (taking || (taking = !predicate(value, index++))) && subscriber.next(value); + })); + }); + } + exports2.skipWhile = skipWhile5; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/startWith.js +var require_startWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/startWith.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.startWith = void 0; + var concat_1 = require_concat(); + var args_1 = require_args(); + var lift_1 = require_lift(); + function startWith() { + var values = []; + for (var _i = 0; _i < arguments.length; _i++) { + values[_i] = arguments[_i]; + } + var scheduler = args_1.popScheduler(values); + return lift_1.operate(function(source, subscriber) { + (scheduler ? concat_1.concat(values, source, scheduler) : concat_1.concat(values, source)).subscribe(subscriber); + }); + } + exports2.startWith = startWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/switchMap.js +var require_switchMap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/switchMap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.switchMap = void 0; + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function switchMap(project, resultSelector) { + return lift_1.operate(function(source, subscriber) { + var innerSubscriber = null; + var index = 0; + var isComplete = false; + var checkComplete = function() { + return isComplete && !innerSubscriber && subscriber.complete(); + }; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe(); + var innerIndex = 0; + var outerIndex = index++; + innerFrom_1.innerFrom(project(value, outerIndex)).subscribe(innerSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(innerValue) { + return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); + }, function() { + innerSubscriber = null; + checkComplete(); + })); + }, function() { + isComplete = true; + checkComplete(); + })); + }); + } + exports2.switchMap = switchMap; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/switchAll.js +var require_switchAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/switchAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.switchAll = void 0; + var switchMap_1 = require_switchMap(); + var identity_1 = require_identity(); + function switchAll() { + return switchMap_1.switchMap(identity_1.identity); + } + exports2.switchAll = switchAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/switchMapTo.js +var require_switchMapTo = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/switchMapTo.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.switchMapTo = void 0; + var switchMap_1 = require_switchMap(); + var isFunction_1 = require_isFunction(); + function switchMapTo(innerObservable, resultSelector) { + return isFunction_1.isFunction(resultSelector) ? switchMap_1.switchMap(function() { + return innerObservable; + }, resultSelector) : switchMap_1.switchMap(function() { + return innerObservable; + }); + } + exports2.switchMapTo = switchMapTo; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/switchScan.js +var require_switchScan = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/switchScan.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.switchScan = void 0; + var switchMap_1 = require_switchMap(); + var lift_1 = require_lift(); + function switchScan(accumulator, seed) { + return lift_1.operate(function(source, subscriber) { + var state = seed; + switchMap_1.switchMap(function(value, index) { + return accumulator(state, value, index); + }, function(_, innerValue) { + return state = innerValue, innerValue; + })(source).subscribe(subscriber); + return function() { + state = null; + }; + }); + } + exports2.switchScan = switchScan; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/takeUntil.js +var require_takeUntil = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/takeUntil.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.takeUntil = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + var noop_1 = require_noop(); + function takeUntil(notifier) { + return lift_1.operate(function(source, subscriber) { + innerFrom_1.innerFrom(notifier).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + return subscriber.complete(); + }, noop_1.noop)); + !subscriber.closed && source.subscribe(subscriber); + }); + } + exports2.takeUntil = takeUntil; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/takeWhile.js +var require_takeWhile = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/takeWhile.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.takeWhile = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function takeWhile5(predicate, inclusive) { + if (inclusive === void 0) { + inclusive = false; + } + return lift_1.operate(function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var result = predicate(value, index++); + (result || inclusive) && subscriber.next(value); + !result && subscriber.complete(); + })); + }); + } + exports2.takeWhile = takeWhile5; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/tap.js +var require_tap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/tap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.tap = void 0; + var isFunction_1 = require_isFunction(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var identity_1 = require_identity(); + function tap(observerOrNext, error, complete) { + var tapObserver = isFunction_1.isFunction(observerOrNext) || error || complete ? { next: observerOrNext, error, complete } : observerOrNext; + return tapObserver ? lift_1.operate(function(source, subscriber) { + var _a; + (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver); + var isUnsub = true; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var _a2; + (_a2 = tapObserver.next) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver, value); + subscriber.next(value); + }, function() { + var _a2; + isUnsub = false; + (_a2 = tapObserver.complete) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver); + subscriber.complete(); + }, function(err) { + var _a2; + isUnsub = false; + (_a2 = tapObserver.error) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver, err); + subscriber.error(err); + }, function() { + var _a2, _b; + if (isUnsub) { + (_a2 = tapObserver.unsubscribe) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver); + } + (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver); + })); + }) : identity_1.identity; + } + exports2.tap = tap; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/throttle.js +var require_throttle = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/throttle.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.throttle = exports2.defaultThrottleConfig = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + exports2.defaultThrottleConfig = { + leading: true, + trailing: false + }; + function throttle(durationSelector, config) { + if (config === void 0) { + config = exports2.defaultThrottleConfig; + } + return lift_1.operate(function(source, subscriber) { + var leading = config.leading, trailing = config.trailing; + var hasValue = false; + var sendValue = null; + var throttled = null; + var isComplete = false; + var endThrottling = function() { + throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe(); + throttled = null; + if (trailing) { + send(); + isComplete && subscriber.complete(); + } + }; + var cleanupThrottling = function() { + throttled = null; + isComplete && subscriber.complete(); + }; + var startThrottle = function(value) { + return throttled = innerFrom_1.innerFrom(durationSelector(value)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)); + }; + var send = function() { + if (hasValue) { + hasValue = false; + var value = sendValue; + sendValue = null; + subscriber.next(value); + !isComplete && startThrottle(value); + } + }; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + sendValue = value; + !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value)); + }, function() { + isComplete = true; + !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete(); + })); + }); + } + exports2.throttle = throttle; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/throttleTime.js +var require_throttleTime = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/throttleTime.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.throttleTime = void 0; + var async_1 = require_async(); + var throttle_1 = require_throttle(); + var timer_1 = require_timer(); + function throttleTime(duration, scheduler, config) { + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + if (config === void 0) { + config = throttle_1.defaultThrottleConfig; + } + var duration$ = timer_1.timer(duration, scheduler); + return throttle_1.throttle(function() { + return duration$; + }, config); + } + exports2.throttleTime = throttleTime; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/timeInterval.js +var require_timeInterval = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/timeInterval.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TimeInterval = exports2.timeInterval = void 0; + var async_1 = require_async(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function timeInterval(scheduler) { + if (scheduler === void 0) { + scheduler = async_1.asyncScheduler; + } + return lift_1.operate(function(source, subscriber) { + var last5 = scheduler.now(); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var now = scheduler.now(); + var interval = now - last5; + last5 = now; + subscriber.next(new TimeInterval(value, interval)); + })); + }); + } + exports2.timeInterval = timeInterval; + var TimeInterval = function() { + function TimeInterval2(value, interval) { + this.value = value; + this.interval = interval; + } + return TimeInterval2; + }(); + exports2.TimeInterval = TimeInterval; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/timeoutWith.js +var require_timeoutWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/timeoutWith.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.timeoutWith = void 0; + var async_1 = require_async(); + var isDate_1 = require_isDate(); + var timeout_1 = require_timeout(); + function timeoutWith(due, withObservable, scheduler) { + var first5; + var each4; + var _with; + scheduler = scheduler !== null && scheduler !== void 0 ? scheduler : async_1.async; + if (isDate_1.isValidDate(due)) { + first5 = due; + } else if (typeof due === "number") { + each4 = due; + } + if (withObservable) { + _with = function() { + return withObservable; + }; + } else { + throw new TypeError("No observable provided to switch to"); + } + if (first5 == null && each4 == null) { + throw new TypeError("No timeout provided."); + } + return timeout_1.timeout({ + first: first5, + each: each4, + scheduler, + with: _with + }); + } + exports2.timeoutWith = timeoutWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/timestamp.js +var require_timestamp = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/timestamp.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.timestamp = void 0; + var dateTimestampProvider_1 = require_dateTimestampProvider(); + var map_1 = require_map(); + function timestamp(timestampProvider) { + if (timestampProvider === void 0) { + timestampProvider = dateTimestampProvider_1.dateTimestampProvider; + } + return map_1.map(function(value) { + return { value, timestamp: timestampProvider.now() }; + }); + } + exports2.timestamp = timestamp; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/window.js +var require_window = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/window.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.window = void 0; + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + function window(windowBoundaries) { + return lift_1.operate(function(source, subscriber) { + var windowSubject = new Subject_1.Subject(); + subscriber.next(windowSubject.asObservable()); + var errorHandler = function(err) { + windowSubject.error(err); + subscriber.error(err); + }; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return windowSubject === null || windowSubject === void 0 ? void 0 : windowSubject.next(value); + }, function() { + windowSubject.complete(); + subscriber.complete(); + }, errorHandler)); + windowBoundaries.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + windowSubject.complete(); + subscriber.next(windowSubject = new Subject_1.Subject()); + }, noop_1.noop, errorHandler)); + return function() { + windowSubject === null || windowSubject === void 0 ? void 0 : windowSubject.unsubscribe(); + windowSubject = null; + }; + }); + } + exports2.window = window; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/windowCount.js +var require_windowCount = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/windowCount.js"(exports2) { + "use strict"; + var __values = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.windowCount = void 0; + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function windowCount(windowSize, startWindowEvery) { + if (startWindowEvery === void 0) { + startWindowEvery = 0; + } + var startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize; + return lift_1.operate(function(source, subscriber) { + var windows = [new Subject_1.Subject()]; + var starts = []; + var count5 = 0; + subscriber.next(windows[0].asObservable()); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a; + try { + for (var windows_1 = __values(windows), windows_1_1 = windows_1.next(); !windows_1_1.done; windows_1_1 = windows_1.next()) { + var window_1 = windows_1_1.value; + window_1.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (windows_1_1 && !windows_1_1.done && (_a = windows_1.return)) + _a.call(windows_1); + } finally { + if (e_1) + throw e_1.error; + } + } + var c = count5 - windowSize + 1; + if (c >= 0 && c % startEvery === 0) { + windows.shift().complete(); + } + if (++count5 % startEvery === 0) { + var window_2 = new Subject_1.Subject(); + windows.push(window_2); + subscriber.next(window_2.asObservable()); + } + }, function() { + while (windows.length > 0) { + windows.shift().complete(); + } + subscriber.complete(); + }, function(err) { + while (windows.length > 0) { + windows.shift().error(err); + } + subscriber.error(err); + }, function() { + starts = null; + windows = null; + })); + }); + } + exports2.windowCount = windowCount; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/windowTime.js +var require_windowTime = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/windowTime.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.windowTime = void 0; + var Subject_1 = require_Subject(); + var async_1 = require_async(); + var Subscription_1 = require_Subscription(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var arrRemove_1 = require_arrRemove(); + var args_1 = require_args(); + var executeSchedule_1 = require_executeSchedule(); + function windowTime(windowTimeSpan) { + var _a, _b; + var otherArgs = []; + for (var _i = 1; _i < arguments.length; _i++) { + otherArgs[_i - 1] = arguments[_i]; + } + var scheduler = (_a = args_1.popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : async_1.asyncScheduler; + var windowCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null; + var maxWindowSize = otherArgs[1] || Infinity; + return lift_1.operate(function(source, subscriber) { + var windowRecords = []; + var restartOnClose = false; + var closeWindow = function(record) { + var window = record.window, subs = record.subs; + window.complete(); + subs.unsubscribe(); + arrRemove_1.arrRemove(windowRecords, record); + restartOnClose && startWindow(); + }; + var startWindow = function() { + if (windowRecords) { + var subs = new Subscription_1.Subscription(); + subscriber.add(subs); + var window_1 = new Subject_1.Subject(); + var record_1 = { + window: window_1, + subs, + seen: 0 + }; + windowRecords.push(record_1); + subscriber.next(window_1.asObservable()); + executeSchedule_1.executeSchedule(subs, scheduler, function() { + return closeWindow(record_1); + }, windowTimeSpan); + } + }; + if (windowCreationInterval !== null && windowCreationInterval >= 0) { + executeSchedule_1.executeSchedule(subscriber, scheduler, startWindow, windowCreationInterval, true); + } else { + restartOnClose = true; + } + startWindow(); + var loop = function(cb) { + return windowRecords.slice().forEach(cb); + }; + var terminate = function(cb) { + loop(function(_a2) { + var window = _a2.window; + return cb(window); + }); + cb(subscriber); + subscriber.unsubscribe(); + }; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + loop(function(record) { + record.window.next(value); + maxWindowSize <= ++record.seen && closeWindow(record); + }); + }, function() { + return terminate(function(consumer) { + return consumer.complete(); + }); + }, function(err) { + return terminate(function(consumer) { + return consumer.error(err); + }); + })); + return function() { + windowRecords = null; + }; + }); + } + exports2.windowTime = windowTime; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/windowToggle.js +var require_windowToggle = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/windowToggle.js"(exports2) { + "use strict"; + var __values = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.windowToggle = void 0; + var Subject_1 = require_Subject(); + var Subscription_1 = require_Subscription(); + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + var arrRemove_1 = require_arrRemove(); + function windowToggle(openings, closingSelector) { + return lift_1.operate(function(source, subscriber) { + var windows = []; + var handleError = function(err) { + while (0 < windows.length) { + windows.shift().error(err); + } + subscriber.error(err); + }; + innerFrom_1.innerFrom(openings).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(openValue) { + var window = new Subject_1.Subject(); + windows.push(window); + var closingSubscription = new Subscription_1.Subscription(); + var closeWindow = function() { + arrRemove_1.arrRemove(windows, window); + window.complete(); + closingSubscription.unsubscribe(); + }; + var closingNotifier; + try { + closingNotifier = innerFrom_1.innerFrom(closingSelector(openValue)); + } catch (err) { + handleError(err); + return; + } + subscriber.next(window.asObservable()); + closingSubscription.add(closingNotifier.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, closeWindow, noop_1.noop, handleError))); + }, noop_1.noop)); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a; + var windowsCopy = windows.slice(); + try { + for (var windowsCopy_1 = __values(windowsCopy), windowsCopy_1_1 = windowsCopy_1.next(); !windowsCopy_1_1.done; windowsCopy_1_1 = windowsCopy_1.next()) { + var window_1 = windowsCopy_1_1.value; + window_1.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (windowsCopy_1_1 && !windowsCopy_1_1.done && (_a = windowsCopy_1.return)) + _a.call(windowsCopy_1); + } finally { + if (e_1) + throw e_1.error; + } + } + }, function() { + while (0 < windows.length) { + windows.shift().complete(); + } + subscriber.complete(); + }, handleError, function() { + while (0 < windows.length) { + windows.shift().unsubscribe(); + } + })); + }); + } + exports2.windowToggle = windowToggle; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/windowWhen.js +var require_windowWhen = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/windowWhen.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.windowWhen = void 0; + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function windowWhen(closingSelector) { + return lift_1.operate(function(source, subscriber) { + var window; + var closingSubscriber; + var handleError = function(err) { + window.error(err); + subscriber.error(err); + }; + var openWindow = function() { + closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe(); + window === null || window === void 0 ? void 0 : window.complete(); + window = new Subject_1.Subject(); + subscriber.next(window.asObservable()); + var closingNotifier; + try { + closingNotifier = innerFrom_1.innerFrom(closingSelector()); + } catch (err) { + handleError(err); + return; + } + closingNotifier.subscribe(closingSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, openWindow, openWindow, handleError)); + }; + openWindow(); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return window.next(value); + }, function() { + window.complete(); + subscriber.complete(); + }, handleError, function() { + closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe(); + window = null; + })); + }); + } + exports2.windowWhen = windowWhen; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/withLatestFrom.js +var require_withLatestFrom = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/withLatestFrom.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.withLatestFrom = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + var identity_1 = require_identity(); + var noop_1 = require_noop(); + var args_1 = require_args(); + function withLatestFrom() { + var inputs = []; + for (var _i = 0; _i < arguments.length; _i++) { + inputs[_i] = arguments[_i]; + } + var project = args_1.popResultSelector(inputs); + return lift_1.operate(function(source, subscriber) { + var len = inputs.length; + var otherValues = new Array(len); + var hasValue = inputs.map(function() { + return false; + }); + var ready = false; + var _loop_1 = function(i2) { + innerFrom_1.innerFrom(inputs[i2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + otherValues[i2] = value; + if (!ready && !hasValue[i2]) { + hasValue[i2] = true; + (ready = hasValue.every(identity_1.identity)) && (hasValue = null); + } + }, noop_1.noop)); + }; + for (var i = 0; i < len; i++) { + _loop_1(i); + } + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (ready) { + var values = __spreadArray([value], __read(otherValues)); + subscriber.next(project ? project.apply(void 0, __spreadArray([], __read(values))) : values); + } + })); + }); + } + exports2.withLatestFrom = withLatestFrom; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/zipAll.js +var require_zipAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/zipAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.zipAll = void 0; + var zip_1 = require_zip(); + var joinAllInternals_1 = require_joinAllInternals(); + function zipAll(project) { + return joinAllInternals_1.joinAllInternals(zip_1.zip, project); + } + exports2.zipAll = zipAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/zip.js +var require_zip2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/zip.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.zip = void 0; + var zip_1 = require_zip(); + var lift_1 = require_lift(); + function zip5() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + return lift_1.operate(function(source, subscriber) { + zip_1.zip.apply(void 0, __spreadArray([source], __read(sources))).subscribe(subscriber); + }); + } + exports2.zip = zip5; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/zipWith.js +var require_zipWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/zipWith.js"(exports2) { + "use strict"; + var __read = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + var __spreadArray = exports2 && exports2.__spreadArray || function(to, from2) { + for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++) + to[j] = from2[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.zipWith = void 0; + var zip_1 = require_zip2(); + function zipWith() { + var otherInputs = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherInputs[_i] = arguments[_i]; + } + return zip_1.zip.apply(void 0, __spreadArray([], __read(otherInputs))); + } + exports2.zipWith = zipWith; + } +}); + +// node_modules/rxjs/dist/cjs/index.js +var require_cjs = __commonJS({ + "node_modules/rxjs/dist/cjs/index.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) + __createBinding(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.interval = exports2.iif = exports2.generate = exports2.fromEventPattern = exports2.fromEvent = exports2.from = exports2.forkJoin = exports2.empty = exports2.defer = exports2.connectable = exports2.concat = exports2.combineLatest = exports2.bindNodeCallback = exports2.bindCallback = exports2.UnsubscriptionError = exports2.TimeoutError = exports2.SequenceError = exports2.ObjectUnsubscribedError = exports2.NotFoundError = exports2.EmptyError = exports2.ArgumentOutOfRangeError = exports2.firstValueFrom = exports2.lastValueFrom = exports2.isObservable = exports2.identity = exports2.noop = exports2.pipe = exports2.NotificationKind = exports2.Notification = exports2.Subscriber = exports2.Subscription = exports2.Scheduler = exports2.VirtualAction = exports2.VirtualTimeScheduler = exports2.animationFrameScheduler = exports2.animationFrame = exports2.queueScheduler = exports2.queue = exports2.asyncScheduler = exports2.async = exports2.asapScheduler = exports2.asap = exports2.AsyncSubject = exports2.ReplaySubject = exports2.BehaviorSubject = exports2.Subject = exports2.animationFrames = exports2.observable = exports2.ConnectableObservable = exports2.Observable = void 0; + exports2.filter = exports2.expand = exports2.exhaustMap = exports2.exhaustAll = exports2.exhaust = exports2.every = exports2.endWith = exports2.elementAt = exports2.distinctUntilKeyChanged = exports2.distinctUntilChanged = exports2.distinct = exports2.dematerialize = exports2.delayWhen = exports2.delay = exports2.defaultIfEmpty = exports2.debounceTime = exports2.debounce = exports2.count = exports2.connect = exports2.concatWith = exports2.concatMapTo = exports2.concatMap = exports2.concatAll = exports2.combineLatestWith = exports2.combineLatestAll = exports2.combineAll = exports2.catchError = exports2.bufferWhen = exports2.bufferToggle = exports2.bufferTime = exports2.bufferCount = exports2.buffer = exports2.auditTime = exports2.audit = exports2.config = exports2.NEVER = exports2.EMPTY = exports2.scheduled = exports2.zip = exports2.using = exports2.timer = exports2.throwError = exports2.range = exports2.race = exports2.partition = exports2.pairs = exports2.onErrorResumeNext = exports2.of = exports2.never = exports2.merge = void 0; + exports2.switchMapTo = exports2.switchMap = exports2.switchAll = exports2.subscribeOn = exports2.startWith = exports2.skipWhile = exports2.skipUntil = exports2.skipLast = exports2.skip = exports2.single = exports2.shareReplay = exports2.share = exports2.sequenceEqual = exports2.scan = exports2.sampleTime = exports2.sample = exports2.refCount = exports2.retryWhen = exports2.retry = exports2.repeatWhen = exports2.repeat = exports2.reduce = exports2.raceWith = exports2.publishReplay = exports2.publishLast = exports2.publishBehavior = exports2.publish = exports2.pluck = exports2.pairwise = exports2.observeOn = exports2.multicast = exports2.min = exports2.mergeWith = exports2.mergeScan = exports2.mergeMapTo = exports2.mergeMap = exports2.flatMap = exports2.mergeAll = exports2.max = exports2.materialize = exports2.mapTo = exports2.map = exports2.last = exports2.isEmpty = exports2.ignoreElements = exports2.groupBy = exports2.first = exports2.findIndex = exports2.find = exports2.finalize = void 0; + exports2.zipWith = exports2.zipAll = exports2.withLatestFrom = exports2.windowWhen = exports2.windowToggle = exports2.windowTime = exports2.windowCount = exports2.window = exports2.toArray = exports2.timestamp = exports2.timeoutWith = exports2.timeout = exports2.timeInterval = exports2.throwIfEmpty = exports2.throttleTime = exports2.throttle = exports2.tap = exports2.takeWhile = exports2.takeUntil = exports2.takeLast = exports2.take = exports2.switchScan = void 0; + var Observable_1 = require_Observable(); + Object.defineProperty(exports2, "Observable", { enumerable: true, get: function() { + return Observable_1.Observable; + } }); + var ConnectableObservable_1 = require_ConnectableObservable(); + Object.defineProperty(exports2, "ConnectableObservable", { enumerable: true, get: function() { + return ConnectableObservable_1.ConnectableObservable; + } }); + var observable_1 = require_observable(); + Object.defineProperty(exports2, "observable", { enumerable: true, get: function() { + return observable_1.observable; + } }); + var animationFrames_1 = require_animationFrames(); + Object.defineProperty(exports2, "animationFrames", { enumerable: true, get: function() { + return animationFrames_1.animationFrames; + } }); + var Subject_1 = require_Subject(); + Object.defineProperty(exports2, "Subject", { enumerable: true, get: function() { + return Subject_1.Subject; + } }); + var BehaviorSubject_1 = require_BehaviorSubject(); + Object.defineProperty(exports2, "BehaviorSubject", { enumerable: true, get: function() { + return BehaviorSubject_1.BehaviorSubject; + } }); + var ReplaySubject_1 = require_ReplaySubject(); + Object.defineProperty(exports2, "ReplaySubject", { enumerable: true, get: function() { + return ReplaySubject_1.ReplaySubject; + } }); + var AsyncSubject_1 = require_AsyncSubject(); + Object.defineProperty(exports2, "AsyncSubject", { enumerable: true, get: function() { + return AsyncSubject_1.AsyncSubject; + } }); + var asap_1 = require_asap(); + Object.defineProperty(exports2, "asap", { enumerable: true, get: function() { + return asap_1.asap; + } }); + Object.defineProperty(exports2, "asapScheduler", { enumerable: true, get: function() { + return asap_1.asapScheduler; + } }); + var async_1 = require_async(); + Object.defineProperty(exports2, "async", { enumerable: true, get: function() { + return async_1.async; + } }); + Object.defineProperty(exports2, "asyncScheduler", { enumerable: true, get: function() { + return async_1.asyncScheduler; + } }); + var queue_1 = require_queue(); + Object.defineProperty(exports2, "queue", { enumerable: true, get: function() { + return queue_1.queue; + } }); + Object.defineProperty(exports2, "queueScheduler", { enumerable: true, get: function() { + return queue_1.queueScheduler; + } }); + var animationFrame_1 = require_animationFrame(); + Object.defineProperty(exports2, "animationFrame", { enumerable: true, get: function() { + return animationFrame_1.animationFrame; + } }); + Object.defineProperty(exports2, "animationFrameScheduler", { enumerable: true, get: function() { + return animationFrame_1.animationFrameScheduler; + } }); + var VirtualTimeScheduler_1 = require_VirtualTimeScheduler(); + Object.defineProperty(exports2, "VirtualTimeScheduler", { enumerable: true, get: function() { + return VirtualTimeScheduler_1.VirtualTimeScheduler; + } }); + Object.defineProperty(exports2, "VirtualAction", { enumerable: true, get: function() { + return VirtualTimeScheduler_1.VirtualAction; + } }); + var Scheduler_1 = require_Scheduler(); + Object.defineProperty(exports2, "Scheduler", { enumerable: true, get: function() { + return Scheduler_1.Scheduler; + } }); + var Subscription_1 = require_Subscription(); + Object.defineProperty(exports2, "Subscription", { enumerable: true, get: function() { + return Subscription_1.Subscription; + } }); + var Subscriber_1 = require_Subscriber(); + Object.defineProperty(exports2, "Subscriber", { enumerable: true, get: function() { + return Subscriber_1.Subscriber; + } }); + var Notification_1 = require_Notification(); + Object.defineProperty(exports2, "Notification", { enumerable: true, get: function() { + return Notification_1.Notification; + } }); + Object.defineProperty(exports2, "NotificationKind", { enumerable: true, get: function() { + return Notification_1.NotificationKind; + } }); + var pipe_1 = require_pipe(); + Object.defineProperty(exports2, "pipe", { enumerable: true, get: function() { + return pipe_1.pipe; + } }); + var noop_1 = require_noop(); + Object.defineProperty(exports2, "noop", { enumerable: true, get: function() { + return noop_1.noop; + } }); + var identity_1 = require_identity(); + Object.defineProperty(exports2, "identity", { enumerable: true, get: function() { + return identity_1.identity; + } }); + var isObservable_1 = require_isObservable(); + Object.defineProperty(exports2, "isObservable", { enumerable: true, get: function() { + return isObservable_1.isObservable; + } }); + var lastValueFrom_1 = require_lastValueFrom(); + Object.defineProperty(exports2, "lastValueFrom", { enumerable: true, get: function() { + return lastValueFrom_1.lastValueFrom; + } }); + var firstValueFrom_1 = require_firstValueFrom(); + Object.defineProperty(exports2, "firstValueFrom", { enumerable: true, get: function() { + return firstValueFrom_1.firstValueFrom; + } }); + var ArgumentOutOfRangeError_1 = require_ArgumentOutOfRangeError(); + Object.defineProperty(exports2, "ArgumentOutOfRangeError", { enumerable: true, get: function() { + return ArgumentOutOfRangeError_1.ArgumentOutOfRangeError; + } }); + var EmptyError_1 = require_EmptyError(); + Object.defineProperty(exports2, "EmptyError", { enumerable: true, get: function() { + return EmptyError_1.EmptyError; + } }); + var NotFoundError_1 = require_NotFoundError(); + Object.defineProperty(exports2, "NotFoundError", { enumerable: true, get: function() { + return NotFoundError_1.NotFoundError; + } }); + var ObjectUnsubscribedError_1 = require_ObjectUnsubscribedError(); + Object.defineProperty(exports2, "ObjectUnsubscribedError", { enumerable: true, get: function() { + return ObjectUnsubscribedError_1.ObjectUnsubscribedError; + } }); + var SequenceError_1 = require_SequenceError(); + Object.defineProperty(exports2, "SequenceError", { enumerable: true, get: function() { + return SequenceError_1.SequenceError; + } }); + var timeout_1 = require_timeout(); + Object.defineProperty(exports2, "TimeoutError", { enumerable: true, get: function() { + return timeout_1.TimeoutError; + } }); + var UnsubscriptionError_1 = require_UnsubscriptionError(); + Object.defineProperty(exports2, "UnsubscriptionError", { enumerable: true, get: function() { + return UnsubscriptionError_1.UnsubscriptionError; + } }); + var bindCallback_1 = require_bindCallback(); + Object.defineProperty(exports2, "bindCallback", { enumerable: true, get: function() { + return bindCallback_1.bindCallback; + } }); + var bindNodeCallback_1 = require_bindNodeCallback(); + Object.defineProperty(exports2, "bindNodeCallback", { enumerable: true, get: function() { + return bindNodeCallback_1.bindNodeCallback; + } }); + var combineLatest_1 = require_combineLatest(); + Object.defineProperty(exports2, "combineLatest", { enumerable: true, get: function() { + return combineLatest_1.combineLatest; + } }); + var concat_1 = require_concat(); + Object.defineProperty(exports2, "concat", { enumerable: true, get: function() { + return concat_1.concat; + } }); + var connectable_1 = require_connectable(); + Object.defineProperty(exports2, "connectable", { enumerable: true, get: function() { + return connectable_1.connectable; + } }); + var defer_1 = require_defer(); + Object.defineProperty(exports2, "defer", { enumerable: true, get: function() { + return defer_1.defer; + } }); + var empty_1 = require_empty(); + Object.defineProperty(exports2, "empty", { enumerable: true, get: function() { + return empty_1.empty; + } }); + var forkJoin_1 = require_forkJoin(); + Object.defineProperty(exports2, "forkJoin", { enumerable: true, get: function() { + return forkJoin_1.forkJoin; + } }); + var from_1 = require_from(); + Object.defineProperty(exports2, "from", { enumerable: true, get: function() { + return from_1.from; + } }); + var fromEvent_1 = require_fromEvent(); + Object.defineProperty(exports2, "fromEvent", { enumerable: true, get: function() { + return fromEvent_1.fromEvent; + } }); + var fromEventPattern_1 = require_fromEventPattern(); + Object.defineProperty(exports2, "fromEventPattern", { enumerable: true, get: function() { + return fromEventPattern_1.fromEventPattern; + } }); + var generate_1 = require_generate(); + Object.defineProperty(exports2, "generate", { enumerable: true, get: function() { + return generate_1.generate; + } }); + var iif_1 = require_iif(); + Object.defineProperty(exports2, "iif", { enumerable: true, get: function() { + return iif_1.iif; + } }); + var interval_1 = require_interval(); + Object.defineProperty(exports2, "interval", { enumerable: true, get: function() { + return interval_1.interval; + } }); + var merge_1 = require_merge(); + Object.defineProperty(exports2, "merge", { enumerable: true, get: function() { + return merge_1.merge; + } }); + var never_1 = require_never(); + Object.defineProperty(exports2, "never", { enumerable: true, get: function() { + return never_1.never; + } }); + var of_1 = require_of(); + Object.defineProperty(exports2, "of", { enumerable: true, get: function() { + return of_1.of; + } }); + var onErrorResumeNext_1 = require_onErrorResumeNext2(); + Object.defineProperty(exports2, "onErrorResumeNext", { enumerable: true, get: function() { + return onErrorResumeNext_1.onErrorResumeNext; + } }); + var pairs_1 = require_pairs(); + Object.defineProperty(exports2, "pairs", { enumerable: true, get: function() { + return pairs_1.pairs; + } }); + var partition_1 = require_partition(); + Object.defineProperty(exports2, "partition", { enumerable: true, get: function() { + return partition_1.partition; + } }); + var race_1 = require_race(); + Object.defineProperty(exports2, "race", { enumerable: true, get: function() { + return race_1.race; + } }); + var range_1 = require_range(); + Object.defineProperty(exports2, "range", { enumerable: true, get: function() { + return range_1.range; + } }); + var throwError_1 = require_throwError(); + Object.defineProperty(exports2, "throwError", { enumerable: true, get: function() { + return throwError_1.throwError; + } }); + var timer_1 = require_timer(); + Object.defineProperty(exports2, "timer", { enumerable: true, get: function() { + return timer_1.timer; + } }); + var using_1 = require_using(); + Object.defineProperty(exports2, "using", { enumerable: true, get: function() { + return using_1.using; + } }); + var zip_1 = require_zip(); + Object.defineProperty(exports2, "zip", { enumerable: true, get: function() { + return zip_1.zip; + } }); + var scheduled_1 = require_scheduled(); + Object.defineProperty(exports2, "scheduled", { enumerable: true, get: function() { + return scheduled_1.scheduled; + } }); + var empty_2 = require_empty(); + Object.defineProperty(exports2, "EMPTY", { enumerable: true, get: function() { + return empty_2.EMPTY; + } }); + var never_2 = require_never(); + Object.defineProperty(exports2, "NEVER", { enumerable: true, get: function() { + return never_2.NEVER; + } }); + __exportStar(require_types(), exports2); + var config_1 = require_config(); + Object.defineProperty(exports2, "config", { enumerable: true, get: function() { + return config_1.config; + } }); + var audit_1 = require_audit(); + Object.defineProperty(exports2, "audit", { enumerable: true, get: function() { + return audit_1.audit; + } }); + var auditTime_1 = require_auditTime(); + Object.defineProperty(exports2, "auditTime", { enumerable: true, get: function() { + return auditTime_1.auditTime; + } }); + var buffer_1 = require_buffer(); + Object.defineProperty(exports2, "buffer", { enumerable: true, get: function() { + return buffer_1.buffer; + } }); + var bufferCount_1 = require_bufferCount(); + Object.defineProperty(exports2, "bufferCount", { enumerable: true, get: function() { + return bufferCount_1.bufferCount; + } }); + var bufferTime_1 = require_bufferTime(); + Object.defineProperty(exports2, "bufferTime", { enumerable: true, get: function() { + return bufferTime_1.bufferTime; + } }); + var bufferToggle_1 = require_bufferToggle(); + Object.defineProperty(exports2, "bufferToggle", { enumerable: true, get: function() { + return bufferToggle_1.bufferToggle; + } }); + var bufferWhen_1 = require_bufferWhen(); + Object.defineProperty(exports2, "bufferWhen", { enumerable: true, get: function() { + return bufferWhen_1.bufferWhen; + } }); + var catchError_1 = require_catchError(); + Object.defineProperty(exports2, "catchError", { enumerable: true, get: function() { + return catchError_1.catchError; + } }); + var combineAll_1 = require_combineAll(); + Object.defineProperty(exports2, "combineAll", { enumerable: true, get: function() { + return combineAll_1.combineAll; + } }); + var combineLatestAll_1 = require_combineLatestAll(); + Object.defineProperty(exports2, "combineLatestAll", { enumerable: true, get: function() { + return combineLatestAll_1.combineLatestAll; + } }); + var combineLatestWith_1 = require_combineLatestWith(); + Object.defineProperty(exports2, "combineLatestWith", { enumerable: true, get: function() { + return combineLatestWith_1.combineLatestWith; + } }); + var concatAll_1 = require_concatAll(); + Object.defineProperty(exports2, "concatAll", { enumerable: true, get: function() { + return concatAll_1.concatAll; + } }); + var concatMap_1 = require_concatMap(); + Object.defineProperty(exports2, "concatMap", { enumerable: true, get: function() { + return concatMap_1.concatMap; + } }); + var concatMapTo_1 = require_concatMapTo(); + Object.defineProperty(exports2, "concatMapTo", { enumerable: true, get: function() { + return concatMapTo_1.concatMapTo; + } }); + var concatWith_1 = require_concatWith(); + Object.defineProperty(exports2, "concatWith", { enumerable: true, get: function() { + return concatWith_1.concatWith; + } }); + var connect_1 = require_connect(); + Object.defineProperty(exports2, "connect", { enumerable: true, get: function() { + return connect_1.connect; + } }); + var count_1 = require_count(); + Object.defineProperty(exports2, "count", { enumerable: true, get: function() { + return count_1.count; + } }); + var debounce_1 = require_debounce(); + Object.defineProperty(exports2, "debounce", { enumerable: true, get: function() { + return debounce_1.debounce; + } }); + var debounceTime_1 = require_debounceTime(); + Object.defineProperty(exports2, "debounceTime", { enumerable: true, get: function() { + return debounceTime_1.debounceTime; + } }); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + Object.defineProperty(exports2, "defaultIfEmpty", { enumerable: true, get: function() { + return defaultIfEmpty_1.defaultIfEmpty; + } }); + var delay_1 = require_delay(); + Object.defineProperty(exports2, "delay", { enumerable: true, get: function() { + return delay_1.delay; + } }); + var delayWhen_1 = require_delayWhen(); + Object.defineProperty(exports2, "delayWhen", { enumerable: true, get: function() { + return delayWhen_1.delayWhen; + } }); + var dematerialize_1 = require_dematerialize(); + Object.defineProperty(exports2, "dematerialize", { enumerable: true, get: function() { + return dematerialize_1.dematerialize; + } }); + var distinct_1 = require_distinct(); + Object.defineProperty(exports2, "distinct", { enumerable: true, get: function() { + return distinct_1.distinct; + } }); + var distinctUntilChanged_1 = require_distinctUntilChanged(); + Object.defineProperty(exports2, "distinctUntilChanged", { enumerable: true, get: function() { + return distinctUntilChanged_1.distinctUntilChanged; + } }); + var distinctUntilKeyChanged_1 = require_distinctUntilKeyChanged(); + Object.defineProperty(exports2, "distinctUntilKeyChanged", { enumerable: true, get: function() { + return distinctUntilKeyChanged_1.distinctUntilKeyChanged; + } }); + var elementAt_1 = require_elementAt(); + Object.defineProperty(exports2, "elementAt", { enumerable: true, get: function() { + return elementAt_1.elementAt; + } }); + var endWith_1 = require_endWith(); + Object.defineProperty(exports2, "endWith", { enumerable: true, get: function() { + return endWith_1.endWith; + } }); + var every_1 = require_every(); + Object.defineProperty(exports2, "every", { enumerable: true, get: function() { + return every_1.every; + } }); + var exhaust_1 = require_exhaust(); + Object.defineProperty(exports2, "exhaust", { enumerable: true, get: function() { + return exhaust_1.exhaust; + } }); + var exhaustAll_1 = require_exhaustAll(); + Object.defineProperty(exports2, "exhaustAll", { enumerable: true, get: function() { + return exhaustAll_1.exhaustAll; + } }); + var exhaustMap_1 = require_exhaustMap(); + Object.defineProperty(exports2, "exhaustMap", { enumerable: true, get: function() { + return exhaustMap_1.exhaustMap; + } }); + var expand_1 = require_expand(); + Object.defineProperty(exports2, "expand", { enumerable: true, get: function() { + return expand_1.expand; + } }); + var filter_1 = require_filter(); + Object.defineProperty(exports2, "filter", { enumerable: true, get: function() { + return filter_1.filter; + } }); + var finalize_1 = require_finalize(); + Object.defineProperty(exports2, "finalize", { enumerable: true, get: function() { + return finalize_1.finalize; + } }); + var find_1 = require_find(); + Object.defineProperty(exports2, "find", { enumerable: true, get: function() { + return find_1.find; + } }); + var findIndex_1 = require_findIndex(); + Object.defineProperty(exports2, "findIndex", { enumerable: true, get: function() { + return findIndex_1.findIndex; + } }); + var first_1 = require_first(); + Object.defineProperty(exports2, "first", { enumerable: true, get: function() { + return first_1.first; + } }); + var groupBy_12 = require_groupBy(); + Object.defineProperty(exports2, "groupBy", { enumerable: true, get: function() { + return groupBy_12.groupBy; + } }); + var ignoreElements_1 = require_ignoreElements(); + Object.defineProperty(exports2, "ignoreElements", { enumerable: true, get: function() { + return ignoreElements_1.ignoreElements; + } }); + var isEmpty_1 = require_isEmpty(); + Object.defineProperty(exports2, "isEmpty", { enumerable: true, get: function() { + return isEmpty_1.isEmpty; + } }); + var last_1 = require_last(); + Object.defineProperty(exports2, "last", { enumerable: true, get: function() { + return last_1.last; + } }); + var map_1 = require_map(); + Object.defineProperty(exports2, "map", { enumerable: true, get: function() { + return map_1.map; + } }); + var mapTo_1 = require_mapTo(); + Object.defineProperty(exports2, "mapTo", { enumerable: true, get: function() { + return mapTo_1.mapTo; + } }); + var materialize_1 = require_materialize(); + Object.defineProperty(exports2, "materialize", { enumerable: true, get: function() { + return materialize_1.materialize; + } }); + var max_1 = require_max(); + Object.defineProperty(exports2, "max", { enumerable: true, get: function() { + return max_1.max; + } }); + var mergeAll_1 = require_mergeAll(); + Object.defineProperty(exports2, "mergeAll", { enumerable: true, get: function() { + return mergeAll_1.mergeAll; + } }); + var flatMap_1 = require_flatMap(); + Object.defineProperty(exports2, "flatMap", { enumerable: true, get: function() { + return flatMap_1.flatMap; + } }); + var mergeMap_1 = require_mergeMap(); + Object.defineProperty(exports2, "mergeMap", { enumerable: true, get: function() { + return mergeMap_1.mergeMap; + } }); + var mergeMapTo_1 = require_mergeMapTo(); + Object.defineProperty(exports2, "mergeMapTo", { enumerable: true, get: function() { + return mergeMapTo_1.mergeMapTo; + } }); + var mergeScan_1 = require_mergeScan(); + Object.defineProperty(exports2, "mergeScan", { enumerable: true, get: function() { + return mergeScan_1.mergeScan; + } }); + var mergeWith_1 = require_mergeWith(); + Object.defineProperty(exports2, "mergeWith", { enumerable: true, get: function() { + return mergeWith_1.mergeWith; + } }); + var min_1 = require_min(); + Object.defineProperty(exports2, "min", { enumerable: true, get: function() { + return min_1.min; + } }); + var multicast_1 = require_multicast(); + Object.defineProperty(exports2, "multicast", { enumerable: true, get: function() { + return multicast_1.multicast; + } }); + var observeOn_1 = require_observeOn(); + Object.defineProperty(exports2, "observeOn", { enumerable: true, get: function() { + return observeOn_1.observeOn; + } }); + var pairwise_1 = require_pairwise(); + Object.defineProperty(exports2, "pairwise", { enumerable: true, get: function() { + return pairwise_1.pairwise; + } }); + var pluck_1 = require_pluck(); + Object.defineProperty(exports2, "pluck", { enumerable: true, get: function() { + return pluck_1.pluck; + } }); + var publish_1 = require_publish(); + Object.defineProperty(exports2, "publish", { enumerable: true, get: function() { + return publish_1.publish; + } }); + var publishBehavior_1 = require_publishBehavior(); + Object.defineProperty(exports2, "publishBehavior", { enumerable: true, get: function() { + return publishBehavior_1.publishBehavior; + } }); + var publishLast_1 = require_publishLast(); + Object.defineProperty(exports2, "publishLast", { enumerable: true, get: function() { + return publishLast_1.publishLast; + } }); + var publishReplay_1 = require_publishReplay(); + Object.defineProperty(exports2, "publishReplay", { enumerable: true, get: function() { + return publishReplay_1.publishReplay; + } }); + var raceWith_1 = require_raceWith(); + Object.defineProperty(exports2, "raceWith", { enumerable: true, get: function() { + return raceWith_1.raceWith; + } }); + var reduce_1 = require_reduce(); + Object.defineProperty(exports2, "reduce", { enumerable: true, get: function() { + return reduce_1.reduce; + } }); + var repeat_1 = require_repeat(); + Object.defineProperty(exports2, "repeat", { enumerable: true, get: function() { + return repeat_1.repeat; + } }); + var repeatWhen_1 = require_repeatWhen(); + Object.defineProperty(exports2, "repeatWhen", { enumerable: true, get: function() { + return repeatWhen_1.repeatWhen; + } }); + var retry_1 = require_retry(); + Object.defineProperty(exports2, "retry", { enumerable: true, get: function() { + return retry_1.retry; + } }); + var retryWhen_1 = require_retryWhen(); + Object.defineProperty(exports2, "retryWhen", { enumerable: true, get: function() { + return retryWhen_1.retryWhen; + } }); + var refCount_1 = require_refCount(); + Object.defineProperty(exports2, "refCount", { enumerable: true, get: function() { + return refCount_1.refCount; + } }); + var sample_1 = require_sample(); + Object.defineProperty(exports2, "sample", { enumerable: true, get: function() { + return sample_1.sample; + } }); + var sampleTime_1 = require_sampleTime(); + Object.defineProperty(exports2, "sampleTime", { enumerable: true, get: function() { + return sampleTime_1.sampleTime; + } }); + var scan_1 = require_scan(); + Object.defineProperty(exports2, "scan", { enumerable: true, get: function() { + return scan_1.scan; + } }); + var sequenceEqual_1 = require_sequenceEqual(); + Object.defineProperty(exports2, "sequenceEqual", { enumerable: true, get: function() { + return sequenceEqual_1.sequenceEqual; + } }); + var share_1 = require_share(); + Object.defineProperty(exports2, "share", { enumerable: true, get: function() { + return share_1.share; + } }); + var shareReplay_1 = require_shareReplay(); + Object.defineProperty(exports2, "shareReplay", { enumerable: true, get: function() { + return shareReplay_1.shareReplay; + } }); + var single_1 = require_single(); + Object.defineProperty(exports2, "single", { enumerable: true, get: function() { + return single_1.single; + } }); + var skip_1 = require_skip(); + Object.defineProperty(exports2, "skip", { enumerable: true, get: function() { + return skip_1.skip; + } }); + var skipLast_1 = require_skipLast(); + Object.defineProperty(exports2, "skipLast", { enumerable: true, get: function() { + return skipLast_1.skipLast; + } }); + var skipUntil_1 = require_skipUntil(); + Object.defineProperty(exports2, "skipUntil", { enumerable: true, get: function() { + return skipUntil_1.skipUntil; + } }); + var skipWhile_1 = require_skipWhile(); + Object.defineProperty(exports2, "skipWhile", { enumerable: true, get: function() { + return skipWhile_1.skipWhile; + } }); + var startWith_1 = require_startWith(); + Object.defineProperty(exports2, "startWith", { enumerable: true, get: function() { + return startWith_1.startWith; + } }); + var subscribeOn_1 = require_subscribeOn(); + Object.defineProperty(exports2, "subscribeOn", { enumerable: true, get: function() { + return subscribeOn_1.subscribeOn; + } }); + var switchAll_1 = require_switchAll(); + Object.defineProperty(exports2, "switchAll", { enumerable: true, get: function() { + return switchAll_1.switchAll; + } }); + var switchMap_1 = require_switchMap(); + Object.defineProperty(exports2, "switchMap", { enumerable: true, get: function() { + return switchMap_1.switchMap; + } }); + var switchMapTo_1 = require_switchMapTo(); + Object.defineProperty(exports2, "switchMapTo", { enumerable: true, get: function() { + return switchMapTo_1.switchMapTo; + } }); + var switchScan_1 = require_switchScan(); + Object.defineProperty(exports2, "switchScan", { enumerable: true, get: function() { + return switchScan_1.switchScan; + } }); + var take_1 = require_take(); + Object.defineProperty(exports2, "take", { enumerable: true, get: function() { + return take_1.take; + } }); + var takeLast_1 = require_takeLast(); + Object.defineProperty(exports2, "takeLast", { enumerable: true, get: function() { + return takeLast_1.takeLast; + } }); + var takeUntil_1 = require_takeUntil(); + Object.defineProperty(exports2, "takeUntil", { enumerable: true, get: function() { + return takeUntil_1.takeUntil; + } }); + var takeWhile_1 = require_takeWhile(); + Object.defineProperty(exports2, "takeWhile", { enumerable: true, get: function() { + return takeWhile_1.takeWhile; + } }); + var tap_1 = require_tap(); + Object.defineProperty(exports2, "tap", { enumerable: true, get: function() { + return tap_1.tap; + } }); + var throttle_1 = require_throttle(); + Object.defineProperty(exports2, "throttle", { enumerable: true, get: function() { + return throttle_1.throttle; + } }); + var throttleTime_1 = require_throttleTime(); + Object.defineProperty(exports2, "throttleTime", { enumerable: true, get: function() { + return throttleTime_1.throttleTime; + } }); + var throwIfEmpty_1 = require_throwIfEmpty(); + Object.defineProperty(exports2, "throwIfEmpty", { enumerable: true, get: function() { + return throwIfEmpty_1.throwIfEmpty; + } }); + var timeInterval_1 = require_timeInterval(); + Object.defineProperty(exports2, "timeInterval", { enumerable: true, get: function() { + return timeInterval_1.timeInterval; + } }); + var timeout_2 = require_timeout(); + Object.defineProperty(exports2, "timeout", { enumerable: true, get: function() { + return timeout_2.timeout; + } }); + var timeoutWith_1 = require_timeoutWith(); + Object.defineProperty(exports2, "timeoutWith", { enumerable: true, get: function() { + return timeoutWith_1.timeoutWith; + } }); + var timestamp_1 = require_timestamp(); + Object.defineProperty(exports2, "timestamp", { enumerable: true, get: function() { + return timestamp_1.timestamp; + } }); + var toArray_1 = require_toArray(); + Object.defineProperty(exports2, "toArray", { enumerable: true, get: function() { + return toArray_1.toArray; + } }); + var window_1 = require_window(); + Object.defineProperty(exports2, "window", { enumerable: true, get: function() { + return window_1.window; + } }); + var windowCount_1 = require_windowCount(); + Object.defineProperty(exports2, "windowCount", { enumerable: true, get: function() { + return windowCount_1.windowCount; + } }); + var windowTime_1 = require_windowTime(); + Object.defineProperty(exports2, "windowTime", { enumerable: true, get: function() { + return windowTime_1.windowTime; + } }); + var windowToggle_1 = require_windowToggle(); + Object.defineProperty(exports2, "windowToggle", { enumerable: true, get: function() { + return windowToggle_1.windowToggle; + } }); + var windowWhen_1 = require_windowWhen(); + Object.defineProperty(exports2, "windowWhen", { enumerable: true, get: function() { + return windowWhen_1.windowWhen; + } }); + var withLatestFrom_1 = require_withLatestFrom(); + Object.defineProperty(exports2, "withLatestFrom", { enumerable: true, get: function() { + return withLatestFrom_1.withLatestFrom; + } }); + var zipAll_1 = require_zipAll(); + Object.defineProperty(exports2, "zipAll", { enumerable: true, get: function() { + return zipAll_1.zipAll; + } }); + var zipWith_1 = require_zipWith(); + Object.defineProperty(exports2, "zipWith", { enumerable: true, get: function() { + return zipWith_1.zipWith; + } }); + } +}); + +// src/server.ts +var import_linq = __toESM(require_linq()); + +// src/server/dataCache/dataCache.ts +var import_rxjs = __toESM(require_cjs()); + +// src/server/dataCache/types.ts +var asMutableArray = (t) => t; + +// src/server/dataCache/skipList/skipListNode.ts +function find(index, startNode, endNode) { + let node = startNode; + for (let level = startNode.next.length - 1; level >= 0; level--) + node = findOnLevel(index, node, endNode, level); + return node; +} +function findOnLevel(index, startNode, endNode, level) { + let node = startNode; + while (true) { + const next = node.next[level]; + if (index < next.index || endNode.index < next.index) + return node; + node = next; + } +} +function findPath(index, startNode, endNode) { + const path = Array(startNode.next.length - 1); + let node = startNode; + for (let level = startNode.next.length - 1; level >= 0; level--) { + node = findOnLevel(index, node, endNode, level); + path[level] = node; + } + return path; +} +function insert(nodeToInsert, after, onLevel) { + asMutableArray(nodeToInsert.next)[onLevel] = after.next[onLevel]; + asMutableArray(after.next)[onLevel] = nodeToInsert; +} + +// src/server/dataCache/skipList/skipList.ts +var SkipList = class { + constructor(nLevels = 20) { + __publicField(this, "head"); + __publicField(this, "tail"); + __publicField(this, "nLevels"); + __publicField(this, "_length", 0); + this.tail = { + index: Number.MAX_VALUE, + next: [], + value: void 0 + }; + this.head = { + index: Number.MIN_VALUE, + next: Array(nLevels).fill(this.tail), + value: void 0 + }; + this.nLevels = nLevels; + } + find(index, startNode = this.head, endNode = this.tail) { + return find(index, startNode, endNode); + } + findPath(index, startNode = this.head, endNode = this.tail) { + return findPath(index, startNode, endNode); + } + insert(value, index) { + const path = this.findPath(index); + const node = path[0]; + if (node.index === index) { + node.value = value; + return node; + } + const nodeToInsert = { value, index, next: [] }; + const rnd = Math.random() * (1 << this.nLevels) << 0; + for (let level = 0; level < this.nLevels; level++) { + insert(nodeToInsert, path[level], level); + if ((rnd & 1 << level) === 0) + break; + } + this._length += 1; + return nodeToInsert; + } + get length() { + return this._length; + } +}; + +// src/server/dataCache/promiseQueue.ts +function createDispatchQueue(maxInflight, debug = false) { + const queue = []; + let inflight = 0; + function done() { + inflight--; + if (debug && inflight + queue.length === 0) + console.log("queue empty"); + if (inflight < maxInflight && queue.length > 0) { + const task = queue.pop(); + inflight++; + task().finally(() => done()); + } + } + function dispatch(task) { + if (inflight < maxInflight) { + inflight++; + task().finally(() => done()); + } else { + if (debug && queue.length === 0) + console.log("queue in use"); + queue.push(task); + } + return queue.length; + } + function clear() { + queue.length = 0; + if (debug) + console.log("queue cleared"); + } + return { dispatch, clear }; +} + +// src/utils/maybe.ts +function isUndefined(e) { + return e == void 0; +} + +// src/server/dataCache/dataCache.ts +var FetchResult = { + notAvailable: "N/A", + tryLater: "Try Later" +}; +function reverseBits(x) { + x = (x & 1431655765) << 1 | (x & 2863311530) >> 1; + x = (x & 858993459) << 2 | (x & 3435973836) >> 2; + x = (x & 252645135) << 4 | (x & 4042322160) >> 4; + x = (x & 16711935) << 8 | (x & 4278255360) >> 8; + x = (x & 65535) << 16 | (x & 4294901760) >> 16; + return x >>> 0; +} +var _fetch; +var DataCache = class { + constructor(fetch, resolution2) { + __publicField(this, "cache", new SkipList()); + __publicField(this, "resolution"); + __privateAdd(this, _fetch, void 0); + __publicField(this, "fetchQueue", createDispatchQueue(6)); + __publicField(this, "fetching", /* @__PURE__ */ new Set()); + __publicField(this, "gotData"); + __privateSet(this, _fetch, fetch); + this.resolution = resolution2; + this.gotData = new import_rxjs.Subject(); + } + prefetch(times, clear = true) { + if (clear) { + this.fetching.clear(); + this.fetchQueue.clear(); + } + const timesWithPriority = times.map((time, index) => ({ time, priority: reverseBits(index) })); + timesWithPriority.sort((x, y) => x.priority - y.priority); + for (let i = 0; i < timesWithPriority.length; i++) { + const time = timesWithPriority[i].time.round(this.resolution); + const t = time.ticks; + const node = this.cache.find(t); + if (node.index !== t) + this.fetchData(time); + } + } + get(timeStamp, fetch = true) { + const time = timeStamp.round(this.resolution); + const t = time.ticks; + const node = this.cache.find(t); + if (node.index === t) + return node.value; + if (fetch) + this.fetchData(time); + return this.interpolate(node, t); + } + getSeries(sampleTimes2) { + this.prefetch(sampleTimes2); + return sampleTimes2.map((time) => ({ time, value: this.get(time, false) })); + } + interpolate(before, t) { + const dataBefore = before.value; + const after = before.next[0]; + const dataAfter = after.value; + if (isUndefined(dataBefore) && isUndefined(dataAfter)) + return void 0; + if (isUndefined(dataBefore)) + return dataAfter; + if (isUndefined(dataAfter)) + return dataBefore; + const p = t - before.index; + const n = after.index - t; + const pn = p + n; + let interpolated = {}; + for (const k of Object.keys(dataBefore)) { + interpolated[k] = (dataBefore[k] * n + dataAfter[k] * p) / pn; + } + return interpolated; + } + fetchData(time) { + const t = time.ticks; + if (this.fetching.has(t)) + return; + const fetchTask = () => { + const onSuccess = (data) => { + if (data === FetchResult.tryLater) { + console.warn(FetchResult.tryLater); + return; + } + const value = data === FetchResult.notAvailable ? void 0 : data; + this.cache.insert(value, t); + }; + const onFailure = (_) => { + console.error(time.ticks + " FAILED!"); + }; + const dispatch = () => { + this.fetching.delete(time.ticks); + this.gotData.next(time); + }; + return __privateGet(this, _fetch).call(this, time).then((d) => onSuccess(d), (f) => onFailure(f)).finally(() => dispatch()); + }; + this.fetching.add(t); + this.fetchQueue.dispatch(() => fetchTask()); + } +}; +_fetch = new WeakMap(); + +// src/server/dataCache/stringUtils.ts +function trim(str, string = " ") { + const pattern = "^[" + string + "]*(.*?)[" + string + "]*$"; + return str.replace(new RegExp(pattern), "$1"); +} + +// src/server/dataCache/time.ts +var _UnixTime = class { + constructor(ticks) { + this.ticks = ticks; + } + static now() { + return _UnixTime.fromTicks(Date.now() / 1e3); + } + static fromDate(date) { + return _UnixTime.fromTicks(date.getTime() / 1e3); + } + toDate() { + return new Date(this.ticks * 1e3); + } + static fromTicks(ticks) { + return new _UnixTime(ticks); + } + later(timeSpan) { + return new _UnixTime(this.ticks + timeSpan.ticks); + } + move(ticks) { + return new _UnixTime(this.ticks + ticks); + } + earlier(timeSpan) { + return new _UnixTime(this.ticks - timeSpan.ticks); + } + isEarlierThan(time) { + return this.ticks < time.ticks; + } + isEarlierThanOrEqual(time) { + return this.ticks <= time.ticks; + } + isLaterThan(time) { + return this.ticks > time.ticks; + } + isLaterThanOrEqual(time) { + return this.ticks >= time.ticks; + } + isEqual(time) { + return this.ticks === time.ticks; + } + isInTheFuture() { + return this.isLaterThan(_UnixTime.now()); + } + isInThePast() { + return this.ticks < _UnixTime.now().ticks; + } + round(durationOrTicks) { + const ticks = typeof durationOrTicks === "number" ? durationOrTicks : durationOrTicks.ticks; + return new _UnixTime(Math.round(this.ticks / ticks) * ticks); + } + rangeTo(time) { + return TimeRange.fromTimes(this, time); + } + rangeBefore(timeSpan) { + return TimeRange.fromTimes(this.earlier(timeSpan), this); + } + rangeAfter(timeSpan) { + return TimeRange.fromTimes(this, this.later(timeSpan)); + } + toString() { + return this.ticks.toString(); + } +}; +var UnixTime = _UnixTime; +__publicField(UnixTime, "Epoch", new _UnixTime(0)); +var TimeSpan = class { + constructor(ticks) { + this.ticks = ticks; + } + get milliSeconds() { + return this.ticks * 1e3; + } + get seconds() { + return this.ticks; + } + get minutes() { + return this.ticks / 60; + } + get hours() { + return this.minutes / 60; + } + get days() { + return this.hours / 24; + } + get weeks() { + return this.days / 7; + } + static fromTicks(t) { + return new TimeSpan(t); + } + static fromSeconds(t) { + return TimeSpan.fromTicks(t); + } + static fromMinutes(t) { + return TimeSpan.fromSeconds(t * 60); + } + static fromHours(t) { + return TimeSpan.fromMinutes(t * 60); + } + static fromDays(t) { + return TimeSpan.fromHours(t * 24); + } + static fromWeeks(t) { + return TimeSpan.fromDays(t * 7); + } + static span(from2, to) { + return TimeSpan.fromTicks(Math.abs(to.ticks - from2.ticks)); + } + add(timeSpan) { + return TimeSpan.fromTicks(this.ticks + timeSpan.ticks); + } + subtract(timeSpan) { + return TimeSpan.fromTicks(this.ticks - timeSpan.ticks); + } + divide(n) { + if (n <= 0) + throw "n must be positive"; + return TimeSpan.fromTicks(this.ticks / n); + } + multiply(n) { + if (n < 0) + throw "n cannot be negative"; + return TimeSpan.fromTicks(this.ticks * n); + } + round(durationOrTicks) { + const ticks = typeof durationOrTicks === "number" ? durationOrTicks : durationOrTicks.ticks; + return TimeSpan.fromTicks(Math.round(this.ticks / ticks) * ticks); + } + toString() { + let dt = 60 * 60 * 24 * 7; + let ticks = this.ticks; + if (ticks === 0) + return "0s"; + ticks = Math.abs(ticks); + const nWeeks = Math.floor(ticks / dt); + ticks -= nWeeks * dt; + dt /= 7; + const nDays = Math.floor(ticks / dt); + ticks -= nDays * dt; + dt /= 24; + const nHours = Math.floor(ticks / dt); + ticks -= nHours * dt; + dt /= 60; + const nMinutes = Math.floor(ticks / dt); + ticks -= nMinutes * dt; + dt /= 60; + const nSeconds = Math.floor(ticks / dt); + let s = ""; + if (nWeeks > 0) + s += nWeeks.toString() + "w "; + if (nDays > 0) + s += nDays.toString() + "d "; + if (nHours > 0) + s += nHours.toString() + "h "; + if (nMinutes > 0) + s += nMinutes.toString() + "m "; + if (nSeconds > 0) + s += nSeconds.toString() + "s"; + return trim(s); + } +}; +var TimeRange = class { + constructor(from2, to) { + this.from = from2; + this.to = to; + } + get start() { + return UnixTime.fromTicks(this.from); + } + get mid() { + return UnixTime.fromTicks((this.from + this.to) / 2); + } + get end() { + return UnixTime.fromTicks(this.to); + } + get duration() { + return TimeSpan.fromTicks(this.to - this.from); + } + static fromTimes(from2, to) { + return from2.isLaterThan(to) ? new TimeRange(to.ticks, from2.ticks) : new TimeRange(from2.ticks, to.ticks); + } + isInside(time) { + const t = time instanceof UnixTime ? time.ticks : time; + return t >= this.from && t < this.to; + } + sample(period) { + const samples = []; + for (let t = this.from; t < this.to; t += period.ticks) + samples.push(UnixTime.fromTicks(t)); + return samples; + } + subdivide(n) { + if (n <= 0) + throw "n must be positive"; + const period = TimeSpan.fromTicks(this.duration.ticks / n); + if (period === this.duration) + return [this]; + const samples = this.sample(period); + const ranges = []; + for (let i = 0; i < samples.length; ) + ranges.push(TimeRange.fromTimes(samples[i], samples[++i])); + return ranges; + } + earlier(dt) { + return new TimeRange(this.from - dt.ticks, this.to - dt.ticks); + } + later(dt) { + return new TimeRange(this.from + dt.ticks, this.to + dt.ticks); + } + move(ticks) { + return new TimeRange(this.from + ticks, this.to + ticks); + } +}; + +// src/server.ts +var resolution = TimeSpan.fromSeconds(2); +var cache = new DataCache((x) => Promise.resolve({ foo: 0 }), resolution); +var sampleTimes = [1, 2, 3, 4, 5, 6].select((e) => UnixTime.fromTicks(e)).toArray(); +var series = cache.getSeries(sampleTimes); +console.log(series); +cache.gotData.subscribe((d) => console.log("got data for timestamp " + d)); +console.log("done"); +//# sourceMappingURL=server.js.map diff --git a/typescript/DataCache/dist/server.js.map b/typescript/DataCache/dist/server.js.map new file mode 100644 index 000000000..3bc560102 --- /dev/null +++ b/typescript/DataCache/dist/server.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../node_modules/linq-to-typescript/esm/types/index.js", "../node_modules/linq-to-typescript/esm/shared/ArgumentOutOfRangeException.js", "../node_modules/linq-to-typescript/esm/shared/EqualityComparer.js", "../node_modules/linq-to-typescript/esm/shared/ErrorString.js", "../node_modules/linq-to-typescript/esm/shared/InvalidOperationException.js", "../node_modules/linq-to-typescript/esm/shared/NumberComparer.js", "../node_modules/linq-to-typescript/esm/shared/StrictEqualityComparer.js", "../node_modules/linq-to-typescript/esm/shared/StringifyComparer.js", "../node_modules/linq-to-typescript/esm/shared/index.js", "../node_modules/linq-to-typescript/esm/sync/ArrayEnumerable.js", "../node_modules/linq-to-typescript/esm/async/BasicAsyncEnumerable.js", "../node_modules/linq-to-typescript/esm/parallel/BasicParallelEnumerable.js", "../node_modules/linq-to-typescript/esm/sync/BasicEnumerable.js", "../node_modules/linq-to-typescript/esm/initializer/bindArray.js", "../node_modules/linq-to-typescript/esm/initializer/bindArrayEnumerable.js", "../node_modules/linq-to-typescript/esm/sync/_private/aggregate.js", "../node_modules/linq-to-typescript/esm/sync/_private/all.js", "../node_modules/linq-to-typescript/esm/sync/_private/allAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/any.js", "../node_modules/linq-to-typescript/esm/sync/_private/anyAsync.js", "../node_modules/linq-to-typescript/esm/async/static/fromAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/asAsync.js", "../node_modules/linq-to-typescript/esm/parallel/static/fromParallel.js", "../node_modules/linq-to-typescript/esm/sync/_private/asParallel.js", "../node_modules/linq-to-typescript/esm/sync/_private/average.js", "../node_modules/linq-to-typescript/esm/sync/_private/averageAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/chunk.js", "../node_modules/linq-to-typescript/esm/sync/_private/concatenate.js", "../node_modules/linq-to-typescript/esm/sync/_private/contains.js", "../node_modules/linq-to-typescript/esm/sync/_private/containsAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/count.js", "../node_modules/linq-to-typescript/esm/sync/_private/countAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/defaultIfEmpty.js", "../node_modules/linq-to-typescript/esm/sync/_private/distinct.js", "../node_modules/linq-to-typescript/esm/sync/_private/distinctAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/each.js", "../node_modules/linq-to-typescript/esm/sync/_private/eachAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/elementAt.js", "../node_modules/linq-to-typescript/esm/sync/_private/elementAtOrDefault.js", "../node_modules/linq-to-typescript/esm/sync/_private/except.js", "../node_modules/linq-to-typescript/esm/sync/_private/exceptAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/first.js", "../node_modules/linq-to-typescript/esm/sync/_private/firstAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/firstOrDefault.js", "../node_modules/linq-to-typescript/esm/sync/_private/firstOrDefaultAsync.js", "../node_modules/linq-to-typescript/esm/sync/Grouping.js", "../node_modules/linq-to-typescript/esm/sync/_private/groupByShared.js", "../node_modules/linq-to-typescript/esm/sync/_private/groupBy.js", "../node_modules/linq-to-typescript/esm/sync/_private/groupByAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/groupByWithSel.js", "../node_modules/linq-to-typescript/esm/sync/_private/groupJoin.js", "../node_modules/linq-to-typescript/esm/sync/_private/groupJoinAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/intersect.js", "../node_modules/linq-to-typescript/esm/sync/_private/intersectAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/join.js", "../node_modules/linq-to-typescript/esm/sync/_private/last.js", "../node_modules/linq-to-typescript/esm/sync/_private/lastAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/lastOrDefault.js", "../node_modules/linq-to-typescript/esm/sync/_private/lastOrDefaultAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/max.js", "../node_modules/linq-to-typescript/esm/sync/_private/maxAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/min.js", "../node_modules/linq-to-typescript/esm/sync/_private/minAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/ofType.js", "../node_modules/linq-to-typescript/esm/async/_ordered/asAsyncKeyMap.js", "../node_modules/linq-to-typescript/esm/async/_ordered/asAsyncSortedKeyValues.js", "../node_modules/linq-to-typescript/esm/async/_ordered/asAsyncKeyMapSync.js", "../node_modules/linq-to-typescript/esm/async/_ordered/asAsyncSortedKeyValuesSync.js", "../node_modules/linq-to-typescript/esm/async/_ordered/asKeyMap.js", "../node_modules/linq-to-typescript/esm/async/_ordered/asSortedKeyValues.js", "../node_modules/linq-to-typescript/esm/async/_ordered/asKeyMapSync.js", "../node_modules/linq-to-typescript/esm/async/_ordered/asSortedKeyValuesSync.js", "../node_modules/linq-to-typescript/esm/async/OrderedAsyncEnumerable.js", "../node_modules/linq-to-typescript/esm/sync/_ordered/asKeyMap.js", "../node_modules/linq-to-typescript/esm/sync/_ordered/asSortedKeyValues.js", "../node_modules/linq-to-typescript/esm/sync/_ordered/asKeyMapAsync.js", "../node_modules/linq-to-typescript/esm/sync/_ordered/asSortedKeyValuesAsync.js", "../node_modules/linq-to-typescript/esm/sync/OrderedEnumerable.js", "../node_modules/linq-to-typescript/esm/sync/_private/orderBy.js", "../node_modules/linq-to-typescript/esm/sync/_private/orderByAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/orderByDescending.js", "../node_modules/linq-to-typescript/esm/sync/_private/orderByDescendingAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/partition.js", "../node_modules/linq-to-typescript/esm/sync/_private/partitionAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/reverse.js", "../node_modules/linq-to-typescript/esm/sync/_private/select.js", "../node_modules/linq-to-typescript/esm/sync/_private/selectAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/selectMany.js", "../node_modules/linq-to-typescript/esm/sync/_private/selectManyAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/sequenceEquals.js", "../node_modules/linq-to-typescript/esm/sync/_private/sequenceEqualsAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/single.js", "../node_modules/linq-to-typescript/esm/sync/_private/singleAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/singleOrDefault.js", "../node_modules/linq-to-typescript/esm/sync/_private/singleOrDefaultAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/skip.js", "../node_modules/linq-to-typescript/esm/sync/_private/skipWhile.js", "../node_modules/linq-to-typescript/esm/sync/_private/skipWhileAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/sum.js", "../node_modules/linq-to-typescript/esm/sync/_private/sumAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/take.js", "../node_modules/linq-to-typescript/esm/sync/_private/takeWhile.js", "../node_modules/linq-to-typescript/esm/sync/_private/takeWhileAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/toArray.js", "../node_modules/linq-to-typescript/esm/sync/_private/toMap.js", "../node_modules/linq-to-typescript/esm/sync/_private/toMapAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/toObject.js", "../node_modules/linq-to-typescript/esm/sync/_private/toObjectAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/toSet.js", "../node_modules/linq-to-typescript/esm/sync/_private/union.js", "../node_modules/linq-to-typescript/esm/sync/_private/unionAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/where.js", "../node_modules/linq-to-typescript/esm/sync/_private/whereAsync.js", "../node_modules/linq-to-typescript/esm/sync/_private/zip.js", "../node_modules/linq-to-typescript/esm/sync/_private/zipAsync.js", "../node_modules/linq-to-typescript/esm/initializer/bindLinq.js", "../node_modules/linq-to-typescript/esm/async/_private/aggregate.js", "../node_modules/linq-to-typescript/esm/async/_private/all.js", "../node_modules/linq-to-typescript/esm/async/_private/allAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/any.js", "../node_modules/linq-to-typescript/esm/async/_private/anyAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/asParallel.js", "../node_modules/linq-to-typescript/esm/async/_private/average.js", "../node_modules/linq-to-typescript/esm/async/_private/averageAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/chunk.js", "../node_modules/linq-to-typescript/esm/async/_private/concatenate.js", "../node_modules/linq-to-typescript/esm/async/_private/contains.js", "../node_modules/linq-to-typescript/esm/async/_private/containsAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/count.js", "../node_modules/linq-to-typescript/esm/async/_private/countAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/defaultIfEmpty.js", "../node_modules/linq-to-typescript/esm/async/_private/distinct.js", "../node_modules/linq-to-typescript/esm/async/_private/distinctAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/each.js", "../node_modules/linq-to-typescript/esm/async/_private/eachAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/elementAt.js", "../node_modules/linq-to-typescript/esm/async/_private/elementAtOrDefault.js", "../node_modules/linq-to-typescript/esm/async/_private/except.js", "../node_modules/linq-to-typescript/esm/async/_private/exceptAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/first.js", "../node_modules/linq-to-typescript/esm/async/_private/firstAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/firstOrDefault.js", "../node_modules/linq-to-typescript/esm/async/_private/firstOrDefaultAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/groupBy.js", "../node_modules/linq-to-typescript/esm/async/_private/groupByAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/groupByWithSel.js", "../node_modules/linq-to-typescript/esm/async/_private/groupJoin.js", "../node_modules/linq-to-typescript/esm/async/_private/groupJoinAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/intersect.js", "../node_modules/linq-to-typescript/esm/async/_private/intersectAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/join.js", "../node_modules/linq-to-typescript/esm/async/_private/last.js", "../node_modules/linq-to-typescript/esm/async/_private/lastAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/lastOrDefault.js", "../node_modules/linq-to-typescript/esm/async/_private/lastOrDefaultAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/max.js", "../node_modules/linq-to-typescript/esm/async/_private/maxAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/min.js", "../node_modules/linq-to-typescript/esm/async/_private/minAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/ofType.js", "../node_modules/linq-to-typescript/esm/async/_private/orderBy.js", "../node_modules/linq-to-typescript/esm/async/_private/orderByAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/orderByDescending.js", "../node_modules/linq-to-typescript/esm/async/_private/orderByDescendingAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/partition.js", "../node_modules/linq-to-typescript/esm/async/_private/partitionAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/reverse.js", "../node_modules/linq-to-typescript/esm/async/_private/select.js", "../node_modules/linq-to-typescript/esm/async/_private/selectAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/selectMany.js", "../node_modules/linq-to-typescript/esm/async/_private/selectManyAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/sequenceEquals.js", "../node_modules/linq-to-typescript/esm/async/_private/sequenceEqualsAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/single.js", "../node_modules/linq-to-typescript/esm/async/_private/singleAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/singleOrDefault.js", "../node_modules/linq-to-typescript/esm/async/_private/singleOrDefaultAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/skip.js", "../node_modules/linq-to-typescript/esm/async/_private/skipWhile.js", "../node_modules/linq-to-typescript/esm/async/_private/skipWhileAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/sum.js", "../node_modules/linq-to-typescript/esm/async/_private/sumAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/take.js", "../node_modules/linq-to-typescript/esm/async/_private/takeWhile.js", "../node_modules/linq-to-typescript/esm/async/_private/takeWhileAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/toArray.js", "../node_modules/linq-to-typescript/esm/async/_private/toMap.js", "../node_modules/linq-to-typescript/esm/async/_private/toMapAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/toObject.js", "../node_modules/linq-to-typescript/esm/async/_private/toObjectAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/toSet.js", "../node_modules/linq-to-typescript/esm/async/_private/union.js", "../node_modules/linq-to-typescript/esm/async/_private/unionAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/where.js", "../node_modules/linq-to-typescript/esm/async/_private/whereAsync.js", "../node_modules/linq-to-typescript/esm/async/_private/zip.js", "../node_modules/linq-to-typescript/esm/async/_private/zipAsync.js", "../node_modules/linq-to-typescript/esm/initializer/bindLinqAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/aggregate.js", "../node_modules/linq-to-typescript/esm/parallel/_private/_nextIteration.js", "../node_modules/linq-to-typescript/esm/parallel/_private/all.js", "../node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/allAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/any.js", "../node_modules/linq-to-typescript/esm/parallel/_private/anyAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/asAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/_typeDataToArray.js", "../node_modules/linq-to-typescript/esm/parallel/_private/average.js", "../node_modules/linq-to-typescript/esm/parallel/_private/averageAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/chunk.js", "../node_modules/linq-to-typescript/esm/parallel/_private/concatenate.js", "../node_modules/linq-to-typescript/esm/parallel/_private/contains.js", "../node_modules/linq-to-typescript/esm/parallel/_private/containsAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/count.js", "../node_modules/linq-to-typescript/esm/parallel/_private/countAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/defaultIfEmpty.js", "../node_modules/linq-to-typescript/esm/parallel/_private/distinct.js", "../node_modules/linq-to-typescript/esm/parallel/_private/distinctAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/each.js", "../node_modules/linq-to-typescript/esm/parallel/_private/eachAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/elementAt.js", "../node_modules/linq-to-typescript/esm/parallel/_private/elementAtOrDefault.js", "../node_modules/linq-to-typescript/esm/parallel/_private/except.js", "../node_modules/linq-to-typescript/esm/parallel/_private/exceptAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/toArray.js", "../node_modules/linq-to-typescript/esm/parallel/_private/first.js", "../node_modules/linq-to-typescript/esm/parallel/_private/firstAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/firstOrDefault.js", "../node_modules/linq-to-typescript/esm/parallel/_private/firstOrDefaultAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/groupBy.js", "../node_modules/linq-to-typescript/esm/parallel/_private/groupByAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/groupByWithSel.js", "../node_modules/linq-to-typescript/esm/parallel/_private/groupJoin.js", "../node_modules/linq-to-typescript/esm/parallel/_private/groupJoinAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/intersect.js", "../node_modules/linq-to-typescript/esm/parallel/_private/intersectAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/join.js", "../node_modules/linq-to-typescript/esm/parallel/_private/last.js", "../node_modules/linq-to-typescript/esm/parallel/_private/lastAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/lastOrDefault.js", "../node_modules/linq-to-typescript/esm/parallel/_private/lastOrDefaultAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/max.js", "../node_modules/linq-to-typescript/esm/parallel/_private/maxAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/min.js", "../node_modules/linq-to-typescript/esm/parallel/_private/minAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/ofType.js", "../node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncKeyMap.js", "../node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncSortedKeyValues.js", "../node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncKeyMapSync.js", "../node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncSortedKeyValuesSync.js", "../node_modules/linq-to-typescript/esm/parallel/_ordered/asKeyMap.js", "../node_modules/linq-to-typescript/esm/parallel/_ordered/asSortedKeyValues.js", "../node_modules/linq-to-typescript/esm/parallel/_ordered/asKeyMapSync.js", "../node_modules/linq-to-typescript/esm/parallel/_ordered/asSortedKeyValuesSync.js", "../node_modules/linq-to-typescript/esm/parallel/OrderedParallelEnumerable.js", "../node_modules/linq-to-typescript/esm/parallel/_private/orderBy.js", "../node_modules/linq-to-typescript/esm/parallel/_private/orderByAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/orderByDescending.js", "../node_modules/linq-to-typescript/esm/parallel/_private/orderByDescendingAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/partition.js", "../node_modules/linq-to-typescript/esm/parallel/_private/partitionAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/reverse.js", "../node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationWithIndex.js", "../node_modules/linq-to-typescript/esm/parallel/_private/select.js", "../node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationWithIndexAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/selectAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/selectMany.js", "../node_modules/linq-to-typescript/esm/parallel/_private/selectManyAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/sequenceEquals.js", "../node_modules/linq-to-typescript/esm/parallel/_private/sequenceEqualsAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/single.js", "../node_modules/linq-to-typescript/esm/parallel/_private/singleAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/singleOrDefault.js", "../node_modules/linq-to-typescript/esm/parallel/_private/singleOrDefaultAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/skip.js", "../node_modules/linq-to-typescript/esm/parallel/_private/skipWhile.js", "../node_modules/linq-to-typescript/esm/parallel/_private/skipWhileAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/sum.js", "../node_modules/linq-to-typescript/esm/parallel/_private/sumAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/take.js", "../node_modules/linq-to-typescript/esm/parallel/_private/takeWhile.js", "../node_modules/linq-to-typescript/esm/parallel/_private/takeWhileAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/toMap.js", "../node_modules/linq-to-typescript/esm/parallel/_private/toMapAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/toObject.js", "../node_modules/linq-to-typescript/esm/parallel/_private/toObjectAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/toSet.js", "../node_modules/linq-to-typescript/esm/parallel/_private/union.js", "../node_modules/linq-to-typescript/esm/parallel/_private/unionAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/where.js", "../node_modules/linq-to-typescript/esm/parallel/_private/whereAsync.js", "../node_modules/linq-to-typescript/esm/parallel/_private/zip.js", "../node_modules/linq-to-typescript/esm/parallel/_private/zipAsync.js", "../node_modules/linq-to-typescript/esm/initializer/bindLinqParallel.js", "../node_modules/linq-to-typescript/esm/initializer/bindString.js", "../node_modules/linq-to-typescript/esm/initializer/initializeLinq.js", "../node_modules/linq-to-typescript/esm/initializer/initializer.js", "../node_modules/linq-to-typescript/esm/sync/static/empty.js", "../node_modules/linq-to-typescript/esm/sync/static/enumerateObject.js", "../node_modules/linq-to-typescript/esm/sync/static/flatten.js", "../node_modules/linq-to-typescript/esm/sync/static/from.js", "../node_modules/linq-to-typescript/esm/sync/static/range.js", "../node_modules/linq-to-typescript/esm/sync/static/repeat.js", "../node_modules/linq-to-typescript/esm/sync/static/index.js", "../node_modules/linq-to-typescript/esm/async/static/emptyAsync.js", "../node_modules/linq-to-typescript/esm/async/static/enumerateObjectAsync.js", "../node_modules/linq-to-typescript/esm/async/static/flattenAsync.js", "../node_modules/linq-to-typescript/esm/async/static/rangeAsync.js", "../node_modules/linq-to-typescript/esm/async/static/repeatAsync.js", "../node_modules/linq-to-typescript/esm/async/static/index.js", "../node_modules/linq-to-typescript/esm/parallel/static/emptyParallel.js", "../node_modules/linq-to-typescript/esm/parallel/static/flattenParallel.js", "../node_modules/linq-to-typescript/esm/parallel/static/rangeParallel.js", "../node_modules/linq-to-typescript/esm/parallel/static/repeatParallel.js", "../node_modules/linq-to-typescript/esm/parallel/static/index.js", "../node_modules/linq-to-typescript/esm/sync/isEnumerable.js", "../node_modules/linq-to-typescript/esm/parallel/isParallelEnumerable.js", "../node_modules/linq-to-typescript/esm/async/isAsyncEnumerable.js", "../node_modules/linq-to-typescript/esm/index.js", "../src/utils/linq.ts", "../node_modules/rxjs/src/internal/util/isFunction.ts", "../node_modules/rxjs/src/internal/util/createErrorClass.ts", "../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "../node_modules/rxjs/src/internal/util/arrRemove.ts", "../node_modules/rxjs/src/internal/Subscription.ts", "../node_modules/rxjs/src/internal/config.ts", "../node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "../node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "../node_modules/rxjs/src/internal/util/noop.ts", "../node_modules/rxjs/src/internal/NotificationFactories.ts", "../node_modules/rxjs/src/internal/util/errorContext.ts", "../node_modules/rxjs/src/internal/Subscriber.ts", "../node_modules/rxjs/src/internal/symbol/observable.ts", "../node_modules/rxjs/src/internal/util/identity.ts", "../node_modules/rxjs/src/internal/util/pipe.ts", "../node_modules/rxjs/src/internal/Observable.ts", "../node_modules/rxjs/src/internal/util/lift.ts", "../node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "../node_modules/rxjs/src/internal/operators/refCount.ts", "../node_modules/rxjs/src/internal/observable/ConnectableObservable.ts", "../node_modules/rxjs/src/internal/scheduler/performanceTimestampProvider.ts", "../node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "../node_modules/rxjs/src/internal/observable/dom/animationFrames.ts", "../node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "../node_modules/rxjs/src/internal/Subject.ts", "../node_modules/rxjs/src/internal/BehaviorSubject.ts", "../node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "../node_modules/rxjs/src/internal/ReplaySubject.ts", "../node_modules/rxjs/src/internal/AsyncSubject.ts", "../node_modules/rxjs/src/internal/scheduler/Action.ts", "../node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "../node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "../node_modules/rxjs/src/internal/util/Immediate.ts", "../node_modules/rxjs/src/internal/scheduler/immediateProvider.ts", "../node_modules/rxjs/src/internal/scheduler/AsapAction.ts", "../node_modules/rxjs/src/internal/Scheduler.ts", "../node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "../node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts", "../node_modules/rxjs/src/internal/scheduler/asap.ts", "../node_modules/rxjs/src/internal/scheduler/async.ts", "../node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "../node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "../node_modules/rxjs/src/internal/scheduler/queue.ts", "../node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "../node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "../node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "../node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts", "../node_modules/rxjs/src/internal/observable/empty.ts", "../node_modules/rxjs/src/internal/util/isScheduler.ts", "../node_modules/rxjs/src/internal/util/args.ts", "../node_modules/rxjs/src/internal/util/isArrayLike.ts", "../node_modules/rxjs/src/internal/util/isPromise.ts", "../node_modules/rxjs/src/internal/util/isInteropObservable.ts", "../node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "../node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "../node_modules/rxjs/src/internal/symbol/iterator.ts", "../node_modules/rxjs/src/internal/util/isIterable.ts", "../node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "../node_modules/rxjs/src/internal/observable/innerFrom.ts", "../node_modules/rxjs/src/internal/util/executeSchedule.ts", "../node_modules/rxjs/src/internal/operators/observeOn.ts", "../node_modules/rxjs/src/internal/operators/subscribeOn.ts", "../node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "../node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "../node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "../node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "../node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "../node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "../node_modules/rxjs/src/internal/scheduled/scheduled.ts", "../node_modules/rxjs/src/internal/observable/from.ts", "../node_modules/rxjs/src/internal/observable/of.ts", "../node_modules/rxjs/src/internal/observable/throwError.ts", "../node_modules/rxjs/src/internal/Notification.ts", "../node_modules/rxjs/src/internal/util/isObservable.ts", "../node_modules/rxjs/src/internal/util/EmptyError.ts", "../node_modules/rxjs/src/internal/lastValueFrom.ts", "../node_modules/rxjs/src/internal/firstValueFrom.ts", "../node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts", "../node_modules/rxjs/src/internal/util/NotFoundError.ts", "../node_modules/rxjs/src/internal/util/SequenceError.ts", "../node_modules/rxjs/src/internal/util/isDate.ts", "../node_modules/rxjs/src/internal/operators/timeout.ts", "../node_modules/rxjs/src/internal/operators/map.ts", "../node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "../node_modules/rxjs/src/internal/observable/bindCallbackInternals.ts", "../node_modules/rxjs/src/internal/observable/bindCallback.ts", "../node_modules/rxjs/src/internal/observable/bindNodeCallback.ts", "../node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "../node_modules/rxjs/src/internal/util/createObject.ts", "../node_modules/rxjs/src/internal/observable/combineLatest.ts", "../node_modules/rxjs/src/internal/operators/mergeInternals.ts", "../node_modules/rxjs/src/internal/operators/mergeMap.ts", "../node_modules/rxjs/src/internal/operators/mergeAll.ts", "../node_modules/rxjs/src/internal/operators/concatAll.ts", "../node_modules/rxjs/src/internal/observable/concat.ts", "../node_modules/rxjs/src/internal/observable/defer.ts", "../node_modules/rxjs/src/internal/observable/connectable.ts", "../node_modules/rxjs/src/internal/observable/forkJoin.ts", "../node_modules/rxjs/src/internal/observable/fromEvent.ts", "../node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "../node_modules/rxjs/src/internal/observable/generate.ts", "../node_modules/rxjs/src/internal/observable/iif.ts", "../node_modules/rxjs/src/internal/observable/timer.ts", "../node_modules/rxjs/src/internal/observable/interval.ts", "../node_modules/rxjs/src/internal/observable/merge.ts", "../node_modules/rxjs/src/internal/observable/never.ts", "../node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "../node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts", "../node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts", "../node_modules/rxjs/src/internal/observable/pairs.ts", "../node_modules/rxjs/src/internal/util/not.ts", "../node_modules/rxjs/src/internal/operators/filter.ts", "../node_modules/rxjs/src/internal/observable/partition.ts", "../node_modules/rxjs/src/internal/observable/race.ts", "../node_modules/rxjs/src/internal/observable/range.ts", "../node_modules/rxjs/src/internal/observable/using.ts", "../node_modules/rxjs/src/internal/observable/zip.ts", "../node_modules/rxjs/dist/cjs/internal/types.js", "../node_modules/rxjs/src/internal/operators/audit.ts", "../node_modules/rxjs/src/internal/operators/auditTime.ts", "../node_modules/rxjs/src/internal/operators/buffer.ts", "../node_modules/rxjs/src/internal/operators/bufferCount.ts", "../node_modules/rxjs/src/internal/operators/bufferTime.ts", "../node_modules/rxjs/src/internal/operators/bufferToggle.ts", "../node_modules/rxjs/src/internal/operators/bufferWhen.ts", "../node_modules/rxjs/src/internal/operators/catchError.ts", "../node_modules/rxjs/src/internal/operators/scanInternals.ts", "../node_modules/rxjs/src/internal/operators/reduce.ts", "../node_modules/rxjs/src/internal/operators/toArray.ts", "../node_modules/rxjs/src/internal/operators/joinAllInternals.ts", "../node_modules/rxjs/src/internal/operators/combineLatestAll.ts", "../node_modules/rxjs/src/internal/operators/combineAll.ts", "../node_modules/rxjs/src/internal/operators/combineLatest.ts", "../node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "../node_modules/rxjs/src/internal/operators/concatMap.ts", "../node_modules/rxjs/src/internal/operators/concatMapTo.ts", "../node_modules/rxjs/src/internal/operators/concat.ts", "../node_modules/rxjs/src/internal/operators/concatWith.ts", "../node_modules/rxjs/src/internal/observable/fromSubscribable.ts", "../node_modules/rxjs/src/internal/operators/connect.ts", "../node_modules/rxjs/src/internal/operators/count.ts", "../node_modules/rxjs/src/internal/operators/debounce.ts", "../node_modules/rxjs/src/internal/operators/debounceTime.ts", "../node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "../node_modules/rxjs/src/internal/operators/take.ts", "../node_modules/rxjs/src/internal/operators/ignoreElements.ts", "../node_modules/rxjs/src/internal/operators/mapTo.ts", "../node_modules/rxjs/src/internal/operators/delayWhen.ts", "../node_modules/rxjs/src/internal/operators/delay.ts", "../node_modules/rxjs/src/internal/operators/dematerialize.ts", "../node_modules/rxjs/src/internal/operators/distinct.ts", "../node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "../node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "../node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "../node_modules/rxjs/src/internal/operators/elementAt.ts", "../node_modules/rxjs/src/internal/operators/endWith.ts", "../node_modules/rxjs/src/internal/operators/every.ts", "../node_modules/rxjs/src/internal/operators/exhaustAll.ts", "../node_modules/rxjs/src/internal/operators/exhaust.ts", "../node_modules/rxjs/src/internal/operators/exhaustMap.ts", "../node_modules/rxjs/src/internal/operators/expand.ts", "../node_modules/rxjs/src/internal/operators/finalize.ts", "../node_modules/rxjs/src/internal/operators/find.ts", "../node_modules/rxjs/src/internal/operators/findIndex.ts", "../node_modules/rxjs/src/internal/operators/first.ts", "../node_modules/rxjs/src/internal/operators/groupBy.ts", "../node_modules/rxjs/src/internal/operators/isEmpty.ts", "../node_modules/rxjs/src/internal/operators/takeLast.ts", "../node_modules/rxjs/src/internal/operators/last.ts", "../node_modules/rxjs/src/internal/operators/materialize.ts", "../node_modules/rxjs/src/internal/operators/max.ts", "../node_modules/rxjs/src/internal/operators/flatMap.ts", "../node_modules/rxjs/src/internal/operators/mergeMapTo.ts", "../node_modules/rxjs/src/internal/operators/mergeScan.ts", "../node_modules/rxjs/src/internal/operators/merge.ts", "../node_modules/rxjs/src/internal/operators/mergeWith.ts", "../node_modules/rxjs/src/internal/operators/min.ts", "../node_modules/rxjs/src/internal/operators/multicast.ts", "../node_modules/rxjs/src/internal/operators/pairwise.ts", "../node_modules/rxjs/src/internal/operators/pluck.ts", "../node_modules/rxjs/src/internal/operators/publish.ts", "../node_modules/rxjs/src/internal/operators/publishBehavior.ts", "../node_modules/rxjs/src/internal/operators/publishLast.ts", "../node_modules/rxjs/src/internal/operators/publishReplay.ts", "../node_modules/rxjs/src/internal/operators/raceWith.ts", "../node_modules/rxjs/src/internal/operators/repeat.ts", "../node_modules/rxjs/src/internal/operators/repeatWhen.ts", "../node_modules/rxjs/src/internal/operators/retry.ts", "../node_modules/rxjs/src/internal/operators/retryWhen.ts", "../node_modules/rxjs/src/internal/operators/sample.ts", "../node_modules/rxjs/src/internal/operators/sampleTime.ts", "../node_modules/rxjs/src/internal/operators/scan.ts", "../node_modules/rxjs/src/internal/operators/sequenceEqual.ts", "../node_modules/rxjs/src/internal/operators/share.ts", "../node_modules/rxjs/src/internal/operators/shareReplay.ts", "../node_modules/rxjs/src/internal/operators/single.ts", "../node_modules/rxjs/src/internal/operators/skip.ts", "../node_modules/rxjs/src/internal/operators/skipLast.ts", "../node_modules/rxjs/src/internal/operators/skipUntil.ts", "../node_modules/rxjs/src/internal/operators/skipWhile.ts", "../node_modules/rxjs/src/internal/operators/startWith.ts", "../node_modules/rxjs/src/internal/operators/switchMap.ts", "../node_modules/rxjs/src/internal/operators/switchAll.ts", "../node_modules/rxjs/src/internal/operators/switchMapTo.ts", "../node_modules/rxjs/src/internal/operators/switchScan.ts", "../node_modules/rxjs/src/internal/operators/takeUntil.ts", "../node_modules/rxjs/src/internal/operators/takeWhile.ts", "../node_modules/rxjs/src/internal/operators/tap.ts", "../node_modules/rxjs/src/internal/operators/throttle.ts", "../node_modules/rxjs/src/internal/operators/throttleTime.ts", "../node_modules/rxjs/src/internal/operators/timeInterval.ts", "../node_modules/rxjs/src/internal/operators/timeoutWith.ts", "../node_modules/rxjs/src/internal/operators/timestamp.ts", "../node_modules/rxjs/src/internal/operators/window.ts", "../node_modules/rxjs/src/internal/operators/windowCount.ts", "../node_modules/rxjs/src/internal/operators/windowTime.ts", "../node_modules/rxjs/src/internal/operators/windowToggle.ts", "../node_modules/rxjs/src/internal/operators/windowWhen.ts", "../node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "../node_modules/rxjs/src/internal/operators/zipAll.ts", "../node_modules/rxjs/src/internal/operators/zip.ts", "../node_modules/rxjs/src/internal/operators/zipWith.ts", "../node_modules/rxjs/src/index.ts", "../src/server.ts", "../src/server/dataCache/dataCache.ts", "../src/server/dataCache/types.ts", "../src/server/dataCache/skipList/skipListNode.ts", "../src/server/dataCache/skipList/skipList.ts", "../src/server/dataCache/promiseQueue.ts", "../src/utils/maybe.ts", "../src/server/dataCache/stringUtils.ts", "../src/server/dataCache/time.ts"], + "sourcesContent": ["export {};\r\n", "export class ArgumentOutOfRangeException extends RangeError {\r\n constructor(paramName) {\r\n super(`${paramName} was out of range.` +\r\n \" Must be non-negative and less than the size of the collection.\");\r\n this.paramName = paramName;\r\n this.name = \"ArgumentOutOfRangeException\";\r\n this.stack = this.stack || (new Error()).stack;\r\n }\r\n}\r\n", "export const EqualityComparer = (x, y) => x == y;\r\n", "export const ErrorString = Object.freeze({\r\n MoreThanOneElement: \"Sequence contains more than one element\",\r\n MoreThanOneMatchingElement: \"Sequence contains more than one matching element\",\r\n NoElements: \"Sequence contains no elements\",\r\n NoMatch: \"Sequence contains no matching element\",\r\n});\r\n", "export class InvalidOperationException extends Error {\r\n constructor(message) {\r\n super(message);\r\n this.name = \"InvalidOperationException\";\r\n this.stack = this.stack || (new Error()).stack;\r\n }\r\n}\r\n", "export const NumberComparer = (x, y) => x - y;\r\n", "export const StrictEqualityComparer = (x, y) => x === y;\r\n", "export const StringifyComparer = (x, y) => JSON.stringify(x) === JSON.stringify(y);\r\n", "export { ArgumentOutOfRangeException } from \"./ArgumentOutOfRangeException.js\";\r\nexport { EqualityComparer } from \"./EqualityComparer.js\";\r\nexport { ErrorString } from \"./ErrorString.js\";\r\nexport { InvalidOperationException } from \"./InvalidOperationException.js\";\r\nexport { NumberComparer } from \"./NumberComparer.js\";\r\nexport { StrictEqualityComparer } from \"./StrictEqualityComparer.js\";\r\nexport { StringifyComparer } from \"./StringifyComparer.js\";\r\n", "export class ArrayEnumerable extends Array {\r\n}\r\n", "export class BasicAsyncEnumerable {\r\n constructor(iterator) {\r\n this.iterator = iterator;\r\n }\r\n [Symbol.asyncIterator]() {\r\n return this.iterator();\r\n }\r\n}\r\n", "export class BasicParallelEnumerable {\r\n constructor(dataFunc) {\r\n this.dataFunc = dataFunc;\r\n }\r\n [Symbol.asyncIterator]() {\r\n const { dataFunc } = this;\r\n async function* iterator() {\r\n switch (dataFunc.type) {\r\n case 1:\r\n for (const value of dataFunc.generator()) {\r\n yield value;\r\n }\r\n break;\r\n case 2:\r\n for (const value of await dataFunc.generator()) {\r\n yield value;\r\n }\r\n break;\r\n case 0:\r\n default:\r\n for (const value of await dataFunc.generator()) {\r\n yield value;\r\n }\r\n break;\r\n }\r\n }\r\n return iterator();\r\n }\r\n}\r\n", "export class BasicEnumerable {\r\n constructor(iterator) {\r\n this.iterator = iterator;\r\n }\r\n [Symbol.iterator]() {\r\n return this.iterator();\r\n }\r\n}\r\n", "import { ArrayEnumerable } from \"../sync/ArrayEnumerable.js\";\r\nexport const bindArray = (jsArray) => {\r\n var _a;\r\n const arrayEnumerablePrototype = ArrayEnumerable.prototype;\r\n const bindToPrototype = jsArray.prototype;\r\n const propertyNames = Object\r\n .getOwnPropertyNames(arrayEnumerablePrototype);\r\n for (const prop of propertyNames) {\r\n bindToPrototype[prop] = (_a = bindToPrototype[prop]) !== null && _a !== void 0 ? _a : arrayEnumerablePrototype[prop];\r\n }\r\n};\r\n", "import { ArgumentOutOfRangeException, ErrorString, InvalidOperationException } from \"../shared/index.js\";\r\nimport { ArrayEnumerable } from \"../sync/ArrayEnumerable.js\";\r\nimport { BasicEnumerable } from \"../sync/BasicEnumerable.js\";\r\nexport const bindArrayEnumerable = () => {\r\n var _a;\r\n const { prototype } = ArrayEnumerable;\r\n const propertyNames = Object.getOwnPropertyNames(BasicEnumerable.prototype);\r\n for (const prop of propertyNames) {\r\n prototype[prop] = (_a = prototype[prop]) !== null && _a !== void 0 ? _a : BasicEnumerable.prototype[prop];\r\n }\r\n prototype.all = function (predicate) {\r\n return this.every(predicate);\r\n };\r\n prototype.any = function (predicate) {\r\n if (predicate) {\r\n return this.some(predicate);\r\n }\r\n else {\r\n return this.length !== 0;\r\n }\r\n };\r\n prototype.count = function (predicate) {\r\n if (predicate) {\r\n let count = 0;\r\n for (let i = 0; i < this.length; i++) {\r\n if (predicate(this[i]) === true) {\r\n count++;\r\n }\r\n }\r\n return count;\r\n }\r\n else {\r\n return this.length;\r\n }\r\n };\r\n prototype.elementAt = function (index) {\r\n if (index < 0 || index >= this.length) {\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n }\r\n return this[index];\r\n };\r\n prototype.elementAtOrDefault = function (index) {\r\n return this[index] || null;\r\n };\r\n prototype.first = function (predicate) {\r\n if (predicate) {\r\n const value = this.find(predicate);\r\n if (value === undefined) {\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n else {\r\n if (this.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return this[0];\r\n }\r\n };\r\n prototype.firstOrDefault = function (predicate) {\r\n if (predicate) {\r\n const value = this.find(predicate);\r\n if (value === undefined) {\r\n return null;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n else {\r\n return this.length === 0 ? null : this[0];\r\n }\r\n };\r\n prototype.last = function (predicate) {\r\n if (predicate) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n const value = this[i];\r\n if (predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n else {\r\n if (this.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return this[this.length - 1];\r\n }\r\n };\r\n prototype.lastOrDefault = function (predicate) {\r\n if (predicate) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n const value = this[i];\r\n if (predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n return null;\r\n }\r\n else {\r\n return this.length === 0 ? null : this[this.length - 1];\r\n }\r\n };\r\n prototype.max = function (selector) {\r\n if (this.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n if (selector) {\r\n let max = Number.NEGATIVE_INFINITY;\r\n for (let i = 0; i < this.length; i++) {\r\n max = Math.max(selector(this[i]), max);\r\n }\r\n return max;\r\n }\r\n else {\r\n return Math.max.apply(null, this);\r\n }\r\n };\r\n prototype.min = function (selector) {\r\n if (this.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n if (selector) {\r\n let min = Number.POSITIVE_INFINITY;\r\n for (let i = 0; i < this.length; i++) {\r\n min = Math.min(selector(this[i]), min);\r\n }\r\n return min;\r\n }\r\n else {\r\n return Math.min.apply(null, this);\r\n }\r\n };\r\n prototype.reverse = function () {\r\n Array.prototype.reverse.apply(this);\r\n return this;\r\n };\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const aggregate = (source, seedOrFunc, func, resultSelector) => {\r\n if (resultSelector) {\r\n if (!func) {\r\n throw new ReferenceError(\"TAccumulate function is undefined\");\r\n }\r\n return aggregate3(source, seedOrFunc, func, resultSelector);\r\n }\r\n else if (func) {\r\n return aggregate2(source, seedOrFunc, func);\r\n }\r\n else {\r\n return aggregate1(source, seedOrFunc);\r\n }\r\n};\r\nconst aggregate1 = (source, func) => {\r\n let aggregateValue;\r\n for (const value of source) {\r\n if (aggregateValue) {\r\n aggregateValue = func(aggregateValue, value);\r\n }\r\n else {\r\n aggregateValue = value;\r\n }\r\n }\r\n if (aggregateValue === undefined) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return aggregateValue;\r\n};\r\nconst aggregate2 = (source, seed, func) => {\r\n let aggregateValue = seed;\r\n for (const value of source) {\r\n aggregateValue = func(aggregateValue, value);\r\n }\r\n return aggregateValue;\r\n};\r\nconst aggregate3 = (source, seed, func, resultSelector) => {\r\n let aggregateValue = seed;\r\n for (const value of source) {\r\n aggregateValue = func(aggregateValue, value);\r\n }\r\n return resultSelector(aggregateValue);\r\n};\r\n", "export const all = (source, predicate) => {\r\n for (const item of source) {\r\n if (predicate(item) === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n", "export const allAsync = async (source, predicate) => {\r\n for (const item of source) {\r\n if (await predicate(item) === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n", "export const any = (source, predicate) => {\r\n if (predicate) {\r\n return any2(source, predicate);\r\n }\r\n else {\r\n return any1(source);\r\n }\r\n};\r\nconst any1 = (source) => {\r\n for (const _ of source) {\r\n return true;\r\n }\r\n return false;\r\n};\r\nconst any2 = (source, predicate) => {\r\n for (const item of source) {\r\n if (predicate(item) === true) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n", "export const anyAsync = async (source, predicate) => {\r\n for (const item of source) {\r\n if (await predicate(item) === true) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const fromAsync = (promisesOrIterable) => {\r\n if (Array.isArray(promisesOrIterable)) {\r\n if (promisesOrIterable.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return new BasicAsyncEnumerable(async function* () {\r\n for await (const value of promisesOrIterable) {\r\n yield value;\r\n }\r\n });\r\n }\r\n else {\r\n return new BasicAsyncEnumerable(promisesOrIterable);\r\n }\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const asAsync = (source) => {\r\n async function* generator() {\r\n for (const value of source) {\r\n yield value;\r\n }\r\n }\r\n return fromAsync(generator);\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const fromParallel = (type, generator) => {\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type,\r\n });\r\n};\r\n", "import { fromParallel } from \"../../parallel/static/fromParallel.js\";\r\nexport const asParallel = (source) => {\r\n const generator = async () => {\r\n const array = [];\r\n for (const value of source) {\r\n array.push(value);\r\n }\r\n return array;\r\n };\r\n return fromParallel(0, generator);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const average = (source, selector) => {\r\n let value = 0;\r\n let count = 0;\r\n if (selector) {\r\n for (const item of source) {\r\n value = value + selector(item);\r\n count = count + 1;\r\n }\r\n }\r\n else {\r\n for (const item of source) {\r\n value = value + item;\r\n count = count + 1;\r\n }\r\n }\r\n if (count === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return value / count;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const averageAsync = async (source, selector) => {\r\n let value = 0;\r\n let count = 0;\r\n for (const item of source) {\r\n value = value + await selector(item);\r\n count = count + 1;\r\n }\r\n if (count === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return value / count;\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nimport { ArgumentOutOfRangeException } from \"../../shared/index.js\";\r\nexport const chunk = (source, size) => {\r\n if (size < 1) {\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n }\r\n function* iterator() {\r\n let yieldChunk = [];\r\n for (const value of source) {\r\n yieldChunk.push(value);\r\n if (yieldChunk.length === size) {\r\n yield yieldChunk;\r\n yieldChunk = [];\r\n }\r\n }\r\n if (yieldChunk.length) {\r\n yield yieldChunk;\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const concatenate = (first, second) => {\r\n function* iterator() {\r\n yield* first;\r\n yield* second;\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nexport const contains = (source, value, comparer = StrictEqualityComparer) => {\r\n for (const item of source) {\r\n if (comparer(value, item)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n", "export const containsAsync = async (source, value, comparer) => {\r\n for (const item of source) {\r\n if (await comparer(value, item)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n", "export const count = (source, predicate) => {\r\n if (predicate) {\r\n return count2(source, predicate);\r\n }\r\n else {\r\n return count1(source);\r\n }\r\n};\r\nconst count1 = (source) => {\r\n let count = 0;\r\n for (const _ of source) {\r\n count++;\r\n }\r\n return count;\r\n};\r\nconst count2 = (source, predicate) => {\r\n let count = 0;\r\n for (const value of source) {\r\n if (predicate(value) === true) {\r\n count++;\r\n }\r\n }\r\n return count;\r\n};\r\n", "export const countAsync = async (source, predicate) => {\r\n let count = 0;\r\n for (const value of source) {\r\n if (await predicate(value) === true) {\r\n count++;\r\n }\r\n }\r\n return count;\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const defaultIfEmpty = (source, defaultValue) => {\r\n function* generator() {\r\n let found = false;\r\n for (const value of source) {\r\n found = true;\r\n yield value;\r\n }\r\n if (!found) {\r\n yield defaultValue;\r\n }\r\n }\r\n return new BasicEnumerable(generator);\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const distinct = (source, comparer = StrictEqualityComparer) => {\r\n function* iterator() {\r\n const distinctElements = [];\r\n for (const item of source) {\r\n const foundItem = distinctElements.find((x) => comparer(x, item));\r\n if (!foundItem) {\r\n distinctElements.push(item);\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const distinctAsync = (source, comparer) => {\r\n async function* iterator() {\r\n const distinctElements = [];\r\n outerLoop: for (const item of source) {\r\n for (const distinctElement of distinctElements) {\r\n const found = await comparer(distinctElement, item);\r\n if (found) {\r\n continue outerLoop;\r\n }\r\n }\r\n distinctElements.push(item);\r\n yield item;\r\n }\r\n }\r\n return fromAsync(iterator);\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const each = (source, action) => {\r\n function* generator() {\r\n for (const value of source) {\r\n action(value);\r\n yield value;\r\n }\r\n }\r\n return new BasicEnumerable(generator);\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const eachAsync = (source, action) => {\r\n async function* generator() {\r\n for (const value of source) {\r\n await action(value);\r\n yield value;\r\n }\r\n }\r\n return fromAsync(generator);\r\n};\r\n", "import { ArgumentOutOfRangeException } from \"../../shared/index.js\";\r\nexport const elementAt = (source, index) => {\r\n if (index < 0) {\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n }\r\n let i = 0;\r\n for (const item of source) {\r\n if (index === i++) {\r\n return item;\r\n }\r\n }\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n};\r\n", "export const elementAtOrDefault = (source, index) => {\r\n let i = 0;\r\n for (const item of source) {\r\n if (index === i++) {\r\n return item;\r\n }\r\n }\r\n return null;\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const except = (first, second, comparer = StrictEqualityComparer) => {\r\n function* iterator() {\r\n const secondArray = [...second];\r\n for (const firstItem of first) {\r\n let exists = false;\r\n for (let j = 0; j < secondArray.length; j++) {\r\n const secondItem = secondArray[j];\r\n if (comparer(firstItem, secondItem) === true) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (exists === false) {\r\n yield firstItem;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const exceptAsync = (first, second, comparer) => {\r\n async function* iterator() {\r\n const secondArray = [...second];\r\n for (const firstItem of first) {\r\n let exists = false;\r\n for (let j = 0; j < secondArray.length; j++) {\r\n const secondItem = secondArray[j];\r\n if (await comparer(firstItem, secondItem) === true) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (exists === false) {\r\n yield firstItem;\r\n }\r\n }\r\n }\r\n return fromAsync(iterator);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const first = (source, predicate) => {\r\n if (predicate) {\r\n return first2(source, predicate);\r\n }\r\n else {\r\n return first1(source);\r\n }\r\n};\r\nconst first1 = (source) => {\r\n const first = source[Symbol.iterator]().next();\r\n if (first.done === true) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return first.value;\r\n};\r\nconst first2 = (source, predicate) => {\r\n for (const value of source) {\r\n if (predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const firstAsync = async (source, predicate) => {\r\n for (const value of source) {\r\n if (await predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n};\r\n", "export const firstOrDefault = (source, predicate) => {\r\n if (predicate) {\r\n return firstOrDefault2(source, predicate);\r\n }\r\n else {\r\n return firstOrDefault1(source);\r\n }\r\n};\r\nconst firstOrDefault1 = (source) => {\r\n const first = source[Symbol.iterator]().next();\r\n return first.value || null;\r\n};\r\nconst firstOrDefault2 = (source, predicate) => {\r\n for (const value of source) {\r\n if (predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n return null;\r\n};\r\n", "export const firstOrDefaultAsync = async (source, predicate) => {\r\n for (const value of source) {\r\n if (await predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n return null;\r\n};\r\n", "import { ArrayEnumerable } from \"./ArrayEnumerable.js\";\r\nexport class Grouping extends ArrayEnumerable {\r\n constructor(key, startingItem) {\r\n super(1);\r\n this.key = key;\r\n this[0] = startingItem;\r\n }\r\n}\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nimport { Grouping } from \"../Grouping.js\";\r\nexport const groupBy_0 = (source, keySelector, comparer) => {\r\n return function* generate() {\r\n const keyMap = new Array();\r\n for (const value of source) {\r\n const key = keySelector(value);\r\n let found = false;\r\n for (let i = 0; i < keyMap.length; i++) {\r\n const group = keyMap[i];\r\n if (comparer(group.key, key)) {\r\n group.push(value);\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (found === false) {\r\n keyMap.push(new Grouping(key, value));\r\n }\r\n }\r\n for (const keyValue of keyMap) {\r\n yield keyValue;\r\n }\r\n };\r\n};\r\nexport const groupBy_0_Simple = (source, keySelector) => {\r\n return function* iterator() {\r\n const keyMap = {};\r\n for (const value of source) {\r\n const key = keySelector(value);\r\n const grouping = keyMap[key];\r\n if (grouping) {\r\n grouping.push(value);\r\n }\r\n else {\r\n keyMap[key] = new Grouping(key, value);\r\n }\r\n }\r\n for (const value in keyMap) {\r\n yield keyMap[value];\r\n }\r\n };\r\n};\r\nexport const groupBy_1_Simple = (source, keySelector, elementSelector) => {\r\n function* generate() {\r\n const keyMap = {};\r\n for (const value of source) {\r\n const key = keySelector(value);\r\n const grouping = keyMap[key];\r\n const element = elementSelector(value);\r\n if (grouping) {\r\n grouping.push(element);\r\n }\r\n else {\r\n keyMap[key] = new Grouping(key, element);\r\n }\r\n }\r\n for (const value in keyMap) {\r\n yield keyMap[value];\r\n }\r\n }\r\n return new BasicEnumerable(generate);\r\n};\r\nexport const groupBy_1 = (source, keySelector, elementSelector, comparer) => {\r\n function* generate() {\r\n const keyMap = new Array();\r\n for (const value of source) {\r\n const key = keySelector(value);\r\n let found = false;\r\n for (let i = 0; i < keyMap.length; i++) {\r\n const group = keyMap[i];\r\n if (comparer(group.key, key)) {\r\n group.push(elementSelector(value));\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (found === false) {\r\n const element = elementSelector(value);\r\n keyMap.push(new Grouping(key, element));\r\n }\r\n }\r\n for (const keyValue of keyMap) {\r\n yield keyValue;\r\n }\r\n }\r\n return new BasicEnumerable(generate);\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nimport { groupBy_0, groupBy_0_Simple } from \"./groupByShared.js\";\r\nexport const groupBy = (source, keySelector, comparer) => {\r\n let iterable;\r\n if (comparer) {\r\n iterable = groupBy_0(source, keySelector, comparer);\r\n }\r\n else {\r\n iterable = groupBy_0_Simple(source, keySelector);\r\n }\r\n return new BasicEnumerable(iterable);\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nimport { Grouping } from \"../Grouping.js\";\r\nexport const groupByAsync = (source, keySelector, comparer) => {\r\n if (comparer) {\r\n return groupByAsync_0(source, keySelector, comparer);\r\n }\r\n else {\r\n return groupByAsync_0_Simple(source, keySelector);\r\n }\r\n};\r\nconst groupByAsync_0_Simple = (source, keySelector) => {\r\n async function* iterator() {\r\n const keyMap = {};\r\n for (const value of source) {\r\n const key = await keySelector(value);\r\n const grouping = keyMap[key];\r\n if (grouping) {\r\n grouping.push(value);\r\n }\r\n else {\r\n keyMap[key] = new Grouping(key, value);\r\n }\r\n }\r\n for (const value in keyMap) {\r\n yield keyMap[value];\r\n }\r\n }\r\n return fromAsync(iterator);\r\n};\r\nconst groupByAsync_0 = (source, keySelector, comparer) => {\r\n async function* generate() {\r\n const keyMap = new Array();\r\n for (const value of source) {\r\n const key = await keySelector(value);\r\n let found = false;\r\n for (let i = 0; i < keyMap.length; i++) {\r\n const group = keyMap[i];\r\n if (await comparer(group.key, key) === true) {\r\n group.push(value);\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (found === false) {\r\n keyMap.push(new Grouping(key, value));\r\n }\r\n }\r\n for (const keyValue of keyMap) {\r\n yield keyValue;\r\n }\r\n }\r\n return fromAsync(generate);\r\n};\r\n", "import { groupBy_1, groupBy_1_Simple } from \"./groupByShared.js\";\r\nexport const groupByWithSel = (source, keySelector, elementSelector, comparer) => {\r\n if (comparer) {\r\n return groupBy_1(source, keySelector, elementSelector, comparer);\r\n }\r\n else {\r\n return groupBy_1_Simple(source, keySelector, elementSelector);\r\n }\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const groupJoin = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => {\r\n const generator = comparer ?\r\n groupJoinWithComparer(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) :\r\n groupJoinSimple(outer, inner, outerKeySelector, innerKeySelector, resultSelector);\r\n return new BasicEnumerable(generator);\r\n};\r\nconst groupJoinWithComparer = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => {\r\n return function* () {\r\n var _a;\r\n const innerKeyMap = [];\r\n for (const innerValue of inner) {\r\n const key = innerKeySelector(innerValue);\r\n const record = innerKeyMap.find(x => comparer(x.key, key));\r\n if (record) {\r\n record.values.push(innerValue);\r\n }\r\n else {\r\n innerKeyMap.push({ key, values: [innerValue] });\r\n }\r\n }\r\n for (const outerValue of outer) {\r\n const key = outerKeySelector(outerValue);\r\n const innerRecord = (_a = innerKeyMap.find(x => comparer(x.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] };\r\n yield resultSelector(outerValue, innerRecord.values);\r\n }\r\n };\r\n};\r\nconst groupJoinSimple = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => {\r\n return function* () {\r\n var _a;\r\n const innerKeyMap = new Map();\r\n for (const innerValue of inner) {\r\n const key = innerKeySelector(innerValue);\r\n const values = innerKeyMap.get(key);\r\n if (values) {\r\n values.push(innerValue);\r\n }\r\n else {\r\n innerKeyMap.set(key, [innerValue]);\r\n }\r\n }\r\n for (const outerValue of outer) {\r\n const key = outerKeySelector(outerValue);\r\n const values = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : [];\r\n yield resultSelector(outerValue, values);\r\n }\r\n };\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const groupJoinAsync = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => {\r\n const generator = comparer ?\r\n groupJoinWithComparer(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) :\r\n groupJoinSimple(outer, inner, outerKeySelector, innerKeySelector, resultSelector);\r\n return fromAsync(generator);\r\n};\r\nconst groupJoinWithComparer = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => {\r\n return async function* () {\r\n var _a;\r\n const innerKeyMap = [];\r\n for (const innerValue of inner) {\r\n const key = await innerKeySelector(innerValue);\r\n const record = innerKeyMap.find(x => comparer(x.key, key));\r\n if (record) {\r\n record.values.push(innerValue);\r\n }\r\n else {\r\n innerKeyMap.push({ key, values: [innerValue] });\r\n }\r\n }\r\n for (const outerValue of outer) {\r\n const key = await outerKeySelector(outerValue);\r\n const innerRecord = (_a = innerKeyMap.find(x => comparer(x.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] };\r\n yield resultSelector(outerValue, innerRecord.values);\r\n }\r\n };\r\n};\r\nconst groupJoinSimple = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => {\r\n return async function* () {\r\n var _a;\r\n const innerKeyMap = new Map();\r\n for (const innerValue of inner) {\r\n const key = await innerKeySelector(innerValue);\r\n const values = innerKeyMap.get(key);\r\n if (values) {\r\n values.push(innerValue);\r\n }\r\n else {\r\n innerKeyMap.set(key, [innerValue]);\r\n }\r\n }\r\n for (const outerValue of outer) {\r\n const key = await outerKeySelector(outerValue);\r\n const values = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : [];\r\n yield resultSelector(outerValue, values);\r\n }\r\n };\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const intersect = (first, second, comparer = StrictEqualityComparer) => {\r\n function* iterator() {\r\n const firstResults = [...first.distinct(comparer)];\r\n if (firstResults.length === 0) {\r\n return;\r\n }\r\n const secondResults = [...second];\r\n for (let i = 0; i < firstResults.length; i++) {\r\n const firstValue = firstResults[i];\r\n for (let j = 0; j < secondResults.length; j++) {\r\n const secondValue = secondResults[j];\r\n if (comparer(firstValue, secondValue) === true) {\r\n yield firstValue;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const intersectAsync = (first, second, comparer) => {\r\n async function* iterator() {\r\n const firstResults = [];\r\n for await (const item of first.distinctAsync(comparer)) {\r\n firstResults.push(item);\r\n }\r\n if (firstResults.length === 0) {\r\n return;\r\n }\r\n const secondResults = [...second];\r\n for (let i = 0; i < firstResults.length; i++) {\r\n const firstValue = firstResults[i];\r\n for (let j = 0; j < secondResults.length; j++) {\r\n const secondValue = secondResults[j];\r\n if (await comparer(firstValue, secondValue) === true) {\r\n yield firstValue;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return fromAsync(iterator);\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const join = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer = StrictEqualityComparer) => {\r\n function* iterator() {\r\n const innerArray = [...inner];\r\n for (const o of outer) {\r\n const outerKey = outerKeySelector(o);\r\n for (const i of innerArray) {\r\n const innerKey = innerKeySelector(i);\r\n if (comparer(outerKey, innerKey) === true) {\r\n yield resultSelector(o, i);\r\n }\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const last = (source, predicate) => {\r\n if (predicate) {\r\n return last2(source, predicate);\r\n }\r\n else {\r\n return last1(source);\r\n }\r\n};\r\nconst last1 = (source) => {\r\n let lastItem;\r\n for (const value of source) {\r\n lastItem = value;\r\n }\r\n if (!lastItem) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return lastItem;\r\n};\r\nconst last2 = (source, predicate) => {\r\n let lastItem;\r\n for (const value of source) {\r\n if (predicate(value) === true) {\r\n lastItem = value;\r\n }\r\n }\r\n if (!lastItem) {\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n return lastItem;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const lastAsync = async (source, predicate) => {\r\n let last;\r\n for (const value of source) {\r\n if (await predicate(value) === true) {\r\n last = value;\r\n }\r\n }\r\n if (!last) {\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n return last;\r\n};\r\n", "export const lastOrDefault = (source, predicate) => {\r\n if (predicate) {\r\n return lastOrDefault2(source, predicate);\r\n }\r\n else {\r\n return lastOrDefault1(source);\r\n }\r\n};\r\nconst lastOrDefault1 = (source) => {\r\n let last = null;\r\n for (const value of source) {\r\n last = value;\r\n }\r\n return last;\r\n};\r\nconst lastOrDefault2 = (source, predicate) => {\r\n let last = null;\r\n for (const value of source) {\r\n if (predicate(value) === true) {\r\n last = value;\r\n }\r\n }\r\n return last;\r\n};\r\n", "export const lastOrDefaultAsync = async (source, predicate) => {\r\n let last = null;\r\n for (const value of source) {\r\n if (await predicate(value) === true) {\r\n last = value;\r\n }\r\n }\r\n return last;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const max = (source, selector) => {\r\n if (selector) {\r\n return max2(source, selector);\r\n }\r\n else {\r\n return max1(source);\r\n }\r\n};\r\nconst max1 = (source) => {\r\n let maxItem = null;\r\n for (const item of source) {\r\n maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, item);\r\n }\r\n if (maxItem === null) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return maxItem;\r\n }\r\n};\r\nconst max2 = (source, selector) => {\r\n let maxItem = null;\r\n for (const item of source) {\r\n maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, selector(item));\r\n }\r\n if (maxItem === null) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return maxItem;\r\n }\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const maxAsync = async (source, selector) => {\r\n let max = null;\r\n for (const item of source) {\r\n max = Math.max(max || Number.NEGATIVE_INFINITY, await selector(item));\r\n }\r\n if (max === null) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return max;\r\n }\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const min = (source, selector) => {\r\n if (selector) {\r\n return min2(source, selector);\r\n }\r\n else {\r\n return min1(source);\r\n }\r\n};\r\nconst min1 = (source) => {\r\n let minItem = null;\r\n for (const item of source) {\r\n minItem = Math.min(minItem || Number.POSITIVE_INFINITY, item);\r\n }\r\n if (minItem === null) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return minItem;\r\n }\r\n};\r\nconst min2 = (source, selector) => {\r\n let minItem = null;\r\n for (const item of source) {\r\n minItem = Math.min(minItem || Number.POSITIVE_INFINITY, selector(item));\r\n }\r\n if (minItem === null) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return minItem;\r\n }\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const minAsync = async (source, selector) => {\r\n let min = null;\r\n for (const item of source) {\r\n min = Math.min(min || Number.POSITIVE_INFINITY, await selector(item));\r\n }\r\n if (min === null) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return min;\r\n }\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const ofType = (source, type) => {\r\n const typeCheck = typeof type === \"string\" ?\r\n ((x) => typeof x === type) :\r\n ((x) => x instanceof type);\r\n function* iterator() {\r\n for (const item of source) {\r\n if (typeCheck(item)) {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "export const asAsyncKeyMap = async (source, keySelector) => {\r\n const map = new Map();\r\n for await (const item of source) {\r\n const key = await keySelector(item);\r\n const currentMapping = map.get(key);\r\n if (currentMapping) {\r\n currentMapping.push(item);\r\n }\r\n else {\r\n map.set(key, [item]);\r\n }\r\n }\r\n return map;\r\n};\r\n", "import { asAsyncKeyMap } from \"./asAsyncKeyMap.js\";\r\nexport async function* asAsyncSortedKeyValues(source, keySelector, ascending, comparer) {\r\n const map = await asAsyncKeyMap(source, keySelector);\r\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\r\n if (ascending) {\r\n for (let i = 0; i < sortedKeys.length; i++) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n else {\r\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n}\r\n", "export const asAsyncKeyMapSync = async (source, keySelector) => {\r\n const map = new Map();\r\n for (const item of source) {\r\n const key = await keySelector(item);\r\n const currentMapping = map.get(key);\r\n if (currentMapping) {\r\n currentMapping.push(item);\r\n }\r\n else {\r\n map.set(key, [item]);\r\n }\r\n }\r\n return map;\r\n};\r\n", "import { asAsyncKeyMapSync } from \"./asAsyncKeyMapSync.js\";\r\nexport async function* asAsyncSortedKeyValuesSync(source, keySelector, ascending, comparer) {\r\n const map = await asAsyncKeyMapSync(source, keySelector);\r\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\r\n if (ascending) {\r\n for (let i = 0; i < sortedKeys.length; i++) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n else {\r\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n}\r\n", "export const asKeyMap = async (source, keySelector) => {\r\n const map = new Map();\r\n for await (const item of source) {\r\n const key = keySelector(item);\r\n const currentMapping = map.get(key);\r\n if (currentMapping) {\r\n currentMapping.push(item);\r\n }\r\n else {\r\n map.set(key, [item]);\r\n }\r\n }\r\n return map;\r\n};\r\n", "import { asKeyMap } from \"./asKeyMap.js\";\r\nexport async function* asSortedKeyValues(source, keySelector, ascending, comparer) {\r\n const map = await asKeyMap(source, keySelector);\r\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\r\n if (ascending) {\r\n for (let i = 0; i < sortedKeys.length; i++) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n else {\r\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n}\r\n", "export const asKeyMapSync = (source, keySelector) => {\r\n const map = new Map();\r\n for (const item of source) {\r\n const key = keySelector(item);\r\n const currentMapping = map.get(key);\r\n if (currentMapping) {\r\n currentMapping.push(item);\r\n }\r\n else {\r\n map.set(key, [item]);\r\n }\r\n }\r\n return map;\r\n};\r\n", "import { asKeyMapSync } from \"./asKeyMapSync.js\";\r\nexport function* asSortedKeyValuesSync(source, keySelector, ascending, comparer) {\r\n const map = asKeyMapSync(source, keySelector);\r\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\r\n if (ascending) {\r\n for (let i = 0; i < sortedKeys.length; i++) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n else {\r\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n}\r\n", "import { asAsyncSortedKeyValues } from \"./_ordered/asAsyncSortedKeyValues.js\";\r\nimport { asAsyncSortedKeyValuesSync } from \"./_ordered/asAsyncSortedKeyValuesSync.js\";\r\nimport { asSortedKeyValues } from \"./_ordered/asSortedKeyValues.js\";\r\nimport { asSortedKeyValuesSync } from \"./_ordered/asSortedKeyValuesSync.js\";\r\nimport { BasicAsyncEnumerable } from \"./BasicAsyncEnumerable.js\";\r\nexport class OrderedAsyncEnumerable extends BasicAsyncEnumerable {\r\n constructor(orderedPairs) {\r\n super(async function* () {\r\n for await (const orderedPair of orderedPairs()) {\r\n yield* orderedPair;\r\n }\r\n });\r\n this.orderedPairs = orderedPairs;\r\n }\r\n static generateAsync(source, keySelector, ascending, comparer) {\r\n let orderedPairs;\r\n if (source instanceof OrderedAsyncEnumerable) {\r\n orderedPairs = async function* () {\r\n for await (const pair of source.orderedPairs()) {\r\n yield* asAsyncSortedKeyValuesSync(pair, keySelector, ascending, comparer);\r\n }\r\n };\r\n }\r\n else {\r\n orderedPairs = () => asAsyncSortedKeyValues(source, keySelector, ascending, comparer);\r\n }\r\n return new OrderedAsyncEnumerable(orderedPairs);\r\n }\r\n static generate(source, keySelector, ascending, comparer) {\r\n let orderedPairs;\r\n if (source instanceof OrderedAsyncEnumerable) {\r\n orderedPairs = async function* () {\r\n for await (const pair of source.orderedPairs()) {\r\n yield* asSortedKeyValuesSync(pair, keySelector, ascending, comparer);\r\n }\r\n };\r\n }\r\n else {\r\n orderedPairs = () => asSortedKeyValues(source, keySelector, ascending, comparer);\r\n }\r\n return new OrderedAsyncEnumerable(orderedPairs);\r\n }\r\n thenBy(keySelector, comparer) {\r\n return OrderedAsyncEnumerable.generate(this, keySelector, true, comparer);\r\n }\r\n thenByAsync(keySelector, comparer) {\r\n return OrderedAsyncEnumerable.generateAsync(this, keySelector, true, comparer);\r\n }\r\n thenByDescending(keySelector, comparer) {\r\n return OrderedAsyncEnumerable.generate(this, keySelector, false, comparer);\r\n }\r\n thenByDescendingAsync(keySelector, comparer) {\r\n return OrderedAsyncEnumerable.generateAsync(this, keySelector, false, comparer);\r\n }\r\n}\r\n", "export const asKeyMap = (source, keySelector) => {\r\n const map = new Map();\r\n for (const item of source) {\r\n const key = keySelector(item);\r\n const currentMapping = map.get(key);\r\n if (currentMapping) {\r\n currentMapping.push(item);\r\n }\r\n else {\r\n map.set(key, [item]);\r\n }\r\n }\r\n return map;\r\n};\r\n", "import { asKeyMap } from \"./asKeyMap.js\";\r\nexport function* asSortedKeyValues(source, keySelector, ascending, comparer) {\r\n const map = asKeyMap(source, keySelector);\r\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\r\n if (ascending) {\r\n for (let i = 0; i < sortedKeys.length; i++) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n else {\r\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n}\r\n", "export const asKeyMapAsync = async (source, keySelector) => {\r\n const map = new Map();\r\n for (const item of source) {\r\n const key = await keySelector(item);\r\n const currentMapping = map.get(key);\r\n if (currentMapping) {\r\n currentMapping.push(item);\r\n }\r\n else {\r\n map.set(key, [item]);\r\n }\r\n }\r\n return map;\r\n};\r\n", "import { asKeyMapAsync } from \"./asKeyMapAsync.js\";\r\nexport async function* asSortedKeyValuesAsync(source, keySelector, ascending, comparer) {\r\n const map = await asKeyMapAsync(source, keySelector);\r\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\r\n if (ascending) {\r\n for (let i = 0; i < sortedKeys.length; i++) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n else {\r\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n}\r\n", "import { OrderedAsyncEnumerable } from \"../async/OrderedAsyncEnumerable.js\";\r\nimport { asSortedKeyValues } from \"./_ordered/asSortedKeyValues.js\";\r\nimport { asSortedKeyValuesAsync } from \"./_ordered/asSortedKeyValuesAsync.js\";\r\nimport { BasicEnumerable } from \"./BasicEnumerable.js\";\r\nexport class OrderedEnumerable extends BasicEnumerable {\r\n constructor(orderedPairs) {\r\n super(function* () {\r\n for (const orderedPair of orderedPairs()) {\r\n yield* orderedPair;\r\n }\r\n });\r\n this.orderedPairs = orderedPairs;\r\n }\r\n static generate(source, keySelector, ascending, comparer) {\r\n let orderedPairs;\r\n if (source instanceof OrderedEnumerable) {\r\n orderedPairs = function* () {\r\n for (const pair of source.orderedPairs()) {\r\n yield* asSortedKeyValues(pair, keySelector, ascending, comparer);\r\n }\r\n };\r\n }\r\n else {\r\n orderedPairs = () => asSortedKeyValues(source, keySelector, ascending, comparer);\r\n }\r\n return new OrderedEnumerable(orderedPairs);\r\n }\r\n static generateAsync(source, keySelector, ascending, comparer) {\r\n let orderedPairs;\r\n if (source instanceof OrderedEnumerable) {\r\n orderedPairs = async function* () {\r\n for (const pair of source.orderedPairs()) {\r\n yield* asSortedKeyValuesAsync(pair, keySelector, ascending, comparer);\r\n }\r\n };\r\n }\r\n else {\r\n orderedPairs = () => asSortedKeyValuesAsync(source, keySelector, ascending, comparer);\r\n }\r\n return new OrderedAsyncEnumerable(orderedPairs);\r\n }\r\n thenBy(keySelector, comparer) {\r\n return OrderedEnumerable.generate(this, keySelector, true, comparer);\r\n }\r\n thenByAsync(keySelector, comparer) {\r\n return OrderedEnumerable.generateAsync(this, keySelector, true, comparer);\r\n }\r\n thenByDescending(keySelector, comparer) {\r\n return OrderedEnumerable.generate(this, keySelector, false, comparer);\r\n }\r\n thenByDescendingAsync(keySelector, comparer) {\r\n return OrderedEnumerable.generateAsync(this, keySelector, false, comparer);\r\n }\r\n}\r\n", "import { OrderedEnumerable } from \"../OrderedEnumerable.js\";\r\nexport const orderBy = (source, keySelector, comparer) => {\r\n return OrderedEnumerable.generate(source, keySelector, true, comparer);\r\n};\r\n", "import { OrderedEnumerable } from \"../OrderedEnumerable.js\";\r\nexport const orderByAsync = (source, keySelector, comparer) => {\r\n return OrderedEnumerable.generateAsync(source, keySelector, true, comparer);\r\n};\r\n", "import { OrderedEnumerable } from \"../OrderedEnumerable.js\";\r\nexport const orderByDescending = (source, keySelector, comparer) => {\r\n return OrderedEnumerable.generate(source, keySelector, false, comparer);\r\n};\r\n", "import { OrderedEnumerable } from \"../OrderedEnumerable.js\";\r\nexport const orderByDescendingAsync = (source, keySelector, comparer) => {\r\n return OrderedEnumerable.generateAsync(source, keySelector, false, comparer);\r\n};\r\n", "export const partition = (source, predicate) => {\r\n const fail = [];\r\n const pass = [];\r\n for (const value of source) {\r\n if (predicate(value) === true) {\r\n pass.push(value);\r\n }\r\n else {\r\n fail.push(value);\r\n }\r\n }\r\n return [pass, fail];\r\n};\r\n", "export const partitionAsync = async (source, predicate) => {\r\n const fail = [];\r\n const pass = [];\r\n for (const value of source) {\r\n if (await predicate(value) === true) {\r\n pass.push(value);\r\n }\r\n else {\r\n fail.push(value);\r\n }\r\n }\r\n return [pass, fail];\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const reverse = (source) => {\r\n function* iterator() {\r\n const array = [...source];\r\n for (let i = array.length - 1; i >= 0; i--) {\r\n yield array[i];\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const select = (source, selector) => {\r\n if (typeof selector === \"function\") {\r\n const { length } = selector;\r\n if (length === 1) {\r\n return select1(source, selector);\r\n }\r\n else {\r\n return select2(source, selector);\r\n }\r\n }\r\n else {\r\n return select3(source, selector);\r\n }\r\n};\r\nconst select1 = (source, selector) => {\r\n function* iterator() {\r\n for (const value of source) {\r\n yield selector(value);\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\nconst select2 = (source, selector) => {\r\n function* iterator() {\r\n let index = 0;\r\n for (const value of source) {\r\n yield selector(value, index);\r\n index++;\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\nconst select3 = (source, key) => {\r\n function* iterator() {\r\n for (const value of source) {\r\n yield value[key];\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const selectAsync = (source, selector) => {\r\n if (typeof selector === \"function\") {\r\n if (selector.length === 1) {\r\n return selectAsync1(source, selector);\r\n }\r\n else {\r\n return selectAsync2(source, selector);\r\n }\r\n }\r\n else {\r\n return selectAsync3(source, selector);\r\n }\r\n};\r\nconst selectAsync1 = (source, selector) => {\r\n async function* iterator() {\r\n for (const value of source) {\r\n yield selector(value);\r\n }\r\n }\r\n return fromAsync(iterator);\r\n};\r\nconst selectAsync2 = (source, selector) => {\r\n async function* iterator() {\r\n let index = 0;\r\n for (const value of source) {\r\n yield selector(value, index);\r\n index++;\r\n }\r\n }\r\n return fromAsync(iterator);\r\n};\r\nconst selectAsync3 = (source, key) => {\r\n async function* iterator() {\r\n for (const value of source) {\r\n yield value[key];\r\n }\r\n }\r\n return fromAsync(iterator);\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const selectMany = (source, selector) => {\r\n if (typeof selector === \"function\") {\r\n if (selector.length === 1) {\r\n return selectMany1(source, selector);\r\n }\r\n else {\r\n return selectMany2(source, selector);\r\n }\r\n }\r\n else {\r\n return selectMany3(source, selector);\r\n }\r\n};\r\nconst selectMany1 = (source, selector) => {\r\n function* iterator() {\r\n for (const value of source) {\r\n for (const selectorValue of selector(value)) {\r\n yield selectorValue;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\nconst selectMany2 = (source, selector) => {\r\n function* iterator() {\r\n let index = 0;\r\n for (const value of source) {\r\n for (const selectorValue of selector(value, index)) {\r\n yield selectorValue;\r\n }\r\n index++;\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\nconst selectMany3 = (source, selector) => {\r\n function* iterator() {\r\n for (const value of source) {\r\n for (const selectorValue of value[selector]) {\r\n yield selectorValue;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const selectManyAsync = (source, selector) => {\r\n if (selector.length === 1) {\r\n return selectManyAsync1(source, selector);\r\n }\r\n else {\r\n return selectManyAsync2(source, selector);\r\n }\r\n};\r\nconst selectManyAsync1 = (source, selector) => {\r\n async function* generator() {\r\n for (const value of source) {\r\n const innerValues = await selector(value);\r\n for (const innerValue of innerValues) {\r\n yield innerValue;\r\n }\r\n }\r\n }\r\n return fromAsync(generator);\r\n};\r\nconst selectManyAsync2 = (source, selector) => {\r\n async function* generator() {\r\n let index = 0;\r\n for (const value of source) {\r\n const innerValues = await selector(value, index);\r\n for (const innerValue of innerValues) {\r\n yield innerValue;\r\n }\r\n index++;\r\n }\r\n }\r\n return fromAsync(generator);\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nexport const sequenceEquals = (first, second, comparer = StrictEqualityComparer) => {\r\n const firstIterator = first[Symbol.iterator]();\r\n const secondIterator = second[Symbol.iterator]();\r\n let firstResult = firstIterator.next();\r\n let secondResult = secondIterator.next();\r\n while (!firstResult.done && !secondResult.done) {\r\n if (!comparer(firstResult.value, secondResult.value)) {\r\n return false;\r\n }\r\n firstResult = firstIterator.next();\r\n secondResult = secondIterator.next();\r\n }\r\n return firstResult.done === true && secondResult.done === true;\r\n};\r\n", "export const sequenceEqualsAsync = async (first, second, comparer) => {\r\n const firstIterator = first[Symbol.iterator]();\r\n const secondIterator = second[Symbol.iterator]();\r\n let firstResult = firstIterator.next();\r\n let secondResult = secondIterator.next();\r\n while (!firstResult.done && !secondResult.done) {\r\n if (await comparer(firstResult.value, secondResult.value) === false) {\r\n return false;\r\n }\r\n firstResult = firstIterator.next();\r\n secondResult = secondIterator.next();\r\n }\r\n return firstResult.done === true && secondResult.done === true;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const single = (source, predicate) => {\r\n if (predicate) {\r\n return single2(source, predicate);\r\n }\r\n else {\r\n return single1(source);\r\n }\r\n};\r\nconst single1 = (source) => {\r\n let hasValue = false;\r\n let singleValue = null;\r\n for (const value of source) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n if (hasValue === false) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return singleValue;\r\n};\r\nconst single2 = (source, predicate) => {\r\n let hasValue = false;\r\n let singleValue = null;\r\n for (const value of source) {\r\n if (predicate(value)) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n }\r\n if (hasValue === false) {\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n return singleValue;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const singleAsync = async (source, predicate) => {\r\n let hasValue = false;\r\n let singleValue = null;\r\n for (const value of source) {\r\n if (await predicate(value)) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n }\r\n if (hasValue === false) {\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n return singleValue;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const singleOrDefault = (source, predicate) => {\r\n if (predicate) {\r\n return singleOrDefault2(source, predicate);\r\n }\r\n else {\r\n return singleOrDefault1(source);\r\n }\r\n};\r\nconst singleOrDefault1 = (source) => {\r\n let hasValue = false;\r\n let singleValue = null;\r\n for (const value of source) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n return singleValue;\r\n};\r\nconst singleOrDefault2 = (source, predicate) => {\r\n let hasValue = false;\r\n let singleValue = null;\r\n for (const value of source) {\r\n if (predicate(value)) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n }\r\n return singleValue;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const singleOrDefaultAsync = async (source, predicate) => {\r\n let hasValue = false;\r\n let singleValue = null;\r\n for (const value of source) {\r\n if (await predicate(value)) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n }\r\n return singleValue;\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const skip = (source, count) => {\r\n function* iterator() {\r\n let i = 0;\r\n for (const item of source) {\r\n if (i++ >= count) {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const skipWhile = (source, predicate) => {\r\n if (predicate.length === 1) {\r\n return skipWhile1(source, predicate);\r\n }\r\n else {\r\n return skipWhile2(source, predicate);\r\n }\r\n};\r\nconst skipWhile1 = (source, predicate) => {\r\n function* iterator() {\r\n let skip = true;\r\n for (const item of source) {\r\n if (skip === false) {\r\n yield item;\r\n }\r\n else if (predicate(item) === false) {\r\n skip = false;\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\nconst skipWhile2 = (source, predicate) => {\r\n function* iterator() {\r\n let index = 0;\r\n let skip = true;\r\n for (const item of source) {\r\n if (skip === false) {\r\n yield item;\r\n }\r\n else if (predicate(item, index) === false) {\r\n skip = false;\r\n yield item;\r\n }\r\n index++;\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const skipWhileAsync = (source, predicate) => {\r\n if (predicate.length === 1) {\r\n return skipWhileAsync1(source, predicate);\r\n }\r\n else {\r\n return skipWhileAsync2(source, predicate);\r\n }\r\n};\r\nconst skipWhileAsync1 = (source, predicate) => {\r\n async function* iterator() {\r\n let skip = true;\r\n for (const item of source) {\r\n if (skip === false) {\r\n yield item;\r\n }\r\n else if (await predicate(item) === false) {\r\n skip = false;\r\n yield item;\r\n }\r\n }\r\n }\r\n return fromAsync(iterator);\r\n};\r\nconst skipWhileAsync2 = (source, predicate) => {\r\n async function* iterator() {\r\n let index = 0;\r\n let skip = true;\r\n for (const item of source) {\r\n if (skip === false) {\r\n yield item;\r\n }\r\n else if (await predicate(item, index) === false) {\r\n skip = false;\r\n yield item;\r\n }\r\n index++;\r\n }\r\n }\r\n return fromAsync(iterator);\r\n};\r\n", "export const sum = (source, selector) => {\r\n if (selector) {\r\n return sum2(source, selector);\r\n }\r\n else {\r\n return sum1(source);\r\n }\r\n};\r\nconst sum1 = (source) => {\r\n let total = 0;\r\n for (const value of source) {\r\n total += value;\r\n }\r\n return total;\r\n};\r\nconst sum2 = (source, selector) => {\r\n let total = 0;\r\n for (const value of source) {\r\n total += selector(value);\r\n }\r\n return total;\r\n};\r\n", "export const sumAsync = async (source, selector) => {\r\n let sum = 0;\r\n for (const value of source) {\r\n sum += await selector(value);\r\n }\r\n return sum;\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const take = (source, amount) => {\r\n function* iterator() {\r\n let amountLeft = amount > 0 ? amount : 0;\r\n for (const item of source) {\r\n if (amountLeft-- === 0) {\r\n break;\r\n }\r\n else {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const takeWhile = (source, predicate) => {\r\n if (predicate.length === 1) {\r\n return takeWhile1(source, predicate);\r\n }\r\n else {\r\n return takeWhile2(source, predicate);\r\n }\r\n};\r\nconst takeWhile1 = (source, predicate) => {\r\n function* iterator() {\r\n for (const item of source) {\r\n if (predicate(item)) {\r\n yield item;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\nconst takeWhile2 = (source, predicate) => {\r\n function* iterator() {\r\n let index = 0;\r\n for (const item of source) {\r\n if (predicate(item, index++)) {\r\n yield item;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const takeWhileAsync = (source, predicate) => {\r\n if (predicate.length === 1) {\r\n return takeWhileAsync1(source, predicate);\r\n }\r\n else {\r\n return takeWhileAsync2(source, predicate);\r\n }\r\n};\r\nconst takeWhileAsync1 = (source, predicate) => {\r\n async function* iterator() {\r\n for (const item of source) {\r\n if (await predicate(item)) {\r\n yield item;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n return fromAsync(iterator);\r\n};\r\nconst takeWhileAsync2 = (source, predicate) => {\r\n async function* iterator() {\r\n let index = 0;\r\n for (const item of source) {\r\n if (await predicate(item, index++)) {\r\n yield item;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n return fromAsync(iterator);\r\n};\r\n", "export const toArray = (source) => {\r\n return [...source];\r\n};\r\n", "export const toMap = (source, selector) => {\r\n const map = new Map();\r\n for (const value of source) {\r\n const key = selector(value);\r\n const array = map.get(key);\r\n if (array === undefined) {\r\n map.set(key, [value]);\r\n }\r\n else {\r\n array.push(value);\r\n }\r\n }\r\n return map;\r\n};\r\n", "export const toMapAsync = async (source, selector) => {\r\n const map = new Map();\r\n for (const value of source) {\r\n const key = await selector(value);\r\n const array = map.get(key);\r\n if (array === undefined) {\r\n map.set(key, [value]);\r\n }\r\n else {\r\n array.push(value);\r\n }\r\n }\r\n return map;\r\n};\r\n", "export const toObject = (source, selector) => {\r\n const map = {};\r\n for (const value of source) {\r\n map[selector(value)] = value;\r\n }\r\n return map;\r\n};\r\n", "export const toObjectAsync = async (source, selector) => {\r\n const map = {};\r\n for (const value of source) {\r\n map[await selector(value)] = value;\r\n }\r\n return map;\r\n};\r\n", "export const toSet = (source) => {\r\n return new Set(source);\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const union = (first, second, comparer) => {\r\n if (comparer) {\r\n return union2(first, second, comparer);\r\n }\r\n else {\r\n return union1(first, second);\r\n }\r\n};\r\nconst union1 = (first, second) => {\r\n function* iterator() {\r\n const set = new Set();\r\n for (const item of first) {\r\n if (set.has(item) === false) {\r\n yield item;\r\n set.add(item);\r\n }\r\n }\r\n for (const item of second) {\r\n if (set.has(item) === false) {\r\n yield item;\r\n set.add(item);\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\nconst union2 = (first, second, comparer) => {\r\n function* iterator() {\r\n const result = [];\r\n for (const source of [first, second]) {\r\n for (const value of source) {\r\n let exists = false;\r\n for (const resultValue of result) {\r\n if (comparer(value, resultValue) === true) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (exists === false) {\r\n yield value;\r\n result.push(value);\r\n }\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const unionAsync = (first, second, comparer) => {\r\n async function* iterator() {\r\n const result = [];\r\n for (const source of [first, second]) {\r\n for (const value of source) {\r\n let exists = false;\r\n for (const resultValue of result) {\r\n if (await comparer(value, resultValue) === true) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (exists === false) {\r\n yield value;\r\n result.push(value);\r\n }\r\n }\r\n }\r\n }\r\n return fromAsync(iterator);\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const where = (source, predicate) => {\r\n if (predicate.length === 1) {\r\n return where1(source, predicate);\r\n }\r\n else {\r\n return where2(source, predicate);\r\n }\r\n};\r\nconst where1 = (source, predicate) => {\r\n function* iterator() {\r\n for (const item of source) {\r\n if (predicate(item) === true) {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\nconst where2 = (source, predicate) => {\r\n function* iterator() {\r\n let i = 0;\r\n for (const item of source) {\r\n if (predicate(item, i++) === true) {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const whereAsync = (source, predicate) => {\r\n if (predicate.length === 1) {\r\n return whereAsync1(source, predicate);\r\n }\r\n else {\r\n return whereAsync2(source, predicate);\r\n }\r\n};\r\nconst whereAsync1 = (source, predicate) => {\r\n async function* generator() {\r\n for (const item of source) {\r\n if (await predicate(item) === true) {\r\n yield item;\r\n }\r\n }\r\n }\r\n return fromAsync(generator);\r\n};\r\nconst whereAsync2 = (source, predicate) => {\r\n async function* generator() {\r\n let i = 0;\r\n for (const item of source) {\r\n if (await predicate(item, i++) === true) {\r\n yield item;\r\n }\r\n }\r\n }\r\n return fromAsync(generator);\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const zip = (source, second, resultSelector) => {\r\n if (resultSelector) {\r\n return zip2(source, second, resultSelector);\r\n }\r\n else {\r\n return zip1(source, second);\r\n }\r\n};\r\nconst zip1 = (source, second) => {\r\n function* iterator() {\r\n const firstIterator = source[Symbol.iterator]();\r\n const secondIterator = second[Symbol.iterator]();\r\n while (true) {\r\n const a = firstIterator.next();\r\n const b = secondIterator.next();\r\n if (a.done || b.done) {\r\n break;\r\n }\r\n else {\r\n yield [a.value, b.value];\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\nconst zip2 = (source, second, resultSelector) => {\r\n function* iterator() {\r\n const firstIterator = source[Symbol.iterator]();\r\n const secondIterator = second[Symbol.iterator]();\r\n while (true) {\r\n const a = firstIterator.next();\r\n const b = secondIterator.next();\r\n if (a.done || b.done) {\r\n break;\r\n }\r\n else {\r\n yield resultSelector(a.value, b.value);\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const zipAsync = (first, second, resultSelector) => {\r\n async function* generator() {\r\n const firstIterator = first[Symbol.iterator]();\r\n const secondIterator = second[Symbol.iterator]();\r\n while (true) {\r\n const a = firstIterator.next();\r\n const b = secondIterator.next();\r\n if (a.done || b.done) {\r\n break;\r\n }\r\n else {\r\n yield resultSelector(a.value, b.value);\r\n }\r\n }\r\n }\r\n return fromAsync(generator);\r\n};\r\n", "import { aggregate } from \"./../sync/_private/aggregate.js\";\r\nimport { all } from \"./../sync/_private/all.js\";\r\nimport { allAsync } from \"./../sync/_private/allAsync.js\";\r\nimport { any } from \"./../sync/_private/any.js\";\r\nimport { anyAsync } from \"./../sync/_private/anyAsync.js\";\r\nimport { asAsync } from \"./../sync/_private/asAsync.js\";\r\nimport { asParallel } from \"./../sync/_private/asParallel.js\";\r\nimport { average } from \"./../sync/_private/average.js\";\r\nimport { averageAsync } from \"./../sync/_private/averageAsync.js\";\r\nimport { chunk } from \"./../sync/_private/chunk.js\";\r\nimport { concatenate } from \"../sync/_private/concatenate.js\";\r\nimport { contains } from \"./../sync/_private/contains.js\";\r\nimport { containsAsync } from \"./../sync/_private/containsAsync.js\";\r\nimport { count } from \"./../sync/_private/count.js\";\r\nimport { countAsync } from \"./../sync/_private/countAsync.js\";\r\nimport { defaultIfEmpty } from \"../sync/_private/defaultIfEmpty.js\";\r\nimport { distinct } from \"./../sync/_private/distinct.js\";\r\nimport { distinctAsync } from \"./../sync/_private/distinctAsync.js\";\r\nimport { each } from \"./../sync/_private/each.js\";\r\nimport { eachAsync } from \"./../sync/_private/eachAsync.js\";\r\nimport { elementAt } from \"./../sync/_private/elementAt.js\";\r\nimport { elementAtOrDefault } from \"./../sync/_private/elementAtOrDefault.js\";\r\nimport { except } from \"./../sync/_private/except.js\";\r\nimport { exceptAsync } from \"./../sync/_private/exceptAsync.js\";\r\nimport { first } from \"./../sync/_private/first.js\";\r\nimport { firstAsync } from \"./../sync/_private/firstAsync.js\";\r\nimport { firstOrDefault } from \"./../sync/_private/firstOrDefault.js\";\r\nimport { firstOrDefaultAsync } from \"./../sync/_private/firstOrDefaultAsync.js\";\r\nimport { groupBy } from \"./../sync/_private/groupBy.js\";\r\nimport { groupByAsync } from \"./../sync/_private/groupByAsync.js\";\r\nimport { groupByWithSel } from \"./../sync/_private/groupByWithSel.js\";\r\nimport { groupJoin } from \"../sync/_private/groupJoin.js\";\r\nimport { groupJoinAsync } from \"../sync/_private/groupJoinAsync.js\";\r\nimport { intersect } from \"./../sync/_private/intersect.js\";\r\nimport { intersectAsync } from \"./../sync/_private/intersectAsync.js\";\r\nimport { join } from \"./../sync/_private/join.js\";\r\nimport { last } from \"./../sync/_private/last.js\";\r\nimport { lastAsync } from \"./../sync/_private/lastAsync.js\";\r\nimport { lastOrDefault } from \"./../sync/_private/lastOrDefault.js\";\r\nimport { lastOrDefaultAsync } from \"./../sync/_private/lastOrDefaultAsync.js\";\r\nimport { max } from \"./../sync/_private/max.js\";\r\nimport { maxAsync } from \"./../sync/_private/maxAsync.js\";\r\nimport { min } from \"./../sync/_private/min.js\";\r\nimport { minAsync } from \"./../sync/_private/minAsync.js\";\r\nimport { ofType } from \"./../sync/_private/ofType.js\";\r\nimport { orderBy } from \"./../sync/_private/orderBy.js\";\r\nimport { orderByAsync } from \"./../sync/_private/orderByAsync.js\";\r\nimport { orderByDescending } from \"./../sync/_private/orderByDescending.js\";\r\nimport { orderByDescendingAsync } from \"./../sync/_private/orderByDescendingAsync.js\";\r\nimport { partition } from \"./../sync/_private/partition.js\";\r\nimport { partitionAsync } from \"./../sync/_private/partitionAsync.js\";\r\nimport { reverse } from \"./../sync/_private/reverse.js\";\r\nimport { select } from \"./../sync/_private/select.js\";\r\nimport { selectAsync } from \"./../sync/_private/selectAsync.js\";\r\nimport { selectMany } from \"./../sync/_private/selectMany.js\";\r\nimport { selectManyAsync } from \"./../sync/_private/selectManyAsync.js\";\r\nimport { sequenceEquals } from \"./../sync/_private/sequenceEquals.js\";\r\nimport { sequenceEqualsAsync } from \"./../sync/_private/sequenceEqualsAsync.js\";\r\nimport { single } from \"./../sync/_private/single.js\";\r\nimport { singleAsync } from \"./../sync/_private/singleAsync.js\";\r\nimport { singleOrDefault } from \"./../sync/_private/singleOrDefault.js\";\r\nimport { singleOrDefaultAsync } from \"./../sync/_private/singleOrDefaultAsync.js\";\r\nimport { skip } from \"./../sync/_private/skip.js\";\r\nimport { skipWhile } from \"./../sync/_private/skipWhile.js\";\r\nimport { skipWhileAsync } from \"./../sync/_private/skipWhileAsync.js\";\r\nimport { sum } from \"./../sync/_private/sum.js\";\r\nimport { sumAsync } from \"./../sync/_private/sumAsync.js\";\r\nimport { take } from \"./../sync/_private/take.js\";\r\nimport { takeWhile } from \"./../sync/_private/takeWhile.js\";\r\nimport { takeWhileAsync } from \"./../sync/_private/takeWhileAsync.js\";\r\nimport { toArray } from \"./../sync/_private/toArray.js\";\r\nimport { toMap } from \"./../sync/_private/toMap.js\";\r\nimport { toMapAsync } from \"./../sync/_private/toMapAsync.js\";\r\nimport { toObject } from \"./../sync/_private/toObject.js\";\r\nimport { toObjectAsync } from \"./../sync/_private/toObjectAsync.js\";\r\nimport { toSet } from \"./../sync/_private/toSet.js\";\r\nimport { union } from \"./../sync/_private/union.js\";\r\nimport { unionAsync } from \"./../sync/_private/unionAsync.js\";\r\nimport { where } from \"./../sync/_private/where.js\";\r\nimport { whereAsync } from \"./../sync/_private/whereAsync.js\";\r\nimport { zip } from \"./../sync/_private/zip.js\";\r\nimport { zipAsync } from \"./../sync/_private/zipAsync.js\";\r\nexport const bindLinq = (object) => {\r\n const prototype = object.prototype;\r\n const bind = (func, key) => {\r\n const wrapped = function (...params) {\r\n return func(this, ...params);\r\n };\r\n Object.defineProperty(wrapped, \"length\", { value: func.length - 1 });\r\n prototype[key] = wrapped;\r\n };\r\n bind(aggregate, \"aggregate\");\r\n bind(all, \"all\");\r\n bind(allAsync, \"allAsync\");\r\n bind(any, \"any\");\r\n bind(anyAsync, \"anyAsync\");\r\n bind(asAsync, \"asAsync\");\r\n bind(asParallel, \"asParallel\");\r\n bind(average, \"average\");\r\n bind(averageAsync, \"averageAsync\");\r\n bind(chunk, \"chunk\");\r\n bind(concatenate, \"concatenate\");\r\n bind(contains, \"contains\");\r\n bind(containsAsync, \"containsAsync\");\r\n bind(count, \"count\");\r\n bind(countAsync, \"countAsync\");\r\n bind(defaultIfEmpty, \"defaultIfEmpty\");\r\n bind(distinct, \"distinct\");\r\n bind(distinctAsync, \"distinctAsync\");\r\n bind(each, \"each\");\r\n bind(eachAsync, \"eachAsync\");\r\n bind(elementAt, \"elementAt\");\r\n bind(elementAtOrDefault, \"elementAtOrDefault\");\r\n bind(except, \"except\");\r\n bind(exceptAsync, \"exceptAsync\");\r\n bind(first, \"first\");\r\n bind(firstAsync, \"firstAsync\");\r\n bind(firstOrDefault, \"firstOrDefault\");\r\n bind(firstOrDefaultAsync, \"firstOrDefaultAsync\");\r\n bind(groupBy, \"groupBy\");\r\n bind(groupByAsync, \"groupByAsync\");\r\n bind(groupByWithSel, \"groupByWithSel\");\r\n bind(groupJoin, \"groupJoin\");\r\n bind(groupJoinAsync, \"groupJoinAsync\");\r\n bind(intersect, \"intersect\");\r\n bind(intersectAsync, \"intersectAsync\");\r\n bind(join, \"joinByKey\");\r\n bind(last, \"last\");\r\n bind(lastAsync, \"lastAsync\");\r\n bind(lastOrDefault, \"lastOrDefault\");\r\n bind(lastOrDefaultAsync, \"lastOrDefaultAsync\");\r\n bind(max, \"max\");\r\n bind(maxAsync, \"maxAsync\");\r\n bind(min, \"min\");\r\n bind(minAsync, \"minAsync\");\r\n bind(ofType, \"ofType\");\r\n bind(orderBy, \"orderBy\");\r\n bind(orderByAsync, \"orderByAsync\");\r\n bind(orderByDescending, \"orderByDescending\");\r\n bind(orderByDescendingAsync, \"orderByDescendingAsync\");\r\n bind(reverse, \"reverse\");\r\n bind(select, \"select\");\r\n bind(selectAsync, \"selectAsync\");\r\n bind(selectMany, \"selectMany\");\r\n bind(selectManyAsync, \"selectManyAsync\");\r\n bind(sequenceEquals, \"sequenceEquals\");\r\n bind(sequenceEqualsAsync, \"sequenceEqualsAsync\");\r\n bind(single, \"single\");\r\n bind(singleAsync, \"singleAsync\");\r\n bind(singleOrDefault, \"singleOrDefault\");\r\n bind(singleOrDefaultAsync, \"singleOrDefaultAsync\");\r\n bind(skip, \"skip\");\r\n bind(skipWhile, \"skipWhile\");\r\n bind(skipWhileAsync, \"skipWhileAsync\");\r\n bind(sum, \"sum\");\r\n bind(sumAsync, \"sumAsync\");\r\n bind(take, \"take\");\r\n bind(takeWhile, \"takeWhile\");\r\n bind(takeWhileAsync, \"takeWhileAsync\");\r\n bind(toArray, \"toArray\");\r\n bind(toMap, \"toMap\");\r\n bind(toMapAsync, \"toMapAsync\");\r\n bind(toObject, \"toObject\");\r\n bind(toObjectAsync, \"toObjectAsync\");\r\n bind(partition, \"partition\");\r\n bind(partitionAsync, \"partitionAsync\");\r\n bind(toSet, \"toSet\");\r\n bind(union, \"union\");\r\n bind(unionAsync, \"unionAsync\");\r\n bind(where, \"where\");\r\n bind(whereAsync, \"whereAsync\");\r\n bind(zip, \"zip\");\r\n bind(zipAsync, \"zipAsync\");\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const aggregate = (source, seedOrFunc, func, resultSelector) => {\r\n if (resultSelector) {\r\n if (!func) {\r\n throw new ReferenceError(\"TAccumulate function is undefined\");\r\n }\r\n return aggregate3(source, seedOrFunc, func, resultSelector);\r\n }\r\n else if (func) {\r\n return aggregate2(source, seedOrFunc, func);\r\n }\r\n else {\r\n return aggregate1(source, seedOrFunc);\r\n }\r\n};\r\nconst aggregate1 = async (source, func) => {\r\n let aggregateValue;\r\n for await (const value of source) {\r\n if (aggregateValue) {\r\n aggregateValue = func(aggregateValue, value);\r\n }\r\n else {\r\n aggregateValue = value;\r\n }\r\n }\r\n if (aggregateValue === undefined) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return aggregateValue;\r\n};\r\nconst aggregate2 = async (source, seed, func) => {\r\n let aggregateValue = seed;\r\n for await (const value of source) {\r\n aggregateValue = func(aggregateValue, value);\r\n }\r\n return aggregateValue;\r\n};\r\nconst aggregate3 = async (source, seed, func, resultSelector) => {\r\n let aggregateValue = seed;\r\n for await (const value of source) {\r\n aggregateValue = func(aggregateValue, value);\r\n }\r\n return resultSelector(aggregateValue);\r\n};\r\n", "export const all = async (source, predicate) => {\r\n for await (const item of source) {\r\n if (predicate(item) === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n", "export const allAsync = async (source, predicate) => {\r\n for await (const item of source) {\r\n if (await predicate(item) === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n", "export const any = (source, predicate) => {\r\n if (predicate) {\r\n return any2(source, predicate);\r\n }\r\n else {\r\n return any1(source);\r\n }\r\n};\r\nconst any1 = async (source) => {\r\n for await (const _ of source) {\r\n return true;\r\n }\r\n return false;\r\n};\r\nconst any2 = async (source, predicate) => {\r\n for await (const item of source) {\r\n if (predicate(item) === true) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n", "export const anyAsync = async (source, predicate) => {\r\n for await (const item of source) {\r\n if (await predicate(item) === true) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n", "import { fromParallel } from \"../../parallel/static/fromParallel.js\";\r\nexport const asParallel = (source) => {\r\n const generator = async () => {\r\n const data = [];\r\n for await (const value of source) {\r\n data.push(value);\r\n }\r\n return data;\r\n };\r\n return fromParallel(0, generator);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const average = async (source, selector) => {\r\n let value = 0;\r\n let count = 0;\r\n if (selector) {\r\n for await (const item of source) {\r\n value = value + selector(item);\r\n count = count + 1;\r\n }\r\n }\r\n else {\r\n for await (const item of source) {\r\n value = value + item;\r\n count = count + 1;\r\n }\r\n }\r\n if (count === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return value / count;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const averageAsync = async (source, selector) => {\r\n let value = 0;\r\n let count = 0;\r\n for await (const item of source) {\r\n value = value + await selector(item);\r\n count = count + 1;\r\n }\r\n if (count === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return value / count;\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nimport { ArgumentOutOfRangeException } from \"../../shared/index.js\";\r\nexport const chunk = (source, size) => {\r\n if (size < 1) {\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n }\r\n async function* iterator() {\r\n let yieldChunk = [];\r\n for await (const value of source) {\r\n yieldChunk.push(value);\r\n if (yieldChunk.length === size) {\r\n yield yieldChunk;\r\n yieldChunk = [];\r\n }\r\n }\r\n if (yieldChunk.length) {\r\n yield yieldChunk;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const concatenate = (first, second) => {\r\n async function* iterator() {\r\n yield* first;\r\n yield* second;\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nexport const contains = async (source, value, comparer = StrictEqualityComparer) => {\r\n for await (const item of source) {\r\n if (comparer(value, item)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n", "export const containsAsync = async (source, value, comparer) => {\r\n for await (const item of source) {\r\n if (await comparer(value, item)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n", "export const count = (source, predicate) => {\r\n if (predicate) {\r\n return count2(source, predicate);\r\n }\r\n else {\r\n return count1(source);\r\n }\r\n};\r\nconst count1 = async (source) => {\r\n let total = 0;\r\n for await (const _ of source) {\r\n total++;\r\n }\r\n return total;\r\n};\r\nconst count2 = async (source, predicate) => {\r\n let total = 0;\r\n for await (const value of source) {\r\n if (predicate(value) === true) {\r\n total++;\r\n }\r\n }\r\n return total;\r\n};\r\n", "export const countAsync = async (source, predicate) => {\r\n let count = 0;\r\n for await (const value of source) {\r\n if (await predicate(value) === true) {\r\n count++;\r\n }\r\n }\r\n return count;\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const defaultIfEmpty = (source, defaultValue) => {\r\n async function* generator() {\r\n let found = false;\r\n for await (const value of source) {\r\n found = true;\r\n yield value;\r\n }\r\n if (!found) {\r\n yield defaultValue;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(generator);\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const distinct = (source, comparer = StrictEqualityComparer) => {\r\n async function* iterator() {\r\n const distinctElements = [];\r\n for await (const item of source) {\r\n const foundItem = distinctElements.find((x) => comparer(x, item));\r\n if (!foundItem) {\r\n distinctElements.push(item);\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const distinctAsync = (source, comparer) => {\r\n async function* iterator() {\r\n const distinctElements = [];\r\n outerLoop: for await (const item of source) {\r\n for (const distinctElement of distinctElements) {\r\n const found = await comparer(distinctElement, item);\r\n if (found) {\r\n continue outerLoop;\r\n }\r\n }\r\n distinctElements.push(item);\r\n yield item;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const each = (source, action) => {\r\n async function* iterator() {\r\n for await (const value of source) {\r\n action(value);\r\n yield value;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const eachAsync = (source, action) => {\r\n async function* iterator() {\r\n for await (const value of source) {\r\n await action(value);\r\n yield value;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { ArgumentOutOfRangeException } from \"../../shared/index.js\";\r\nexport const elementAt = async (source, index) => {\r\n if (index < 0) {\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n }\r\n let i = 0;\r\n for await (const item of source) {\r\n if (index === i++) {\r\n return item;\r\n }\r\n }\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n};\r\n", "export const elementAtOrDefault = async (source, index) => {\r\n let i = 0;\r\n for await (const item of source) {\r\n if (index === i++) {\r\n return item;\r\n }\r\n }\r\n return null;\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const except = (first, second, comparer = StrictEqualityComparer) => {\r\n async function* iterator() {\r\n const secondArray = [];\r\n for await (const x of second) {\r\n secondArray.push(x);\r\n }\r\n for await (const firstItem of first) {\r\n let exists = false;\r\n for (let j = 0; j < secondArray.length; j++) {\r\n const secondItem = secondArray[j];\r\n if (comparer(firstItem, secondItem) === true) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (exists === false) {\r\n yield firstItem;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const exceptAsync = (first, second, comparer) => {\r\n async function* iterator() {\r\n const secondArray = [];\r\n for await (const x of second) {\r\n secondArray.push(x);\r\n }\r\n for await (const firstItem of first) {\r\n let exists = false;\r\n for (let j = 0; j < secondArray.length; j++) {\r\n const secondItem = secondArray[j];\r\n if (await comparer(firstItem, secondItem) === true) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (exists === false) {\r\n yield firstItem;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const first = (source, predicate) => {\r\n if (predicate) {\r\n return first2(source, predicate);\r\n }\r\n else {\r\n return first1(source);\r\n }\r\n};\r\nconst first1 = async (source) => {\r\n const firstElement = await source[Symbol.asyncIterator]().next();\r\n if (firstElement.done === true) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return firstElement.value;\r\n};\r\nconst first2 = async (source, predicate) => {\r\n for await (const value of source) {\r\n if (predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const firstAsync = async (source, predicate) => {\r\n for await (const value of source) {\r\n if (await predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n};\r\n", "export const firstOrDefault = (source, predicate) => {\r\n if (predicate) {\r\n return firstOrDefault2(source, predicate);\r\n }\r\n else {\r\n return firstOrDefault1(source);\r\n }\r\n};\r\nconst firstOrDefault1 = async (source) => {\r\n const first = await source[Symbol.asyncIterator]().next();\r\n return first.value || null;\r\n};\r\nconst firstOrDefault2 = async (source, predicate) => {\r\n for await (const value of source) {\r\n if (predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n return null;\r\n};\r\n", "export const firstOrDefaultAsync = async (source, predicate) => {\r\n for await (const value of source) {\r\n if (await predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n return null;\r\n};\r\n", "import { Grouping } from \"../../sync/Grouping.js\";\r\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const groupBy = (source, keySelector, comparer) => {\r\n if (comparer) {\r\n return groupBy_0(source, keySelector, comparer);\r\n }\r\n else {\r\n return groupBy_0_Simple(source, keySelector);\r\n }\r\n};\r\nconst groupBy_0 = (source, keySelector, comparer) => {\r\n async function* generate() {\r\n const keyMap = new Array();\r\n for await (const value of source) {\r\n const key = keySelector(value);\r\n let found = false;\r\n for (let i = 0; i < keyMap.length; i++) {\r\n const group = keyMap[i];\r\n if (comparer(group.key, key)) {\r\n group.push(value);\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (found === false) {\r\n keyMap.push(new Grouping(key, value));\r\n }\r\n }\r\n for (const g of keyMap) {\r\n yield g;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(generate);\r\n};\r\nconst groupBy_0_Simple = (source, keySelector) => {\r\n async function* iterator() {\r\n const keyMap = {};\r\n for await (const value of source) {\r\n const key = keySelector(value);\r\n const grouping = keyMap[key];\r\n if (grouping) {\r\n grouping.push(value);\r\n }\r\n else {\r\n keyMap[key] = new Grouping(key, value);\r\n }\r\n }\r\n for (const value in keyMap) {\r\n yield keyMap[value];\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { Grouping } from \"../../sync/Grouping.js\";\r\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const groupByAsync = (source, keySelector, comparer) => {\r\n if (comparer) {\r\n return groupByAsync_0(source, keySelector, comparer);\r\n }\r\n else {\r\n return groupByAsync_0_Simple(source, keySelector);\r\n }\r\n};\r\nconst groupByAsync_0_Simple = (source, keySelector) => {\r\n async function* iterator() {\r\n const keyMap = {};\r\n for await (const value of source) {\r\n const key = await keySelector(value);\r\n const grouping = keyMap[key];\r\n if (grouping) {\r\n grouping.push(value);\r\n }\r\n else {\r\n keyMap[key] = new Grouping(key, value);\r\n }\r\n }\r\n for (const value in keyMap) {\r\n yield keyMap[value];\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst groupByAsync_0 = (source, keySelector, comparer) => {\r\n async function* generate() {\r\n const keyMap = new Array();\r\n for await (const value of source) {\r\n const key = await keySelector(value);\r\n let found = false;\r\n for (let i = 0; i < keyMap.length; i++) {\r\n const group = keyMap[i];\r\n if (await comparer(group.key, key) === true) {\r\n group.push(value);\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (found === false) {\r\n keyMap.push(new Grouping(key, value));\r\n }\r\n }\r\n for (const keyValue of keyMap) {\r\n yield keyValue;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(generate);\r\n};\r\n", "import { Grouping } from \"../../sync/Grouping.js\";\r\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const groupByWithSel = (source, keySelector, elementSelector, comparer) => {\r\n if (comparer) {\r\n return groupBy1(source, keySelector, elementSelector, comparer);\r\n }\r\n else {\r\n return groupBy1Simple(source, keySelector, elementSelector);\r\n }\r\n};\r\nconst groupBy1Simple = (source, keySelector, elementSelector) => {\r\n async function* generate() {\r\n const keyMap = {};\r\n for await (const value of source) {\r\n const key = keySelector(value);\r\n const grouping = keyMap[key];\r\n const element = elementSelector(value);\r\n if (grouping) {\r\n grouping.push(element);\r\n }\r\n else {\r\n keyMap[key] = new Grouping(key, element);\r\n }\r\n }\r\n for (const value in keyMap) {\r\n yield keyMap[value];\r\n }\r\n }\r\n return new BasicAsyncEnumerable(generate);\r\n};\r\nconst groupBy1 = (source, keySelector, elementSelector, comparer) => {\r\n async function* generate() {\r\n const keyMap = new Array();\r\n for await (const value of source) {\r\n const key = keySelector(value);\r\n let found = false;\r\n for (let i = 0; i < keyMap.length; i++) {\r\n const group = keyMap[i];\r\n if (comparer(group.key, key)) {\r\n group.push(elementSelector(value));\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (found === false) {\r\n const element = elementSelector(value);\r\n keyMap.push(new Grouping(key, element));\r\n }\r\n }\r\n for (const value of keyMap) {\r\n yield value;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(generate);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const groupJoin = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => {\r\n const generator = comparer ?\r\n groupJoinWithComparer(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) :\r\n groupJoinSimple(outer, inner, outerKeySelector, innerKeySelector, resultSelector);\r\n return new BasicAsyncEnumerable(generator);\r\n};\r\nconst groupJoinWithComparer = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => {\r\n return async function* () {\r\n var _a;\r\n const innerKeyMap = [];\r\n for await (const innerValue of inner) {\r\n const key = innerKeySelector(innerValue);\r\n const record = innerKeyMap.find(x => comparer(x.key, key));\r\n if (record) {\r\n record.values.push(innerValue);\r\n }\r\n else {\r\n innerKeyMap.push({ key, values: [innerValue] });\r\n }\r\n }\r\n for await (const outerValue of outer) {\r\n const key = outerKeySelector(outerValue);\r\n const innerRecord = (_a = innerKeyMap.find(x => comparer(x.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] };\r\n yield resultSelector(outerValue, innerRecord.values);\r\n }\r\n };\r\n};\r\nconst groupJoinSimple = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => {\r\n return async function* () {\r\n var _a;\r\n const innerKeyMap = new Map();\r\n for await (const innerValue of inner) {\r\n const key = innerKeySelector(innerValue);\r\n const values = innerKeyMap.get(key);\r\n if (values) {\r\n values.push(innerValue);\r\n }\r\n else {\r\n innerKeyMap.set(key, [innerValue]);\r\n }\r\n }\r\n for await (const outerValue of outer) {\r\n const key = outerKeySelector(outerValue);\r\n const values = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : [];\r\n yield resultSelector(outerValue, values);\r\n }\r\n };\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const groupJoinAsync = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => {\r\n const generator = comparer ?\r\n groupJoinWithComparer(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) :\r\n groupJoinSimple(outer, inner, outerKeySelector, innerKeySelector, resultSelector);\r\n return new BasicAsyncEnumerable(generator);\r\n};\r\nconst groupJoinWithComparer = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => {\r\n return async function* () {\r\n var _a;\r\n const innerKeyMap = [];\r\n for await (const innerValue of inner) {\r\n const key = await innerKeySelector(innerValue);\r\n const record = innerKeyMap.find(x => comparer(x.key, key));\r\n if (record) {\r\n record.values.push(innerValue);\r\n }\r\n else {\r\n innerKeyMap.push({ key, values: [innerValue] });\r\n }\r\n }\r\n for await (const outerValue of outer) {\r\n const key = await outerKeySelector(outerValue);\r\n const innerRecord = (_a = innerKeyMap.find(x => comparer(x.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] };\r\n yield resultSelector(outerValue, innerRecord.values);\r\n }\r\n };\r\n};\r\nconst groupJoinSimple = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => {\r\n return async function* () {\r\n var _a;\r\n const innerKeyMap = new Map();\r\n for await (const innerValue of inner) {\r\n const key = await innerKeySelector(innerValue);\r\n const values = innerKeyMap.get(key);\r\n if (values) {\r\n values.push(innerValue);\r\n }\r\n else {\r\n innerKeyMap.set(key, [innerValue]);\r\n }\r\n }\r\n for await (const outerValue of outer) {\r\n const key = await outerKeySelector(outerValue);\r\n const values = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : [];\r\n yield resultSelector(outerValue, values);\r\n }\r\n };\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const intersect = (first, second, comparer = StrictEqualityComparer) => {\r\n async function* iterator() {\r\n const firstResults = await first.distinct(comparer).toArray();\r\n if (firstResults.length === 0) {\r\n return;\r\n }\r\n const secondResults = await second.toArray();\r\n for (let i = 0; i < firstResults.length; i++) {\r\n const firstValue = firstResults[i];\r\n for (let j = 0; j < secondResults.length; j++) {\r\n const secondValue = secondResults[j];\r\n if (comparer(firstValue, secondValue) === true) {\r\n yield firstValue;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const intersectAsync = (first, second, comparer) => {\r\n async function* iterator() {\r\n const firstResults = await first.distinctAsync(comparer).toArray();\r\n if (firstResults.length === 0) {\r\n return;\r\n }\r\n const secondResults = await second.toArray();\r\n for (let i = 0; i < firstResults.length; i++) {\r\n const firstValue = firstResults[i];\r\n for (let j = 0; j < secondResults.length; j++) {\r\n const secondValue = secondResults[j];\r\n if (await comparer(firstValue, secondValue) === true) {\r\n yield firstValue;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const join = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer = StrictEqualityComparer) => {\r\n async function* iterator() {\r\n const innerArray = [];\r\n for await (const i of inner) {\r\n innerArray.push(i);\r\n }\r\n for await (const o of outer) {\r\n const outerKey = outerKeySelector(o);\r\n for (const i of innerArray) {\r\n const innerKey = innerKeySelector(i);\r\n if (comparer(outerKey, innerKey) === true) {\r\n yield resultSelector(o, i);\r\n }\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const last = (source, predicate) => {\r\n if (predicate) {\r\n return last2(source, predicate);\r\n }\r\n else {\r\n return last1(source);\r\n }\r\n};\r\nconst last1 = async (source) => {\r\n let lastItem = null;\r\n for await (const value of source) {\r\n lastItem = value;\r\n }\r\n if (!lastItem) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return lastItem;\r\n};\r\nconst last2 = async (source, predicate) => {\r\n let lastItem = null;\r\n for await (const value of source) {\r\n if (predicate(value) === true) {\r\n lastItem = value;\r\n }\r\n }\r\n if (!lastItem) {\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n return lastItem;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const lastAsync = async (source, predicate) => {\r\n let last = null;\r\n for await (const value of source) {\r\n if (await predicate(value) === true) {\r\n last = value;\r\n }\r\n }\r\n if (!last) {\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n return last;\r\n};\r\n", "export const lastOrDefault = (source, predicate) => {\r\n if (predicate) {\r\n return lastOrDefault2(source, predicate);\r\n }\r\n else {\r\n return lastOrDefault1(source);\r\n }\r\n};\r\nconst lastOrDefault1 = async (source) => {\r\n let last = null;\r\n for await (const value of source) {\r\n last = value;\r\n }\r\n return last;\r\n};\r\nconst lastOrDefault2 = async (source, predicate) => {\r\n let last = null;\r\n for await (const value of source) {\r\n if (predicate(value) === true) {\r\n last = value;\r\n }\r\n }\r\n return last;\r\n};\r\n", "export const lastOrDefaultAsync = async (source, predicate) => {\r\n let last = null;\r\n for await (const value of source) {\r\n if (await predicate(value) === true) {\r\n last = value;\r\n }\r\n }\r\n return last;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const max = (source, selector) => {\r\n if (selector) {\r\n return max2(source, selector);\r\n }\r\n else {\r\n return max1(source);\r\n }\r\n};\r\nconst max1 = async (source) => {\r\n let maxItem = null;\r\n for await (const item of source) {\r\n maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, item);\r\n }\r\n if (maxItem === null) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return maxItem;\r\n }\r\n};\r\nconst max2 = async (source, selector) => {\r\n let maxItem = null;\r\n for await (const item of source) {\r\n maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, selector(item));\r\n }\r\n if (maxItem === null) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return maxItem;\r\n }\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const maxAsync = async (source, selector) => {\r\n let max = null;\r\n for await (const item of source) {\r\n max = Math.max(max || Number.NEGATIVE_INFINITY, await selector(item));\r\n }\r\n if (max === null) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return max;\r\n }\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const min = (source, selector) => {\r\n if (selector) {\r\n return min2(source, selector);\r\n }\r\n else {\r\n return min1(source);\r\n }\r\n};\r\nconst min1 = async (source) => {\r\n let minValue = null;\r\n for await (const item of source) {\r\n minValue = Math.min(minValue || Number.POSITIVE_INFINITY, item);\r\n }\r\n if (minValue === null) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return minValue;\r\n }\r\n};\r\nconst min2 = async (source, selector) => {\r\n let minValue = null;\r\n for await (const item of source) {\r\n minValue = Math.min(minValue || Number.POSITIVE_INFINITY, selector(item));\r\n }\r\n if (minValue === null) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return minValue;\r\n }\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const minAsync = async (source, selector) => {\r\n let min = null;\r\n for await (const item of source) {\r\n min = Math.min(min || Number.POSITIVE_INFINITY, await selector(item));\r\n }\r\n if (min === null) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return min;\r\n }\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const ofType = (source, type) => {\r\n const typeCheck = typeof type === \"string\" ?\r\n ((x) => typeof x === type) :\r\n ((x) => x instanceof type);\r\n async function* iterator() {\r\n for await (const item of source) {\r\n if (typeCheck(item)) {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { OrderedAsyncEnumerable } from \"../OrderedAsyncEnumerable.js\";\r\nexport const orderBy = (source, keySelector, comparer) => {\r\n return OrderedAsyncEnumerable.generate(source, keySelector, true, comparer);\r\n};\r\n", "import { OrderedAsyncEnumerable } from \"../OrderedAsyncEnumerable.js\";\r\nexport const orderByAsync = (source, keySelector, comparer) => {\r\n return OrderedAsyncEnumerable.generateAsync(source, keySelector, true, comparer);\r\n};\r\n", "import { OrderedAsyncEnumerable } from \"../OrderedAsyncEnumerable.js\";\r\nexport const orderByDescending = (source, keySelector, comparer) => {\r\n return OrderedAsyncEnumerable.generate(source, keySelector, false, comparer);\r\n};\r\n", "import { OrderedAsyncEnumerable } from \"../OrderedAsyncEnumerable.js\";\r\nexport const orderByDescendingAsync = (source, keySelector, comparer) => {\r\n return OrderedAsyncEnumerable.generateAsync(source, keySelector, false, comparer);\r\n};\r\n", "export const partition = async (source, predicate) => {\r\n const fail = [];\r\n const pass = [];\r\n for await (const value of source) {\r\n if (predicate(value) === true) {\r\n pass.push(value);\r\n }\r\n else {\r\n fail.push(value);\r\n }\r\n }\r\n return [pass, fail];\r\n};\r\n", "export const partitionAsync = async (source, predicate) => {\r\n const fail = [];\r\n const pass = [];\r\n for await (const value of source) {\r\n if (await predicate(value) === true) {\r\n pass.push(value);\r\n }\r\n else {\r\n fail.push(value);\r\n }\r\n }\r\n return [pass, fail];\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const reverse = (source) => {\r\n async function* iterator() {\r\n const values = [];\r\n for await (const value of source) {\r\n values.push(value);\r\n }\r\n for (let i = values.length - 1; i >= 0; i--) {\r\n yield values[i];\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const select = (source, selector) => {\r\n if (typeof selector === \"function\") {\r\n if (selector.length === 1) {\r\n return select1(source, selector);\r\n }\r\n else {\r\n return select2(source, selector);\r\n }\r\n }\r\n else {\r\n return select3(source, selector);\r\n }\r\n};\r\nconst select1 = (source, selector) => {\r\n async function* iterator() {\r\n for await (const value of source) {\r\n yield selector(value);\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst select2 = (source, selector) => {\r\n async function* iterator() {\r\n let index = 0;\r\n for await (const value of source) {\r\n yield selector(value, index);\r\n index++;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst select3 = (source, key) => {\r\n async function* iterator() {\r\n for await (const value of source) {\r\n yield value[key];\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const selectAsync = (source, selector) => {\r\n if (typeof selector === \"string\") {\r\n return selectAsync2(source, selector);\r\n }\r\n else {\r\n return selectAsync1(source, selector);\r\n }\r\n};\r\nconst selectAsync1 = (source, selector) => {\r\n async function* iterator() {\r\n for await (const value of source) {\r\n yield selector(value);\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst selectAsync2 = (source, key) => {\r\n async function* iterator() {\r\n for await (const value of source) {\r\n yield value[key];\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const selectMany = (source, selector) => {\r\n if (typeof selector === \"function\") {\r\n if (selector.length === 1) {\r\n return selectMany1(source, selector);\r\n }\r\n else {\r\n return selectMany2(source, selector);\r\n }\r\n }\r\n else {\r\n return selectMany3(source, selector);\r\n }\r\n};\r\nconst selectMany1 = (source, selector) => {\r\n async function* iterator() {\r\n for await (const value of source) {\r\n for (const selectorValue of selector(value)) {\r\n yield selectorValue;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst selectMany2 = (source, selector) => {\r\n async function* iterator() {\r\n let index = 0;\r\n for await (const value of source) {\r\n for (const selectorValue of selector(value, index)) {\r\n yield selectorValue;\r\n }\r\n index++;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst selectMany3 = (source, selector) => {\r\n async function* iterator() {\r\n for await (const value of source) {\r\n for (const selectorValue of value[selector]) {\r\n yield selectorValue;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const selectManyAsync = (source, selector) => {\r\n if (selector.length === 1) {\r\n const iterator = async function* () {\r\n for await (const value of source) {\r\n const many = await selector(value);\r\n for (const innerValue of many) {\r\n yield innerValue;\r\n }\r\n }\r\n };\r\n return new BasicAsyncEnumerable(iterator);\r\n }\r\n else {\r\n const iterator = async function* () {\r\n let index = 0;\r\n for await (const value of source) {\r\n const many = await selector(value, index);\r\n for (const innerValue of many) {\r\n yield innerValue;\r\n }\r\n index++;\r\n }\r\n };\r\n return new BasicAsyncEnumerable(iterator);\r\n }\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nexport const sequenceEquals = async (first, second, comparer = StrictEqualityComparer) => {\r\n const firstIterator = first[Symbol.asyncIterator]();\r\n const secondIterator = second[Symbol.asyncIterator]();\r\n let results = await Promise.all([firstIterator.next(), secondIterator.next()]);\r\n let firstResult = results[0];\r\n let secondResult = results[1];\r\n while (!firstResult.done && !secondResult.done) {\r\n if (!comparer(firstResult.value, secondResult.value)) {\r\n return false;\r\n }\r\n results = await Promise.all([firstIterator.next(), secondIterator.next()]);\r\n firstResult = results[0];\r\n secondResult = results[1];\r\n }\r\n return firstResult.done === true && secondResult.done === true;\r\n};\r\n", "export const sequenceEqualsAsync = async (first, second, comparer) => {\r\n const firstIterator = first[Symbol.asyncIterator]();\r\n const secondIterator = second[Symbol.asyncIterator]();\r\n let results = await Promise.all([firstIterator.next(), secondIterator.next()]);\r\n let firstResult = results[0];\r\n let secondResult = results[1];\r\n while (!firstResult.done && !secondResult.done) {\r\n if (await comparer(firstResult.value, secondResult.value) === false) {\r\n return false;\r\n }\r\n results = await Promise.all([firstIterator.next(), secondIterator.next()]);\r\n firstResult = results[0];\r\n secondResult = results[1];\r\n }\r\n return firstResult.done === true && secondResult.done === true;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const single = (source, predicate) => {\r\n if (predicate) {\r\n return single2(source, predicate);\r\n }\r\n else {\r\n return single1(source);\r\n }\r\n};\r\nconst single1 = async (source) => {\r\n let hasValue = false;\r\n let singleValue = null;\r\n for await (const value of source) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n if (hasValue === false) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return singleValue;\r\n};\r\nconst single2 = async (source, predicate) => {\r\n let hasValue = false;\r\n let singleValue = null;\r\n for await (const value of source) {\r\n if (predicate(value)) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n }\r\n if (hasValue === false) {\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n return singleValue;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const singleAsync = async (source, predicate) => {\r\n let hasValue = false;\r\n let singleValue = null;\r\n for await (const value of source) {\r\n if (await predicate(value)) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n }\r\n if (hasValue === false) {\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n return singleValue;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const singleOrDefault = (source, predicate) => {\r\n if (predicate) {\r\n return singleOrDefault2(source, predicate);\r\n }\r\n else {\r\n return singleOrDefault1(source);\r\n }\r\n};\r\nconst singleOrDefault1 = async (source) => {\r\n let hasValue = false;\r\n let singleValue = null;\r\n for await (const value of source) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n return singleValue;\r\n};\r\nconst singleOrDefault2 = async (source, predicate) => {\r\n let hasValue = false;\r\n let singleValue = null;\r\n for await (const value of source) {\r\n if (predicate(value)) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n }\r\n return singleValue;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const singleOrDefaultAsync = async (source, predicate) => {\r\n let hasValue = false;\r\n let singleValue = null;\r\n for await (const value of source) {\r\n if (await predicate(value)) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n }\r\n return singleValue;\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const skip = (source, count) => {\r\n async function* iterator() {\r\n let i = 0;\r\n for await (const item of source) {\r\n if (i++ >= count) {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const skipWhile = (source, predicate) => {\r\n if (predicate.length === 1) {\r\n return skipWhile1(source, predicate);\r\n }\r\n else {\r\n return skipWhile2(source, predicate);\r\n }\r\n};\r\nconst skipWhile1 = (source, predicate) => {\r\n async function* iterator() {\r\n let skip = true;\r\n for await (const item of source) {\r\n if (skip === false) {\r\n yield item;\r\n }\r\n else if (predicate(item) === false) {\r\n skip = false;\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst skipWhile2 = (source, predicate) => {\r\n async function* iterator() {\r\n let index = 0;\r\n let skip = true;\r\n for await (const item of source) {\r\n if (skip === false) {\r\n yield item;\r\n }\r\n else if (predicate(item, index) === false) {\r\n skip = false;\r\n yield item;\r\n }\r\n index++;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const skipWhileAsync = (source, predicate) => {\r\n if (predicate.length === 1) {\r\n return skipWhileAsync1(source, predicate);\r\n }\r\n else {\r\n return skipWhileAsync2(source, predicate);\r\n }\r\n};\r\nconst skipWhileAsync1 = (source, predicate) => {\r\n async function* iterator() {\r\n let skip = true;\r\n for await (const item of source) {\r\n if (skip === false) {\r\n yield item;\r\n }\r\n else if (await predicate(item) === false) {\r\n skip = false;\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst skipWhileAsync2 = (source, predicate) => {\r\n async function* iterator() {\r\n let index = 0;\r\n let skip = true;\r\n for await (const item of source) {\r\n if (skip === false) {\r\n yield item;\r\n }\r\n else if (await predicate(item, index) === false) {\r\n skip = false;\r\n yield item;\r\n }\r\n index++;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "export const sum = (source, selector) => {\r\n if (selector) {\r\n return sum2(source, selector);\r\n }\r\n else {\r\n return sum1(source);\r\n }\r\n};\r\nconst sum1 = async (source) => {\r\n let total = 0;\r\n for await (const value of source) {\r\n total += value;\r\n }\r\n return total;\r\n};\r\nconst sum2 = async (source, selector) => {\r\n let total = 0;\r\n for await (const value of source) {\r\n total += selector(value);\r\n }\r\n return total;\r\n};\r\n", "export const sumAsync = async (source, selector) => {\r\n let sum = 0;\r\n for await (const value of source) {\r\n sum += await selector(value);\r\n }\r\n return sum;\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const take = (source, amount) => {\r\n async function* iterator() {\r\n let amountLeft = amount > 0 ? amount : 0;\r\n for await (const item of source) {\r\n if (amountLeft-- === 0) {\r\n break;\r\n }\r\n else {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const takeWhile = (source, predicate) => {\r\n if (predicate.length === 1) {\r\n return takeWhile1(source, predicate);\r\n }\r\n else {\r\n return takeWhile2(source, predicate);\r\n }\r\n};\r\nconst takeWhile1 = (source, predicate) => {\r\n async function* iterator() {\r\n for await (const item of source) {\r\n if (predicate(item)) {\r\n yield item;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst takeWhile2 = (source, predicate) => {\r\n async function* iterator() {\r\n let index = 0;\r\n for await (const item of source) {\r\n if (predicate(item, index++)) {\r\n yield item;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const takeWhileAsync = (source, predicate) => {\r\n if (predicate.length === 1) {\r\n return takeWhileAsync1(source, predicate);\r\n }\r\n else {\r\n return takeWhileAsync2(source, predicate);\r\n }\r\n};\r\nconst takeWhileAsync1 = (source, predicate) => {\r\n async function* iterator() {\r\n for await (const item of source) {\r\n if (await predicate(item)) {\r\n yield item;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst takeWhileAsync2 = (source, predicate) => {\r\n async function* iterator() {\r\n let index = 0;\r\n for await (const item of source) {\r\n if (await predicate(item, index++)) {\r\n yield item;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "export const toArray = async (source) => {\r\n const array = [];\r\n for await (const item of source) {\r\n array.push(item);\r\n }\r\n return array;\r\n};\r\n", "export const toMap = async (source, selector) => {\r\n const map = new Map();\r\n for await (const value of source) {\r\n const key = selector(value);\r\n const array = map.get(key);\r\n if (array === undefined) {\r\n map.set(key, [value]);\r\n }\r\n else {\r\n array.push(value);\r\n }\r\n }\r\n return map;\r\n};\r\n", "export const toMapAsync = async (source, selector) => {\r\n const map = new Map();\r\n for await (const value of source) {\r\n const key = await selector(value);\r\n const array = map.get(key);\r\n if (array === undefined) {\r\n map.set(key, [value]);\r\n }\r\n else {\r\n array.push(value);\r\n }\r\n }\r\n return map;\r\n};\r\n", "export const toObject = async (source, selector) => {\r\n const map = {};\r\n for await (const value of source) {\r\n map[selector(value)] = value;\r\n }\r\n return map;\r\n};\r\n", "export const toObjectAsync = async (source, selector) => {\r\n const map = {};\r\n for await (const value of source) {\r\n map[await selector(value)] = value;\r\n }\r\n return map;\r\n};\r\n", "export const toSet = async (source) => {\r\n const set = new Set();\r\n for await (const item of source) {\r\n set.add(item);\r\n }\r\n return set;\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const union = (first, second, comparer) => {\r\n if (comparer) {\r\n return union2(first, second, comparer);\r\n }\r\n else {\r\n return union1(first, second);\r\n }\r\n};\r\nconst union1 = (first, second) => {\r\n async function* iterator() {\r\n const set = new Set();\r\n for await (const item of first) {\r\n if (set.has(item) === false) {\r\n yield item;\r\n set.add(item);\r\n }\r\n }\r\n for await (const item of second) {\r\n if (set.has(item) === false) {\r\n yield item;\r\n set.add(item);\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst union2 = (first, second, comparer) => {\r\n async function* iterator() {\r\n const result = [];\r\n for (const source of [first, second]) {\r\n for await (const value of source) {\r\n let exists = false;\r\n for (const resultValue of result) {\r\n if (comparer(value, resultValue) === true) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (exists === false) {\r\n yield value;\r\n result.push(value);\r\n }\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const unionAsync = (first, second, comparer) => {\r\n async function* iterator() {\r\n const result = [];\r\n for (const source of [first, second]) {\r\n for await (const value of source) {\r\n let exists = false;\r\n for (const resultValue of result) {\r\n if (await comparer(value, resultValue) === true) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (exists === false) {\r\n yield value;\r\n result.push(value);\r\n }\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const where = (source, predicate) => {\r\n if (predicate.length === 1) {\r\n return where1(source, predicate);\r\n }\r\n else {\r\n return where2(source, predicate);\r\n }\r\n};\r\nconst where1 = (source, predicate) => {\r\n async function* iterator() {\r\n for await (const item of source) {\r\n if (predicate(item) === true) {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst where2 = (source, predicate) => {\r\n async function* iterator() {\r\n let i = 0;\r\n for await (const item of source) {\r\n if (predicate(item, i++) === true) {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const whereAsync = (source, predicate) => {\r\n if (predicate.length === 1) {\r\n return whereAsync1(source, predicate);\r\n }\r\n else {\r\n return whereAsync2(source, predicate);\r\n }\r\n};\r\nconst whereAsync1 = (source, predicate) => {\r\n async function* iterator() {\r\n for await (const item of source) {\r\n if (await predicate(item) === true) {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst whereAsync2 = (source, predicate) => {\r\n async function* iterator() {\r\n let i = 0;\r\n for await (const item of source) {\r\n if (await predicate(item, i++) === true) {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const zip = (first, second, resultSelector) => {\r\n if (resultSelector) {\r\n return zip2(first, second, resultSelector);\r\n }\r\n else {\r\n return zip1(first, second);\r\n }\r\n};\r\nconst zip1 = (source, second) => {\r\n async function* iterator() {\r\n const firstIterator = source[Symbol.asyncIterator]();\r\n const secondIterator = second[Symbol.asyncIterator]();\r\n while (true) {\r\n const [a, b] = await Promise.all([firstIterator.next(), secondIterator.next()]);\r\n if (a.done || b.done) {\r\n break;\r\n }\r\n else {\r\n yield [a.value, b.value];\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst zip2 = (source, second, resultSelector) => {\r\n async function* iterator() {\r\n const firstIterator = source[Symbol.asyncIterator]();\r\n const secondIterator = second[Symbol.asyncIterator]();\r\n while (true) {\r\n const [a, b] = await Promise.all([firstIterator.next(), secondIterator.next()]);\r\n if (a.done || b.done) {\r\n break;\r\n }\r\n else {\r\n yield resultSelector(a.value, b.value);\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const zipAsync = (first, second, resultSelector) => {\r\n async function* generator() {\r\n const firstIterator = first[Symbol.asyncIterator]();\r\n const secondIterator = second[Symbol.asyncIterator]();\r\n while (true) {\r\n const results = await Promise.all([firstIterator.next(), secondIterator.next()]);\r\n const firstNext = results[0];\r\n const secondNext = results[1];\r\n if (firstNext.done || secondNext.done) {\r\n break;\r\n }\r\n else {\r\n yield resultSelector(firstNext.value, secondNext.value);\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(generator);\r\n};\r\n", "import { aggregate } from \"./../async/_private/aggregate.js\";\r\nimport { all } from \"./../async/_private/all.js\";\r\nimport { allAsync } from \"./../async/_private/allAsync.js\";\r\nimport { any } from \"./../async/_private/any.js\";\r\nimport { anyAsync } from \"./../async/_private/anyAsync.js\";\r\nimport { asParallel } from \"./../async/_private/asParallel.js\";\r\nimport { average } from \"./../async/_private/average.js\";\r\nimport { averageAsync } from \"./../async/_private/averageAsync.js\";\r\nimport { chunk } from \"./../async/_private/chunk.js\";\r\nimport { concatenate } from \"../async/_private/concatenate.js\";\r\nimport { contains } from \"./../async/_private/contains.js\";\r\nimport { containsAsync } from \"./../async/_private/containsAsync.js\";\r\nimport { count } from \"./../async/_private/count.js\";\r\nimport { countAsync } from \"./../async/_private/countAsync.js\";\r\nimport { defaultIfEmpty } from \"../async/_private/defaultIfEmpty.js\";\r\nimport { distinct } from \"./../async/_private/distinct.js\";\r\nimport { distinctAsync } from \"./../async/_private/distinctAsync.js\";\r\nimport { each } from \"./../async/_private/each.js\";\r\nimport { eachAsync } from \"./../async/_private/eachAsync.js\";\r\nimport { elementAt } from \"./../async/_private/elementAt.js\";\r\nimport { elementAtOrDefault } from \"./../async/_private/elementAtOrDefault.js\";\r\nimport { except } from \"./../async/_private/except.js\";\r\nimport { exceptAsync } from \"./../async/_private/exceptAsync.js\";\r\nimport { first } from \"./../async/_private/first.js\";\r\nimport { firstAsync } from \"./../async/_private/firstAsync.js\";\r\nimport { firstOrDefault } from \"./../async/_private/firstOrDefault.js\";\r\nimport { firstOrDefaultAsync } from \"./../async/_private/firstOrDefaultAsync.js\";\r\nimport { groupBy } from \"./../async/_private/groupBy.js\";\r\nimport { groupByAsync } from \"./../async/_private/groupByAsync.js\";\r\nimport { groupByWithSel } from \"./../async/_private/groupByWithSel.js\";\r\nimport { groupJoin } from \"./../async/_private/groupJoin.js\";\r\nimport { groupJoinAsync } from \"./../async/_private/groupJoinAsync.js\";\r\nimport { intersect } from \"./../async/_private/intersect.js\";\r\nimport { intersectAsync } from \"./../async/_private/intersectAsync.js\";\r\nimport { join } from \"./../async/_private/join.js\";\r\nimport { last } from \"./../async/_private/last.js\";\r\nimport { lastAsync } from \"./../async/_private/lastAsync.js\";\r\nimport { lastOrDefault } from \"./../async/_private/lastOrDefault.js\";\r\nimport { lastOrDefaultAsync } from \"./../async/_private/lastOrDefaultAsync.js\";\r\nimport { max } from \"./../async/_private/max.js\";\r\nimport { maxAsync } from \"./../async/_private/maxAsync.js\";\r\nimport { min } from \"./../async/_private/min.js\";\r\nimport { minAsync } from \"./../async/_private/minAsync.js\";\r\nimport { ofType } from \"./../async/_private/ofType.js\";\r\nimport { orderBy } from \"./../async/_private/orderBy.js\";\r\nimport { orderByAsync } from \"./../async/_private/orderByAsync.js\";\r\nimport { orderByDescending } from \"./../async/_private/orderByDescending.js\";\r\nimport { orderByDescendingAsync } from \"./../async/_private/orderByDescendingAsync.js\";\r\nimport { partition } from \"./../async/_private/partition.js\";\r\nimport { partitionAsync } from \"./../async/_private/partitionAsync.js\";\r\nimport { reverse } from \"./../async/_private/reverse.js\";\r\nimport { select } from \"./../async/_private/select.js\";\r\nimport { selectAsync } from \"./../async/_private/selectAsync.js\";\r\nimport { selectMany } from \"./../async/_private/selectMany.js\";\r\nimport { selectManyAsync } from \"./../async/_private/selectManyAsync.js\";\r\nimport { sequenceEquals } from \"./../async/_private/sequenceEquals.js\";\r\nimport { sequenceEqualsAsync } from \"./../async/_private/sequenceEqualsAsync.js\";\r\nimport { single } from \"./../async/_private/single.js\";\r\nimport { singleAsync } from \"./../async/_private/singleAsync.js\";\r\nimport { singleOrDefault } from \"./../async/_private/singleOrDefault.js\";\r\nimport { singleOrDefaultAsync } from \"./../async/_private/singleOrDefaultAsync.js\";\r\nimport { skip } from \"./../async/_private/skip.js\";\r\nimport { skipWhile } from \"./../async/_private/skipWhile.js\";\r\nimport { skipWhileAsync } from \"./../async/_private/skipWhileAsync.js\";\r\nimport { sum } from \"./../async/_private/sum.js\";\r\nimport { sumAsync } from \"./../async/_private/sumAsync.js\";\r\nimport { take } from \"./../async/_private/take.js\";\r\nimport { takeWhile } from \"./../async/_private/takeWhile.js\";\r\nimport { takeWhileAsync } from \"./../async/_private/takeWhileAsync.js\";\r\nimport { toArray } from \"./../async/_private/toArray.js\";\r\nimport { toMap } from \"./../async/_private/toMap.js\";\r\nimport { toMapAsync } from \"./../async/_private/toMapAsync.js\";\r\nimport { toObject } from \"./../async/_private/toObject.js\";\r\nimport { toObjectAsync } from \"./../async/_private/toObjectAsync.js\";\r\nimport { toSet } from \"./../async/_private/toSet.js\";\r\nimport { union } from \"./../async/_private/union.js\";\r\nimport { unionAsync } from \"./../async/_private/unionAsync.js\";\r\nimport { where } from \"./../async/_private/where.js\";\r\nimport { whereAsync } from \"./../async/_private/whereAsync.js\";\r\nimport { zip } from \"./../async/_private/zip.js\";\r\nimport { zipAsync } from \"./../async/_private/zipAsync.js\";\r\nexport const bindLinqAsync = (object) => {\r\n const prototype = object.prototype;\r\n const bind = (func, key) => {\r\n const wrapped = function (...params) {\r\n return func(this, ...params);\r\n };\r\n Object.defineProperty(wrapped, \"length\", { value: func.length - 1 });\r\n prototype[key] = wrapped;\r\n };\r\n bind(aggregate, \"aggregate\");\r\n bind(all, \"all\");\r\n bind(allAsync, \"allAsync\");\r\n bind(any, \"any\");\r\n bind(anyAsync, \"anyAsync\");\r\n bind(asParallel, \"asParallel\");\r\n bind(average, \"average\");\r\n bind(averageAsync, \"averageAsync\");\r\n bind(chunk, \"chunk\");\r\n bind(concatenate, \"concatenate\");\r\n bind(contains, \"contains\");\r\n bind(containsAsync, \"containsAsync\");\r\n bind(count, \"count\");\r\n bind(countAsync, \"countAsync\");\r\n bind(defaultIfEmpty, \"defaultIfEmpty\");\r\n bind(distinct, \"distinct\");\r\n bind(distinctAsync, \"distinctAsync\");\r\n bind(each, \"each\");\r\n bind(eachAsync, \"eachAsync\");\r\n bind(elementAt, \"elementAt\");\r\n bind(elementAtOrDefault, \"elementAtOrDefault\");\r\n bind(except, \"except\");\r\n bind(exceptAsync, \"exceptAsync\");\r\n bind(first, \"first\");\r\n bind(firstAsync, \"firstAsync\");\r\n bind(firstOrDefault, \"firstOrDefault\");\r\n bind(firstOrDefaultAsync, \"firstOrDefaultAsync\");\r\n bind(groupBy, \"groupBy\");\r\n bind(groupByAsync, \"groupByAsync\");\r\n bind(groupByWithSel, \"groupByWithSel\");\r\n bind(groupJoin, \"groupJoin\");\r\n bind(groupJoinAsync, \"groupJoinAsync\");\r\n bind(intersect, \"intersect\");\r\n bind(intersectAsync, \"intersectAsync\");\r\n bind(join, \"joinByKey\");\r\n bind(last, \"last\");\r\n bind(lastAsync, \"lastAsync\");\r\n bind(lastOrDefault, \"lastOrDefault\");\r\n bind(lastOrDefaultAsync, \"lastOrDefaultAsync\");\r\n bind(max, \"max\");\r\n bind(maxAsync, \"maxAsync\");\r\n bind(min, \"min\");\r\n bind(minAsync, \"minAsync\");\r\n bind(ofType, \"ofType\");\r\n bind(orderBy, \"orderBy\");\r\n bind(orderByAsync, \"orderByAsync\");\r\n bind(orderByDescending, \"orderByDescending\");\r\n bind(orderByDescendingAsync, \"orderByDescendingAsync\");\r\n bind(partition, \"partition\");\r\n bind(partitionAsync, \"partitionAsync\");\r\n bind(reverse, \"reverse\");\r\n bind(select, \"select\");\r\n bind(selectAsync, \"selectAsync\");\r\n bind(selectMany, \"selectMany\");\r\n bind(selectManyAsync, \"selectManyAsync\");\r\n bind(sequenceEquals, \"sequenceEquals\");\r\n bind(sequenceEqualsAsync, \"sequenceEqualsAsync\");\r\n bind(single, \"single\");\r\n bind(singleAsync, \"singleAsync\");\r\n bind(singleOrDefault, \"singleOrDefault\");\r\n bind(singleOrDefaultAsync, \"singleOrDefaultAsync\");\r\n bind(skip, \"skip\");\r\n bind(skipWhile, \"skipWhile\");\r\n bind(skipWhileAsync, \"skipWhileAsync\");\r\n bind(sum, \"sum\");\r\n bind(sumAsync, \"sumAsync\");\r\n bind(take, \"take\");\r\n bind(takeWhile, \"takeWhile\");\r\n bind(takeWhileAsync, \"takeWhileAsync\");\r\n bind(toArray, \"toArray\");\r\n bind(toMap, \"toMap\");\r\n bind(toMapAsync, \"toMapAsync\");\r\n bind(toObject, \"toObject\");\r\n bind(toObjectAsync, \"toObjectAsync\");\r\n bind(toSet, \"toSet\");\r\n bind(union, \"union\");\r\n bind(unionAsync, \"unionAsync\");\r\n bind(where, \"where\");\r\n bind(whereAsync, \"whereAsync\");\r\n bind(zip, \"zip\");\r\n bind(zipAsync, \"zipAsync\");\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const aggregate = (source, seedOrFunc, func, resultSelector) => {\r\n if (resultSelector) {\r\n if (!func) {\r\n throw new ReferenceError(\"TAccumulate function is undefined\");\r\n }\r\n return aggregate3(source, seedOrFunc, func, resultSelector);\r\n }\r\n else if (func) {\r\n return aggregate2(source, seedOrFunc, func);\r\n }\r\n else {\r\n return aggregate1(source, seedOrFunc);\r\n }\r\n};\r\nconst aggregate1 = async (source, func) => {\r\n let aggregateValue;\r\n for await (const value of source) {\r\n if (aggregateValue) {\r\n aggregateValue = func(aggregateValue, value);\r\n }\r\n else {\r\n aggregateValue = value;\r\n }\r\n }\r\n if (aggregateValue === undefined) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return aggregateValue;\r\n};\r\nconst aggregate2 = async (source, seed, func) => {\r\n let aggregateValue = seed;\r\n for await (const value of source) {\r\n aggregateValue = func(aggregateValue, value);\r\n }\r\n return aggregateValue;\r\n};\r\nconst aggregate3 = async (source, seed, func, resultSelector) => {\r\n let aggregateValue = seed;\r\n for await (const value of source) {\r\n aggregateValue = func(aggregateValue, value);\r\n }\r\n return resultSelector(aggregateValue);\r\n};\r\n", "export const nextIteration = (source, onfulfilled) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const generator = () => dataFunc.generator().then((x) => {\r\n const convValues = new Array(x.length);\r\n for (let i = 0; i < x.length; i++) {\r\n convValues[i] = onfulfilled(x[i]);\r\n }\r\n return convValues;\r\n });\r\n return {\r\n generator,\r\n type: 0,\r\n };\r\n }\r\n case 1: {\r\n const generator = () => {\r\n const previousData = dataFunc.generator();\r\n const newPromises = new Array(previousData.length);\r\n for (let i = 0; i < previousData.length; i++) {\r\n newPromises[i] = previousData[i].then(onfulfilled);\r\n }\r\n return newPromises;\r\n };\r\n return {\r\n generator,\r\n type: 1,\r\n };\r\n }\r\n case 2: {\r\n const generator = async () => {\r\n const previousData = await dataFunc.generator();\r\n const newPromises = new Array(previousData.length);\r\n for (let i = 0; i < previousData.length; i++) {\r\n newPromises[i] = previousData[i].then(onfulfilled);\r\n }\r\n return newPromises;\r\n };\r\n return {\r\n generator,\r\n type: 2,\r\n };\r\n }\r\n }\r\n};\r\n", "import { nextIteration } from \"./_nextIteration.js\";\r\nexport const all = (source, predicate) => {\r\n const nextIter = nextIteration(source, (x) => {\r\n if (!predicate(x)) {\r\n throw new Error(String(false));\r\n }\r\n return true;\r\n });\r\n switch (nextIter.type) {\r\n case 0:\r\n return nextIter.generator()\r\n .then(() => true, () => false);\r\n case 1:\r\n return Promise.all(nextIter.generator())\r\n .then(() => true, () => false);\r\n case 2:\r\n return nextIter.generator()\r\n .then(Promise.all.bind(Promise))\r\n .then(() => true, () => false);\r\n }\r\n};\r\n", "export const nextIterationAsync = (source, onfulfilled) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const generator = async () => {\r\n const results = await dataFunc.generator();\r\n const newPromises = new Array(results.length);\r\n for (let i = 0; i < results.length; i++) {\r\n newPromises[i] = onfulfilled(results[i]);\r\n }\r\n return newPromises;\r\n };\r\n return {\r\n generator,\r\n type: 2,\r\n };\r\n }\r\n case 1: {\r\n const generator = () => {\r\n const promises = dataFunc.generator();\r\n return promises.map(async (promise) => {\r\n const value = await promise;\r\n return await onfulfilled(value);\r\n });\r\n };\r\n return {\r\n generator,\r\n type: 1,\r\n };\r\n }\r\n case 2: {\r\n const generator = async () => {\r\n const promises = await dataFunc.generator();\r\n return promises.map((promise) => promise.then(onfulfilled));\r\n };\r\n return {\r\n generator,\r\n type: 2,\r\n };\r\n }\r\n }\r\n};\r\n", "import { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nexport const allAsync = (source, predicate) => {\r\n const nextIter = nextIterationAsync(source, async (x) => {\r\n if (await predicate(x) === false) {\r\n throw new Error(String(false));\r\n }\r\n return true;\r\n });\r\n switch (nextIter.type) {\r\n case 1:\r\n return Promise.all(nextIter.generator())\r\n .then(() => true, () => false);\r\n case 2:\r\n return nextIter.generator()\r\n .then(Promise.all.bind(Promise))\r\n .then(() => true, () => false);\r\n }\r\n};\r\n", "import { nextIteration } from \"./_nextIteration.js\";\r\nexport const any = (source, predicate) => {\r\n if (predicate) {\r\n return any2(source, predicate);\r\n }\r\n else {\r\n return any1(source);\r\n }\r\n};\r\nconst any1 = async (source) => {\r\n const dataFunc = source.dataFunc;\r\n let values;\r\n switch (dataFunc.type) {\r\n case 1:\r\n values = dataFunc.generator();\r\n return values.length !== 0;\r\n case 0:\r\n case 2:\r\n values = await dataFunc.generator();\r\n return values.length !== 0;\r\n }\r\n};\r\nconst any2 = async (source, predicate) => {\r\n const dataFunc = nextIteration(source, predicate);\r\n let values;\r\n switch (dataFunc.type) {\r\n case 0:\r\n values = await dataFunc.generator();\r\n return values.includes(true);\r\n case 1:\r\n values = await Promise.all(dataFunc.generator());\r\n return values.includes(true);\r\n case 2:\r\n values = await Promise.all(await dataFunc.generator());\r\n return values.includes(true);\r\n }\r\n};\r\n", "import { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nexport const anyAsync = async (source, predicate) => {\r\n const nextIter = nextIterationAsync(source, predicate);\r\n let promises;\r\n switch (nextIter.type) {\r\n case 1:\r\n promises = nextIter.generator();\r\n if (promises.length === 0) {\r\n return false;\r\n }\r\n return new Promise((resolve, reject) => {\r\n let resolvedCount = 0;\r\n for (const promise of promises) {\r\n promise.then(value => {\r\n resolvedCount++;\r\n if (value) {\r\n resolve(true);\r\n }\r\n else if (resolvedCount === promises.length) {\r\n resolve(false);\r\n }\r\n }, reject);\r\n }\r\n });\r\n case 2:\r\n promises = await nextIter.generator();\r\n if (Promise.length === 0) {\r\n return false;\r\n }\r\n const values = await Promise.all(promises);\r\n return values.includes(true);\r\n }\r\n};\r\n", "import { fromAsync } from \"../../async/static/fromAsync.js\";\r\nexport const asAsync = (source) => {\r\n async function* generator() {\r\n for await (const value of source) {\r\n yield value;\r\n }\r\n }\r\n return fromAsync(generator);\r\n};\r\n", "export const typeDataToArray = async (dataFunc) => {\r\n switch (dataFunc.type) {\r\n case 0:\r\n return await dataFunc.generator();\r\n case 1:\r\n return await Promise.all(dataFunc.generator());\r\n case 2:\r\n const data = await dataFunc.generator();\r\n return await Promise.all(data);\r\n }\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { nextIteration } from \"./_nextIteration.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const average = async (source, selector) => {\r\n let data;\r\n if (selector) {\r\n data = nextIteration(source, selector);\r\n }\r\n else {\r\n data = source.dataFunc;\r\n }\r\n const values = await typeDataToArray(data);\r\n if (values.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n let sum = 0;\r\n for (const item of values) {\r\n sum += item;\r\n }\r\n return sum / values.length;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const averageAsync = async (source, selector) => {\r\n const nextIter = nextIterationAsync(source, selector);\r\n const values = await typeDataToArray(nextIter);\r\n if (values.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n let value = 0;\r\n for (const selectedValue of values) {\r\n value += selectedValue;\r\n }\r\n return value / values.length;\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nimport { ArgumentOutOfRangeException } from \"../../shared/index.js\";\r\nexport const chunk = (source, size) => {\r\n if (size < 1) {\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n }\r\n let dataFunc;\r\n switch (source.dataFunc.type) {\r\n case 1:\r\n const arrayOfPromises = source.dataFunc.generator;\r\n dataFunc = {\r\n type: 1,\r\n generator: () => {\r\n const chunks = [];\r\n let yieldChunk = [];\r\n for (const promise of arrayOfPromises()) {\r\n yieldChunk.push(promise);\r\n if (yieldChunk.length === size) {\r\n chunks.push(Promise.all(yieldChunk));\r\n yieldChunk = [];\r\n }\r\n }\r\n if (yieldChunk.length) {\r\n chunks.push(Promise.all(yieldChunk));\r\n }\r\n return chunks;\r\n }\r\n };\r\n break;\r\n case 2:\r\n const promiseOfPromises = source.dataFunc.generator;\r\n dataFunc = {\r\n type: 2,\r\n generator: async () => {\r\n const chunks = [];\r\n let yieldChunk = [];\r\n for (const promise of await promiseOfPromises()) {\r\n yieldChunk.push(promise);\r\n if (yieldChunk.length === size) {\r\n chunks.push(Promise.all(yieldChunk));\r\n yieldChunk = [];\r\n }\r\n }\r\n if (yieldChunk.length) {\r\n chunks.push(Promise.all(yieldChunk));\r\n }\r\n return chunks;\r\n }\r\n };\r\n break;\r\n case 0:\r\n const promiseToArray = source.dataFunc.generator;\r\n dataFunc = {\r\n type: 0,\r\n generator: async () => {\r\n const chunks = [];\r\n let yieldChunk = [];\r\n for (const value of await promiseToArray()) {\r\n yieldChunk.push(value);\r\n if (yieldChunk.length === size) {\r\n chunks.push(yieldChunk);\r\n yieldChunk = [];\r\n }\r\n }\r\n if (yieldChunk.length) {\r\n chunks.push(yieldChunk);\r\n }\r\n return chunks;\r\n }\r\n };\r\n break;\r\n }\r\n return new BasicParallelEnumerable(dataFunc);\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const concatenate = (first, second) => {\r\n const generator = async () => {\r\n const [firstData, secondData] = await Promise.all([first.toArray(), second.toArray()]);\r\n return [...firstData, ...secondData];\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { nextIteration } from \"./_nextIteration.js\";\r\nexport const contains = async (source, value, comparer = StrictEqualityComparer) => {\r\n let values;\r\n if (comparer) {\r\n values = nextIteration(source, (x) => comparer(value, x));\r\n }\r\n else {\r\n values = nextIteration(source, (x) => x === value);\r\n }\r\n switch (values.type) {\r\n case 0: {\r\n const data = await values.generator();\r\n return data.some((x) => x);\r\n }\r\n case 1: {\r\n const data = await Promise.all(values.generator());\r\n return data.some((x) => x);\r\n }\r\n case 2: {\r\n const data = await Promise.all(await values.generator());\r\n return data.some((x) => x);\r\n }\r\n }\r\n};\r\n", "import { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nexport const containsAsync = async (source, value, comparer) => {\r\n const values = nextIterationAsync(source, (x) => comparer(value, x));\r\n switch (values.type) {\r\n case 1: {\r\n const data = await Promise.all(values.generator());\r\n return data.some((x) => x);\r\n }\r\n case 2: {\r\n const data = await Promise.all(await values.generator());\r\n return data.some((x) => x);\r\n }\r\n }\r\n};\r\n", "export const count = (source, predicate) => {\r\n if (predicate) {\r\n return count2(source, predicate);\r\n }\r\n else {\r\n return count1(source);\r\n }\r\n};\r\nconst count1 = async (source) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0:\r\n case 2:\r\n const arrayData = await source.toArray();\r\n return arrayData.length;\r\n case 1:\r\n const promises = dataFunc.generator();\r\n return promises.length;\r\n }\r\n};\r\nconst count2 = async (source, predicate) => {\r\n const values = await source.toArray();\r\n let totalCount = 0;\r\n for (let i = 0; i < values.length; i++) {\r\n if (predicate(values[i]) === true) {\r\n totalCount++;\r\n }\r\n }\r\n return totalCount;\r\n};\r\n", "import { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nexport const countAsync = async (source, predicate) => {\r\n const data = nextIterationAsync(source, predicate);\r\n let countPromise;\r\n switch (data.type) {\r\n case 1:\r\n countPromise = Promise.all(data.generator());\r\n break;\r\n case 2:\r\n countPromise = Promise.all(await data.generator());\r\n break;\r\n }\r\n let totalCount = 0;\r\n for (const value of await countPromise) {\r\n if (value) {\r\n totalCount++;\r\n }\r\n }\r\n return totalCount;\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const defaultIfEmpty = (source, defaultValue) => {\r\n const dataFunc = source.dataFunc;\r\n const isPromise = defaultValue instanceof Promise;\r\n let typeData;\r\n switch (dataFunc.type) {\r\n case 0:\r\n {\r\n const generator = () => dataFunc\r\n .generator()\r\n .then((values) => {\r\n if (values.length) {\r\n return values;\r\n }\r\n if (isPromise) {\r\n return defaultValue.then(value => [value]);\r\n }\r\n else {\r\n return [defaultValue];\r\n }\r\n });\r\n typeData = {\r\n generator,\r\n type: dataFunc.type\r\n };\r\n }\r\n break;\r\n case 1:\r\n {\r\n const generator = () => {\r\n const promises = dataFunc.generator();\r\n if (promises.length) {\r\n return promises;\r\n }\r\n if (isPromise) {\r\n return [defaultValue];\r\n }\r\n else {\r\n return [Promise.resolve(defaultValue)];\r\n }\r\n };\r\n typeData = {\r\n generator,\r\n type: dataFunc.type\r\n };\r\n }\r\n break;\r\n case 2:\r\n {\r\n const generator = async () => {\r\n const promises = await dataFunc.generator();\r\n if (promises.length) {\r\n return promises;\r\n }\r\n if (isPromise) {\r\n return [defaultValue];\r\n }\r\n else {\r\n return [Promise.resolve(defaultValue)];\r\n }\r\n };\r\n typeData = {\r\n generator,\r\n type: dataFunc.type\r\n };\r\n }\r\n break;\r\n }\r\n return new BasicParallelEnumerable(typeData);\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const distinct = (source, comparer = StrictEqualityComparer) => {\r\n const generator = async () => {\r\n const distinctElements = [];\r\n for (const item of await source.toArray()) {\r\n const foundItem = distinctElements.find((x) => comparer(x, item));\r\n if (!foundItem) {\r\n distinctElements.push(item);\r\n }\r\n }\r\n return distinctElements;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const distinctAsync = (source, comparer) => {\r\n const generator = async () => {\r\n const distinctElements = [];\r\n outerLoop: for (const item of await source.toArray()) {\r\n for (const distinctElement of distinctElements) {\r\n const found = await comparer(distinctElement, item);\r\n if (found) {\r\n continue outerLoop;\r\n }\r\n }\r\n distinctElements.push(item);\r\n }\r\n return distinctElements;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nimport { nextIteration } from \"./_nextIteration.js\";\r\nexport const each = (source, action) => {\r\n return new BasicParallelEnumerable(nextIteration(source, (x) => {\r\n action(x);\r\n return x;\r\n }));\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nimport { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nexport const eachAsync = (source, action) => {\r\n const dataFunc = nextIterationAsync(source, async (x) => {\r\n await action(x);\r\n return x;\r\n });\r\n return new BasicParallelEnumerable(dataFunc);\r\n};\r\n", "import { ArgumentOutOfRangeException } from \"../../shared/index.js\";\r\nexport const elementAt = async (source, index) => {\r\n if (index < 0) {\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n }\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const values = await dataFunc.generator();\r\n if (index >= values.length) {\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n }\r\n else {\r\n return values[index];\r\n }\r\n }\r\n case 1: {\r\n const promises = dataFunc.generator();\r\n if (index >= promises.length) {\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n }\r\n else {\r\n return await promises[index];\r\n }\r\n }\r\n case 2: {\r\n const promises = await dataFunc.generator();\r\n if (index >= promises.length) {\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n }\r\n else {\r\n return await promises[index];\r\n }\r\n }\r\n }\r\n};\r\n", "export const elementAtOrDefault = async (source, index) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const values = await dataFunc.generator();\r\n if (index >= values.length) {\r\n return null;\r\n }\r\n else {\r\n return values[index];\r\n }\r\n }\r\n case 1: {\r\n const promises = dataFunc.generator();\r\n if (index >= promises.length) {\r\n return null;\r\n }\r\n else {\r\n return await promises[index];\r\n }\r\n }\r\n case 2: {\r\n const promises = await dataFunc.generator();\r\n if (index >= promises.length) {\r\n return null;\r\n }\r\n else {\r\n return await promises[index];\r\n }\r\n }\r\n }\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const except = (first, second, comparer = StrictEqualityComparer) => {\r\n const generator = async () => {\r\n const [firstValues, secondValues] = await Promise.all([first.toArray(), second.toArray()]);\r\n const resultValues = [];\r\n for (const firstItem of firstValues) {\r\n let exists = false;\r\n for (let j = 0; j < secondValues.length; j++) {\r\n const secondItem = secondValues[j];\r\n if (comparer(firstItem, secondItem) === true) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (exists === false) {\r\n resultValues.push(firstItem);\r\n }\r\n }\r\n return resultValues;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const exceptAsync = (first, second, comparer) => {\r\n const generator = async () => {\r\n const [firstValues, secondValues] = await Promise.all([first.toArray(), second.toArray()]);\r\n const resultValues = [];\r\n for (const firstItem of firstValues) {\r\n let exists = false;\r\n for (let j = 0; j < secondValues.length; j++) {\r\n const secondItem = secondValues[j];\r\n if (await comparer(firstItem, secondItem) === true) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (exists === false) {\r\n resultValues.push(firstItem);\r\n }\r\n }\r\n return resultValues;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const toArray = (source) => {\r\n return typeDataToArray(source.dataFunc);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { toArray } from \"./toArray.js\";\r\nexport const first = (source, predicate) => {\r\n if (predicate) {\r\n return first2(source, predicate);\r\n }\r\n else {\r\n return first1(source);\r\n }\r\n};\r\nconst first1 = async (source) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const values = await dataFunc.generator();\r\n if (values.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return values[0];\r\n }\r\n }\r\n case 1: {\r\n const promises = dataFunc.generator();\r\n if (promises.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return await promises[0];\r\n }\r\n }\r\n case 2: {\r\n const promises = await dataFunc.generator();\r\n if (promises.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return await promises[0];\r\n }\r\n }\r\n }\r\n};\r\nconst first2 = async (source, predicate) => {\r\n const data = await toArray(source);\r\n for (const value of data) {\r\n if (predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { toArray } from \"./toArray.js\";\r\nexport const firstAsync = async (source, predicate) => {\r\n const data = await toArray(source);\r\n for (const value of data) {\r\n if (await predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n};\r\n", "import { toArray } from \"./toArray.js\";\r\nexport const firstOrDefault = (source, predicate) => {\r\n if (predicate) {\r\n return firstOrDefault2(source, predicate);\r\n }\r\n else {\r\n return firstOrDefault1(source);\r\n }\r\n};\r\nconst firstOrDefault1 = async (source) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const values = await dataFunc.generator();\r\n if (values.length === 0) {\r\n return null;\r\n }\r\n else {\r\n return values[0];\r\n }\r\n }\r\n case 1: {\r\n const promises = dataFunc.generator();\r\n if (promises.length === 0) {\r\n return null;\r\n }\r\n else {\r\n return await promises[0];\r\n }\r\n }\r\n case 2: {\r\n const promises = await dataFunc.generator();\r\n if (promises.length === 0) {\r\n return null;\r\n }\r\n else {\r\n return await promises[0];\r\n }\r\n }\r\n }\r\n};\r\nconst firstOrDefault2 = async (source, predicate) => {\r\n const data = await toArray(source);\r\n for (const value of data) {\r\n if (predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n return null;\r\n};\r\n", "import { toArray } from \"./toArray.js\";\r\nexport const firstOrDefaultAsync = async (source, predicate) => {\r\n const data = await toArray(source);\r\n for (const value of data) {\r\n if (await predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n return null;\r\n};\r\n", "import { Grouping } from \"../../sync/Grouping.js\";\r\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const groupBy = (source, keySelector, comparer) => {\r\n if (comparer) {\r\n return groupBy_0(source, keySelector, comparer);\r\n }\r\n else {\r\n return groupBy_0_Simple(source, keySelector);\r\n }\r\n};\r\nconst groupBy_0_Simple = (source, keySelector) => {\r\n const generator = async () => {\r\n const keyMap = {};\r\n for (const value of await source.toArray()) {\r\n const key = keySelector(value);\r\n const grouping = keyMap[key];\r\n if (grouping) {\r\n grouping.push(value);\r\n }\r\n else {\r\n keyMap[key] = new Grouping(key, value);\r\n }\r\n }\r\n const results = new Array();\r\n for (const value in keyMap) {\r\n results.push(keyMap[value]);\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\nconst groupBy_0 = (source, keySelector, comparer) => {\r\n const generator = async () => {\r\n const keyMap = new Array();\r\n for (const value of await source.toArray()) {\r\n const key = keySelector(value);\r\n let found = false;\r\n for (let i = 0; i < keyMap.length; i++) {\r\n const group = keyMap[i];\r\n if (comparer(group.key, key)) {\r\n group.push(value);\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (found === false) {\r\n keyMap.push(new Grouping(key, value));\r\n }\r\n }\r\n const results = new Array();\r\n for (const g of keyMap) {\r\n results.push(g);\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { Grouping } from \"../../sync/Grouping.js\";\r\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nimport { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nexport const groupByAsync = (source, keySelector, comparer) => {\r\n if (comparer) {\r\n return groupByAsync_0(source, keySelector, comparer);\r\n }\r\n else {\r\n return groupByAsync_0_Simple(source, keySelector);\r\n }\r\n};\r\nconst groupByAsync_0 = (source, keySelector, comparer) => {\r\n const generator = async () => {\r\n const typedData = nextIterationAsync(source, async (value) => {\r\n const key = await keySelector(value);\r\n return [key, value];\r\n });\r\n let values;\r\n switch (typedData.type) {\r\n case 1:\r\n values = await Promise.all(typedData.generator());\r\n break;\r\n case 2:\r\n values = await Promise.all(await typedData.generator());\r\n break;\r\n }\r\n const keyMap = new Array();\r\n for (const [key, value] of values) {\r\n let found = false;\r\n for (let i = 0; i < keyMap.length; i++) {\r\n const group = keyMap[i];\r\n if (await comparer(group.key, key) === true) {\r\n group.push(value);\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (found === false) {\r\n keyMap.push(new Grouping(key, value));\r\n }\r\n }\r\n const results = new Array();\r\n for (const g of keyMap) {\r\n results.push(g);\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\nconst groupByAsync_0_Simple = (source, keySelector) => {\r\n const generator = async () => {\r\n const typedData = nextIterationAsync(source, async (value) => {\r\n const key = await keySelector(value);\r\n return [key, value];\r\n });\r\n let values;\r\n switch (typedData.type) {\r\n case 1:\r\n values = await Promise.all(typedData.generator());\r\n break;\r\n case 2:\r\n values = await Promise.all(await typedData.generator());\r\n break;\r\n }\r\n const keyMap = {};\r\n for (const [key, value] of values) {\r\n const grouping = keyMap[key];\r\n if (grouping) {\r\n grouping.push(value);\r\n }\r\n else {\r\n keyMap[key] = new Grouping(key, value);\r\n }\r\n }\r\n const results = new Array();\r\n for (const value in keyMap) {\r\n results.push(keyMap[value]);\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { Grouping } from \"../../sync/Grouping.js\";\r\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const groupByWithSel = (source, keySelector, elementSelector, comparer) => {\r\n if (comparer) {\r\n return groupBy1(source, keySelector, elementSelector, comparer);\r\n }\r\n else {\r\n return groupBy1Simple(source, keySelector, elementSelector);\r\n }\r\n};\r\nconst groupBy1 = (source, keySelector, elementSelector, comparer) => {\r\n const generator = async () => {\r\n const keyMap = new Array();\r\n for await (const value of source) {\r\n const key = keySelector(value);\r\n let found = false;\r\n for (let i = 0; i < keyMap.length; i++) {\r\n const group = keyMap[i];\r\n if (comparer(group.key, key)) {\r\n group.push(elementSelector(value));\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (found === false) {\r\n const element = elementSelector(value);\r\n keyMap.push(new Grouping(key, element));\r\n }\r\n }\r\n const results = new Array();\r\n for (const value of keyMap) {\r\n results.push(value);\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\nconst groupBy1Simple = (source, keySelector, elementSelector) => {\r\n const generator = async () => {\r\n const keyMap = {};\r\n for (const value of await source.toArray()) {\r\n const key = keySelector(value);\r\n const grouping = keyMap[key];\r\n const element = elementSelector(value);\r\n if (grouping) {\r\n grouping.push(element);\r\n }\r\n else {\r\n keyMap[key] = new Grouping(key, element);\r\n }\r\n }\r\n const results = new Array();\r\n for (const value in keyMap) {\r\n results.push(keyMap[value]);\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const groupJoin = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => {\r\n const generator = comparer ?\r\n groupJoinWithComparer(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) :\r\n groupJoinSimple(outer, inner, outerKeySelector, innerKeySelector, resultSelector);\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0\r\n });\r\n};\r\nconst groupJoinWithComparer = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => {\r\n return async () => {\r\n const innerKeyMap = [];\r\n for await (const innerValue of inner) {\r\n const key = innerKeySelector(innerValue);\r\n const record = innerKeyMap.find(x => comparer(x.key, key));\r\n if (record) {\r\n record.values.push(innerValue);\r\n }\r\n else {\r\n innerKeyMap.push({ key, values: [innerValue] });\r\n }\r\n }\r\n const outerValues = await outer.toArray();\r\n return outerValues\r\n .map(outerValue => {\r\n var _a;\r\n const key = outerKeySelector(outerValue);\r\n const innerRecord = (_a = innerKeyMap.find(x => comparer(x.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] };\r\n return resultSelector(outerValue, innerRecord.values);\r\n });\r\n };\r\n};\r\nconst groupJoinSimple = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => {\r\n return async () => {\r\n const innerKeyMap = new Map();\r\n for await (const innerValue of inner) {\r\n const key = innerKeySelector(innerValue);\r\n const values = innerKeyMap.get(key);\r\n if (values) {\r\n values.push(innerValue);\r\n }\r\n else {\r\n innerKeyMap.set(key, [innerValue]);\r\n }\r\n }\r\n const outerValues = await outer.toArray();\r\n return outerValues\r\n .map(outerValue => {\r\n var _a;\r\n const key = outerKeySelector(outerValue);\r\n const values = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : [];\r\n return resultSelector(outerValue, values);\r\n });\r\n };\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const groupJoinAsync = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => {\r\n const generator = comparer ?\r\n groupJoinWithComparer(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) :\r\n groupJoinSimple(outer, inner, outerKeySelector, innerKeySelector, resultSelector);\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0\r\n });\r\n};\r\nconst groupJoinWithComparer = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => {\r\n return async () => {\r\n const innerKeyMap = [];\r\n for await (const innerValue of inner) {\r\n const key = await innerKeySelector(innerValue);\r\n const record = innerKeyMap.find(x => comparer(x.key, key));\r\n if (record) {\r\n record.values.push(innerValue);\r\n }\r\n else {\r\n innerKeyMap.push({ key, values: [innerValue] });\r\n }\r\n }\r\n const outerValues = await outer.toArray();\r\n const resultPromises = outerValues.map(async (outerValue) => {\r\n var _a;\r\n const key = await outerKeySelector(outerValue);\r\n const innerRecord = (_a = innerKeyMap.find(x => comparer(x.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] };\r\n return resultSelector(outerValue, innerRecord.values);\r\n });\r\n return await Promise.all(resultPromises);\r\n };\r\n};\r\nconst groupJoinSimple = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => {\r\n return async () => {\r\n const innerKeyMap = new Map();\r\n for await (const innerValue of inner) {\r\n const key = await innerKeySelector(innerValue);\r\n const values = innerKeyMap.get(key);\r\n if (values) {\r\n values.push(innerValue);\r\n }\r\n else {\r\n innerKeyMap.set(key, [innerValue]);\r\n }\r\n }\r\n const outerValues = await outer.toArray();\r\n const resultPromises = outerValues.map(async (outerValue) => {\r\n var _a;\r\n const key = await outerKeySelector(outerValue);\r\n const values = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : [];\r\n return resultSelector(outerValue, values);\r\n });\r\n return await Promise.all(resultPromises);\r\n };\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const intersect = (first, second, comparer = StrictEqualityComparer) => {\r\n const generator = async () => {\r\n const firstResults = await first.distinct(comparer).toArray();\r\n if (firstResults.length === 0) {\r\n return [];\r\n }\r\n const secondResults = await second.toArray();\r\n const results = new Array();\r\n for (let i = 0; i < firstResults.length; i++) {\r\n const firstValue = firstResults[i];\r\n for (let j = 0; j < secondResults.length; j++) {\r\n const secondValue = secondResults[j];\r\n if (comparer(firstValue, secondValue) === true) {\r\n results.push(firstValue);\r\n break;\r\n }\r\n }\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const intersectAsync = (first, second, comparer) => {\r\n const generator = async () => {\r\n const firstResults = await first.distinctAsync(comparer).toArray();\r\n if (firstResults.length === 0) {\r\n return [];\r\n }\r\n const secondResults = await second.toArray();\r\n const results = new Array();\r\n for (let i = 0; i < firstResults.length; i++) {\r\n const firstValue = firstResults[i];\r\n for (let j = 0; j < secondResults.length; j++) {\r\n const secondValue = secondResults[j];\r\n if (await comparer(firstValue, secondValue) === true) {\r\n results.push(firstValue);\r\n break;\r\n }\r\n }\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const join = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer = StrictEqualityComparer) => {\r\n const generator = async () => {\r\n const [innerArray, outerArray] = await Promise.all([inner.toArray(), outer.toArray()]);\r\n const results = new Array();\r\n for (const o of outerArray) {\r\n const outerKey = outerKeySelector(o);\r\n for (const i of innerArray) {\r\n const innerKey = innerKeySelector(i);\r\n if (comparer(outerKey, innerKey) === true) {\r\n results.push(resultSelector(o, i));\r\n }\r\n }\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const last = (source, predicate) => {\r\n if (predicate) {\r\n return last2(source, predicate);\r\n }\r\n else {\r\n return last1(source);\r\n }\r\n};\r\nconst last1 = async (source) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const values = await dataFunc.generator();\r\n if (values.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return values[values.length - 1];\r\n }\r\n }\r\n case 1: {\r\n const promises = dataFunc.generator();\r\n if (promises.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return await promises[promises.length - 1];\r\n }\r\n }\r\n case 2: {\r\n const promises = await dataFunc.generator();\r\n if (promises.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n else {\r\n return await promises[promises.length - 1];\r\n }\r\n }\r\n }\r\n};\r\nconst last2 = async (source, predicate) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const values = await dataFunc.generator();\r\n for (let i = values.length - 1; i >= 0; i--) {\r\n const value = values[i];\r\n if (predicate(value)) {\r\n return value;\r\n }\r\n }\r\n break;\r\n }\r\n case 1: {\r\n const promises = dataFunc.generator();\r\n for (let i = promises.length - 1; i >= 0; i--) {\r\n const value = await promises[i];\r\n if (predicate(value)) {\r\n return value;\r\n }\r\n }\r\n break;\r\n }\r\n case 2: {\r\n const promises = await dataFunc.generator();\r\n for (let i = promises.length - 1; i >= 0; i--) {\r\n const value = await promises[i];\r\n if (predicate(value)) {\r\n return value;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nexport const lastAsync = async (source, predicate) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const values = await dataFunc.generator();\r\n for (let i = values.length - 1; i >= 0; i--) {\r\n const value = values[i];\r\n if (await predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n break;\r\n }\r\n case 1: {\r\n const promises = dataFunc.generator();\r\n for (let i = promises.length - 1; i >= 0; i--) {\r\n const value = await promises[i];\r\n if (await predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n break;\r\n }\r\n case 2: {\r\n const promises = await dataFunc.generator();\r\n for (let i = promises.length - 1; i >= 0; i--) {\r\n const value = await promises[i];\r\n if (await predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n};\r\n", "export const lastOrDefault = (source, predicate) => {\r\n if (predicate) {\r\n return lastOrDefault2(source, predicate);\r\n }\r\n else {\r\n return lastOrDefault1(source);\r\n }\r\n};\r\nconst lastOrDefault1 = async (source) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const values = await dataFunc.generator();\r\n if (values.length === 0) {\r\n return null;\r\n }\r\n else {\r\n return values[values.length - 1];\r\n }\r\n }\r\n case 1: {\r\n const promises = dataFunc.generator();\r\n if (promises.length === 0) {\r\n return null;\r\n }\r\n else {\r\n return await promises[promises.length - 1];\r\n }\r\n }\r\n case 2: {\r\n const promises = await dataFunc.generator();\r\n if (promises.length === 0) {\r\n return null;\r\n }\r\n else {\r\n return await promises[promises.length - 1];\r\n }\r\n }\r\n }\r\n};\r\nconst lastOrDefault2 = async (source, predicate) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const values = await dataFunc.generator();\r\n for (let i = values.length - 1; i >= 0; i--) {\r\n const value = values[i];\r\n if (predicate(value)) {\r\n return value;\r\n }\r\n }\r\n break;\r\n }\r\n case 1: {\r\n const promises = dataFunc.generator();\r\n for (let i = promises.length - 1; i >= 0; i--) {\r\n const value = await promises[i];\r\n if (predicate(value)) {\r\n return value;\r\n }\r\n }\r\n break;\r\n }\r\n case 2: {\r\n const promises = await dataFunc.generator();\r\n for (let i = promises.length - 1; i >= 0; i--) {\r\n const value = await promises[i];\r\n if (predicate(value)) {\r\n return value;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return null;\r\n};\r\n", "export const lastOrDefaultAsync = async (source, predicate) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const values = await dataFunc.generator();\r\n for (let i = values.length - 1; i >= 0; i--) {\r\n const value = values[i];\r\n if (await predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n break;\r\n }\r\n case 1: {\r\n const promises = dataFunc.generator();\r\n for (let i = promises.length - 1; i >= 0; i--) {\r\n const value = await promises[i];\r\n if (await predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n break;\r\n }\r\n case 2: {\r\n const promises = await dataFunc.generator();\r\n for (let i = promises.length - 1; i >= 0; i--) {\r\n const value = await promises[i];\r\n if (await predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return null;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { nextIteration } from \"./_nextIteration.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const max = async (source, selector) => {\r\n let dataFunc;\r\n if (selector) {\r\n dataFunc = nextIteration(source, selector);\r\n }\r\n else {\r\n dataFunc = source.dataFunc;\r\n }\r\n const data = await typeDataToArray(dataFunc);\r\n if (data.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return Math.max.apply(null, data);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const maxAsync = async (source, selector) => {\r\n const dataFunc = nextIterationAsync(source, selector);\r\n const maxInfo = await typeDataToArray(dataFunc);\r\n if (maxInfo.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return Math.max.apply(null, maxInfo);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { nextIteration } from \"./_nextIteration.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const min = async (source, selector) => {\r\n let dataFunc;\r\n if (selector) {\r\n dataFunc = nextIteration(source, selector);\r\n }\r\n else {\r\n dataFunc = source.dataFunc;\r\n }\r\n const data = await typeDataToArray(dataFunc);\r\n if (data.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return Math.min.apply(null, data);\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const minAsync = async (source, selector) => {\r\n const dataFunc = nextIterationAsync(source, selector);\r\n const maxInfo = await typeDataToArray(dataFunc);\r\n if (maxInfo.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return Math.min.apply(null, maxInfo);\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nimport { nextIteration } from \"./_nextIteration.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const ofType = (source, type) => {\r\n const typeCheck = typeof type === \"string\" ?\r\n (x) => [typeof x === type, x] :\r\n (x) => [x instanceof type, x];\r\n const generator = async () => {\r\n const dataFunc = nextIteration(source, typeCheck);\r\n const values = await typeDataToArray(dataFunc);\r\n const filteredValues = [];\r\n for (const [pass, value] of values) {\r\n if (pass) {\r\n filteredValues.push(value);\r\n }\r\n }\r\n return filteredValues;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "export const asAsyncKeyMap = async (source, keySelector) => {\r\n const map = new Map();\r\n for await (const item of source) {\r\n const key = await keySelector(item);\r\n const currentMapping = map.get(key);\r\n if (currentMapping) {\r\n currentMapping.push(item);\r\n }\r\n else {\r\n map.set(key, [item]);\r\n }\r\n }\r\n return map;\r\n};\r\n", "import { asAsyncKeyMap } from \"./asAsyncKeyMap.js\";\r\nexport async function* asAsyncSortedKeyValues(source, keySelector, ascending, comparer) {\r\n const map = await asAsyncKeyMap(source, keySelector);\r\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\r\n if (ascending) {\r\n for (let i = 0; i < sortedKeys.length; i++) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n else {\r\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n}\r\n", "export const asAsyncKeyMapSync = async (source, keySelector) => {\r\n const map = new Map();\r\n for (const item of source) {\r\n const key = await keySelector(item);\r\n const currentMapping = map.get(key);\r\n if (currentMapping) {\r\n currentMapping.push(item);\r\n }\r\n else {\r\n map.set(key, [item]);\r\n }\r\n }\r\n return map;\r\n};\r\n", "import { asAsyncKeyMapSync } from \"./asAsyncKeyMapSync.js\";\r\nexport async function* asAsyncSortedKeyValuesSync(source, keySelector, ascending, comparer) {\r\n const map = await asAsyncKeyMapSync(source, keySelector);\r\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\r\n if (ascending) {\r\n for (let i = 0; i < sortedKeys.length; i++) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n else {\r\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n}\r\n", "export const asKeyMap = async (source, keySelector) => {\r\n const map = new Map();\r\n for await (const item of source) {\r\n const key = keySelector(item);\r\n const currentMapping = map.get(key);\r\n if (currentMapping) {\r\n currentMapping.push(item);\r\n }\r\n else {\r\n map.set(key, [item]);\r\n }\r\n }\r\n return map;\r\n};\r\n", "import { asKeyMap } from \"./asKeyMap.js\";\r\nexport async function* asSortedKeyValues(source, keySelector, ascending, comparer) {\r\n const map = await asKeyMap(source, keySelector);\r\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\r\n if (ascending) {\r\n for (let i = 0; i < sortedKeys.length; i++) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n else {\r\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n}\r\n", "export const asKeyMapSync = (source, keySelector) => {\r\n const map = new Map();\r\n for (const item of source) {\r\n const key = keySelector(item);\r\n const currentMapping = map.get(key);\r\n if (currentMapping) {\r\n currentMapping.push(item);\r\n }\r\n else {\r\n map.set(key, [item]);\r\n }\r\n }\r\n return map;\r\n};\r\n", "import { asKeyMapSync } from \"./asKeyMapSync.js\";\r\nexport async function* asSortedKeyValuesSync(source, keySelector, ascending, comparer) {\r\n const map = asKeyMapSync(source, keySelector);\r\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\r\n if (ascending) {\r\n for (let i = 0; i < sortedKeys.length; i++) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n else {\r\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\r\n yield map.get(sortedKeys[i]);\r\n }\r\n }\r\n}\r\n", "import { asAsyncSortedKeyValues } from \"./_ordered/asAsyncSortedKeyValues.js\";\r\nimport { asAsyncSortedKeyValuesSync } from \"./_ordered/asAsyncSortedKeyValuesSync.js\";\r\nimport { asSortedKeyValues } from \"./_ordered/asSortedKeyValues.js\";\r\nimport { asSortedKeyValuesSync } from \"./_ordered/asSortedKeyValuesSync.js\";\r\nimport { BasicParallelEnumerable } from \"./BasicParallelEnumerable.js\";\r\nexport class OrderedParallelEnumerable extends BasicParallelEnumerable {\r\n constructor(orderedPairs) {\r\n super({\r\n generator: async () => {\r\n const asyncVals = orderedPairs();\r\n const array = [];\r\n for await (const val of asyncVals) {\r\n array.push(...val);\r\n }\r\n return array;\r\n },\r\n type: 0,\r\n });\r\n this.orderedPairs = orderedPairs;\r\n }\r\n static generateAsync(source, keySelector, ascending, comparer) {\r\n let orderedPairs;\r\n if (source instanceof OrderedParallelEnumerable) {\r\n orderedPairs = async function* () {\r\n for await (const pair of source.orderedPairs()) {\r\n yield* asAsyncSortedKeyValuesSync(pair, keySelector, ascending, comparer);\r\n }\r\n };\r\n }\r\n else {\r\n orderedPairs = () => asAsyncSortedKeyValues(source, keySelector, ascending, comparer);\r\n }\r\n return new OrderedParallelEnumerable(orderedPairs);\r\n }\r\n static generate(source, keySelector, ascending, comparer) {\r\n let orderedPairs;\r\n if (source instanceof OrderedParallelEnumerable) {\r\n orderedPairs = async function* () {\r\n for await (const pair of source.orderedPairs()) {\r\n yield* asSortedKeyValuesSync(pair, keySelector, ascending, comparer);\r\n }\r\n };\r\n }\r\n else {\r\n orderedPairs = () => asSortedKeyValues(source, keySelector, ascending, comparer);\r\n }\r\n return new OrderedParallelEnumerable(orderedPairs);\r\n }\r\n thenBy(keySelector, comparer) {\r\n return OrderedParallelEnumerable.generate(this, keySelector, true, comparer);\r\n }\r\n thenByAsync(keySelector, comparer) {\r\n return OrderedParallelEnumerable.generateAsync(this, keySelector, true, comparer);\r\n }\r\n thenByDescending(keySelector, comparer) {\r\n return OrderedParallelEnumerable.generate(this, keySelector, false, comparer);\r\n }\r\n thenByDescendingAsync(keySelector, comparer) {\r\n return OrderedParallelEnumerable.generateAsync(this, keySelector, false, comparer);\r\n }\r\n}\r\n", "import { OrderedParallelEnumerable } from \"../OrderedParallelEnumerable.js\";\r\nexport const orderBy = (source, keySelector, comparer) => {\r\n return OrderedParallelEnumerable.generate(source, keySelector, true, comparer);\r\n};\r\n", "import { OrderedParallelEnumerable } from \"../OrderedParallelEnumerable.js\";\r\nexport const orderByAsync = (source, keySelector, comparer) => {\r\n return OrderedParallelEnumerable.generateAsync(source, keySelector, true, comparer);\r\n};\r\n", "import { OrderedParallelEnumerable } from \"../OrderedParallelEnumerable.js\";\r\nexport const orderByDescending = (source, keySelector, comparer) => {\r\n return OrderedParallelEnumerable.generate(source, keySelector, false, comparer);\r\n};\r\n", "import { OrderedParallelEnumerable } from \"../OrderedParallelEnumerable.js\";\r\nexport const orderByDescendingAsync = (source, keySelector, comparer) => {\r\n return OrderedParallelEnumerable.generateAsync(source, keySelector, false, comparer);\r\n};\r\n", "import { nextIteration } from \"./_nextIteration.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const partition = async (source, predicate) => {\r\n const dataFunc = nextIteration(source, (value) => {\r\n return [predicate(value), value];\r\n });\r\n const values = await typeDataToArray(dataFunc);\r\n const fail = [];\r\n const pass = [];\r\n for (const [passed, value] of values) {\r\n if (passed) {\r\n pass.push(value);\r\n }\r\n else {\r\n fail.push(value);\r\n }\r\n }\r\n return [pass, fail];\r\n};\r\n", "import { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const partitionAsync = async (source, predicate) => {\r\n const dataFunc = nextIterationAsync(source, async (value) => {\r\n const passed = await predicate(value);\r\n return [passed, value];\r\n });\r\n const values = await typeDataToArray(dataFunc);\r\n const fail = [];\r\n const pass = [];\r\n for (const [passed, value] of values) {\r\n if (passed) {\r\n pass.push(value);\r\n }\r\n else {\r\n fail.push(value);\r\n }\r\n }\r\n return [pass, fail];\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const reverse = (source) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 1: {\r\n const generator = () => {\r\n return dataFunc.generator().reverse();\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: dataFunc.type,\r\n });\r\n }\r\n case 2: {\r\n const generator = async () => {\r\n const array = await dataFunc.generator();\r\n return array.reverse();\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: dataFunc.type,\r\n });\r\n }\r\n case 0: {\r\n const generator = async () => {\r\n const array = await dataFunc.generator();\r\n return array.reverse();\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: dataFunc.type,\r\n });\r\n }\r\n }\r\n};\r\n", "export const nextIterationWithIndex = (source, onfulfilled) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const generator = () => dataFunc.generator().then((x) => {\r\n const convValues = new Array(x.length);\r\n for (let i = 0; i < x.length; i++) {\r\n convValues[i] = onfulfilled(x[i], i);\r\n }\r\n return convValues;\r\n });\r\n return {\r\n generator,\r\n type: 0,\r\n };\r\n }\r\n case 1: {\r\n const generator = () => {\r\n const previousData = dataFunc.generator();\r\n const newPromises = new Array(previousData.length);\r\n for (let i = 0; i < previousData.length; i++) {\r\n newPromises[i] = previousData[i].then((value) => {\r\n return onfulfilled(value, i);\r\n });\r\n }\r\n return newPromises;\r\n };\r\n return {\r\n generator,\r\n type: 1,\r\n };\r\n }\r\n case 2: {\r\n const generator = async () => {\r\n const previousData = await dataFunc.generator();\r\n const newPromises = new Array(previousData.length);\r\n for (let i = 0; i < previousData.length; i++) {\r\n newPromises[i] = previousData[i].then((value) => onfulfilled(value, i));\r\n }\r\n return newPromises;\r\n };\r\n return {\r\n generator,\r\n type: 2,\r\n };\r\n }\r\n }\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nimport { nextIteration } from \"./_nextIteration.js\";\r\nimport { nextIterationWithIndex } from \"./_nextIterationWithIndex.js\";\r\nexport const select = (source, key) => {\r\n if (typeof key === \"function\") {\r\n if (key.length === 1) {\r\n return new BasicParallelEnumerable(nextIteration(source, key));\r\n }\r\n else {\r\n return new BasicParallelEnumerable(nextIterationWithIndex(source, key));\r\n }\r\n }\r\n else {\r\n return new BasicParallelEnumerable(nextIteration(source, (x) => x[key]));\r\n }\r\n};\r\n", "export const nextIterationWithIndexAsync = (source, onfulfilled) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const generator = async () => {\r\n const results = await dataFunc.generator();\r\n const newPromises = new Array(results.length);\r\n for (let i = 0; i < results.length; i++) {\r\n newPromises[i] = onfulfilled(results[i], i);\r\n }\r\n return newPromises;\r\n };\r\n return {\r\n generator,\r\n type: 2,\r\n };\r\n }\r\n case 1: {\r\n const generator = () => dataFunc\r\n .generator()\r\n .map((promise, index) => promise.then((x) => onfulfilled(x, index)));\r\n return {\r\n generator,\r\n type: 1,\r\n };\r\n }\r\n case 2: {\r\n const generator = async () => {\r\n const promises = await dataFunc.generator();\r\n return promises.map((promise, index) => promise.then((x) => onfulfilled(x, index)));\r\n };\r\n return {\r\n generator,\r\n type: 2,\r\n };\r\n }\r\n }\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nimport { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nimport { nextIterationWithIndexAsync } from \"./_nextIterationWithIndexAsync.js\";\r\nexport const selectAsync = (source, keyOrSelector) => {\r\n let generator;\r\n if (typeof keyOrSelector === \"function\") {\r\n if (keyOrSelector.length === 1) {\r\n generator = nextIterationAsync(source, keyOrSelector);\r\n }\r\n else {\r\n generator = nextIterationWithIndexAsync(source, keyOrSelector);\r\n }\r\n }\r\n else {\r\n generator = nextIterationAsync(source, (x) => (x[keyOrSelector]));\r\n }\r\n return new BasicParallelEnumerable(generator);\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nimport { nextIteration } from \"./_nextIteration.js\";\r\nimport { nextIterationWithIndex } from \"./_nextIterationWithIndex.js\";\r\nexport const selectMany = (source, selector) => {\r\n const generator = async () => {\r\n let values;\r\n if (typeof selector === \"function\") {\r\n if (selector.length === 1) {\r\n values = nextIteration(source, selector);\r\n }\r\n else {\r\n values = nextIterationWithIndex(source, selector);\r\n }\r\n }\r\n else {\r\n values = nextIteration(source, (x) => x[selector]);\r\n }\r\n const valuesArray = [];\r\n switch (values.type) {\r\n case 0: {\r\n for (const outer of await values.generator()) {\r\n for (const y of outer) {\r\n valuesArray.push(y);\r\n }\r\n }\r\n break;\r\n }\r\n case 1: {\r\n for (const outer of values.generator()) {\r\n for (const y of await outer) {\r\n valuesArray.push(y);\r\n }\r\n }\r\n break;\r\n }\r\n case 2: {\r\n for (const outer of await values.generator()) {\r\n for (const y of await outer) {\r\n valuesArray.push(y);\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return valuesArray;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nimport { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nimport { nextIterationWithIndexAsync } from \"./_nextIterationWithIndexAsync.js\";\r\nexport const selectManyAsync = (source, selector) => {\r\n const generator = async () => {\r\n let values;\r\n if (selector.length === 1) {\r\n values = nextIterationAsync(source, selector);\r\n }\r\n else {\r\n values = nextIterationWithIndexAsync(source, selector);\r\n }\r\n const valuesArray = [];\r\n switch (values.type) {\r\n case 1: {\r\n for (const outer of values.generator()) {\r\n for (const y of await outer) {\r\n valuesArray.push(y);\r\n }\r\n }\r\n break;\r\n }\r\n case 2: {\r\n for (const outer of await values.generator()) {\r\n for (const y of await outer) {\r\n valuesArray.push(y);\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return valuesArray;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { StrictEqualityComparer } from \"../../shared/index.js\";\r\nexport const sequenceEquals = async (first, second, comparer = StrictEqualityComparer) => {\r\n const firstArray = await first.toArray();\r\n const secondArray = await second.toArray();\r\n if (firstArray.length !== secondArray.length) {\r\n return false;\r\n }\r\n for (let i = 0; i < firstArray.length; i++) {\r\n const firstResult = firstArray[i];\r\n const secondResult = secondArray[i];\r\n if (comparer(firstResult, secondResult) === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n", "export const sequenceEqualsAsync = async (first, second, comparer) => {\r\n const firstArray = await first.toArray();\r\n const secondArray = await second.toArray();\r\n if (firstArray.length !== secondArray.length) {\r\n return false;\r\n }\r\n for (let i = 0; i < firstArray.length; i++) {\r\n const firstResult = firstArray[i];\r\n const secondResult = secondArray[i];\r\n if (await comparer(firstResult, secondResult) === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { toArray } from \"./toArray.js\";\r\nexport const single = (source, predicate) => {\r\n if (predicate) {\r\n return single2(source, predicate);\r\n }\r\n else {\r\n return single1(source);\r\n }\r\n};\r\nconst single1 = async (source) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const results = await dataFunc.generator();\r\n if (results.length > 1) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else if (results.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return results[0];\r\n }\r\n case 1: {\r\n const results = dataFunc.generator();\r\n if (results.length > 1) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else if (results.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return results[0];\r\n }\r\n case 2: {\r\n const results = await dataFunc.generator();\r\n if (results.length > 1) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else if (results.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return await results[0];\r\n }\r\n }\r\n};\r\nconst single2 = async (source, predicate) => {\r\n const results = await toArray(source);\r\n let hasValue = false;\r\n let singleValue = null;\r\n for (const value of results) {\r\n if (predicate(value)) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n }\r\n if (hasValue === false) {\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n return singleValue;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { toArray } from \"./toArray.js\";\r\nexport const singleAsync = async (source, predicate) => {\r\n const results = await toArray(source);\r\n let hasValue = false;\r\n let singleValue = null;\r\n for (const value of results) {\r\n if (await predicate(value) === true) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n }\r\n if (hasValue === false) {\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n return singleValue;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { toArray } from \"./toArray.js\";\r\nexport const singleOrDefault = (source, predicate) => {\r\n if (predicate) {\r\n return singleOrDefault2(source, predicate);\r\n }\r\n else {\r\n return singleOrDefault1(source);\r\n }\r\n};\r\nconst singleOrDefault1 = async (source) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const results = await dataFunc.generator();\r\n if (results.length > 1) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else if (results.length === 0) {\r\n return null;\r\n }\r\n return results[0];\r\n }\r\n case 1: {\r\n const results = dataFunc.generator();\r\n if (results.length > 1) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else if (results.length === 0) {\r\n return null;\r\n }\r\n return results[0];\r\n }\r\n case 2: {\r\n const results = await dataFunc.generator();\r\n if (results.length > 1) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else if (results.length === 0) {\r\n return null;\r\n }\r\n return await results[0];\r\n }\r\n }\r\n};\r\nconst singleOrDefault2 = async (source, predicate) => {\r\n const results = await toArray(source);\r\n let hasValue = false;\r\n let singleValue = null;\r\n for (const value of results) {\r\n if (predicate(value)) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n }\r\n return singleValue;\r\n};\r\n", "import { ErrorString, InvalidOperationException } from \"../../shared/index.js\";\r\nimport { toArray } from \"./toArray.js\";\r\nexport const singleOrDefaultAsync = async (source, predicate) => {\r\n const results = await toArray(source);\r\n let hasValue = false;\r\n let singleValue = null;\r\n for (const value of results) {\r\n if (await predicate(value) === true) {\r\n if (hasValue === true) {\r\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\r\n }\r\n else {\r\n hasValue = true;\r\n singleValue = value;\r\n }\r\n }\r\n }\r\n return singleValue;\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const skip = (source, count) => {\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 0: {\r\n const generator = async () => (await dataFunc.generator()).slice(count);\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n }\r\n case 1: {\r\n const generator = () => dataFunc.generator().slice(count);\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 1,\r\n });\r\n }\r\n case 2: {\r\n const generator = async () => {\r\n const dataInner = await dataFunc.generator();\r\n return dataInner.slice(count);\r\n };\r\n const dataFuncNew = {\r\n generator,\r\n type: 2,\r\n };\r\n return new BasicParallelEnumerable(dataFuncNew);\r\n }\r\n }\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const skipWhile = (source, predicate) => {\r\n const generator = async () => {\r\n const values = await source.toArray();\r\n let i = 0;\r\n for (; i < values.length; i++) {\r\n const value = values[i];\r\n if (predicate(value, i) === false) {\r\n break;\r\n }\r\n }\r\n const returnedValues = [];\r\n for (; i < values.length; i++) {\r\n returnedValues.push(values[i]);\r\n }\r\n return returnedValues;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const skipWhileAsync = (source, predicate) => {\r\n const generator = async () => {\r\n const values = await source.toArray();\r\n let i = 0;\r\n for (; i < values.length; i++) {\r\n const value = values[i];\r\n if (await predicate(value, i) === false) {\r\n break;\r\n }\r\n }\r\n const returnedValues = [];\r\n for (; i < values.length; i++) {\r\n returnedValues.push(values[i]);\r\n }\r\n return returnedValues;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "export const sum = (source, selector) => {\r\n if (selector) {\r\n return sum2(source, selector);\r\n }\r\n else {\r\n return sum1(source);\r\n }\r\n};\r\nconst sum1 = async (source) => {\r\n let totalSum = 0;\r\n for (const value of await source.toArray()) {\r\n totalSum += value;\r\n }\r\n return totalSum;\r\n};\r\nconst sum2 = async (source, selector) => {\r\n let total = 0;\r\n for (const value of await source.toArray()) {\r\n total += selector(value);\r\n }\r\n return total;\r\n};\r\n", "import { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const sumAsync = async (source, selector) => {\r\n const dataFunc = nextIterationAsync(source, selector);\r\n const values = await typeDataToArray(dataFunc);\r\n let sum = 0;\r\n for (const value of values) {\r\n sum += value;\r\n }\r\n return sum;\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const take = (source, amount) => {\r\n const amountLeft = amount > 0 ? amount : 0;\r\n const dataFunc = source.dataFunc;\r\n switch (dataFunc.type) {\r\n case 1:\r\n const generator1 = () => dataFunc.generator().splice(0, amountLeft);\r\n return new BasicParallelEnumerable({\r\n generator: generator1,\r\n type: 1,\r\n });\r\n case 2:\r\n const generator2 = () => dataFunc.generator().then((x) => x.splice(0, amountLeft));\r\n return new BasicParallelEnumerable({\r\n generator: generator2,\r\n type: 2,\r\n });\r\n case 0:\r\n default:\r\n const generator3 = () => dataFunc.generator().then((x) => x.splice(0, amountLeft));\r\n return new BasicParallelEnumerable({\r\n generator: generator3,\r\n type: 0,\r\n });\r\n }\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const takeWhile = (source, predicate) => {\r\n const generator = async () => {\r\n const values = await source.toArray();\r\n const results = new Array();\r\n if (predicate.length === 1) {\r\n for (const value of values) {\r\n if (predicate(value) === true) {\r\n results.push(value);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < values.length; i++) {\r\n const value = values[i];\r\n if (predicate(value, i) === true) {\r\n results.push(value);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const takeWhileAsync = (source, predicate) => {\r\n const generator = async () => {\r\n const values = await source.toArray();\r\n const results = new Array();\r\n if (predicate.length === 1) {\r\n const sPredicate = predicate;\r\n for (const value of values) {\r\n if (await sPredicate(value) === true) {\r\n results.push(value);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < values.length; i++) {\r\n const value = values[i];\r\n if (await predicate(value, i) === true) {\r\n results.push(value);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { nextIteration } from \"./_nextIteration.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const toMap = async (source, selector) => {\r\n const map = new Map();\r\n const dataFunc = nextIteration(source, (value) => {\r\n const key = selector(value);\r\n return [key, value];\r\n });\r\n const keyValues = await typeDataToArray(dataFunc);\r\n for (const [key, value] of keyValues) {\r\n const array = map.get(key);\r\n if (array === undefined) {\r\n map.set(key, [value]);\r\n }\r\n else {\r\n array.push(value);\r\n }\r\n }\r\n return map;\r\n};\r\n", "import { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const toMapAsync = async (source, selector) => {\r\n const map = new Map();\r\n const dataFunc = nextIterationAsync(source, async (value) => {\r\n const key = await selector(value);\r\n return [key, value];\r\n });\r\n const keyValues = await typeDataToArray(dataFunc);\r\n for (const [key, value] of keyValues) {\r\n const array = map.get(key);\r\n if (array === undefined) {\r\n map.set(key, [value]);\r\n }\r\n else {\r\n array.push(value);\r\n }\r\n }\r\n return map;\r\n};\r\n", "import { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const toObject = async (source, selector) => {\r\n const dataFunc = source.dataFunc;\r\n const values = await typeDataToArray(dataFunc);\r\n const map = {};\r\n for (const value of values) {\r\n map[selector(value)] = value;\r\n }\r\n return map;\r\n};\r\n", "import { nextIterationAsync } from \"./_nextIterationAsync.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const toObjectAsync = async (source, selector) => {\r\n const dataFunc = nextIterationAsync(source, async (value) => {\r\n const key = await selector(value);\r\n return [key, value];\r\n });\r\n const keyValues = await typeDataToArray(dataFunc);\r\n const map = {};\r\n for (const [key, value] of keyValues) {\r\n map[key] = value;\r\n }\r\n return map;\r\n};\r\n", "import { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const toSet = async (source) => {\r\n const dataFunc = source.dataFunc;\r\n const values = await typeDataToArray(dataFunc);\r\n return new Set(values);\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const union = (first, second, comparer) => {\r\n if (comparer) {\r\n return union2(first, second, comparer);\r\n }\r\n else {\r\n return union1(first, second);\r\n }\r\n};\r\nconst union1 = (first, second) => {\r\n const generator = async () => {\r\n const set = new Set();\r\n const secondPromise = second.toArray();\r\n for await (const item of first) {\r\n if (set.has(item) === false) {\r\n set.add(item);\r\n }\r\n }\r\n const secondValues = await secondPromise;\r\n for (const item of secondValues) {\r\n if (set.has(item) === false) {\r\n set.add(item);\r\n }\r\n }\r\n return [...set.keys()];\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\nconst union2 = (first, second, comparer) => {\r\n const generator = async () => {\r\n const result = [];\r\n const values = await Promise.all([first.toArray(), second.toArray()]);\r\n for (const source of values) {\r\n for (const value of source) {\r\n let exists = false;\r\n for (const resultValue of result) {\r\n if (comparer(value, resultValue) === true) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (exists === false) {\r\n result.push(value);\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const unionAsync = (first, second, comparer) => {\r\n const generator = async () => {\r\n const result = [];\r\n const values = await Promise.all([first.toArray(), second.toArray()]);\r\n for (const source of values) {\r\n for (const value of source) {\r\n let exists = false;\r\n for (const resultValue of result) {\r\n if (await comparer(value, resultValue) === true) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (exists === false) {\r\n result.push(value);\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const where = (source, predicate) => {\r\n const generator = async () => {\r\n const values = await source.toArray();\r\n return values.filter(predicate);\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nimport { nextIterationWithIndexAsync } from \"./_nextIterationWithIndexAsync.js\";\r\nimport { typeDataToArray } from \"./_typeDataToArray.js\";\r\nexport const whereAsync = (source, predicate) => {\r\n const generator = async () => {\r\n const dataFunc = nextIterationWithIndexAsync(source, async (value, index) => {\r\n const keep = await predicate(value, index);\r\n return [keep, value];\r\n });\r\n const valuesAsync = await typeDataToArray(dataFunc);\r\n const filteredValues = [];\r\n for (const [keep, value] of valuesAsync) {\r\n if (keep) {\r\n filteredValues.push(value);\r\n }\r\n }\r\n return filteredValues;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const zip = (first, second, resultSelector) => {\r\n if (resultSelector) {\r\n return zip2(first, second, resultSelector);\r\n }\r\n else {\r\n return zip1(first, second);\r\n }\r\n};\r\nconst zip1 = (source, second) => {\r\n const generator = async () => {\r\n const [left, right] = await Promise.all([source.toArray(), second.toArray()]);\r\n const minLength = left.length < right.length ? left.length : right.length;\r\n const results = new Array(minLength);\r\n for (let i = 0; i < minLength; i++) {\r\n const a = left[i];\r\n const b = right[i];\r\n results[i] = [a, b];\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\nconst zip2 = (source, second, resultSelector) => {\r\n const generator = async () => {\r\n const [left, right] = await Promise.all([source.toArray(), second.toArray()]);\r\n const minLength = left.length < right.length ? left.length : right.length;\r\n const results = new Array(minLength);\r\n for (let i = 0; i < minLength; i++) {\r\n const a = left[i];\r\n const b = right[i];\r\n results[i] = resultSelector(a, b);\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const zipAsync = (first, second, resultSelector) => {\r\n const generator = async () => {\r\n const [left, right] = await Promise.all([first.toArray(), second.toArray()]);\r\n const minLength = left.length < right.length ? left.length : right.length;\r\n const resultPromises = new Array(minLength);\r\n for (let i = 0; i < minLength; i++) {\r\n const a = left[i];\r\n const b = right[i];\r\n resultPromises[i] = resultSelector(a, b);\r\n }\r\n return Promise.all(resultPromises);\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { aggregate } from \"./../parallel/_private/aggregate.js\";\r\nimport { all } from \"./../parallel/_private/all.js\";\r\nimport { allAsync } from \"./../parallel/_private/allAsync.js\";\r\nimport { any } from \"./../parallel/_private/any.js\";\r\nimport { anyAsync } from \"./../parallel/_private/anyAsync.js\";\r\nimport { asAsync } from \"./../parallel/_private/asAsync.js\";\r\nimport { average } from \"./../parallel/_private/average.js\";\r\nimport { averageAsync } from \"./../parallel/_private/averageAsync.js\";\r\nimport { chunk } from \"./../parallel/_private/chunk.js\";\r\nimport { concatenate } from \"../parallel/_private/concatenate.js\";\r\nimport { contains } from \"./../parallel/_private/contains.js\";\r\nimport { containsAsync } from \"./../parallel/_private/containsAsync.js\";\r\nimport { count } from \"./../parallel/_private/count.js\";\r\nimport { countAsync } from \"./../parallel/_private/countAsync.js\";\r\nimport { defaultIfEmpty } from \"./../parallel/_private/defaultIfEmpty.js\";\r\nimport { distinct } from \"./../parallel/_private/distinct.js\";\r\nimport { distinctAsync } from \"./../parallel/_private/distinctAsync.js\";\r\nimport { each } from \"./../parallel/_private/each.js\";\r\nimport { eachAsync } from \"./../parallel/_private/eachAsync.js\";\r\nimport { elementAt } from \"./../parallel/_private/elementAt.js\";\r\nimport { elementAtOrDefault } from \"./../parallel/_private/elementAtOrDefault.js\";\r\nimport { except } from \"./../parallel/_private/except.js\";\r\nimport { exceptAsync } from \"./../parallel/_private/exceptAsync.js\";\r\nimport { first } from \"./../parallel/_private/first.js\";\r\nimport { firstAsync } from \"./../parallel/_private/firstAsync.js\";\r\nimport { firstOrDefault } from \"./../parallel/_private/firstOrDefault.js\";\r\nimport { firstOrDefaultAsync } from \"./../parallel/_private/firstOrDefaultAsync.js\";\r\nimport { groupBy } from \"./../parallel/_private/groupBy.js\";\r\nimport { groupByAsync } from \"./../parallel/_private/groupByAsync.js\";\r\nimport { groupByWithSel } from \"./../parallel/_private/groupByWithSel.js\";\r\nimport { groupJoin } from \"./../parallel/_private/groupJoin.js\";\r\nimport { groupJoinAsync } from \"./../parallel/_private/groupJoinAsync.js\";\r\nimport { intersect } from \"./../parallel/_private/intersect.js\";\r\nimport { intersectAsync } from \"./../parallel/_private/intersectAsync.js\";\r\nimport { join } from \"./../parallel/_private/join.js\";\r\nimport { last } from \"./../parallel/_private/last.js\";\r\nimport { lastAsync } from \"./../parallel/_private/lastAsync.js\";\r\nimport { lastOrDefault } from \"./../parallel/_private/lastOrDefault.js\";\r\nimport { lastOrDefaultAsync } from \"./../parallel/_private/lastOrDefaultAsync.js\";\r\nimport { max } from \"./../parallel/_private/max.js\";\r\nimport { maxAsync } from \"./../parallel/_private/maxAsync.js\";\r\nimport { min } from \"./../parallel/_private/min.js\";\r\nimport { minAsync } from \"./../parallel/_private/minAsync.js\";\r\nimport { ofType } from \"./../parallel/_private/ofType.js\";\r\nimport { orderBy } from \"./../parallel/_private/orderBy.js\";\r\nimport { orderByAsync } from \"./../parallel/_private/orderByAsync.js\";\r\nimport { orderByDescending } from \"./../parallel/_private/orderByDescending.js\";\r\nimport { orderByDescendingAsync } from \"./../parallel/_private/orderByDescendingAsync.js\";\r\nimport { partition } from \"./../parallel/_private/partition.js\";\r\nimport { partitionAsync } from \"./../parallel/_private/partitionAsync.js\";\r\nimport { reverse } from \"./../parallel/_private/reverse.js\";\r\nimport { select } from \"./../parallel/_private/select.js\";\r\nimport { selectAsync } from \"./../parallel/_private/selectAsync.js\";\r\nimport { selectMany } from \"./../parallel/_private/selectMany.js\";\r\nimport { selectManyAsync } from \"./../parallel/_private/selectManyAsync.js\";\r\nimport { sequenceEquals } from \"./../parallel/_private/sequenceEquals.js\";\r\nimport { sequenceEqualsAsync } from \"./../parallel/_private/sequenceEqualsAsync.js\";\r\nimport { single } from \"./../parallel/_private/single.js\";\r\nimport { singleAsync } from \"./../parallel/_private/singleAsync.js\";\r\nimport { singleOrDefault } from \"./../parallel/_private/singleOrDefault.js\";\r\nimport { singleOrDefaultAsync } from \"./../parallel/_private/singleOrDefaultAsync.js\";\r\nimport { skip } from \"./../parallel/_private/skip.js\";\r\nimport { skipWhile } from \"./../parallel/_private/skipWhile.js\";\r\nimport { skipWhileAsync } from \"./../parallel/_private/skipWhileAsync.js\";\r\nimport { sum } from \"./../parallel/_private/sum.js\";\r\nimport { sumAsync } from \"./../parallel/_private/sumAsync.js\";\r\nimport { take } from \"./../parallel/_private/take.js\";\r\nimport { takeWhile } from \"./../parallel/_private/takeWhile.js\";\r\nimport { takeWhileAsync } from \"./../parallel/_private/takeWhileAsync.js\";\r\nimport { toArray } from \"./../parallel/_private/toArray.js\";\r\nimport { toMap } from \"./../parallel/_private/toMap.js\";\r\nimport { toMapAsync } from \"./../parallel/_private/toMapAsync.js\";\r\nimport { toObject } from \"./../parallel/_private/toObject.js\";\r\nimport { toObjectAsync } from \"./../parallel/_private/toObjectAsync.js\";\r\nimport { toSet } from \"./../parallel/_private/toSet.js\";\r\nimport { union } from \"./../parallel/_private/union.js\";\r\nimport { unionAsync } from \"./../parallel/_private/unionAsync.js\";\r\nimport { where } from \"./../parallel/_private/where.js\";\r\nimport { whereAsync } from \"./../parallel/_private/whereAsync.js\";\r\nimport { zip } from \"./../parallel/_private/zip.js\";\r\nimport { zipAsync } from \"./../parallel/_private/zipAsync.js\";\r\nexport const bindLinqParallel = (object) => {\r\n const prototype = object.prototype;\r\n const bind = (func, key) => {\r\n const wrapped = function (...params) {\r\n return func(this, ...params);\r\n };\r\n Object.defineProperty(wrapped, \"length\", { value: func.length - 1 });\r\n prototype[key] = wrapped;\r\n };\r\n bind(aggregate, \"aggregate\");\r\n bind(all, \"all\");\r\n bind(allAsync, \"allAsync\");\r\n bind(any, \"any\");\r\n bind(anyAsync, \"anyAsync\");\r\n bind(asAsync, \"asAsync\");\r\n bind(average, \"average\");\r\n bind(averageAsync, \"averageAsync\");\r\n bind(chunk, \"chunk\");\r\n bind(concatenate, \"concatenate\");\r\n bind(contains, \"contains\");\r\n bind(containsAsync, \"containsAsync\");\r\n bind(count, \"count\");\r\n bind(countAsync, \"countAsync\");\r\n bind(defaultIfEmpty, \"defaultIfEmpty\");\r\n bind(distinct, \"distinct\");\r\n bind(distinctAsync, \"distinctAsync\");\r\n bind(each, \"each\");\r\n bind(eachAsync, \"eachAsync\");\r\n bind(elementAt, \"elementAt\");\r\n bind(elementAtOrDefault, \"elementAtOrDefault\");\r\n bind(except, \"except\");\r\n bind(exceptAsync, \"exceptAsync\");\r\n bind(first, \"first\");\r\n bind(firstAsync, \"firstAsync\");\r\n bind(firstOrDefault, \"firstOrDefault\");\r\n bind(firstOrDefaultAsync, \"firstOrDefaultAsync\");\r\n bind(groupBy, \"groupBy\");\r\n bind(groupByAsync, \"groupByAsync\");\r\n bind(groupByWithSel, \"groupByWithSel\");\r\n bind(groupJoin, \"groupJoin\");\r\n bind(groupJoinAsync, \"groupJoinAsync\");\r\n bind(groupJoin, \"groupJoin\");\r\n bind(groupJoinAsync, \"groupJoinAsync\");\r\n bind(intersect, \"intersect\");\r\n bind(intersectAsync, \"intersectAsync\");\r\n bind(join, \"joinByKey\");\r\n bind(last, \"last\");\r\n bind(lastAsync, \"lastAsync\");\r\n bind(lastOrDefault, \"lastOrDefault\");\r\n bind(lastOrDefaultAsync, \"lastOrDefaultAsync\");\r\n bind(max, \"max\");\r\n bind(maxAsync, \"maxAsync\");\r\n bind(min, \"min\");\r\n bind(minAsync, \"minAsync\");\r\n bind(ofType, \"ofType\");\r\n bind(orderBy, \"orderBy\");\r\n bind(orderByAsync, \"orderByAsync\");\r\n bind(orderByDescending, \"orderByDescending\");\r\n bind(orderByDescendingAsync, \"orderByDescendingAsync\");\r\n bind(partition, \"partition\");\r\n bind(partitionAsync, \"partitionAsync\");\r\n bind(reverse, \"reverse\");\r\n bind(select, \"select\");\r\n bind(selectAsync, \"selectAsync\");\r\n bind(selectMany, \"selectMany\");\r\n bind(selectManyAsync, \"selectManyAsync\");\r\n bind(sequenceEquals, \"sequenceEquals\");\r\n bind(sequenceEqualsAsync, \"sequenceEqualsAsync\");\r\n bind(single, \"single\");\r\n bind(singleAsync, \"singleAsync\");\r\n bind(singleOrDefault, \"singleOrDefault\");\r\n bind(singleOrDefaultAsync, \"singleOrDefaultAsync\");\r\n bind(skip, \"skip\");\r\n bind(skipWhile, \"skipWhile\");\r\n bind(skipWhileAsync, \"skipWhileAsync\");\r\n bind(sum, \"sum\");\r\n bind(sumAsync, \"sumAsync\");\r\n bind(take, \"take\");\r\n bind(takeWhile, \"takeWhile\");\r\n bind(takeWhileAsync, \"takeWhileAsync\");\r\n bind(toArray, \"toArray\");\r\n bind(toMap, \"toMap\");\r\n bind(toMapAsync, \"toMapAsync\");\r\n bind(toObject, \"toObject\");\r\n bind(toObjectAsync, \"toObjectAsync\");\r\n bind(toSet, \"toSet\");\r\n bind(union, \"union\");\r\n bind(unionAsync, \"unionAsync\");\r\n bind(where, \"where\");\r\n bind(whereAsync, \"whereAsync\");\r\n bind(zip, \"zip\");\r\n bind(zipAsync, \"zipAsync\");\r\n};\r\n", "import { ArgumentOutOfRangeException, ErrorString, InvalidOperationException } from \"../shared/index.js\";\r\nimport { BasicEnumerable } from \"../sync/BasicEnumerable.js\";\r\nexport const bindString = () => {\r\n var _a;\r\n const prototype = String.prototype;\r\n const propertyNames = Object.getOwnPropertyNames(BasicEnumerable.prototype);\r\n for (const prop of propertyNames) {\r\n prototype[prop] = (_a = prototype[prop]) !== null && _a !== void 0 ? _a : BasicEnumerable.prototype[prop];\r\n }\r\n prototype.first = function (predicate) {\r\n if (predicate) {\r\n for (let i = 0; i < this.length; i++) {\r\n const value = this[i];\r\n if (predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n if (this.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return this[0];\r\n };\r\n prototype.firstOrDefault = function (predicate) {\r\n if (predicate) {\r\n for (let i = 0; i < this.length; i++) {\r\n const value = this[i];\r\n if (predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n return null;\r\n }\r\n return this.length === 0 ? null : this[0];\r\n };\r\n prototype.count = function (predicate) {\r\n if (predicate) {\r\n let count = 0;\r\n for (let i = 0; i < this.length; i++) {\r\n if (predicate(this[i]) === true) {\r\n count++;\r\n }\r\n }\r\n return count;\r\n }\r\n else {\r\n return this.length;\r\n }\r\n };\r\n prototype.elementAt = function (index) {\r\n if (index < 0 || index >= this.length) {\r\n throw new ArgumentOutOfRangeException(\"index\");\r\n }\r\n return this[index];\r\n };\r\n prototype.elementAtOrDefault = function (index) {\r\n return this[index] || null;\r\n };\r\n prototype.last = function (predicate) {\r\n if (predicate) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n const value = this[i];\r\n if (predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n throw new InvalidOperationException(ErrorString.NoMatch);\r\n }\r\n else {\r\n if (this.length === 0) {\r\n throw new InvalidOperationException(ErrorString.NoElements);\r\n }\r\n return this[this.length - 1];\r\n }\r\n };\r\n prototype.lastOrDefault = function (predicate) {\r\n if (predicate) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n const value = this[i];\r\n if (predicate(value) === true) {\r\n return value;\r\n }\r\n }\r\n return null;\r\n }\r\n else {\r\n return this.length === 0 ? null : this[this.length - 1];\r\n }\r\n };\r\n prototype.reverse = function () {\r\n const outer = this;\r\n function* generator() {\r\n for (let i = outer.length - 1; i >= 0; i--) {\r\n yield outer[i];\r\n }\r\n }\r\n return new BasicEnumerable(generator);\r\n };\r\n};\r\n", "import { bindArray } from \"./bindArray.js\";\r\nimport { bindString } from \"./bindString.js\";\r\nimport { bindLinq } from \"./bindLinq.js\";\r\nexport const initializeLinq = () => {\r\n bindLinq(Map);\r\n bindLinq(Set);\r\n bindString();\r\n bindArray(Array);\r\n bindArray(Int8Array);\r\n bindArray(Int16Array);\r\n bindArray(Int32Array);\r\n bindArray(Uint8Array);\r\n bindArray(Uint8ClampedArray);\r\n bindArray(Uint16Array);\r\n bindArray(Uint32Array);\r\n bindArray(Float32Array);\r\n bindArray(Float64Array);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../async/BasicAsyncEnumerable.js\";\r\nimport { BasicParallelEnumerable } from \"../parallel/BasicParallelEnumerable.js\";\r\nimport { BasicEnumerable } from \"../sync/BasicEnumerable.js\";\r\nimport { bindArray } from \"./bindArray.js\";\r\nimport { bindArrayEnumerable } from \"./bindArrayEnumerable.js\";\r\nimport { bindLinq } from \"./bindLinq.js\";\r\nimport { bindLinqAsync } from \"./bindLinqAsync.js\";\r\nimport { bindLinqParallel } from \"./bindLinqParallel.js\";\r\nimport { bindString } from \"./bindString.js\";\r\nbindLinq(BasicEnumerable);\r\nbindLinqAsync(BasicAsyncEnumerable);\r\nbindLinqParallel(BasicParallelEnumerable);\r\nbindArrayEnumerable();\r\nexport { bindLinq, bindLinqAsync, bindArray, bindString };\r\nexport { initializeLinq } from \"./initializeLinq.js\";\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const empty = () => {\r\n return new BasicEnumerable(function* () { });\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const enumerateObject = (source) => {\r\n function* iterable() {\r\n for (const key in source) {\r\n yield [key, source[key]];\r\n }\r\n }\r\n return new BasicEnumerable(iterable);\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const flatten = (source, shallow) => {\r\n function* iterator(source) {\r\n for (const item of source) {\r\n if (item[Symbol.iterator] !== undefined && typeof item !== \"string\") {\r\n yield* shallow ? item : iterator(item);\r\n }\r\n else {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicEnumerable(() => iterator(source));\r\n};\r\n", "import { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const from = (source) => {\r\n const isArrayLike = (x) => {\r\n return Array.isArray(x) || (typeof x === \"object\" && typeof x.length === \"number\" && (x.length === 0 || 0 in x));\r\n };\r\n const isIterableType = (x) => typeof x === \"function\";\r\n if (isArrayLike(source)) {\r\n const generator = function* () {\r\n for (let i = 0; i < source.length; i++) {\r\n yield source[i];\r\n }\r\n };\r\n return new BasicEnumerable(generator);\r\n }\r\n if (isIterableType(source)) {\r\n return new BasicEnumerable(source);\r\n }\r\n return new BasicEnumerable(function* () {\r\n for (const val of source) {\r\n yield val;\r\n }\r\n });\r\n};\r\n", "import { ArgumentOutOfRangeException } from \"../../shared/index.js\";\r\nimport { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const range = (start, count) => {\r\n if (start < 0 || (start + count - 1) > Number.MAX_SAFE_INTEGER) {\r\n throw new ArgumentOutOfRangeException(\"start\");\r\n }\r\n function* iterator() {\r\n const max = start + count;\r\n for (let i = start; i < max; i++) {\r\n yield i;\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "import { ArgumentOutOfRangeException } from \"../../shared/index.js\";\r\nimport { BasicEnumerable } from \"../BasicEnumerable.js\";\r\nexport const repeat = (element, count) => {\r\n if (count < 0) {\r\n throw new ArgumentOutOfRangeException(\"count\");\r\n }\r\n function* iterator() {\r\n for (let i = 0; i < count; i++) {\r\n yield element;\r\n }\r\n }\r\n return new BasicEnumerable(iterator);\r\n};\r\n", "export { empty } from \"./empty.js\";\r\nexport { enumerateObject } from \"./enumerateObject.js\";\r\nexport { flatten } from \"./flatten.js\";\r\nexport { from } from \"./from.js\";\r\nexport { range } from \"./range.js\";\r\nexport { repeat } from \"./repeat.js\";\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const emptyAsync = () => {\r\n return new BasicAsyncEnumerable(async function* iterable() { });\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const enumerateObjectAsync = (source) => {\r\n async function* iterable() {\r\n for (const key in source) {\r\n yield [key, source[key]];\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterable);\r\n};\r\n", "import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const flattenAsync = (source, shallow) => {\r\n async function* iterator(sourceInner) {\r\n for await (const item of sourceInner) {\r\n if (item[Symbol.asyncIterator] !== undefined) {\r\n const items = shallow ? item : iterator(item);\r\n for await (const inner of items) {\r\n yield inner;\r\n }\r\n }\r\n else {\r\n yield item;\r\n }\r\n }\r\n }\r\n return new BasicAsyncEnumerable(() => iterator(source));\r\n};\r\n", "import { ArgumentOutOfRangeException } from \"../../shared/index.js\";\r\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const rangeAsync = (start, count) => {\r\n if (start < 0 || (start + count - 1) > Number.MAX_SAFE_INTEGER) {\r\n throw new ArgumentOutOfRangeException(\"start\");\r\n }\r\n async function* iterator() {\r\n const max = start + count;\r\n for (let i = start; i < max; i++) {\r\n yield i;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "import { ArgumentOutOfRangeException } from \"../../shared/index.js\";\r\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable.js\";\r\nexport const repeatAsync = (element, count, delay) => {\r\n if (count < 0) {\r\n throw new ArgumentOutOfRangeException(\"count\");\r\n }\r\n if (delay) {\r\n return repeat2(element, count, delay);\r\n }\r\n else {\r\n return repeat1(element, count);\r\n }\r\n};\r\nconst repeat1 = (element, count) => {\r\n async function* iterator() {\r\n for (let i = 0; i < count; i++) {\r\n yield element;\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\nconst repeat2 = (element, count, delay) => {\r\n async function* iterator() {\r\n for (let i = 0; i < count; i++) {\r\n yield await new Promise((resolve) => setTimeout(() => resolve(element), delay));\r\n }\r\n }\r\n return new BasicAsyncEnumerable(iterator);\r\n};\r\n", "export { emptyAsync } from \"./emptyAsync.js\";\r\nexport { enumerateObjectAsync } from \"./enumerateObjectAsync.js\";\r\nexport { flattenAsync } from \"./flattenAsync.js\";\r\nexport { fromAsync } from \"./fromAsync.js\";\r\nexport { rangeAsync } from \"./rangeAsync.js\";\r\nexport { repeatAsync } from \"./repeatAsync.js\";\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const emptyParallel = () => {\r\n const dataFunc = {\r\n generator: async () => [],\r\n type: 0,\r\n };\r\n return new BasicParallelEnumerable(dataFunc);\r\n};\r\n", "import { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const flattenParallel = (source, shallow) => {\r\n async function* iterator(sourceInner) {\r\n for await (const item of sourceInner) {\r\n if (item[Symbol.asyncIterator] !== undefined) {\r\n const items = shallow ? item : iterator(item);\r\n for await (const inner of items) {\r\n yield inner;\r\n }\r\n }\r\n else {\r\n yield item;\r\n }\r\n }\r\n }\r\n const generator = async () => {\r\n const results = [];\r\n for await (const x of iterator(source)) {\r\n results.push(x);\r\n }\r\n return results;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\n", "import { ArgumentOutOfRangeException } from \"../../shared/index.js\";\r\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const rangeParallel = (start, count) => {\r\n if (start < 0 || (start + count - 1) > Number.MAX_SAFE_INTEGER) {\r\n throw new ArgumentOutOfRangeException(\"start\");\r\n }\r\n const generator = () => {\r\n const items = [];\r\n const maxI = start + count;\r\n for (let i = start; i < maxI; i++) {\r\n items.push(Promise.resolve(i));\r\n }\r\n return items;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 1,\r\n });\r\n};\r\n", "import { ArgumentOutOfRangeException } from \"../../shared/index.js\";\r\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable.js\";\r\nexport const repeatParallel = (element, count, delay) => {\r\n if (count < 0) {\r\n throw new ArgumentOutOfRangeException(\"count\");\r\n }\r\n if (delay) {\r\n return repeat2(element, count, delay);\r\n }\r\n else {\r\n return repeat1(element, count);\r\n }\r\n};\r\nconst repeat1 = (element, count) => {\r\n const generator = async () => {\r\n const values = new Array(count);\r\n for (let i = 0; i < count; i++) {\r\n values[i] = element;\r\n }\r\n return values;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 0,\r\n });\r\n};\r\nconst repeat2 = (element, count, delay) => {\r\n const generator = async () => {\r\n const values = new Array(count);\r\n for (let i = 0; i < count; i++) {\r\n values[i] = new Promise((resolve) => setTimeout(() => resolve(element), delay));\r\n }\r\n return values;\r\n };\r\n return new BasicParallelEnumerable({\r\n generator,\r\n type: 2,\r\n });\r\n};\r\n", "export { emptyParallel } from \"./emptyParallel.js\";\r\nexport { flattenParallel } from \"./flattenParallel.js\";\r\nexport { fromParallel } from \"./fromParallel.js\";\r\nexport { rangeParallel } from \"./rangeParallel.js\";\r\nexport { repeatParallel } from \"./repeatParallel.js\";\r\n", "import { ArrayEnumerable } from \"./ArrayEnumerable.js\";\r\nimport { BasicEnumerable } from \"./BasicEnumerable.js\";\r\nexport const isEnumerable = (source) => {\r\n if (!source) {\r\n return false;\r\n }\r\n if (source instanceof BasicEnumerable) {\r\n return true;\r\n }\r\n if (source instanceof ArrayEnumerable) {\r\n return true;\r\n }\r\n if (typeof source[Symbol.iterator] !== \"function\") {\r\n return false;\r\n }\r\n const propertyNames = Object.getOwnPropertyNames(BasicEnumerable.prototype)\r\n .filter((v) => v !== \"constructor\");\r\n const methods = source.prototype || source;\r\n for (const prop of propertyNames) {\r\n if (typeof methods[prop] !== \"function\") {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n", "import { BasicParallelEnumerable } from \"./BasicParallelEnumerable.js\";\r\nexport const isParallelEnumerable = (source) => {\r\n if (!source) {\r\n return false;\r\n }\r\n if (source instanceof BasicParallelEnumerable) {\r\n return true;\r\n }\r\n if (typeof source[Symbol.asyncIterator] !== \"function\") {\r\n return false;\r\n }\r\n const propertyNames = Object.getOwnPropertyNames(BasicParallelEnumerable.prototype)\r\n .filter((v) => v !== \"constructor\");\r\n const methods = source.prototype || source;\r\n for (const prop of propertyNames) {\r\n if (typeof methods[prop] !== \"function\") {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n", "import { BasicAsyncEnumerable } from \"./BasicAsyncEnumerable.js\";\r\nexport const isAsyncEnumerable = (source) => {\r\n if (!source) {\r\n return false;\r\n }\r\n if (source instanceof BasicAsyncEnumerable) {\r\n return true;\r\n }\r\n if (typeof source[Symbol.asyncIterator] !== \"function\") {\r\n return false;\r\n }\r\n const propertyNames = Object.getOwnPropertyNames(BasicAsyncEnumerable.prototype)\r\n .filter((v) => v !== \"constructor\");\r\n const methods = source.prototype || source;\r\n for (const prop of propertyNames) {\r\n if (typeof methods[prop] !== \"function\") {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n", "export * from \"./types/index.js\";\r\nexport * from \"./shared/index.js\";\r\nexport { ArrayEnumerable } from \"./sync/ArrayEnumerable.js\";\r\nexport * from \"./initializer/initializer.js\";\r\nexport * from \"./sync/static/index.js\";\r\nexport * from \"./async/static/index.js\";\r\nexport * from \"./parallel/static/index.js\";\r\nexport { isEnumerable } from \"./sync/isEnumerable.js\";\r\nexport { isParallelEnumerable } from \"./parallel/isParallelEnumerable.js\";\r\nexport { isAsyncEnumerable } from \"./async/isAsyncEnumerable.js\";\r\n", "// 0. Import Module\n\nimport {IEnumerable, initializeLinq} from \"linq-to-typescript\"\n// 1. Declare that the JS types implement the IEnumerable interface\ndeclare global {\n interface Array extends IEnumerable { }\n interface Uint8Array extends IEnumerable { }\n interface Uint8ClampedArray extends IEnumerable { }\n interface Uint16Array extends IEnumerable { }\n interface Uint32Array extends IEnumerable { }\n interface Int8Array extends IEnumerable { }\n interface Int16Array extends IEnumerable { }\n interface Int32Array extends IEnumerable { }\n interface Float32Array extends IEnumerable { }\n interface Float64Array extends IEnumerable { }\n interface Map extends IEnumerable<[K, V]> { }\n interface Set extends IEnumerable { }\n interface String extends IEnumerable { }\n}\n// 2. Bind Linq Functions to Array, Map, etc\ninitializeLinq()", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "import './utils/linq'\nimport DataCache from \"./server/dataCache/dataCache\";\nimport {TimeSpan, UnixTime} from \"./server/dataCache/time\";\n\n\nconst resolution = TimeSpan.fromSeconds(2);\n\nconst cache = new DataCache(x => (Promise.resolve({foo: 0})), resolution)\n\nconst sampleTimes = [1, 2, 3, 4, 5, 6].select(e => UnixTime.fromTicks(e)).toArray();\n\nconst series = cache.getSeries(sampleTimes)\n\nconsole.log(series)\n\ncache.gotData.subscribe(d=> console.log(\"got data for timestamp \" + d))\n\nconsole.log(\"done\")\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "import {TimeSpan, UnixTime} from \"./time\";\nimport {Observable, Subject} from \"rxjs\";\nimport {SkipList} from \"./skipList/skipList\";\nimport {createDispatchQueue} from \"./promiseQueue\";\nimport {SkipListNode} from \"./skipList/skipListNode\";\nimport {RecordSeries} from \"./data\";\nimport {isUndefined, Maybe} from \"../../utils/maybe\";\n\n\nexport const FetchResult =\n{\n notAvailable : \"N/A\",\n tryLater : \"Try Later\"\n} as const\n\nexport type FetchResult =\n | T\n | typeof FetchResult.notAvailable\n | typeof FetchResult.tryLater\n\nfunction reverseBits(x : number): number\n{\n // https://stackoverflow.com/a/60227327/141397\n\n x = (x & 0x55555555) << 1 | (x & 0xAAAAAAAA) >> 1;\n x = (x & 0x33333333) << 2 | (x & 0xCCCCCCCC) >> 2;\n x = (x & 0x0F0F0F0F) << 4 | (x & 0xF0F0F0F0) >> 4;\n x = (x & 0x00FF00FF) << 8 | (x & 0xFF00FF00) >> 8;\n x = (x & 0x0000FFFF) << 16 | (x & 0xFFFF0000) >> 16;\n\n return x >>> 0;\n}\n\n\nexport default class DataCache>\n{\n private readonly cache: SkipList> = new SkipList>()\n private readonly resolution: TimeSpan;\n\n readonly #fetch: (t: UnixTime) => Promise>;\n\n private readonly fetchQueue = createDispatchQueue(6)\n private readonly fetching: Set = new Set()\n\n public readonly gotData: Observable;\n\n constructor(fetch: (t: UnixTime) => Promise>, resolution: TimeSpan)\n {\n this.#fetch = fetch;\n this.resolution = resolution;\n this.gotData = new Subject()\n }\n\n public prefetch(times: Array, clear = true)\n {\n if (clear)\n {\n this.fetching.clear()\n this.fetchQueue.clear()\n }\n\n const timesWithPriority = times.map((time, index) => ({time, priority: reverseBits(index)}))\n timesWithPriority.sort((x, y) => x.priority - y.priority)\n\n for (let i = 0; i < timesWithPriority.length; i++)\n {\n const time = timesWithPriority[i].time.round(this.resolution)\n const t = time.ticks;\n\n const node = this.cache.find(t);\n if (node.index !== t)\n this.fetchData(time);\n }\n }\n\n public get(timeStamp: UnixTime, fetch = true): Maybe\n {\n const time = timeStamp.round(this.resolution)\n const t = time.ticks;\n\n const node = this.cache.find(t);\n if (node.index === t)\n return node.value\n\n if (fetch)\n this.fetchData(time);\n\n return this.interpolate(node, t)\n }\n\n public getSeries(sampleTimes: UnixTime[]): RecordSeries\n {\n this.prefetch(sampleTimes)\n return sampleTimes.map(time => ({time, value: this.get(time, false)}))\n }\n\n private interpolate(before: SkipListNode>, t: number): Maybe\n {\n const dataBefore = before.value\n const after = before.next[0];\n const dataAfter = after.value\n\n if (isUndefined(dataBefore) && isUndefined(dataAfter))\n return undefined\n\n if (isUndefined(dataBefore))\n return dataAfter\n\n if (isUndefined(dataAfter))\n return dataBefore\n\n const p = t - before.index\n const n = after.index - t\n const pn = p + n\n\n let interpolated: Partial> = {}\n\n for (const k of Object.keys(dataBefore))\n {\n interpolated[k] = (dataBefore[k] * n + dataAfter[k] * p) / pn\n }\n\n return interpolated as T\n }\n\n private fetchData(time: UnixTime)\n {\n const t = time.ticks;\n\n if (this.fetching.has(t)) // we are already fetching t\n return\n\n const fetchTask = () =>\n {\n const onSuccess = (data: FetchResult) =>\n {\n if (data === FetchResult.tryLater)\n {\n console.warn(FetchResult.tryLater)\n return\n }\n\n const value = data === FetchResult.notAvailable ? undefined : data;\n this.cache.insert(value, t)\n }\n\n const onFailure = (_: unknown) =>\n {\n console.error(time.ticks + \" FAILED!\") // should not happen\n }\n\n const dispatch = () =>\n {\n this.fetching.delete(time.ticks);\n (this.gotData as Subject).next(time);\n }\n\n return this.#fetch(time)\n .then(d => onSuccess(d), f => onFailure(f))\n .finally(() => dispatch())\n };\n\n this.fetching.add(t)\n this.fetchQueue.dispatch(() => fetchTask());\n }\n\n}", "import {UnixTime} from \"./time\";\n\nexport type Timestamped = { time: UnixTime, value: T }\n\nexport type Pair = [T1, T2]\n\nexport type Position = { readonly x: number, readonly y: number }\nexport type Direction = { readonly dx: number, readonly dy: number }\nexport type Size = { readonly width: number, readonly height: number }\nexport type Rect = Position & Size\n\nexport type Mutable = { -readonly [P in keyof T]: T[P] };\n\nexport type FieldKey = { [P in keyof T]: T[P] extends (...args: any) => any ? never : P }[keyof T];\nexport type AllFields = Pick>;\nexport type SomeFields = Partial>\nexport const asMutable = (t: T) => (t as Mutable);\nexport const asMutableArray = (t: ReadonlyArray) => (t as Array);\nexport const cast = (t: unknown) => (t as T);\n\nexport type Rename = Pick> & { [P in N]: T[K] }", "import {asMutableArray} from \"../types\";\n\nexport type Next = { readonly next: ReadonlyArray> }\nexport type Index = { readonly index: number }\nexport type Indexed = Index & { value: T }\nexport type SkipListNode = Next & Indexed\nexport type Path = SkipListNode[];\n\nexport function find(index: number, startNode: SkipListNode, endNode: SkipListNode): SkipListNode\n{\n let node = startNode\n\n for (let level = startNode.next.length - 1; level >= 0; level--)\n node = findOnLevel(index, node, endNode, level)\n\n return node\n}\n\nexport function findOnLevel(index: number, startNode: SkipListNode, endNode: SkipListNode, level: number): SkipListNode\n{\n let node: SkipListNode = startNode\n\n while (true)\n {\n const next = node.next[level]\n\n if (index < next.index || endNode.index < next.index)\n return node\n\n node = next\n }\n}\n\nexport function findPath(index: number, startNode: SkipListNode, endNode: SkipListNode): Path\n{\n const path = Array(startNode.next.length - 1)\n let node = startNode\n\n for (let level = startNode.next.length - 1; level >= 0; level--)\n {\n node = findOnLevel(index, node, endNode, level)\n path[level] = node\n }\n\n return path\n}\n\nexport function insert(nodeToInsert: SkipListNode, after: SkipListNode, onLevel: number): void\n{\n asMutableArray(nodeToInsert.next)[onLevel] = after.next[onLevel]\n asMutableArray(after.next)[onLevel] = nodeToInsert\n}", "import {find, findPath, insert, Path, SkipListNode} from \"./skipListNode\";\n\nexport class SkipList\n{\n public readonly head: SkipListNode;\n public readonly tail: SkipListNode;\n\n private readonly nLevels: number;\n\n private _length = 0\n\n constructor(nLevels: number = 20)\n {\n // TODO: auto-levels\n\n this.tail =\n {\n index: Number.MAX_VALUE,\n next: [],\n value: undefined!\n };\n\n this.head =\n {\n index: Number.MIN_VALUE,\n next: Array(nLevels).fill(this.tail),\n value: undefined!\n };\n\n this.nLevels = nLevels\n }\n\n public find(index: number, startNode = this.head, endNode = this.tail): SkipListNode\n {\n return find(index, startNode, endNode)\n }\n\n private findPath(index: number, startNode = this.head, endNode = this.tail): Path\n {\n return findPath(index, startNode, endNode)\n }\n\n public insert(value: T, index: number): SkipListNode\n {\n const path = this.findPath(index)\n const node = path[0];\n\n if (node.index === index) // overwrite\n {\n node.value = value\n return node\n }\n\n const nodeToInsert = {value, index, next: []} as SkipListNode\n\n const rnd = (Math.random() * (1 << this.nLevels)) << 0;\n\n for (let level = 0; level < this.nLevels; level++)\n {\n insert(nodeToInsert, path[level], level)\n\n if ((rnd & (1 << level)) === 0)\n break\n }\n\n this._length += 1\n\n return nodeToInsert;\n }\n\n get length(): number\n {\n return this._length;\n }\n\n // public remove(index: number): void\n // {\n // // TODO\n // }\n}\n", "\n\nexport function createDispatchQueue(maxInflight: number, debug = false): { dispatch: (task: () => Promise) => number; clear: () => void }\n{\n const queue: Array<() => Promise> = []\n\n let inflight = 0;\n\n function done()\n {\n inflight--\n\n if (debug && inflight + queue.length === 0)\n console.log(\"queue empty\")\n\n if (inflight < maxInflight && queue.length > 0)\n {\n const task = queue.pop()!\n inflight++\n task().finally(() => done())\n }\n }\n\n function dispatch(task: () => Promise) : number\n {\n if (inflight < maxInflight)\n {\n inflight++;\n task().finally(() => done())\n }\n else\n {\n if (debug && queue.length === 0)\n console.log(\"queue in use\")\n\n queue.push(task)\n }\n\n return queue.length\n }\n\n function clear()\n {\n // https://stackoverflow.com/questions/1232040/how-do-i-empty-an-array-in-javascript\n queue.length = 0\n if (debug)\n console.log(\"queue cleared\")\n }\n\n return {dispatch, clear}\n}", "export type Maybe = T | undefined | null;\n\nexport function isDefined(e: Maybe): e is T\n{\n return e != undefined // != by design to include null\n}\n\nexport function isUndefined(e: Maybe): e is undefined | null\n{\n return e == undefined // == by design to include null\n}\n\nexport function toArray(e: Maybe): T[]\n{\n return isDefined(e) ? [e] : []\n}\n", "export function trim(str: string, string: string = \" \"): string\n{\n const pattern = '^[' + string + ']*(.*?)[' + string + ']*$';\n return str.replace(new RegExp(pattern), '$1')\n}", "import {trim} from \"./stringUtils\";\n\nexport class UnixTime\n{\n private constructor(readonly ticks: number)\n {\n }\n\n public static readonly Epoch = new UnixTime(0)\n\n public static now(): UnixTime\n {\n return UnixTime.fromTicks(Date.now() / 1000)\n }\n\n public static fromDate(date: Date): UnixTime\n {\n return UnixTime.fromTicks(date.getTime() / 1000)\n }\n\n public toDate(): Date\n {\n return new Date(this.ticks * 1000)\n }\n\n public static fromTicks(ticks: number): UnixTime\n {\n return new UnixTime(ticks)\n }\n\n public later(timeSpan: TimeSpan): UnixTime\n {\n return new UnixTime(this.ticks + timeSpan.ticks)\n }\n\n public move(ticks: number): UnixTime\n {\n return new UnixTime(this.ticks + ticks)\n }\n\n public earlier(timeSpan: TimeSpan): UnixTime\n {\n return new UnixTime(this.ticks - timeSpan.ticks)\n }\n\n public isEarlierThan(time: UnixTime): boolean\n {\n return this.ticks < time.ticks\n }\n\n public isEarlierThanOrEqual(time: UnixTime): boolean\n {\n return this.ticks <= time.ticks\n }\n\n public isLaterThan(time: UnixTime): boolean\n {\n return this.ticks > time.ticks\n }\n\n public isLaterThanOrEqual(time: UnixTime): boolean\n {\n return this.ticks >= time.ticks\n }\n\n public isEqual(time: UnixTime): boolean\n {\n return this.ticks === time.ticks\n }\n\n public isInTheFuture(): boolean\n {\n return this.isLaterThan(UnixTime.now())\n }\n\n public isInThePast(): boolean\n {\n return this.ticks < UnixTime.now().ticks\n }\n\n public round(ticks:number) : UnixTime\n public round(duration: TimeSpan) : UnixTime\n public round(durationOrTicks: TimeSpan | number) : UnixTime\n {\n const ticks = (typeof durationOrTicks === \"number\") ? durationOrTicks : durationOrTicks.ticks\n\n return new UnixTime(Math.round(this.ticks / ticks) * ticks)\n }\n\n public rangeTo(time: UnixTime): TimeRange\n {\n return TimeRange.fromTimes(this, time);\n }\n\n public rangeBefore(timeSpan: TimeSpan): TimeRange\n {\n return TimeRange.fromTimes(this.earlier(timeSpan), this);\n }\n\n public rangeAfter(timeSpan: TimeSpan): TimeRange\n {\n return TimeRange.fromTimes(this, this.later(timeSpan));\n }\n\n public toString() : string\n {\n return this.ticks.toString()\n }\n}\n\n\nexport class TimeSpan\n{\n private constructor(readonly ticks: number) {}\n\n get milliSeconds(): number { return this.ticks * 1000 }\n get seconds() : number { return this.ticks }\n get minutes() : number { return this.ticks / 60 }\n get hours() : number { return this.minutes / 60 }\n get days() : number { return this.hours / 24 }\n get weeks() : number { return this.days / 7 }\n\n public static fromTicks (t: number): TimeSpan { return new TimeSpan(t) }\n public static fromSeconds(t: number): TimeSpan { return TimeSpan.fromTicks(t) }\n public static fromMinutes(t: number): TimeSpan { return TimeSpan.fromSeconds(t*60) }\n public static fromHours (t: number): TimeSpan { return TimeSpan.fromMinutes(t*60) }\n public static fromDays (t: number): TimeSpan { return TimeSpan.fromHours(t*24) }\n public static fromWeeks (t: number): TimeSpan { return TimeSpan.fromDays(t*7) }\n\n public static span(from: UnixTime, to: UnixTime) : TimeSpan\n {\n return TimeSpan.fromTicks(Math.abs(to.ticks - from.ticks))\n }\n\n public add(timeSpan: TimeSpan) : TimeSpan\n {\n return TimeSpan.fromTicks(this.ticks + timeSpan.ticks)\n }\n\n public subtract(timeSpan: TimeSpan) : TimeSpan\n {\n return TimeSpan.fromTicks(this.ticks - timeSpan.ticks)\n }\n\n public divide(n: number) : TimeSpan\n {\n if (n <= 0)\n throw 'n must be positive';\n\n return TimeSpan.fromTicks(this.ticks/n)\n }\n\n public multiply(n: number) : TimeSpan\n {\n if (n < 0)\n throw 'n cannot be negative';\n\n return TimeSpan.fromTicks(this.ticks * n)\n }\n\n public round(ticks:number) : TimeSpan\n public round(duration: TimeSpan) : TimeSpan\n public round(durationOrTicks: TimeSpan | number) : TimeSpan\n {\n const ticks = (typeof durationOrTicks === \"number\")\n ? durationOrTicks\n : durationOrTicks.ticks\n\n return TimeSpan.fromTicks(Math.round(this.ticks / ticks) * ticks)\n }\n\n\n public toString() : string\n {\n let dt = 60*60*24*7\n\n let ticks = this.ticks;\n\n if (ticks === 0)\n return \"0s\"\n\n ticks = Math.abs(ticks)\n\n const nWeeks = Math.floor(ticks / dt)\n ticks -= nWeeks * dt\n\n dt /= 7\n const nDays = Math.floor(ticks / dt)\n ticks -= nDays * dt\n\n dt /= 24\n const nHours = Math.floor(ticks / dt)\n ticks -= nHours * dt\n\n dt /= 60\n const nMinutes = Math.floor(ticks / dt)\n ticks -= nMinutes * dt\n\n dt /= 60\n const nSeconds = Math.floor(ticks / dt)\n\n let s = \"\"\n\n if (nWeeks > 0) s += nWeeks .toString() + \"w \"\n if (nDays > 0) s += nDays .toString() + \"d \"\n if (nHours > 0) s += nHours .toString() + \"h \"\n if (nMinutes > 0) s += nMinutes.toString() + \"m \"\n if (nSeconds > 0) s += nSeconds.toString() + \"s\"\n\n return trim(s);\n }\n}\n\nexport class TimeRange\n{\n private constructor(private readonly from: number, private readonly to: number)\n {\n }\n\n public get start(): UnixTime\n {\n return UnixTime.fromTicks(this.from)\n }\n\n public get mid(): UnixTime\n {\n return UnixTime.fromTicks((this.from + this.to) / 2)\n }\n\n\n public get end(): UnixTime\n {\n return UnixTime.fromTicks(this.to)\n }\n\n public get duration(): TimeSpan\n {\n return TimeSpan.fromTicks(this.to - this.from)\n }\n\n public static fromTimes(from: UnixTime, to: UnixTime): TimeRange\n {\n return from.isLaterThan(to)\n ? new TimeRange(to.ticks, from.ticks)\n : new TimeRange(from.ticks, to.ticks)\n }\n\n public isInside(time: number) : boolean;\n public isInside(time: UnixTime) : boolean;\n public isInside(time: UnixTime | number)\n {\n const t = time instanceof UnixTime ? time.ticks : time\n\n return t >= this.from && t < this.to\n }\n\n public sample(period: TimeSpan): UnixTime[]\n {\n const samples = []\n\n for (let t = this.from; t < this.to; t += period.ticks)\n samples.push(UnixTime.fromTicks(t));\n\n return samples\n }\n\n public subdivide(n: number) : TimeRange[]\n {\n if (n <= 0)\n throw 'n must be positive';\n\n const period = TimeSpan.fromTicks(this.duration.ticks / n);\n if (period === this.duration)\n return [this];\n\n const samples = this.sample(period);\n\n const ranges : TimeRange[] = []\n\n for (let i = 0; i < samples.length;)\n ranges.push(TimeRange.fromTimes(samples[i], samples[++i]))\n\n return ranges\n }\n\n\n public earlier(dt: TimeSpan) : TimeRange\n {\n return new TimeRange(this.from - dt.ticks, this.to - dt.ticks)\n }\n\n public later(dt: TimeSpan) : TimeRange\n {\n return new TimeRange(this.from + dt.ticks, this.to + dt.ticks)\n }\n\n public move(ticks: number) : TimeRange\n {\n return new TimeRange(this.from + ticks, this.to + ticks)\n }\n}\n\n"], + "mappings": "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", + "names": [] +} diff --git a/typescript/DataCache/dist/www/client.js b/typescript/DataCache/dist/www/client.js new file mode 100644 index 000000000..5cdb24861 --- /dev/null +++ b/typescript/DataCache/dist/www/client.js @@ -0,0 +1,12577 @@ +(() => { + var __create = Object.create; + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __getProtoOf = Object.getPrototypeOf; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; + var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); + var __esm = (fn2, res) => function __init() { + return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res; + }; + var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; + var __reExport = (target, module, copyDefault, desc2) => { + if (module && typeof module === "object" || typeof module === "function") { + for (let key of __getOwnPropNames(module)) + if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default")) + __defProp(target, key, { get: () => module[key], enumerable: !(desc2 = __getOwnPropDesc(module, key)) || desc2.enumerable }); + } + return target; + }; + var __toESM = (module, isNodeMode) => { + return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", !isNodeMode && module && module.__esModule ? { get: () => module.default, enumerable: true } : { value: module, enumerable: true })), module); + }; + var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; + }; + + // node_modules/linq-to-typescript/esm/types/index.js + var init_types = __esm({ + "node_modules/linq-to-typescript/esm/types/index.js"() { + } + }); + + // node_modules/linq-to-typescript/esm/shared/ArgumentOutOfRangeException.js + var ArgumentOutOfRangeException; + var init_ArgumentOutOfRangeException = __esm({ + "node_modules/linq-to-typescript/esm/shared/ArgumentOutOfRangeException.js"() { + ArgumentOutOfRangeException = class extends RangeError { + constructor(paramName) { + super(`${paramName} was out of range. Must be non-negative and less than the size of the collection.`); + this.paramName = paramName; + this.name = "ArgumentOutOfRangeException"; + this.stack = this.stack || new Error().stack; + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/shared/EqualityComparer.js + var init_EqualityComparer = __esm({ + "node_modules/linq-to-typescript/esm/shared/EqualityComparer.js"() { + } + }); + + // node_modules/linq-to-typescript/esm/shared/ErrorString.js + var ErrorString; + var init_ErrorString = __esm({ + "node_modules/linq-to-typescript/esm/shared/ErrorString.js"() { + ErrorString = Object.freeze({ + MoreThanOneElement: "Sequence contains more than one element", + MoreThanOneMatchingElement: "Sequence contains more than one matching element", + NoElements: "Sequence contains no elements", + NoMatch: "Sequence contains no matching element" + }); + } + }); + + // node_modules/linq-to-typescript/esm/shared/InvalidOperationException.js + var InvalidOperationException; + var init_InvalidOperationException = __esm({ + "node_modules/linq-to-typescript/esm/shared/InvalidOperationException.js"() { + InvalidOperationException = class extends Error { + constructor(message) { + super(message); + this.name = "InvalidOperationException"; + this.stack = this.stack || new Error().stack; + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/shared/NumberComparer.js + var init_NumberComparer = __esm({ + "node_modules/linq-to-typescript/esm/shared/NumberComparer.js"() { + } + }); + + // node_modules/linq-to-typescript/esm/shared/StrictEqualityComparer.js + var StrictEqualityComparer; + var init_StrictEqualityComparer = __esm({ + "node_modules/linq-to-typescript/esm/shared/StrictEqualityComparer.js"() { + StrictEqualityComparer = (x3, y3) => x3 === y3; + } + }); + + // node_modules/linq-to-typescript/esm/shared/StringifyComparer.js + var init_StringifyComparer = __esm({ + "node_modules/linq-to-typescript/esm/shared/StringifyComparer.js"() { + } + }); + + // node_modules/linq-to-typescript/esm/shared/index.js + var init_shared = __esm({ + "node_modules/linq-to-typescript/esm/shared/index.js"() { + init_ArgumentOutOfRangeException(); + init_EqualityComparer(); + init_ErrorString(); + init_InvalidOperationException(); + init_NumberComparer(); + init_StrictEqualityComparer(); + init_StringifyComparer(); + } + }); + + // node_modules/linq-to-typescript/esm/sync/ArrayEnumerable.js + var ArrayEnumerable; + var init_ArrayEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/sync/ArrayEnumerable.js"() { + ArrayEnumerable = class extends Array { + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/BasicAsyncEnumerable.js + var BasicAsyncEnumerable; + var init_BasicAsyncEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/async/BasicAsyncEnumerable.js"() { + BasicAsyncEnumerable = class { + constructor(iterator) { + this.iterator = iterator; + } + [Symbol.asyncIterator]() { + return this.iterator(); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/BasicParallelEnumerable.js + var BasicParallelEnumerable; + var init_BasicParallelEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/parallel/BasicParallelEnumerable.js"() { + BasicParallelEnumerable = class { + constructor(dataFunc) { + this.dataFunc = dataFunc; + } + [Symbol.asyncIterator]() { + const { dataFunc } = this; + async function* iterator() { + switch (dataFunc.type) { + case 1: + for (const value of dataFunc.generator()) { + yield value; + } + break; + case 2: + for (const value of await dataFunc.generator()) { + yield value; + } + break; + case 0: + default: + for (const value of await dataFunc.generator()) { + yield value; + } + break; + } + } + return iterator(); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/BasicEnumerable.js + var BasicEnumerable; + var init_BasicEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/sync/BasicEnumerable.js"() { + BasicEnumerable = class { + constructor(iterator) { + this.iterator = iterator; + } + [Symbol.iterator]() { + return this.iterator(); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/initializer/bindArray.js + var bindArray; + var init_bindArray = __esm({ + "node_modules/linq-to-typescript/esm/initializer/bindArray.js"() { + init_ArrayEnumerable(); + bindArray = (jsArray) => { + var _a; + const arrayEnumerablePrototype = ArrayEnumerable.prototype; + const bindToPrototype = jsArray.prototype; + const propertyNames = Object.getOwnPropertyNames(arrayEnumerablePrototype); + for (const prop of propertyNames) { + bindToPrototype[prop] = (_a = bindToPrototype[prop]) !== null && _a !== void 0 ? _a : arrayEnumerablePrototype[prop]; + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/initializer/bindArrayEnumerable.js + var bindArrayEnumerable; + var init_bindArrayEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/initializer/bindArrayEnumerable.js"() { + init_shared(); + init_ArrayEnumerable(); + init_BasicEnumerable(); + bindArrayEnumerable = () => { + var _a; + const { prototype } = ArrayEnumerable; + const propertyNames = Object.getOwnPropertyNames(BasicEnumerable.prototype); + for (const prop of propertyNames) { + prototype[prop] = (_a = prototype[prop]) !== null && _a !== void 0 ? _a : BasicEnumerable.prototype[prop]; + } + prototype.all = function(predicate) { + return this.every(predicate); + }; + prototype.any = function(predicate) { + if (predicate) { + return this.some(predicate); + } else { + return this.length !== 0; + } + }; + prototype.count = function(predicate) { + if (predicate) { + let count5 = 0; + for (let i4 = 0; i4 < this.length; i4++) { + if (predicate(this[i4]) === true) { + count5++; + } + } + return count5; + } else { + return this.length; + } + }; + prototype.elementAt = function(index) { + if (index < 0 || index >= this.length) { + throw new ArgumentOutOfRangeException("index"); + } + return this[index]; + }; + prototype.elementAtOrDefault = function(index) { + return this[index] || null; + }; + prototype.first = function(predicate) { + if (predicate) { + const value = this.find(predicate); + if (value === void 0) { + throw new InvalidOperationException(ErrorString.NoMatch); + } else { + return value; + } + } else { + if (this.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return this[0]; + } + }; + prototype.firstOrDefault = function(predicate) { + if (predicate) { + const value = this.find(predicate); + if (value === void 0) { + return null; + } else { + return value; + } + } else { + return this.length === 0 ? null : this[0]; + } + }; + prototype.last = function(predicate) { + if (predicate) { + for (let i4 = this.length - 1; i4 >= 0; i4--) { + const value = this[i4]; + if (predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + } else { + if (this.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return this[this.length - 1]; + } + }; + prototype.lastOrDefault = function(predicate) { + if (predicate) { + for (let i4 = this.length - 1; i4 >= 0; i4--) { + const value = this[i4]; + if (predicate(value) === true) { + return value; + } + } + return null; + } else { + return this.length === 0 ? null : this[this.length - 1]; + } + }; + prototype.max = function(selector) { + if (this.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + if (selector) { + let max5 = Number.NEGATIVE_INFINITY; + for (let i4 = 0; i4 < this.length; i4++) { + max5 = Math.max(selector(this[i4]), max5); + } + return max5; + } else { + return Math.max.apply(null, this); + } + }; + prototype.min = function(selector) { + if (this.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + if (selector) { + let min5 = Number.POSITIVE_INFINITY; + for (let i4 = 0; i4 < this.length; i4++) { + min5 = Math.min(selector(this[i4]), min5); + } + return min5; + } else { + return Math.min.apply(null, this); + } + }; + prototype.reverse = function() { + Array.prototype.reverse.apply(this); + return this; + }; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/aggregate.js + var aggregate, aggregate1, aggregate2, aggregate3; + var init_aggregate = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/aggregate.js"() { + init_shared(); + aggregate = (source2, seedOrFunc, func, resultSelector) => { + if (resultSelector) { + if (!func) { + throw new ReferenceError("TAccumulate function is undefined"); + } + return aggregate3(source2, seedOrFunc, func, resultSelector); + } else if (func) { + return aggregate2(source2, seedOrFunc, func); + } else { + return aggregate1(source2, seedOrFunc); + } + }; + aggregate1 = (source2, func) => { + let aggregateValue; + for (const value of source2) { + if (aggregateValue) { + aggregateValue = func(aggregateValue, value); + } else { + aggregateValue = value; + } + } + if (aggregateValue === void 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return aggregateValue; + }; + aggregate2 = (source2, seed, func) => { + let aggregateValue = seed; + for (const value of source2) { + aggregateValue = func(aggregateValue, value); + } + return aggregateValue; + }; + aggregate3 = (source2, seed, func, resultSelector) => { + let aggregateValue = seed; + for (const value of source2) { + aggregateValue = func(aggregateValue, value); + } + return resultSelector(aggregateValue); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/all.js + var all; + var init_all = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/all.js"() { + all = (source2, predicate) => { + for (const item of source2) { + if (predicate(item) === false) { + return false; + } + } + return true; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/allAsync.js + var allAsync; + var init_allAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/allAsync.js"() { + allAsync = async (source2, predicate) => { + for (const item of source2) { + if (await predicate(item) === false) { + return false; + } + } + return true; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/any.js + var any, any1, any2; + var init_any = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/any.js"() { + any = (source2, predicate) => { + if (predicate) { + return any2(source2, predicate); + } else { + return any1(source2); + } + }; + any1 = (source2) => { + for (const _3 of source2) { + return true; + } + return false; + }; + any2 = (source2, predicate) => { + for (const item of source2) { + if (predicate(item) === true) { + return true; + } + } + return false; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/anyAsync.js + var anyAsync; + var init_anyAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/anyAsync.js"() { + anyAsync = async (source2, predicate) => { + for (const item of source2) { + if (await predicate(item) === true) { + return true; + } + } + return false; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/static/fromAsync.js + var fromAsync; + var init_fromAsync = __esm({ + "node_modules/linq-to-typescript/esm/async/static/fromAsync.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + fromAsync = (promisesOrIterable) => { + if (Array.isArray(promisesOrIterable)) { + if (promisesOrIterable.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return new BasicAsyncEnumerable(async function* () { + for await (const value of promisesOrIterable) { + yield value; + } + }); + } else { + return new BasicAsyncEnumerable(promisesOrIterable); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/asAsync.js + var asAsync; + var init_asAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/asAsync.js"() { + init_fromAsync(); + asAsync = (source2) => { + async function* generator() { + for (const value of source2) { + yield value; + } + } + return fromAsync(generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/static/fromParallel.js + var fromParallel; + var init_fromParallel = __esm({ + "node_modules/linq-to-typescript/esm/parallel/static/fromParallel.js"() { + init_BasicParallelEnumerable(); + fromParallel = (type, generator) => { + return new BasicParallelEnumerable({ + generator, + type + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/asParallel.js + var asParallel; + var init_asParallel = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/asParallel.js"() { + init_fromParallel(); + asParallel = (source2) => { + const generator = async () => { + const array = []; + for (const value of source2) { + array.push(value); + } + return array; + }; + return fromParallel(0, generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/average.js + var average; + var init_average = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/average.js"() { + init_shared(); + average = (source2, selector) => { + let value = 0; + let count5 = 0; + if (selector) { + for (const item of source2) { + value = value + selector(item); + count5 = count5 + 1; + } + } else { + for (const item of source2) { + value = value + item; + count5 = count5 + 1; + } + } + if (count5 === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return value / count5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/averageAsync.js + var averageAsync; + var init_averageAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/averageAsync.js"() { + init_shared(); + averageAsync = async (source2, selector) => { + let value = 0; + let count5 = 0; + for (const item of source2) { + value = value + await selector(item); + count5 = count5 + 1; + } + if (count5 === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return value / count5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/chunk.js + var chunk; + var init_chunk = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/chunk.js"() { + init_BasicEnumerable(); + init_shared(); + chunk = (source2, size) => { + if (size < 1) { + throw new ArgumentOutOfRangeException("index"); + } + function* iterator() { + let yieldChunk = []; + for (const value of source2) { + yieldChunk.push(value); + if (yieldChunk.length === size) { + yield yieldChunk; + yieldChunk = []; + } + } + if (yieldChunk.length) { + yield yieldChunk; + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/concatenate.js + var concatenate; + var init_concatenate = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/concatenate.js"() { + init_BasicEnumerable(); + concatenate = (first5, second) => { + function* iterator() { + yield* first5; + yield* second; + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/contains.js + var contains; + var init_contains = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/contains.js"() { + init_shared(); + contains = (source2, value, comparer = StrictEqualityComparer) => { + for (const item of source2) { + if (comparer(value, item)) { + return true; + } + } + return false; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/containsAsync.js + var containsAsync; + var init_containsAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/containsAsync.js"() { + containsAsync = async (source2, value, comparer) => { + for (const item of source2) { + if (await comparer(value, item)) { + return true; + } + } + return false; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/count.js + var count, count1, count2; + var init_count = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/count.js"() { + count = (source2, predicate) => { + if (predicate) { + return count2(source2, predicate); + } else { + return count1(source2); + } + }; + count1 = (source2) => { + let count5 = 0; + for (const _3 of source2) { + count5++; + } + return count5; + }; + count2 = (source2, predicate) => { + let count5 = 0; + for (const value of source2) { + if (predicate(value) === true) { + count5++; + } + } + return count5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/countAsync.js + var countAsync; + var init_countAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/countAsync.js"() { + countAsync = async (source2, predicate) => { + let count5 = 0; + for (const value of source2) { + if (await predicate(value) === true) { + count5++; + } + } + return count5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/defaultIfEmpty.js + var defaultIfEmpty; + var init_defaultIfEmpty = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/defaultIfEmpty.js"() { + init_BasicEnumerable(); + defaultIfEmpty = (source2, defaultValue) => { + function* generator() { + let found = false; + for (const value of source2) { + found = true; + yield value; + } + if (!found) { + yield defaultValue; + } + } + return new BasicEnumerable(generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/distinct.js + var distinct; + var init_distinct = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/distinct.js"() { + init_shared(); + init_BasicEnumerable(); + distinct = (source2, comparer = StrictEqualityComparer) => { + function* iterator() { + const distinctElements = []; + for (const item of source2) { + const foundItem = distinctElements.find((x3) => comparer(x3, item)); + if (!foundItem) { + distinctElements.push(item); + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/distinctAsync.js + var distinctAsync; + var init_distinctAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/distinctAsync.js"() { + init_fromAsync(); + distinctAsync = (source2, comparer) => { + async function* iterator() { + const distinctElements = []; + outerLoop: + for (const item of source2) { + for (const distinctElement of distinctElements) { + const found = await comparer(distinctElement, item); + if (found) { + continue outerLoop; + } + } + distinctElements.push(item); + yield item; + } + } + return fromAsync(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/each.js + var each; + var init_each = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/each.js"() { + init_BasicEnumerable(); + each = (source2, action) => { + function* generator() { + for (const value of source2) { + action(value); + yield value; + } + } + return new BasicEnumerable(generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/eachAsync.js + var eachAsync; + var init_eachAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/eachAsync.js"() { + init_fromAsync(); + eachAsync = (source2, action) => { + async function* generator() { + for (const value of source2) { + await action(value); + yield value; + } + } + return fromAsync(generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/elementAt.js + var elementAt; + var init_elementAt = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/elementAt.js"() { + init_shared(); + elementAt = (source2, index) => { + if (index < 0) { + throw new ArgumentOutOfRangeException("index"); + } + let i4 = 0; + for (const item of source2) { + if (index === i4++) { + return item; + } + } + throw new ArgumentOutOfRangeException("index"); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/elementAtOrDefault.js + var elementAtOrDefault; + var init_elementAtOrDefault = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/elementAtOrDefault.js"() { + elementAtOrDefault = (source2, index) => { + let i4 = 0; + for (const item of source2) { + if (index === i4++) { + return item; + } + } + return null; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/except.js + var except; + var init_except = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/except.js"() { + init_shared(); + init_BasicEnumerable(); + except = (first5, second, comparer = StrictEqualityComparer) => { + function* iterator() { + const secondArray = [...second]; + for (const firstItem of first5) { + let exists = false; + for (let j3 = 0; j3 < secondArray.length; j3++) { + const secondItem = secondArray[j3]; + if (comparer(firstItem, secondItem) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield firstItem; + } + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/exceptAsync.js + var exceptAsync; + var init_exceptAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/exceptAsync.js"() { + init_fromAsync(); + exceptAsync = (first5, second, comparer) => { + async function* iterator() { + const secondArray = [...second]; + for (const firstItem of first5) { + let exists = false; + for (let j3 = 0; j3 < secondArray.length; j3++) { + const secondItem = secondArray[j3]; + if (await comparer(firstItem, secondItem) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield firstItem; + } + } + } + return fromAsync(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/first.js + var first, first1, first2; + var init_first = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/first.js"() { + init_shared(); + first = (source2, predicate) => { + if (predicate) { + return first2(source2, predicate); + } else { + return first1(source2); + } + }; + first1 = (source2) => { + const first5 = source2[Symbol.iterator]().next(); + if (first5.done === true) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return first5.value; + }; + first2 = (source2, predicate) => { + for (const value of source2) { + if (predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/firstAsync.js + var firstAsync; + var init_firstAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/firstAsync.js"() { + init_shared(); + firstAsync = async (source2, predicate) => { + for (const value of source2) { + if (await predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/firstOrDefault.js + var firstOrDefault, firstOrDefault1, firstOrDefault2; + var init_firstOrDefault = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/firstOrDefault.js"() { + firstOrDefault = (source2, predicate) => { + if (predicate) { + return firstOrDefault2(source2, predicate); + } else { + return firstOrDefault1(source2); + } + }; + firstOrDefault1 = (source2) => { + const first5 = source2[Symbol.iterator]().next(); + return first5.value || null; + }; + firstOrDefault2 = (source2, predicate) => { + for (const value of source2) { + if (predicate(value) === true) { + return value; + } + } + return null; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/firstOrDefaultAsync.js + var firstOrDefaultAsync; + var init_firstOrDefaultAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/firstOrDefaultAsync.js"() { + firstOrDefaultAsync = async (source2, predicate) => { + for (const value of source2) { + if (await predicate(value) === true) { + return value; + } + } + return null; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/Grouping.js + var Grouping; + var init_Grouping = __esm({ + "node_modules/linq-to-typescript/esm/sync/Grouping.js"() { + init_ArrayEnumerable(); + Grouping = class extends ArrayEnumerable { + constructor(key, startingItem) { + super(1); + this.key = key; + this[0] = startingItem; + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/groupByShared.js + var groupBy_0, groupBy_0_Simple, groupBy_1_Simple, groupBy_1; + var init_groupByShared = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/groupByShared.js"() { + init_BasicEnumerable(); + init_Grouping(); + groupBy_0 = (source2, keySelector, comparer) => { + return function* generate() { + const keyMap = new Array(); + for (const value of source2) { + const key = keySelector(value); + let found = false; + for (let i4 = 0; i4 < keyMap.length; i4++) { + const group = keyMap[i4]; + if (comparer(group.key, key)) { + group.push(value); + found = true; + break; + } + } + if (found === false) { + keyMap.push(new Grouping(key, value)); + } + } + for (const keyValue of keyMap) { + yield keyValue; + } + }; + }; + groupBy_0_Simple = (source2, keySelector) => { + return function* iterator() { + const keyMap = {}; + for (const value of source2) { + const key = keySelector(value); + const grouping = keyMap[key]; + if (grouping) { + grouping.push(value); + } else { + keyMap[key] = new Grouping(key, value); + } + } + for (const value in keyMap) { + yield keyMap[value]; + } + }; + }; + groupBy_1_Simple = (source2, keySelector, elementSelector) => { + function* generate() { + const keyMap = {}; + for (const value of source2) { + const key = keySelector(value); + const grouping = keyMap[key]; + const element = elementSelector(value); + if (grouping) { + grouping.push(element); + } else { + keyMap[key] = new Grouping(key, element); + } + } + for (const value in keyMap) { + yield keyMap[value]; + } + } + return new BasicEnumerable(generate); + }; + groupBy_1 = (source2, keySelector, elementSelector, comparer) => { + function* generate() { + const keyMap = new Array(); + for (const value of source2) { + const key = keySelector(value); + let found = false; + for (let i4 = 0; i4 < keyMap.length; i4++) { + const group = keyMap[i4]; + if (comparer(group.key, key)) { + group.push(elementSelector(value)); + found = true; + break; + } + } + if (found === false) { + const element = elementSelector(value); + keyMap.push(new Grouping(key, element)); + } + } + for (const keyValue of keyMap) { + yield keyValue; + } + } + return new BasicEnumerable(generate); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/groupBy.js + var groupBy; + var init_groupBy = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/groupBy.js"() { + init_BasicEnumerable(); + init_groupByShared(); + groupBy = (source2, keySelector, comparer) => { + let iterable; + if (comparer) { + iterable = groupBy_0(source2, keySelector, comparer); + } else { + iterable = groupBy_0_Simple(source2, keySelector); + } + return new BasicEnumerable(iterable); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/groupByAsync.js + var groupByAsync, groupByAsync_0_Simple, groupByAsync_0; + var init_groupByAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/groupByAsync.js"() { + init_fromAsync(); + init_Grouping(); + groupByAsync = (source2, keySelector, comparer) => { + if (comparer) { + return groupByAsync_0(source2, keySelector, comparer); + } else { + return groupByAsync_0_Simple(source2, keySelector); + } + }; + groupByAsync_0_Simple = (source2, keySelector) => { + async function* iterator() { + const keyMap = {}; + for (const value of source2) { + const key = await keySelector(value); + const grouping = keyMap[key]; + if (grouping) { + grouping.push(value); + } else { + keyMap[key] = new Grouping(key, value); + } + } + for (const value in keyMap) { + yield keyMap[value]; + } + } + return fromAsync(iterator); + }; + groupByAsync_0 = (source2, keySelector, comparer) => { + async function* generate() { + const keyMap = new Array(); + for (const value of source2) { + const key = await keySelector(value); + let found = false; + for (let i4 = 0; i4 < keyMap.length; i4++) { + const group = keyMap[i4]; + if (await comparer(group.key, key) === true) { + group.push(value); + found = true; + break; + } + } + if (found === false) { + keyMap.push(new Grouping(key, value)); + } + } + for (const keyValue of keyMap) { + yield keyValue; + } + } + return fromAsync(generate); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/groupByWithSel.js + var groupByWithSel; + var init_groupByWithSel = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/groupByWithSel.js"() { + init_groupByShared(); + groupByWithSel = (source2, keySelector, elementSelector, comparer) => { + if (comparer) { + return groupBy_1(source2, keySelector, elementSelector, comparer); + } else { + return groupBy_1_Simple(source2, keySelector, elementSelector); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/groupJoin.js + var groupJoin, groupJoinWithComparer, groupJoinSimple; + var init_groupJoin = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/groupJoin.js"() { + init_BasicEnumerable(); + groupJoin = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + const generator = comparer ? groupJoinWithComparer(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) : groupJoinSimple(outer, inner, outerKeySelector, innerKeySelector, resultSelector); + return new BasicEnumerable(generator); + }; + groupJoinWithComparer = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + return function* () { + var _a; + const innerKeyMap = []; + for (const innerValue of inner) { + const key = innerKeySelector(innerValue); + const record = innerKeyMap.find((x3) => comparer(x3.key, key)); + if (record) { + record.values.push(innerValue); + } else { + innerKeyMap.push({ key, values: [innerValue] }); + } + } + for (const outerValue of outer) { + const key = outerKeySelector(outerValue); + const innerRecord = (_a = innerKeyMap.find((x3) => comparer(x3.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] }; + yield resultSelector(outerValue, innerRecord.values); + } + }; + }; + groupJoinSimple = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => { + return function* () { + var _a; + const innerKeyMap = /* @__PURE__ */ new Map(); + for (const innerValue of inner) { + const key = innerKeySelector(innerValue); + const values2 = innerKeyMap.get(key); + if (values2) { + values2.push(innerValue); + } else { + innerKeyMap.set(key, [innerValue]); + } + } + for (const outerValue of outer) { + const key = outerKeySelector(outerValue); + const values2 = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : []; + yield resultSelector(outerValue, values2); + } + }; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/groupJoinAsync.js + var groupJoinAsync, groupJoinWithComparer2, groupJoinSimple2; + var init_groupJoinAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/groupJoinAsync.js"() { + init_fromAsync(); + groupJoinAsync = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + const generator = comparer ? groupJoinWithComparer2(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) : groupJoinSimple2(outer, inner, outerKeySelector, innerKeySelector, resultSelector); + return fromAsync(generator); + }; + groupJoinWithComparer2 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + return async function* () { + var _a; + const innerKeyMap = []; + for (const innerValue of inner) { + const key = await innerKeySelector(innerValue); + const record = innerKeyMap.find((x3) => comparer(x3.key, key)); + if (record) { + record.values.push(innerValue); + } else { + innerKeyMap.push({ key, values: [innerValue] }); + } + } + for (const outerValue of outer) { + const key = await outerKeySelector(outerValue); + const innerRecord = (_a = innerKeyMap.find((x3) => comparer(x3.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] }; + yield resultSelector(outerValue, innerRecord.values); + } + }; + }; + groupJoinSimple2 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => { + return async function* () { + var _a; + const innerKeyMap = /* @__PURE__ */ new Map(); + for (const innerValue of inner) { + const key = await innerKeySelector(innerValue); + const values2 = innerKeyMap.get(key); + if (values2) { + values2.push(innerValue); + } else { + innerKeyMap.set(key, [innerValue]); + } + } + for (const outerValue of outer) { + const key = await outerKeySelector(outerValue); + const values2 = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : []; + yield resultSelector(outerValue, values2); + } + }; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/intersect.js + var intersect; + var init_intersect = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/intersect.js"() { + init_shared(); + init_BasicEnumerable(); + intersect = (first5, second, comparer = StrictEqualityComparer) => { + function* iterator() { + const firstResults = [...first5.distinct(comparer)]; + if (firstResults.length === 0) { + return; + } + const secondResults = [...second]; + for (let i4 = 0; i4 < firstResults.length; i4++) { + const firstValue = firstResults[i4]; + for (let j3 = 0; j3 < secondResults.length; j3++) { + const secondValue = secondResults[j3]; + if (comparer(firstValue, secondValue) === true) { + yield firstValue; + break; + } + } + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/intersectAsync.js + var intersectAsync; + var init_intersectAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/intersectAsync.js"() { + init_fromAsync(); + intersectAsync = (first5, second, comparer) => { + async function* iterator() { + const firstResults = []; + for await (const item of first5.distinctAsync(comparer)) { + firstResults.push(item); + } + if (firstResults.length === 0) { + return; + } + const secondResults = [...second]; + for (let i4 = 0; i4 < firstResults.length; i4++) { + const firstValue = firstResults[i4]; + for (let j3 = 0; j3 < secondResults.length; j3++) { + const secondValue = secondResults[j3]; + if (await comparer(firstValue, secondValue) === true) { + yield firstValue; + break; + } + } + } + } + return fromAsync(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/join.js + var join; + var init_join = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/join.js"() { + init_shared(); + init_BasicEnumerable(); + join = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer = StrictEqualityComparer) => { + function* iterator() { + const innerArray = [...inner]; + for (const o3 of outer) { + const outerKey = outerKeySelector(o3); + for (const i4 of innerArray) { + const innerKey = innerKeySelector(i4); + if (comparer(outerKey, innerKey) === true) { + yield resultSelector(o3, i4); + } + } + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/last.js + var last, last1, last2; + var init_last = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/last.js"() { + init_shared(); + last = (source2, predicate) => { + if (predicate) { + return last2(source2, predicate); + } else { + return last1(source2); + } + }; + last1 = (source2) => { + let lastItem; + for (const value of source2) { + lastItem = value; + } + if (!lastItem) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return lastItem; + }; + last2 = (source2, predicate) => { + let lastItem; + for (const value of source2) { + if (predicate(value) === true) { + lastItem = value; + } + } + if (!lastItem) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return lastItem; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/lastAsync.js + var lastAsync; + var init_lastAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/lastAsync.js"() { + init_shared(); + lastAsync = async (source2, predicate) => { + let last5; + for (const value of source2) { + if (await predicate(value) === true) { + last5 = value; + } + } + if (!last5) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return last5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/lastOrDefault.js + var lastOrDefault, lastOrDefault1, lastOrDefault2; + var init_lastOrDefault = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/lastOrDefault.js"() { + lastOrDefault = (source2, predicate) => { + if (predicate) { + return lastOrDefault2(source2, predicate); + } else { + return lastOrDefault1(source2); + } + }; + lastOrDefault1 = (source2) => { + let last5 = null; + for (const value of source2) { + last5 = value; + } + return last5; + }; + lastOrDefault2 = (source2, predicate) => { + let last5 = null; + for (const value of source2) { + if (predicate(value) === true) { + last5 = value; + } + } + return last5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/lastOrDefaultAsync.js + var lastOrDefaultAsync; + var init_lastOrDefaultAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/lastOrDefaultAsync.js"() { + lastOrDefaultAsync = async (source2, predicate) => { + let last5 = null; + for (const value of source2) { + if (await predicate(value) === true) { + last5 = value; + } + } + return last5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/max.js + var max, max1, max2; + var init_max = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/max.js"() { + init_shared(); + max = (source2, selector) => { + if (selector) { + return max2(source2, selector); + } else { + return max1(source2); + } + }; + max1 = (source2) => { + let maxItem = null; + for (const item of source2) { + maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, item); + } + if (maxItem === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return maxItem; + } + }; + max2 = (source2, selector) => { + let maxItem = null; + for (const item of source2) { + maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, selector(item)); + } + if (maxItem === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return maxItem; + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/maxAsync.js + var maxAsync; + var init_maxAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/maxAsync.js"() { + init_shared(); + maxAsync = async (source2, selector) => { + let max5 = null; + for (const item of source2) { + max5 = Math.max(max5 || Number.NEGATIVE_INFINITY, await selector(item)); + } + if (max5 === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return max5; + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/min.js + var min, min1, min2; + var init_min = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/min.js"() { + init_shared(); + min = (source2, selector) => { + if (selector) { + return min2(source2, selector); + } else { + return min1(source2); + } + }; + min1 = (source2) => { + let minItem = null; + for (const item of source2) { + minItem = Math.min(minItem || Number.POSITIVE_INFINITY, item); + } + if (minItem === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return minItem; + } + }; + min2 = (source2, selector) => { + let minItem = null; + for (const item of source2) { + minItem = Math.min(minItem || Number.POSITIVE_INFINITY, selector(item)); + } + if (minItem === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return minItem; + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/minAsync.js + var minAsync; + var init_minAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/minAsync.js"() { + init_shared(); + minAsync = async (source2, selector) => { + let min5 = null; + for (const item of source2) { + min5 = Math.min(min5 || Number.POSITIVE_INFINITY, await selector(item)); + } + if (min5 === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return min5; + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/ofType.js + var ofType; + var init_ofType = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/ofType.js"() { + init_BasicEnumerable(); + ofType = (source2, type) => { + const typeCheck = typeof type === "string" ? (x3) => typeof x3 === type : (x3) => x3 instanceof type; + function* iterator() { + for (const item of source2) { + if (typeCheck(item)) { + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_ordered/asAsyncKeyMap.js + var asAsyncKeyMap; + var init_asAsyncKeyMap = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asAsyncKeyMap.js"() { + asAsyncKeyMap = async (source2, keySelector) => { + const map2 = /* @__PURE__ */ new Map(); + for await (const item of source2) { + const key = await keySelector(item); + const currentMapping = map2.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map2.set(key, [item]); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_ordered/asAsyncSortedKeyValues.js + async function* asAsyncSortedKeyValues(source2, keySelector, ascending, comparer) { + const map2 = await asAsyncKeyMap(source2, keySelector); + const sortedKeys = [...map2.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i4 = 0; i4 < sortedKeys.length; i4++) { + yield map2.get(sortedKeys[i4]); + } + } else { + for (let i4 = sortedKeys.length - 1; i4 >= 0; i4--) { + yield map2.get(sortedKeys[i4]); + } + } + } + var init_asAsyncSortedKeyValues = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asAsyncSortedKeyValues.js"() { + init_asAsyncKeyMap(); + } + }); + + // node_modules/linq-to-typescript/esm/async/_ordered/asAsyncKeyMapSync.js + var asAsyncKeyMapSync; + var init_asAsyncKeyMapSync = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asAsyncKeyMapSync.js"() { + asAsyncKeyMapSync = async (source2, keySelector) => { + const map2 = /* @__PURE__ */ new Map(); + for (const item of source2) { + const key = await keySelector(item); + const currentMapping = map2.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map2.set(key, [item]); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_ordered/asAsyncSortedKeyValuesSync.js + async function* asAsyncSortedKeyValuesSync(source2, keySelector, ascending, comparer) { + const map2 = await asAsyncKeyMapSync(source2, keySelector); + const sortedKeys = [...map2.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i4 = 0; i4 < sortedKeys.length; i4++) { + yield map2.get(sortedKeys[i4]); + } + } else { + for (let i4 = sortedKeys.length - 1; i4 >= 0; i4--) { + yield map2.get(sortedKeys[i4]); + } + } + } + var init_asAsyncSortedKeyValuesSync = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asAsyncSortedKeyValuesSync.js"() { + init_asAsyncKeyMapSync(); + } + }); + + // node_modules/linq-to-typescript/esm/async/_ordered/asKeyMap.js + var asKeyMap; + var init_asKeyMap = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asKeyMap.js"() { + asKeyMap = async (source2, keySelector) => { + const map2 = /* @__PURE__ */ new Map(); + for await (const item of source2) { + const key = keySelector(item); + const currentMapping = map2.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map2.set(key, [item]); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_ordered/asSortedKeyValues.js + async function* asSortedKeyValues(source2, keySelector, ascending, comparer) { + const map2 = await asKeyMap(source2, keySelector); + const sortedKeys = [...map2.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i4 = 0; i4 < sortedKeys.length; i4++) { + yield map2.get(sortedKeys[i4]); + } + } else { + for (let i4 = sortedKeys.length - 1; i4 >= 0; i4--) { + yield map2.get(sortedKeys[i4]); + } + } + } + var init_asSortedKeyValues = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asSortedKeyValues.js"() { + init_asKeyMap(); + } + }); + + // node_modules/linq-to-typescript/esm/async/_ordered/asKeyMapSync.js + var asKeyMapSync; + var init_asKeyMapSync = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asKeyMapSync.js"() { + asKeyMapSync = (source2, keySelector) => { + const map2 = /* @__PURE__ */ new Map(); + for (const item of source2) { + const key = keySelector(item); + const currentMapping = map2.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map2.set(key, [item]); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_ordered/asSortedKeyValuesSync.js + function* asSortedKeyValuesSync(source2, keySelector, ascending, comparer) { + const map2 = asKeyMapSync(source2, keySelector); + const sortedKeys = [...map2.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i4 = 0; i4 < sortedKeys.length; i4++) { + yield map2.get(sortedKeys[i4]); + } + } else { + for (let i4 = sortedKeys.length - 1; i4 >= 0; i4--) { + yield map2.get(sortedKeys[i4]); + } + } + } + var init_asSortedKeyValuesSync = __esm({ + "node_modules/linq-to-typescript/esm/async/_ordered/asSortedKeyValuesSync.js"() { + init_asKeyMapSync(); + } + }); + + // node_modules/linq-to-typescript/esm/async/OrderedAsyncEnumerable.js + var OrderedAsyncEnumerable; + var init_OrderedAsyncEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/async/OrderedAsyncEnumerable.js"() { + init_asAsyncSortedKeyValues(); + init_asAsyncSortedKeyValuesSync(); + init_asSortedKeyValues(); + init_asSortedKeyValuesSync(); + init_BasicAsyncEnumerable(); + OrderedAsyncEnumerable = class extends BasicAsyncEnumerable { + constructor(orderedPairs) { + super(async function* () { + for await (const orderedPair of orderedPairs()) { + yield* orderedPair; + } + }); + this.orderedPairs = orderedPairs; + } + static generateAsync(source2, keySelector, ascending, comparer) { + let orderedPairs; + if (source2 instanceof OrderedAsyncEnumerable) { + orderedPairs = async function* () { + for await (const pair of source2.orderedPairs()) { + yield* asAsyncSortedKeyValuesSync(pair, keySelector, ascending, comparer); + } + }; + } else { + orderedPairs = () => asAsyncSortedKeyValues(source2, keySelector, ascending, comparer); + } + return new OrderedAsyncEnumerable(orderedPairs); + } + static generate(source2, keySelector, ascending, comparer) { + let orderedPairs; + if (source2 instanceof OrderedAsyncEnumerable) { + orderedPairs = async function* () { + for await (const pair of source2.orderedPairs()) { + yield* asSortedKeyValuesSync(pair, keySelector, ascending, comparer); + } + }; + } else { + orderedPairs = () => asSortedKeyValues(source2, keySelector, ascending, comparer); + } + return new OrderedAsyncEnumerable(orderedPairs); + } + thenBy(keySelector, comparer) { + return OrderedAsyncEnumerable.generate(this, keySelector, true, comparer); + } + thenByAsync(keySelector, comparer) { + return OrderedAsyncEnumerable.generateAsync(this, keySelector, true, comparer); + } + thenByDescending(keySelector, comparer) { + return OrderedAsyncEnumerable.generate(this, keySelector, false, comparer); + } + thenByDescendingAsync(keySelector, comparer) { + return OrderedAsyncEnumerable.generateAsync(this, keySelector, false, comparer); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_ordered/asKeyMap.js + var asKeyMap2; + var init_asKeyMap2 = __esm({ + "node_modules/linq-to-typescript/esm/sync/_ordered/asKeyMap.js"() { + asKeyMap2 = (source2, keySelector) => { + const map2 = /* @__PURE__ */ new Map(); + for (const item of source2) { + const key = keySelector(item); + const currentMapping = map2.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map2.set(key, [item]); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_ordered/asSortedKeyValues.js + function* asSortedKeyValues2(source2, keySelector, ascending, comparer) { + const map2 = asKeyMap2(source2, keySelector); + const sortedKeys = [...map2.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i4 = 0; i4 < sortedKeys.length; i4++) { + yield map2.get(sortedKeys[i4]); + } + } else { + for (let i4 = sortedKeys.length - 1; i4 >= 0; i4--) { + yield map2.get(sortedKeys[i4]); + } + } + } + var init_asSortedKeyValues2 = __esm({ + "node_modules/linq-to-typescript/esm/sync/_ordered/asSortedKeyValues.js"() { + init_asKeyMap2(); + } + }); + + // node_modules/linq-to-typescript/esm/sync/_ordered/asKeyMapAsync.js + var asKeyMapAsync; + var init_asKeyMapAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_ordered/asKeyMapAsync.js"() { + asKeyMapAsync = async (source2, keySelector) => { + const map2 = /* @__PURE__ */ new Map(); + for (const item of source2) { + const key = await keySelector(item); + const currentMapping = map2.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map2.set(key, [item]); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_ordered/asSortedKeyValuesAsync.js + async function* asSortedKeyValuesAsync(source2, keySelector, ascending, comparer) { + const map2 = await asKeyMapAsync(source2, keySelector); + const sortedKeys = [...map2.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i4 = 0; i4 < sortedKeys.length; i4++) { + yield map2.get(sortedKeys[i4]); + } + } else { + for (let i4 = sortedKeys.length - 1; i4 >= 0; i4--) { + yield map2.get(sortedKeys[i4]); + } + } + } + var init_asSortedKeyValuesAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_ordered/asSortedKeyValuesAsync.js"() { + init_asKeyMapAsync(); + } + }); + + // node_modules/linq-to-typescript/esm/sync/OrderedEnumerable.js + var OrderedEnumerable; + var init_OrderedEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/sync/OrderedEnumerable.js"() { + init_OrderedAsyncEnumerable(); + init_asSortedKeyValues2(); + init_asSortedKeyValuesAsync(); + init_BasicEnumerable(); + OrderedEnumerable = class extends BasicEnumerable { + constructor(orderedPairs) { + super(function* () { + for (const orderedPair of orderedPairs()) { + yield* orderedPair; + } + }); + this.orderedPairs = orderedPairs; + } + static generate(source2, keySelector, ascending, comparer) { + let orderedPairs; + if (source2 instanceof OrderedEnumerable) { + orderedPairs = function* () { + for (const pair of source2.orderedPairs()) { + yield* asSortedKeyValues2(pair, keySelector, ascending, comparer); + } + }; + } else { + orderedPairs = () => asSortedKeyValues2(source2, keySelector, ascending, comparer); + } + return new OrderedEnumerable(orderedPairs); + } + static generateAsync(source2, keySelector, ascending, comparer) { + let orderedPairs; + if (source2 instanceof OrderedEnumerable) { + orderedPairs = async function* () { + for (const pair of source2.orderedPairs()) { + yield* asSortedKeyValuesAsync(pair, keySelector, ascending, comparer); + } + }; + } else { + orderedPairs = () => asSortedKeyValuesAsync(source2, keySelector, ascending, comparer); + } + return new OrderedAsyncEnumerable(orderedPairs); + } + thenBy(keySelector, comparer) { + return OrderedEnumerable.generate(this, keySelector, true, comparer); + } + thenByAsync(keySelector, comparer) { + return OrderedEnumerable.generateAsync(this, keySelector, true, comparer); + } + thenByDescending(keySelector, comparer) { + return OrderedEnumerable.generate(this, keySelector, false, comparer); + } + thenByDescendingAsync(keySelector, comparer) { + return OrderedEnumerable.generateAsync(this, keySelector, false, comparer); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/orderBy.js + var orderBy; + var init_orderBy = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/orderBy.js"() { + init_OrderedEnumerable(); + orderBy = (source2, keySelector, comparer) => { + return OrderedEnumerable.generate(source2, keySelector, true, comparer); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/orderByAsync.js + var orderByAsync; + var init_orderByAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/orderByAsync.js"() { + init_OrderedEnumerable(); + orderByAsync = (source2, keySelector, comparer) => { + return OrderedEnumerable.generateAsync(source2, keySelector, true, comparer); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/orderByDescending.js + var orderByDescending; + var init_orderByDescending = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/orderByDescending.js"() { + init_OrderedEnumerable(); + orderByDescending = (source2, keySelector, comparer) => { + return OrderedEnumerable.generate(source2, keySelector, false, comparer); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/orderByDescendingAsync.js + var orderByDescendingAsync; + var init_orderByDescendingAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/orderByDescendingAsync.js"() { + init_OrderedEnumerable(); + orderByDescendingAsync = (source2, keySelector, comparer) => { + return OrderedEnumerable.generateAsync(source2, keySelector, false, comparer); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/partition.js + var partition; + var init_partition = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/partition.js"() { + partition = (source2, predicate) => { + const fail = []; + const pass = []; + for (const value of source2) { + if (predicate(value) === true) { + pass.push(value); + } else { + fail.push(value); + } + } + return [pass, fail]; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/partitionAsync.js + var partitionAsync; + var init_partitionAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/partitionAsync.js"() { + partitionAsync = async (source2, predicate) => { + const fail = []; + const pass = []; + for (const value of source2) { + if (await predicate(value) === true) { + pass.push(value); + } else { + fail.push(value); + } + } + return [pass, fail]; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/reverse.js + var reverse; + var init_reverse = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/reverse.js"() { + init_BasicEnumerable(); + reverse = (source2) => { + function* iterator() { + const array = [...source2]; + for (let i4 = array.length - 1; i4 >= 0; i4--) { + yield array[i4]; + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/select.js + var select, select1, select2, select3; + var init_select = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/select.js"() { + init_BasicEnumerable(); + select = (source2, selector) => { + if (typeof selector === "function") { + const { length } = selector; + if (length === 1) { + return select1(source2, selector); + } else { + return select2(source2, selector); + } + } else { + return select3(source2, selector); + } + }; + select1 = (source2, selector) => { + function* iterator() { + for (const value of source2) { + yield selector(value); + } + } + return new BasicEnumerable(iterator); + }; + select2 = (source2, selector) => { + function* iterator() { + let index = 0; + for (const value of source2) { + yield selector(value, index); + index++; + } + } + return new BasicEnumerable(iterator); + }; + select3 = (source2, key) => { + function* iterator() { + for (const value of source2) { + yield value[key]; + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/selectAsync.js + var selectAsync, selectAsync1, selectAsync2, selectAsync3; + var init_selectAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/selectAsync.js"() { + init_fromAsync(); + selectAsync = (source2, selector) => { + if (typeof selector === "function") { + if (selector.length === 1) { + return selectAsync1(source2, selector); + } else { + return selectAsync2(source2, selector); + } + } else { + return selectAsync3(source2, selector); + } + }; + selectAsync1 = (source2, selector) => { + async function* iterator() { + for (const value of source2) { + yield selector(value); + } + } + return fromAsync(iterator); + }; + selectAsync2 = (source2, selector) => { + async function* iterator() { + let index = 0; + for (const value of source2) { + yield selector(value, index); + index++; + } + } + return fromAsync(iterator); + }; + selectAsync3 = (source2, key) => { + async function* iterator() { + for (const value of source2) { + yield value[key]; + } + } + return fromAsync(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/selectMany.js + var selectMany, selectMany1, selectMany2, selectMany3; + var init_selectMany = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/selectMany.js"() { + init_BasicEnumerable(); + selectMany = (source2, selector) => { + if (typeof selector === "function") { + if (selector.length === 1) { + return selectMany1(source2, selector); + } else { + return selectMany2(source2, selector); + } + } else { + return selectMany3(source2, selector); + } + }; + selectMany1 = (source2, selector) => { + function* iterator() { + for (const value of source2) { + for (const selectorValue of selector(value)) { + yield selectorValue; + } + } + } + return new BasicEnumerable(iterator); + }; + selectMany2 = (source2, selector) => { + function* iterator() { + let index = 0; + for (const value of source2) { + for (const selectorValue of selector(value, index)) { + yield selectorValue; + } + index++; + } + } + return new BasicEnumerable(iterator); + }; + selectMany3 = (source2, selector) => { + function* iterator() { + for (const value of source2) { + for (const selectorValue of value[selector]) { + yield selectorValue; + } + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/selectManyAsync.js + var selectManyAsync, selectManyAsync1, selectManyAsync2; + var init_selectManyAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/selectManyAsync.js"() { + init_fromAsync(); + selectManyAsync = (source2, selector) => { + if (selector.length === 1) { + return selectManyAsync1(source2, selector); + } else { + return selectManyAsync2(source2, selector); + } + }; + selectManyAsync1 = (source2, selector) => { + async function* generator() { + for (const value of source2) { + const innerValues = await selector(value); + for (const innerValue of innerValues) { + yield innerValue; + } + } + } + return fromAsync(generator); + }; + selectManyAsync2 = (source2, selector) => { + async function* generator() { + let index = 0; + for (const value of source2) { + const innerValues = await selector(value, index); + for (const innerValue of innerValues) { + yield innerValue; + } + index++; + } + } + return fromAsync(generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/sequenceEquals.js + var sequenceEquals; + var init_sequenceEquals = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/sequenceEquals.js"() { + init_shared(); + sequenceEquals = (first5, second, comparer = StrictEqualityComparer) => { + const firstIterator = first5[Symbol.iterator](); + const secondIterator = second[Symbol.iterator](); + let firstResult = firstIterator.next(); + let secondResult = secondIterator.next(); + while (!firstResult.done && !secondResult.done) { + if (!comparer(firstResult.value, secondResult.value)) { + return false; + } + firstResult = firstIterator.next(); + secondResult = secondIterator.next(); + } + return firstResult.done === true && secondResult.done === true; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/sequenceEqualsAsync.js + var sequenceEqualsAsync; + var init_sequenceEqualsAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/sequenceEqualsAsync.js"() { + sequenceEqualsAsync = async (first5, second, comparer) => { + const firstIterator = first5[Symbol.iterator](); + const secondIterator = second[Symbol.iterator](); + let firstResult = firstIterator.next(); + let secondResult = secondIterator.next(); + while (!firstResult.done && !secondResult.done) { + if (await comparer(firstResult.value, secondResult.value) === false) { + return false; + } + firstResult = firstIterator.next(); + secondResult = secondIterator.next(); + } + return firstResult.done === true && secondResult.done === true; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/single.js + var single, single1, single2; + var init_single = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/single.js"() { + init_shared(); + single = (source2, predicate) => { + if (predicate) { + return single2(source2, predicate); + } else { + return single1(source2); + } + }; + single1 = (source2) => { + let hasValue = false; + let singleValue = null; + for (const value of source2) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return singleValue; + }; + single2 = (source2, predicate) => { + let hasValue = false; + let singleValue = null; + for (const value of source2) { + if (predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return singleValue; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/singleAsync.js + var singleAsync; + var init_singleAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/singleAsync.js"() { + init_shared(); + singleAsync = async (source2, predicate) => { + let hasValue = false; + let singleValue = null; + for (const value of source2) { + if (await predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return singleValue; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/singleOrDefault.js + var singleOrDefault, singleOrDefault1, singleOrDefault2; + var init_singleOrDefault = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/singleOrDefault.js"() { + init_shared(); + singleOrDefault = (source2, predicate) => { + if (predicate) { + return singleOrDefault2(source2, predicate); + } else { + return singleOrDefault1(source2); + } + }; + singleOrDefault1 = (source2) => { + let hasValue = false; + let singleValue = null; + for (const value of source2) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + return singleValue; + }; + singleOrDefault2 = (source2, predicate) => { + let hasValue = false; + let singleValue = null; + for (const value of source2) { + if (predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + return singleValue; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/singleOrDefaultAsync.js + var singleOrDefaultAsync; + var init_singleOrDefaultAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/singleOrDefaultAsync.js"() { + init_shared(); + singleOrDefaultAsync = async (source2, predicate) => { + let hasValue = false; + let singleValue = null; + for (const value of source2) { + if (await predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + return singleValue; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/skip.js + var skip; + var init_skip = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/skip.js"() { + init_BasicEnumerable(); + skip = (source2, count5) => { + function* iterator() { + let i4 = 0; + for (const item of source2) { + if (i4++ >= count5) { + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/skipWhile.js + var skipWhile, skipWhile1, skipWhile2; + var init_skipWhile = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/skipWhile.js"() { + init_BasicEnumerable(); + skipWhile = (source2, predicate) => { + if (predicate.length === 1) { + return skipWhile1(source2, predicate); + } else { + return skipWhile2(source2, predicate); + } + }; + skipWhile1 = (source2, predicate) => { + function* iterator() { + let skip4 = true; + for (const item of source2) { + if (skip4 === false) { + yield item; + } else if (predicate(item) === false) { + skip4 = false; + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + skipWhile2 = (source2, predicate) => { + function* iterator() { + let index = 0; + let skip4 = true; + for (const item of source2) { + if (skip4 === false) { + yield item; + } else if (predicate(item, index) === false) { + skip4 = false; + yield item; + } + index++; + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/skipWhileAsync.js + var skipWhileAsync, skipWhileAsync1, skipWhileAsync2; + var init_skipWhileAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/skipWhileAsync.js"() { + init_fromAsync(); + skipWhileAsync = (source2, predicate) => { + if (predicate.length === 1) { + return skipWhileAsync1(source2, predicate); + } else { + return skipWhileAsync2(source2, predicate); + } + }; + skipWhileAsync1 = (source2, predicate) => { + async function* iterator() { + let skip4 = true; + for (const item of source2) { + if (skip4 === false) { + yield item; + } else if (await predicate(item) === false) { + skip4 = false; + yield item; + } + } + } + return fromAsync(iterator); + }; + skipWhileAsync2 = (source2, predicate) => { + async function* iterator() { + let index = 0; + let skip4 = true; + for (const item of source2) { + if (skip4 === false) { + yield item; + } else if (await predicate(item, index) === false) { + skip4 = false; + yield item; + } + index++; + } + } + return fromAsync(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/sum.js + var sum, sum1, sum2; + var init_sum = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/sum.js"() { + sum = (source2, selector) => { + if (selector) { + return sum2(source2, selector); + } else { + return sum1(source2); + } + }; + sum1 = (source2) => { + let total = 0; + for (const value of source2) { + total += value; + } + return total; + }; + sum2 = (source2, selector) => { + let total = 0; + for (const value of source2) { + total += selector(value); + } + return total; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/sumAsync.js + var sumAsync; + var init_sumAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/sumAsync.js"() { + sumAsync = async (source2, selector) => { + let sum5 = 0; + for (const value of source2) { + sum5 += await selector(value); + } + return sum5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/take.js + var take; + var init_take = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/take.js"() { + init_BasicEnumerable(); + take = (source2, amount) => { + function* iterator() { + let amountLeft = amount > 0 ? amount : 0; + for (const item of source2) { + if (amountLeft-- === 0) { + break; + } else { + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/takeWhile.js + var takeWhile, takeWhile1, takeWhile2; + var init_takeWhile = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/takeWhile.js"() { + init_BasicEnumerable(); + takeWhile = (source2, predicate) => { + if (predicate.length === 1) { + return takeWhile1(source2, predicate); + } else { + return takeWhile2(source2, predicate); + } + }; + takeWhile1 = (source2, predicate) => { + function* iterator() { + for (const item of source2) { + if (predicate(item)) { + yield item; + } else { + break; + } + } + } + return new BasicEnumerable(iterator); + }; + takeWhile2 = (source2, predicate) => { + function* iterator() { + let index = 0; + for (const item of source2) { + if (predicate(item, index++)) { + yield item; + } else { + break; + } + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/takeWhileAsync.js + var takeWhileAsync, takeWhileAsync1, takeWhileAsync2; + var init_takeWhileAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/takeWhileAsync.js"() { + init_fromAsync(); + takeWhileAsync = (source2, predicate) => { + if (predicate.length === 1) { + return takeWhileAsync1(source2, predicate); + } else { + return takeWhileAsync2(source2, predicate); + } + }; + takeWhileAsync1 = (source2, predicate) => { + async function* iterator() { + for (const item of source2) { + if (await predicate(item)) { + yield item; + } else { + break; + } + } + } + return fromAsync(iterator); + }; + takeWhileAsync2 = (source2, predicate) => { + async function* iterator() { + let index = 0; + for (const item of source2) { + if (await predicate(item, index++)) { + yield item; + } else { + break; + } + } + } + return fromAsync(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/toArray.js + var toArray; + var init_toArray = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/toArray.js"() { + toArray = (source2) => { + return [...source2]; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/toMap.js + var toMap; + var init_toMap = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/toMap.js"() { + toMap = (source2, selector) => { + const map2 = /* @__PURE__ */ new Map(); + for (const value of source2) { + const key = selector(value); + const array = map2.get(key); + if (array === void 0) { + map2.set(key, [value]); + } else { + array.push(value); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/toMapAsync.js + var toMapAsync; + var init_toMapAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/toMapAsync.js"() { + toMapAsync = async (source2, selector) => { + const map2 = /* @__PURE__ */ new Map(); + for (const value of source2) { + const key = await selector(value); + const array = map2.get(key); + if (array === void 0) { + map2.set(key, [value]); + } else { + array.push(value); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/toObject.js + var toObject; + var init_toObject = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/toObject.js"() { + toObject = (source2, selector) => { + const map2 = {}; + for (const value of source2) { + map2[selector(value)] = value; + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/toObjectAsync.js + var toObjectAsync; + var init_toObjectAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/toObjectAsync.js"() { + toObjectAsync = async (source2, selector) => { + const map2 = {}; + for (const value of source2) { + map2[await selector(value)] = value; + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/toSet.js + var toSet; + var init_toSet = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/toSet.js"() { + toSet = (source2) => { + return new Set(source2); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/union.js + var union, union1, union2; + var init_union = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/union.js"() { + init_BasicEnumerable(); + union = (first5, second, comparer) => { + if (comparer) { + return union2(first5, second, comparer); + } else { + return union1(first5, second); + } + }; + union1 = (first5, second) => { + function* iterator() { + const set = /* @__PURE__ */ new Set(); + for (const item of first5) { + if (set.has(item) === false) { + yield item; + set.add(item); + } + } + for (const item of second) { + if (set.has(item) === false) { + yield item; + set.add(item); + } + } + } + return new BasicEnumerable(iterator); + }; + union2 = (first5, second, comparer) => { + function* iterator() { + const result = []; + for (const source2 of [first5, second]) { + for (const value of source2) { + let exists = false; + for (const resultValue of result) { + if (comparer(value, resultValue) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield value; + result.push(value); + } + } + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/unionAsync.js + var unionAsync; + var init_unionAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/unionAsync.js"() { + init_fromAsync(); + unionAsync = (first5, second, comparer) => { + async function* iterator() { + const result = []; + for (const source2 of [first5, second]) { + for (const value of source2) { + let exists = false; + for (const resultValue of result) { + if (await comparer(value, resultValue) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield value; + result.push(value); + } + } + } + } + return fromAsync(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/where.js + var where, where1, where2; + var init_where = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/where.js"() { + init_BasicEnumerable(); + where = (source2, predicate) => { + if (predicate.length === 1) { + return where1(source2, predicate); + } else { + return where2(source2, predicate); + } + }; + where1 = (source2, predicate) => { + function* iterator() { + for (const item of source2) { + if (predicate(item) === true) { + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + where2 = (source2, predicate) => { + function* iterator() { + let i4 = 0; + for (const item of source2) { + if (predicate(item, i4++) === true) { + yield item; + } + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/whereAsync.js + var whereAsync, whereAsync1, whereAsync2; + var init_whereAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/whereAsync.js"() { + init_fromAsync(); + whereAsync = (source2, predicate) => { + if (predicate.length === 1) { + return whereAsync1(source2, predicate); + } else { + return whereAsync2(source2, predicate); + } + }; + whereAsync1 = (source2, predicate) => { + async function* generator() { + for (const item of source2) { + if (await predicate(item) === true) { + yield item; + } + } + } + return fromAsync(generator); + }; + whereAsync2 = (source2, predicate) => { + async function* generator() { + let i4 = 0; + for (const item of source2) { + if (await predicate(item, i4++) === true) { + yield item; + } + } + } + return fromAsync(generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/zip.js + var zip, zip1, zip2; + var init_zip = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/zip.js"() { + init_BasicEnumerable(); + zip = (source2, second, resultSelector) => { + if (resultSelector) { + return zip2(source2, second, resultSelector); + } else { + return zip1(source2, second); + } + }; + zip1 = (source2, second) => { + function* iterator() { + const firstIterator = source2[Symbol.iterator](); + const secondIterator = second[Symbol.iterator](); + while (true) { + const a4 = firstIterator.next(); + const b4 = secondIterator.next(); + if (a4.done || b4.done) { + break; + } else { + yield [a4.value, b4.value]; + } + } + } + return new BasicEnumerable(iterator); + }; + zip2 = (source2, second, resultSelector) => { + function* iterator() { + const firstIterator = source2[Symbol.iterator](); + const secondIterator = second[Symbol.iterator](); + while (true) { + const a4 = firstIterator.next(); + const b4 = secondIterator.next(); + if (a4.done || b4.done) { + break; + } else { + yield resultSelector(a4.value, b4.value); + } + } + } + return new BasicEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/_private/zipAsync.js + var zipAsync; + var init_zipAsync = __esm({ + "node_modules/linq-to-typescript/esm/sync/_private/zipAsync.js"() { + init_fromAsync(); + zipAsync = (first5, second, resultSelector) => { + async function* generator() { + const firstIterator = first5[Symbol.iterator](); + const secondIterator = second[Symbol.iterator](); + while (true) { + const a4 = firstIterator.next(); + const b4 = secondIterator.next(); + if (a4.done || b4.done) { + break; + } else { + yield resultSelector(a4.value, b4.value); + } + } + } + return fromAsync(generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/initializer/bindLinq.js + var bindLinq; + var init_bindLinq = __esm({ + "node_modules/linq-to-typescript/esm/initializer/bindLinq.js"() { + init_aggregate(); + init_all(); + init_allAsync(); + init_any(); + init_anyAsync(); + init_asAsync(); + init_asParallel(); + init_average(); + init_averageAsync(); + init_chunk(); + init_concatenate(); + init_contains(); + init_containsAsync(); + init_count(); + init_countAsync(); + init_defaultIfEmpty(); + init_distinct(); + init_distinctAsync(); + init_each(); + init_eachAsync(); + init_elementAt(); + init_elementAtOrDefault(); + init_except(); + init_exceptAsync(); + init_first(); + init_firstAsync(); + init_firstOrDefault(); + init_firstOrDefaultAsync(); + init_groupBy(); + init_groupByAsync(); + init_groupByWithSel(); + init_groupJoin(); + init_groupJoinAsync(); + init_intersect(); + init_intersectAsync(); + init_join(); + init_last(); + init_lastAsync(); + init_lastOrDefault(); + init_lastOrDefaultAsync(); + init_max(); + init_maxAsync(); + init_min(); + init_minAsync(); + init_ofType(); + init_orderBy(); + init_orderByAsync(); + init_orderByDescending(); + init_orderByDescendingAsync(); + init_partition(); + init_partitionAsync(); + init_reverse(); + init_select(); + init_selectAsync(); + init_selectMany(); + init_selectManyAsync(); + init_sequenceEquals(); + init_sequenceEqualsAsync(); + init_single(); + init_singleAsync(); + init_singleOrDefault(); + init_singleOrDefaultAsync(); + init_skip(); + init_skipWhile(); + init_skipWhileAsync(); + init_sum(); + init_sumAsync(); + init_take(); + init_takeWhile(); + init_takeWhileAsync(); + init_toArray(); + init_toMap(); + init_toMapAsync(); + init_toObject(); + init_toObjectAsync(); + init_toSet(); + init_union(); + init_unionAsync(); + init_where(); + init_whereAsync(); + init_zip(); + init_zipAsync(); + bindLinq = (object2) => { + const prototype = object2.prototype; + const bind2 = (func, key) => { + const wrapped = function(...params) { + return func(this, ...params); + }; + Object.defineProperty(wrapped, "length", { value: func.length - 1 }); + prototype[key] = wrapped; + }; + bind2(aggregate, "aggregate"); + bind2(all, "all"); + bind2(allAsync, "allAsync"); + bind2(any, "any"); + bind2(anyAsync, "anyAsync"); + bind2(asAsync, "asAsync"); + bind2(asParallel, "asParallel"); + bind2(average, "average"); + bind2(averageAsync, "averageAsync"); + bind2(chunk, "chunk"); + bind2(concatenate, "concatenate"); + bind2(contains, "contains"); + bind2(containsAsync, "containsAsync"); + bind2(count, "count"); + bind2(countAsync, "countAsync"); + bind2(defaultIfEmpty, "defaultIfEmpty"); + bind2(distinct, "distinct"); + bind2(distinctAsync, "distinctAsync"); + bind2(each, "each"); + bind2(eachAsync, "eachAsync"); + bind2(elementAt, "elementAt"); + bind2(elementAtOrDefault, "elementAtOrDefault"); + bind2(except, "except"); + bind2(exceptAsync, "exceptAsync"); + bind2(first, "first"); + bind2(firstAsync, "firstAsync"); + bind2(firstOrDefault, "firstOrDefault"); + bind2(firstOrDefaultAsync, "firstOrDefaultAsync"); + bind2(groupBy, "groupBy"); + bind2(groupByAsync, "groupByAsync"); + bind2(groupByWithSel, "groupByWithSel"); + bind2(groupJoin, "groupJoin"); + bind2(groupJoinAsync, "groupJoinAsync"); + bind2(intersect, "intersect"); + bind2(intersectAsync, "intersectAsync"); + bind2(join, "joinByKey"); + bind2(last, "last"); + bind2(lastAsync, "lastAsync"); + bind2(lastOrDefault, "lastOrDefault"); + bind2(lastOrDefaultAsync, "lastOrDefaultAsync"); + bind2(max, "max"); + bind2(maxAsync, "maxAsync"); + bind2(min, "min"); + bind2(minAsync, "minAsync"); + bind2(ofType, "ofType"); + bind2(orderBy, "orderBy"); + bind2(orderByAsync, "orderByAsync"); + bind2(orderByDescending, "orderByDescending"); + bind2(orderByDescendingAsync, "orderByDescendingAsync"); + bind2(reverse, "reverse"); + bind2(select, "select"); + bind2(selectAsync, "selectAsync"); + bind2(selectMany, "selectMany"); + bind2(selectManyAsync, "selectManyAsync"); + bind2(sequenceEquals, "sequenceEquals"); + bind2(sequenceEqualsAsync, "sequenceEqualsAsync"); + bind2(single, "single"); + bind2(singleAsync, "singleAsync"); + bind2(singleOrDefault, "singleOrDefault"); + bind2(singleOrDefaultAsync, "singleOrDefaultAsync"); + bind2(skip, "skip"); + bind2(skipWhile, "skipWhile"); + bind2(skipWhileAsync, "skipWhileAsync"); + bind2(sum, "sum"); + bind2(sumAsync, "sumAsync"); + bind2(take, "take"); + bind2(takeWhile, "takeWhile"); + bind2(takeWhileAsync, "takeWhileAsync"); + bind2(toArray, "toArray"); + bind2(toMap, "toMap"); + bind2(toMapAsync, "toMapAsync"); + bind2(toObject, "toObject"); + bind2(toObjectAsync, "toObjectAsync"); + bind2(partition, "partition"); + bind2(partitionAsync, "partitionAsync"); + bind2(toSet, "toSet"); + bind2(union, "union"); + bind2(unionAsync, "unionAsync"); + bind2(where, "where"); + bind2(whereAsync, "whereAsync"); + bind2(zip, "zip"); + bind2(zipAsync, "zipAsync"); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/aggregate.js + var aggregate4, aggregate12, aggregate22, aggregate32; + var init_aggregate2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/aggregate.js"() { + init_shared(); + aggregate4 = (source2, seedOrFunc, func, resultSelector) => { + if (resultSelector) { + if (!func) { + throw new ReferenceError("TAccumulate function is undefined"); + } + return aggregate32(source2, seedOrFunc, func, resultSelector); + } else if (func) { + return aggregate22(source2, seedOrFunc, func); + } else { + return aggregate12(source2, seedOrFunc); + } + }; + aggregate12 = async (source2, func) => { + let aggregateValue; + for await (const value of source2) { + if (aggregateValue) { + aggregateValue = func(aggregateValue, value); + } else { + aggregateValue = value; + } + } + if (aggregateValue === void 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return aggregateValue; + }; + aggregate22 = async (source2, seed, func) => { + let aggregateValue = seed; + for await (const value of source2) { + aggregateValue = func(aggregateValue, value); + } + return aggregateValue; + }; + aggregate32 = async (source2, seed, func, resultSelector) => { + let aggregateValue = seed; + for await (const value of source2) { + aggregateValue = func(aggregateValue, value); + } + return resultSelector(aggregateValue); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/all.js + var all2; + var init_all2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/all.js"() { + all2 = async (source2, predicate) => { + for await (const item of source2) { + if (predicate(item) === false) { + return false; + } + } + return true; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/allAsync.js + var allAsync2; + var init_allAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/allAsync.js"() { + allAsync2 = async (source2, predicate) => { + for await (const item of source2) { + if (await predicate(item) === false) { + return false; + } + } + return true; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/any.js + var any3, any12, any22; + var init_any2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/any.js"() { + any3 = (source2, predicate) => { + if (predicate) { + return any22(source2, predicate); + } else { + return any12(source2); + } + }; + any12 = async (source2) => { + for await (const _3 of source2) { + return true; + } + return false; + }; + any22 = async (source2, predicate) => { + for await (const item of source2) { + if (predicate(item) === true) { + return true; + } + } + return false; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/anyAsync.js + var anyAsync2; + var init_anyAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/anyAsync.js"() { + anyAsync2 = async (source2, predicate) => { + for await (const item of source2) { + if (await predicate(item) === true) { + return true; + } + } + return false; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/asParallel.js + var asParallel2; + var init_asParallel2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/asParallel.js"() { + init_fromParallel(); + asParallel2 = (source2) => { + const generator = async () => { + const data2 = []; + for await (const value of source2) { + data2.push(value); + } + return data2; + }; + return fromParallel(0, generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/average.js + var average2; + var init_average2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/average.js"() { + init_shared(); + average2 = async (source2, selector) => { + let value = 0; + let count5 = 0; + if (selector) { + for await (const item of source2) { + value = value + selector(item); + count5 = count5 + 1; + } + } else { + for await (const item of source2) { + value = value + item; + count5 = count5 + 1; + } + } + if (count5 === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return value / count5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/averageAsync.js + var averageAsync2; + var init_averageAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/averageAsync.js"() { + init_shared(); + averageAsync2 = async (source2, selector) => { + let value = 0; + let count5 = 0; + for await (const item of source2) { + value = value + await selector(item); + count5 = count5 + 1; + } + if (count5 === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return value / count5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/chunk.js + var chunk2; + var init_chunk2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/chunk.js"() { + init_BasicAsyncEnumerable(); + init_shared(); + chunk2 = (source2, size) => { + if (size < 1) { + throw new ArgumentOutOfRangeException("index"); + } + async function* iterator() { + let yieldChunk = []; + for await (const value of source2) { + yieldChunk.push(value); + if (yieldChunk.length === size) { + yield yieldChunk; + yieldChunk = []; + } + } + if (yieldChunk.length) { + yield yieldChunk; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/concatenate.js + var concatenate2; + var init_concatenate2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/concatenate.js"() { + init_BasicAsyncEnumerable(); + concatenate2 = (first5, second) => { + async function* iterator() { + yield* first5; + yield* second; + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/contains.js + var contains2; + var init_contains2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/contains.js"() { + init_shared(); + contains2 = async (source2, value, comparer = StrictEqualityComparer) => { + for await (const item of source2) { + if (comparer(value, item)) { + return true; + } + } + return false; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/containsAsync.js + var containsAsync2; + var init_containsAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/containsAsync.js"() { + containsAsync2 = async (source2, value, comparer) => { + for await (const item of source2) { + if (await comparer(value, item)) { + return true; + } + } + return false; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/count.js + var count3, count12, count22; + var init_count2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/count.js"() { + count3 = (source2, predicate) => { + if (predicate) { + return count22(source2, predicate); + } else { + return count12(source2); + } + }; + count12 = async (source2) => { + let total = 0; + for await (const _3 of source2) { + total++; + } + return total; + }; + count22 = async (source2, predicate) => { + let total = 0; + for await (const value of source2) { + if (predicate(value) === true) { + total++; + } + } + return total; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/countAsync.js + var countAsync2; + var init_countAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/countAsync.js"() { + countAsync2 = async (source2, predicate) => { + let count5 = 0; + for await (const value of source2) { + if (await predicate(value) === true) { + count5++; + } + } + return count5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/defaultIfEmpty.js + var defaultIfEmpty2; + var init_defaultIfEmpty2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/defaultIfEmpty.js"() { + init_BasicAsyncEnumerable(); + defaultIfEmpty2 = (source2, defaultValue) => { + async function* generator() { + let found = false; + for await (const value of source2) { + found = true; + yield value; + } + if (!found) { + yield defaultValue; + } + } + return new BasicAsyncEnumerable(generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/distinct.js + var distinct2; + var init_distinct2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/distinct.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + distinct2 = (source2, comparer = StrictEqualityComparer) => { + async function* iterator() { + const distinctElements = []; + for await (const item of source2) { + const foundItem = distinctElements.find((x3) => comparer(x3, item)); + if (!foundItem) { + distinctElements.push(item); + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/distinctAsync.js + var distinctAsync2; + var init_distinctAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/distinctAsync.js"() { + init_BasicAsyncEnumerable(); + distinctAsync2 = (source2, comparer) => { + async function* iterator() { + const distinctElements = []; + outerLoop: + for await (const item of source2) { + for (const distinctElement of distinctElements) { + const found = await comparer(distinctElement, item); + if (found) { + continue outerLoop; + } + } + distinctElements.push(item); + yield item; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/each.js + var each2; + var init_each2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/each.js"() { + init_BasicAsyncEnumerable(); + each2 = (source2, action) => { + async function* iterator() { + for await (const value of source2) { + action(value); + yield value; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/eachAsync.js + var eachAsync2; + var init_eachAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/eachAsync.js"() { + init_BasicAsyncEnumerable(); + eachAsync2 = (source2, action) => { + async function* iterator() { + for await (const value of source2) { + await action(value); + yield value; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/elementAt.js + var elementAt2; + var init_elementAt2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/elementAt.js"() { + init_shared(); + elementAt2 = async (source2, index) => { + if (index < 0) { + throw new ArgumentOutOfRangeException("index"); + } + let i4 = 0; + for await (const item of source2) { + if (index === i4++) { + return item; + } + } + throw new ArgumentOutOfRangeException("index"); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/elementAtOrDefault.js + var elementAtOrDefault2; + var init_elementAtOrDefault2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/elementAtOrDefault.js"() { + elementAtOrDefault2 = async (source2, index) => { + let i4 = 0; + for await (const item of source2) { + if (index === i4++) { + return item; + } + } + return null; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/except.js + var except2; + var init_except2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/except.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + except2 = (first5, second, comparer = StrictEqualityComparer) => { + async function* iterator() { + const secondArray = []; + for await (const x3 of second) { + secondArray.push(x3); + } + for await (const firstItem of first5) { + let exists = false; + for (let j3 = 0; j3 < secondArray.length; j3++) { + const secondItem = secondArray[j3]; + if (comparer(firstItem, secondItem) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield firstItem; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/exceptAsync.js + var exceptAsync2; + var init_exceptAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/exceptAsync.js"() { + init_BasicAsyncEnumerable(); + exceptAsync2 = (first5, second, comparer) => { + async function* iterator() { + const secondArray = []; + for await (const x3 of second) { + secondArray.push(x3); + } + for await (const firstItem of first5) { + let exists = false; + for (let j3 = 0; j3 < secondArray.length; j3++) { + const secondItem = secondArray[j3]; + if (await comparer(firstItem, secondItem) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield firstItem; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/first.js + var first3, first12, first22; + var init_first2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/first.js"() { + init_shared(); + first3 = (source2, predicate) => { + if (predicate) { + return first22(source2, predicate); + } else { + return first12(source2); + } + }; + first12 = async (source2) => { + const firstElement = await source2[Symbol.asyncIterator]().next(); + if (firstElement.done === true) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return firstElement.value; + }; + first22 = async (source2, predicate) => { + for await (const value of source2) { + if (predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/firstAsync.js + var firstAsync2; + var init_firstAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/firstAsync.js"() { + init_shared(); + firstAsync2 = async (source2, predicate) => { + for await (const value of source2) { + if (await predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/firstOrDefault.js + var firstOrDefault3, firstOrDefault12, firstOrDefault22; + var init_firstOrDefault2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/firstOrDefault.js"() { + firstOrDefault3 = (source2, predicate) => { + if (predicate) { + return firstOrDefault22(source2, predicate); + } else { + return firstOrDefault12(source2); + } + }; + firstOrDefault12 = async (source2) => { + const first5 = await source2[Symbol.asyncIterator]().next(); + return first5.value || null; + }; + firstOrDefault22 = async (source2, predicate) => { + for await (const value of source2) { + if (predicate(value) === true) { + return value; + } + } + return null; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/firstOrDefaultAsync.js + var firstOrDefaultAsync2; + var init_firstOrDefaultAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/firstOrDefaultAsync.js"() { + firstOrDefaultAsync2 = async (source2, predicate) => { + for await (const value of source2) { + if (await predicate(value) === true) { + return value; + } + } + return null; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/groupBy.js + var groupBy2, groupBy_02, groupBy_0_Simple2; + var init_groupBy2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/groupBy.js"() { + init_Grouping(); + init_BasicAsyncEnumerable(); + groupBy2 = (source2, keySelector, comparer) => { + if (comparer) { + return groupBy_02(source2, keySelector, comparer); + } else { + return groupBy_0_Simple2(source2, keySelector); + } + }; + groupBy_02 = (source2, keySelector, comparer) => { + async function* generate() { + const keyMap = new Array(); + for await (const value of source2) { + const key = keySelector(value); + let found = false; + for (let i4 = 0; i4 < keyMap.length; i4++) { + const group = keyMap[i4]; + if (comparer(group.key, key)) { + group.push(value); + found = true; + break; + } + } + if (found === false) { + keyMap.push(new Grouping(key, value)); + } + } + for (const g4 of keyMap) { + yield g4; + } + } + return new BasicAsyncEnumerable(generate); + }; + groupBy_0_Simple2 = (source2, keySelector) => { + async function* iterator() { + const keyMap = {}; + for await (const value of source2) { + const key = keySelector(value); + const grouping = keyMap[key]; + if (grouping) { + grouping.push(value); + } else { + keyMap[key] = new Grouping(key, value); + } + } + for (const value in keyMap) { + yield keyMap[value]; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/groupByAsync.js + var groupByAsync2, groupByAsync_0_Simple2, groupByAsync_02; + var init_groupByAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/groupByAsync.js"() { + init_Grouping(); + init_BasicAsyncEnumerable(); + groupByAsync2 = (source2, keySelector, comparer) => { + if (comparer) { + return groupByAsync_02(source2, keySelector, comparer); + } else { + return groupByAsync_0_Simple2(source2, keySelector); + } + }; + groupByAsync_0_Simple2 = (source2, keySelector) => { + async function* iterator() { + const keyMap = {}; + for await (const value of source2) { + const key = await keySelector(value); + const grouping = keyMap[key]; + if (grouping) { + grouping.push(value); + } else { + keyMap[key] = new Grouping(key, value); + } + } + for (const value in keyMap) { + yield keyMap[value]; + } + } + return new BasicAsyncEnumerable(iterator); + }; + groupByAsync_02 = (source2, keySelector, comparer) => { + async function* generate() { + const keyMap = new Array(); + for await (const value of source2) { + const key = await keySelector(value); + let found = false; + for (let i4 = 0; i4 < keyMap.length; i4++) { + const group = keyMap[i4]; + if (await comparer(group.key, key) === true) { + group.push(value); + found = true; + break; + } + } + if (found === false) { + keyMap.push(new Grouping(key, value)); + } + } + for (const keyValue of keyMap) { + yield keyValue; + } + } + return new BasicAsyncEnumerable(generate); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/groupByWithSel.js + var groupByWithSel2, groupBy1Simple, groupBy1; + var init_groupByWithSel2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/groupByWithSel.js"() { + init_Grouping(); + init_BasicAsyncEnumerable(); + groupByWithSel2 = (source2, keySelector, elementSelector, comparer) => { + if (comparer) { + return groupBy1(source2, keySelector, elementSelector, comparer); + } else { + return groupBy1Simple(source2, keySelector, elementSelector); + } + }; + groupBy1Simple = (source2, keySelector, elementSelector) => { + async function* generate() { + const keyMap = {}; + for await (const value of source2) { + const key = keySelector(value); + const grouping = keyMap[key]; + const element = elementSelector(value); + if (grouping) { + grouping.push(element); + } else { + keyMap[key] = new Grouping(key, element); + } + } + for (const value in keyMap) { + yield keyMap[value]; + } + } + return new BasicAsyncEnumerable(generate); + }; + groupBy1 = (source2, keySelector, elementSelector, comparer) => { + async function* generate() { + const keyMap = new Array(); + for await (const value of source2) { + const key = keySelector(value); + let found = false; + for (let i4 = 0; i4 < keyMap.length; i4++) { + const group = keyMap[i4]; + if (comparer(group.key, key)) { + group.push(elementSelector(value)); + found = true; + break; + } + } + if (found === false) { + const element = elementSelector(value); + keyMap.push(new Grouping(key, element)); + } + } + for (const value of keyMap) { + yield value; + } + } + return new BasicAsyncEnumerable(generate); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/groupJoin.js + var groupJoin2, groupJoinWithComparer3, groupJoinSimple3; + var init_groupJoin2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/groupJoin.js"() { + init_BasicAsyncEnumerable(); + groupJoin2 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + const generator = comparer ? groupJoinWithComparer3(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) : groupJoinSimple3(outer, inner, outerKeySelector, innerKeySelector, resultSelector); + return new BasicAsyncEnumerable(generator); + }; + groupJoinWithComparer3 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + return async function* () { + var _a; + const innerKeyMap = []; + for await (const innerValue of inner) { + const key = innerKeySelector(innerValue); + const record = innerKeyMap.find((x3) => comparer(x3.key, key)); + if (record) { + record.values.push(innerValue); + } else { + innerKeyMap.push({ key, values: [innerValue] }); + } + } + for await (const outerValue of outer) { + const key = outerKeySelector(outerValue); + const innerRecord = (_a = innerKeyMap.find((x3) => comparer(x3.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] }; + yield resultSelector(outerValue, innerRecord.values); + } + }; + }; + groupJoinSimple3 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => { + return async function* () { + var _a; + const innerKeyMap = /* @__PURE__ */ new Map(); + for await (const innerValue of inner) { + const key = innerKeySelector(innerValue); + const values2 = innerKeyMap.get(key); + if (values2) { + values2.push(innerValue); + } else { + innerKeyMap.set(key, [innerValue]); + } + } + for await (const outerValue of outer) { + const key = outerKeySelector(outerValue); + const values2 = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : []; + yield resultSelector(outerValue, values2); + } + }; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/groupJoinAsync.js + var groupJoinAsync2, groupJoinWithComparer4, groupJoinSimple4; + var init_groupJoinAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/groupJoinAsync.js"() { + init_BasicAsyncEnumerable(); + groupJoinAsync2 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + const generator = comparer ? groupJoinWithComparer4(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) : groupJoinSimple4(outer, inner, outerKeySelector, innerKeySelector, resultSelector); + return new BasicAsyncEnumerable(generator); + }; + groupJoinWithComparer4 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + return async function* () { + var _a; + const innerKeyMap = []; + for await (const innerValue of inner) { + const key = await innerKeySelector(innerValue); + const record = innerKeyMap.find((x3) => comparer(x3.key, key)); + if (record) { + record.values.push(innerValue); + } else { + innerKeyMap.push({ key, values: [innerValue] }); + } + } + for await (const outerValue of outer) { + const key = await outerKeySelector(outerValue); + const innerRecord = (_a = innerKeyMap.find((x3) => comparer(x3.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] }; + yield resultSelector(outerValue, innerRecord.values); + } + }; + }; + groupJoinSimple4 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => { + return async function* () { + var _a; + const innerKeyMap = /* @__PURE__ */ new Map(); + for await (const innerValue of inner) { + const key = await innerKeySelector(innerValue); + const values2 = innerKeyMap.get(key); + if (values2) { + values2.push(innerValue); + } else { + innerKeyMap.set(key, [innerValue]); + } + } + for await (const outerValue of outer) { + const key = await outerKeySelector(outerValue); + const values2 = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : []; + yield resultSelector(outerValue, values2); + } + }; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/intersect.js + var intersect2; + var init_intersect2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/intersect.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + intersect2 = (first5, second, comparer = StrictEqualityComparer) => { + async function* iterator() { + const firstResults = await first5.distinct(comparer).toArray(); + if (firstResults.length === 0) { + return; + } + const secondResults = await second.toArray(); + for (let i4 = 0; i4 < firstResults.length; i4++) { + const firstValue = firstResults[i4]; + for (let j3 = 0; j3 < secondResults.length; j3++) { + const secondValue = secondResults[j3]; + if (comparer(firstValue, secondValue) === true) { + yield firstValue; + break; + } + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/intersectAsync.js + var intersectAsync2; + var init_intersectAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/intersectAsync.js"() { + init_BasicAsyncEnumerable(); + intersectAsync2 = (first5, second, comparer) => { + async function* iterator() { + const firstResults = await first5.distinctAsync(comparer).toArray(); + if (firstResults.length === 0) { + return; + } + const secondResults = await second.toArray(); + for (let i4 = 0; i4 < firstResults.length; i4++) { + const firstValue = firstResults[i4]; + for (let j3 = 0; j3 < secondResults.length; j3++) { + const secondValue = secondResults[j3]; + if (await comparer(firstValue, secondValue) === true) { + yield firstValue; + break; + } + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/join.js + var join2; + var init_join2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/join.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + join2 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer = StrictEqualityComparer) => { + async function* iterator() { + const innerArray = []; + for await (const i4 of inner) { + innerArray.push(i4); + } + for await (const o3 of outer) { + const outerKey = outerKeySelector(o3); + for (const i4 of innerArray) { + const innerKey = innerKeySelector(i4); + if (comparer(outerKey, innerKey) === true) { + yield resultSelector(o3, i4); + } + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/last.js + var last3, last12, last22; + var init_last2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/last.js"() { + init_shared(); + last3 = (source2, predicate) => { + if (predicate) { + return last22(source2, predicate); + } else { + return last12(source2); + } + }; + last12 = async (source2) => { + let lastItem = null; + for await (const value of source2) { + lastItem = value; + } + if (!lastItem) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return lastItem; + }; + last22 = async (source2, predicate) => { + let lastItem = null; + for await (const value of source2) { + if (predicate(value) === true) { + lastItem = value; + } + } + if (!lastItem) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return lastItem; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/lastAsync.js + var lastAsync2; + var init_lastAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/lastAsync.js"() { + init_shared(); + lastAsync2 = async (source2, predicate) => { + let last5 = null; + for await (const value of source2) { + if (await predicate(value) === true) { + last5 = value; + } + } + if (!last5) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return last5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/lastOrDefault.js + var lastOrDefault3, lastOrDefault12, lastOrDefault22; + var init_lastOrDefault2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/lastOrDefault.js"() { + lastOrDefault3 = (source2, predicate) => { + if (predicate) { + return lastOrDefault22(source2, predicate); + } else { + return lastOrDefault12(source2); + } + }; + lastOrDefault12 = async (source2) => { + let last5 = null; + for await (const value of source2) { + last5 = value; + } + return last5; + }; + lastOrDefault22 = async (source2, predicate) => { + let last5 = null; + for await (const value of source2) { + if (predicate(value) === true) { + last5 = value; + } + } + return last5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/lastOrDefaultAsync.js + var lastOrDefaultAsync2; + var init_lastOrDefaultAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/lastOrDefaultAsync.js"() { + lastOrDefaultAsync2 = async (source2, predicate) => { + let last5 = null; + for await (const value of source2) { + if (await predicate(value) === true) { + last5 = value; + } + } + return last5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/max.js + var max3, max12, max22; + var init_max2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/max.js"() { + init_shared(); + max3 = (source2, selector) => { + if (selector) { + return max22(source2, selector); + } else { + return max12(source2); + } + }; + max12 = async (source2) => { + let maxItem = null; + for await (const item of source2) { + maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, item); + } + if (maxItem === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return maxItem; + } + }; + max22 = async (source2, selector) => { + let maxItem = null; + for await (const item of source2) { + maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, selector(item)); + } + if (maxItem === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return maxItem; + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/maxAsync.js + var maxAsync2; + var init_maxAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/maxAsync.js"() { + init_shared(); + maxAsync2 = async (source2, selector) => { + let max5 = null; + for await (const item of source2) { + max5 = Math.max(max5 || Number.NEGATIVE_INFINITY, await selector(item)); + } + if (max5 === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return max5; + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/min.js + var min3, min12, min22; + var init_min2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/min.js"() { + init_shared(); + min3 = (source2, selector) => { + if (selector) { + return min22(source2, selector); + } else { + return min12(source2); + } + }; + min12 = async (source2) => { + let minValue = null; + for await (const item of source2) { + minValue = Math.min(minValue || Number.POSITIVE_INFINITY, item); + } + if (minValue === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return minValue; + } + }; + min22 = async (source2, selector) => { + let minValue = null; + for await (const item of source2) { + minValue = Math.min(minValue || Number.POSITIVE_INFINITY, selector(item)); + } + if (minValue === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return minValue; + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/minAsync.js + var minAsync2; + var init_minAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/minAsync.js"() { + init_shared(); + minAsync2 = async (source2, selector) => { + let min5 = null; + for await (const item of source2) { + min5 = Math.min(min5 || Number.POSITIVE_INFINITY, await selector(item)); + } + if (min5 === null) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return min5; + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/ofType.js + var ofType2; + var init_ofType2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/ofType.js"() { + init_BasicAsyncEnumerable(); + ofType2 = (source2, type) => { + const typeCheck = typeof type === "string" ? (x3) => typeof x3 === type : (x3) => x3 instanceof type; + async function* iterator() { + for await (const item of source2) { + if (typeCheck(item)) { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/orderBy.js + var orderBy2; + var init_orderBy2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/orderBy.js"() { + init_OrderedAsyncEnumerable(); + orderBy2 = (source2, keySelector, comparer) => { + return OrderedAsyncEnumerable.generate(source2, keySelector, true, comparer); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/orderByAsync.js + var orderByAsync2; + var init_orderByAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/orderByAsync.js"() { + init_OrderedAsyncEnumerable(); + orderByAsync2 = (source2, keySelector, comparer) => { + return OrderedAsyncEnumerable.generateAsync(source2, keySelector, true, comparer); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/orderByDescending.js + var orderByDescending2; + var init_orderByDescending2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/orderByDescending.js"() { + init_OrderedAsyncEnumerable(); + orderByDescending2 = (source2, keySelector, comparer) => { + return OrderedAsyncEnumerable.generate(source2, keySelector, false, comparer); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/orderByDescendingAsync.js + var orderByDescendingAsync2; + var init_orderByDescendingAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/orderByDescendingAsync.js"() { + init_OrderedAsyncEnumerable(); + orderByDescendingAsync2 = (source2, keySelector, comparer) => { + return OrderedAsyncEnumerable.generateAsync(source2, keySelector, false, comparer); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/partition.js + var partition2; + var init_partition2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/partition.js"() { + partition2 = async (source2, predicate) => { + const fail = []; + const pass = []; + for await (const value of source2) { + if (predicate(value) === true) { + pass.push(value); + } else { + fail.push(value); + } + } + return [pass, fail]; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/partitionAsync.js + var partitionAsync2; + var init_partitionAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/partitionAsync.js"() { + partitionAsync2 = async (source2, predicate) => { + const fail = []; + const pass = []; + for await (const value of source2) { + if (await predicate(value) === true) { + pass.push(value); + } else { + fail.push(value); + } + } + return [pass, fail]; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/reverse.js + var reverse2; + var init_reverse2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/reverse.js"() { + init_BasicAsyncEnumerable(); + reverse2 = (source2) => { + async function* iterator() { + const values2 = []; + for await (const value of source2) { + values2.push(value); + } + for (let i4 = values2.length - 1; i4 >= 0; i4--) { + yield values2[i4]; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/select.js + var select4, select12, select22, select32; + var init_select2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/select.js"() { + init_BasicAsyncEnumerable(); + select4 = (source2, selector) => { + if (typeof selector === "function") { + if (selector.length === 1) { + return select12(source2, selector); + } else { + return select22(source2, selector); + } + } else { + return select32(source2, selector); + } + }; + select12 = (source2, selector) => { + async function* iterator() { + for await (const value of source2) { + yield selector(value); + } + } + return new BasicAsyncEnumerable(iterator); + }; + select22 = (source2, selector) => { + async function* iterator() { + let index = 0; + for await (const value of source2) { + yield selector(value, index); + index++; + } + } + return new BasicAsyncEnumerable(iterator); + }; + select32 = (source2, key) => { + async function* iterator() { + for await (const value of source2) { + yield value[key]; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/selectAsync.js + var selectAsync4, selectAsync12, selectAsync22; + var init_selectAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/selectAsync.js"() { + init_BasicAsyncEnumerable(); + selectAsync4 = (source2, selector) => { + if (typeof selector === "string") { + return selectAsync22(source2, selector); + } else { + return selectAsync12(source2, selector); + } + }; + selectAsync12 = (source2, selector) => { + async function* iterator() { + for await (const value of source2) { + yield selector(value); + } + } + return new BasicAsyncEnumerable(iterator); + }; + selectAsync22 = (source2, key) => { + async function* iterator() { + for await (const value of source2) { + yield value[key]; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/selectMany.js + var selectMany4, selectMany12, selectMany22, selectMany32; + var init_selectMany2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/selectMany.js"() { + init_BasicAsyncEnumerable(); + selectMany4 = (source2, selector) => { + if (typeof selector === "function") { + if (selector.length === 1) { + return selectMany12(source2, selector); + } else { + return selectMany22(source2, selector); + } + } else { + return selectMany32(source2, selector); + } + }; + selectMany12 = (source2, selector) => { + async function* iterator() { + for await (const value of source2) { + for (const selectorValue of selector(value)) { + yield selectorValue; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + selectMany22 = (source2, selector) => { + async function* iterator() { + let index = 0; + for await (const value of source2) { + for (const selectorValue of selector(value, index)) { + yield selectorValue; + } + index++; + } + } + return new BasicAsyncEnumerable(iterator); + }; + selectMany32 = (source2, selector) => { + async function* iterator() { + for await (const value of source2) { + for (const selectorValue of value[selector]) { + yield selectorValue; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/selectManyAsync.js + var selectManyAsync3; + var init_selectManyAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/selectManyAsync.js"() { + init_BasicAsyncEnumerable(); + selectManyAsync3 = (source2, selector) => { + if (selector.length === 1) { + const iterator = async function* () { + for await (const value of source2) { + const many = await selector(value); + for (const innerValue of many) { + yield innerValue; + } + } + }; + return new BasicAsyncEnumerable(iterator); + } else { + const iterator = async function* () { + let index = 0; + for await (const value of source2) { + const many = await selector(value, index); + for (const innerValue of many) { + yield innerValue; + } + index++; + } + }; + return new BasicAsyncEnumerable(iterator); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/sequenceEquals.js + var sequenceEquals2; + var init_sequenceEquals2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/sequenceEquals.js"() { + init_shared(); + sequenceEquals2 = async (first5, second, comparer = StrictEqualityComparer) => { + const firstIterator = first5[Symbol.asyncIterator](); + const secondIterator = second[Symbol.asyncIterator](); + let results = await Promise.all([firstIterator.next(), secondIterator.next()]); + let firstResult = results[0]; + let secondResult = results[1]; + while (!firstResult.done && !secondResult.done) { + if (!comparer(firstResult.value, secondResult.value)) { + return false; + } + results = await Promise.all([firstIterator.next(), secondIterator.next()]); + firstResult = results[0]; + secondResult = results[1]; + } + return firstResult.done === true && secondResult.done === true; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/sequenceEqualsAsync.js + var sequenceEqualsAsync2; + var init_sequenceEqualsAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/sequenceEqualsAsync.js"() { + sequenceEqualsAsync2 = async (first5, second, comparer) => { + const firstIterator = first5[Symbol.asyncIterator](); + const secondIterator = second[Symbol.asyncIterator](); + let results = await Promise.all([firstIterator.next(), secondIterator.next()]); + let firstResult = results[0]; + let secondResult = results[1]; + while (!firstResult.done && !secondResult.done) { + if (await comparer(firstResult.value, secondResult.value) === false) { + return false; + } + results = await Promise.all([firstIterator.next(), secondIterator.next()]); + firstResult = results[0]; + secondResult = results[1]; + } + return firstResult.done === true && secondResult.done === true; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/single.js + var single3, single12, single22; + var init_single2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/single.js"() { + init_shared(); + single3 = (source2, predicate) => { + if (predicate) { + return single22(source2, predicate); + } else { + return single12(source2); + } + }; + single12 = async (source2) => { + let hasValue = false; + let singleValue = null; + for await (const value of source2) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return singleValue; + }; + single22 = async (source2, predicate) => { + let hasValue = false; + let singleValue = null; + for await (const value of source2) { + if (predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return singleValue; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/singleAsync.js + var singleAsync2; + var init_singleAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/singleAsync.js"() { + init_shared(); + singleAsync2 = async (source2, predicate) => { + let hasValue = false; + let singleValue = null; + for await (const value of source2) { + if (await predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return singleValue; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/singleOrDefault.js + var singleOrDefault3, singleOrDefault12, singleOrDefault22; + var init_singleOrDefault2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/singleOrDefault.js"() { + init_shared(); + singleOrDefault3 = (source2, predicate) => { + if (predicate) { + return singleOrDefault22(source2, predicate); + } else { + return singleOrDefault12(source2); + } + }; + singleOrDefault12 = async (source2) => { + let hasValue = false; + let singleValue = null; + for await (const value of source2) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + return singleValue; + }; + singleOrDefault22 = async (source2, predicate) => { + let hasValue = false; + let singleValue = null; + for await (const value of source2) { + if (predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + return singleValue; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/singleOrDefaultAsync.js + var singleOrDefaultAsync2; + var init_singleOrDefaultAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/singleOrDefaultAsync.js"() { + init_shared(); + singleOrDefaultAsync2 = async (source2, predicate) => { + let hasValue = false; + let singleValue = null; + for await (const value of source2) { + if (await predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + return singleValue; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/skip.js + var skip2; + var init_skip2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/skip.js"() { + init_BasicAsyncEnumerable(); + skip2 = (source2, count5) => { + async function* iterator() { + let i4 = 0; + for await (const item of source2) { + if (i4++ >= count5) { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/skipWhile.js + var skipWhile3, skipWhile12, skipWhile22; + var init_skipWhile2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/skipWhile.js"() { + init_BasicAsyncEnumerable(); + skipWhile3 = (source2, predicate) => { + if (predicate.length === 1) { + return skipWhile12(source2, predicate); + } else { + return skipWhile22(source2, predicate); + } + }; + skipWhile12 = (source2, predicate) => { + async function* iterator() { + let skip4 = true; + for await (const item of source2) { + if (skip4 === false) { + yield item; + } else if (predicate(item) === false) { + skip4 = false; + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + skipWhile22 = (source2, predicate) => { + async function* iterator() { + let index = 0; + let skip4 = true; + for await (const item of source2) { + if (skip4 === false) { + yield item; + } else if (predicate(item, index) === false) { + skip4 = false; + yield item; + } + index++; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/skipWhileAsync.js + var skipWhileAsync3, skipWhileAsync12, skipWhileAsync22; + var init_skipWhileAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/skipWhileAsync.js"() { + init_BasicAsyncEnumerable(); + skipWhileAsync3 = (source2, predicate) => { + if (predicate.length === 1) { + return skipWhileAsync12(source2, predicate); + } else { + return skipWhileAsync22(source2, predicate); + } + }; + skipWhileAsync12 = (source2, predicate) => { + async function* iterator() { + let skip4 = true; + for await (const item of source2) { + if (skip4 === false) { + yield item; + } else if (await predicate(item) === false) { + skip4 = false; + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + skipWhileAsync22 = (source2, predicate) => { + async function* iterator() { + let index = 0; + let skip4 = true; + for await (const item of source2) { + if (skip4 === false) { + yield item; + } else if (await predicate(item, index) === false) { + skip4 = false; + yield item; + } + index++; + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/sum.js + var sum3, sum12, sum22; + var init_sum2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/sum.js"() { + sum3 = (source2, selector) => { + if (selector) { + return sum22(source2, selector); + } else { + return sum12(source2); + } + }; + sum12 = async (source2) => { + let total = 0; + for await (const value of source2) { + total += value; + } + return total; + }; + sum22 = async (source2, selector) => { + let total = 0; + for await (const value of source2) { + total += selector(value); + } + return total; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/sumAsync.js + var sumAsync2; + var init_sumAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/sumAsync.js"() { + sumAsync2 = async (source2, selector) => { + let sum5 = 0; + for await (const value of source2) { + sum5 += await selector(value); + } + return sum5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/take.js + var take2; + var init_take2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/take.js"() { + init_BasicAsyncEnumerable(); + take2 = (source2, amount) => { + async function* iterator() { + let amountLeft = amount > 0 ? amount : 0; + for await (const item of source2) { + if (amountLeft-- === 0) { + break; + } else { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/takeWhile.js + var takeWhile3, takeWhile12, takeWhile22; + var init_takeWhile2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/takeWhile.js"() { + init_BasicAsyncEnumerable(); + takeWhile3 = (source2, predicate) => { + if (predicate.length === 1) { + return takeWhile12(source2, predicate); + } else { + return takeWhile22(source2, predicate); + } + }; + takeWhile12 = (source2, predicate) => { + async function* iterator() { + for await (const item of source2) { + if (predicate(item)) { + yield item; + } else { + break; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + takeWhile22 = (source2, predicate) => { + async function* iterator() { + let index = 0; + for await (const item of source2) { + if (predicate(item, index++)) { + yield item; + } else { + break; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/takeWhileAsync.js + var takeWhileAsync3, takeWhileAsync12, takeWhileAsync22; + var init_takeWhileAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/takeWhileAsync.js"() { + init_BasicAsyncEnumerable(); + takeWhileAsync3 = (source2, predicate) => { + if (predicate.length === 1) { + return takeWhileAsync12(source2, predicate); + } else { + return takeWhileAsync22(source2, predicate); + } + }; + takeWhileAsync12 = (source2, predicate) => { + async function* iterator() { + for await (const item of source2) { + if (await predicate(item)) { + yield item; + } else { + break; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + takeWhileAsync22 = (source2, predicate) => { + async function* iterator() { + let index = 0; + for await (const item of source2) { + if (await predicate(item, index++)) { + yield item; + } else { + break; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/toArray.js + var toArray2; + var init_toArray2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/toArray.js"() { + toArray2 = async (source2) => { + const array = []; + for await (const item of source2) { + array.push(item); + } + return array; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/toMap.js + var toMap2; + var init_toMap2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/toMap.js"() { + toMap2 = async (source2, selector) => { + const map2 = /* @__PURE__ */ new Map(); + for await (const value of source2) { + const key = selector(value); + const array = map2.get(key); + if (array === void 0) { + map2.set(key, [value]); + } else { + array.push(value); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/toMapAsync.js + var toMapAsync2; + var init_toMapAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/toMapAsync.js"() { + toMapAsync2 = async (source2, selector) => { + const map2 = /* @__PURE__ */ new Map(); + for await (const value of source2) { + const key = await selector(value); + const array = map2.get(key); + if (array === void 0) { + map2.set(key, [value]); + } else { + array.push(value); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/toObject.js + var toObject2; + var init_toObject2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/toObject.js"() { + toObject2 = async (source2, selector) => { + const map2 = {}; + for await (const value of source2) { + map2[selector(value)] = value; + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/toObjectAsync.js + var toObjectAsync2; + var init_toObjectAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/toObjectAsync.js"() { + toObjectAsync2 = async (source2, selector) => { + const map2 = {}; + for await (const value of source2) { + map2[await selector(value)] = value; + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/toSet.js + var toSet2; + var init_toSet2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/toSet.js"() { + toSet2 = async (source2) => { + const set = /* @__PURE__ */ new Set(); + for await (const item of source2) { + set.add(item); + } + return set; + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/union.js + var union3, union12, union22; + var init_union2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/union.js"() { + init_BasicAsyncEnumerable(); + union3 = (first5, second, comparer) => { + if (comparer) { + return union22(first5, second, comparer); + } else { + return union12(first5, second); + } + }; + union12 = (first5, second) => { + async function* iterator() { + const set = /* @__PURE__ */ new Set(); + for await (const item of first5) { + if (set.has(item) === false) { + yield item; + set.add(item); + } + } + for await (const item of second) { + if (set.has(item) === false) { + yield item; + set.add(item); + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + union22 = (first5, second, comparer) => { + async function* iterator() { + const result = []; + for (const source2 of [first5, second]) { + for await (const value of source2) { + let exists = false; + for (const resultValue of result) { + if (comparer(value, resultValue) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield value; + result.push(value); + } + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/unionAsync.js + var unionAsync2; + var init_unionAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/unionAsync.js"() { + init_BasicAsyncEnumerable(); + unionAsync2 = (first5, second, comparer) => { + async function* iterator() { + const result = []; + for (const source2 of [first5, second]) { + for await (const value of source2) { + let exists = false; + for (const resultValue of result) { + if (await comparer(value, resultValue) === true) { + exists = true; + break; + } + } + if (exists === false) { + yield value; + result.push(value); + } + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/where.js + var where3, where12, where22; + var init_where2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/where.js"() { + init_BasicAsyncEnumerable(); + where3 = (source2, predicate) => { + if (predicate.length === 1) { + return where12(source2, predicate); + } else { + return where22(source2, predicate); + } + }; + where12 = (source2, predicate) => { + async function* iterator() { + for await (const item of source2) { + if (predicate(item) === true) { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + where22 = (source2, predicate) => { + async function* iterator() { + let i4 = 0; + for await (const item of source2) { + if (predicate(item, i4++) === true) { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/whereAsync.js + var whereAsync3, whereAsync12, whereAsync22; + var init_whereAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/whereAsync.js"() { + init_BasicAsyncEnumerable(); + whereAsync3 = (source2, predicate) => { + if (predicate.length === 1) { + return whereAsync12(source2, predicate); + } else { + return whereAsync22(source2, predicate); + } + }; + whereAsync12 = (source2, predicate) => { + async function* iterator() { + for await (const item of source2) { + if (await predicate(item) === true) { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + whereAsync22 = (source2, predicate) => { + async function* iterator() { + let i4 = 0; + for await (const item of source2) { + if (await predicate(item, i4++) === true) { + yield item; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/zip.js + var zip3, zip12, zip22; + var init_zip2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/zip.js"() { + init_BasicAsyncEnumerable(); + zip3 = (first5, second, resultSelector) => { + if (resultSelector) { + return zip22(first5, second, resultSelector); + } else { + return zip12(first5, second); + } + }; + zip12 = (source2, second) => { + async function* iterator() { + const firstIterator = source2[Symbol.asyncIterator](); + const secondIterator = second[Symbol.asyncIterator](); + while (true) { + const [a4, b4] = await Promise.all([firstIterator.next(), secondIterator.next()]); + if (a4.done || b4.done) { + break; + } else { + yield [a4.value, b4.value]; + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + zip22 = (source2, second, resultSelector) => { + async function* iterator() { + const firstIterator = source2[Symbol.asyncIterator](); + const secondIterator = second[Symbol.asyncIterator](); + while (true) { + const [a4, b4] = await Promise.all([firstIterator.next(), secondIterator.next()]); + if (a4.done || b4.done) { + break; + } else { + yield resultSelector(a4.value, b4.value); + } + } + } + return new BasicAsyncEnumerable(iterator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/async/_private/zipAsync.js + var zipAsync2; + var init_zipAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/async/_private/zipAsync.js"() { + init_BasicAsyncEnumerable(); + zipAsync2 = (first5, second, resultSelector) => { + async function* generator() { + const firstIterator = first5[Symbol.asyncIterator](); + const secondIterator = second[Symbol.asyncIterator](); + while (true) { + const results = await Promise.all([firstIterator.next(), secondIterator.next()]); + const firstNext = results[0]; + const secondNext = results[1]; + if (firstNext.done || secondNext.done) { + break; + } else { + yield resultSelector(firstNext.value, secondNext.value); + } + } + } + return new BasicAsyncEnumerable(generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/initializer/bindLinqAsync.js + var bindLinqAsync; + var init_bindLinqAsync = __esm({ + "node_modules/linq-to-typescript/esm/initializer/bindLinqAsync.js"() { + init_aggregate2(); + init_all2(); + init_allAsync2(); + init_any2(); + init_anyAsync2(); + init_asParallel2(); + init_average2(); + init_averageAsync2(); + init_chunk2(); + init_concatenate2(); + init_contains2(); + init_containsAsync2(); + init_count2(); + init_countAsync2(); + init_defaultIfEmpty2(); + init_distinct2(); + init_distinctAsync2(); + init_each2(); + init_eachAsync2(); + init_elementAt2(); + init_elementAtOrDefault2(); + init_except2(); + init_exceptAsync2(); + init_first2(); + init_firstAsync2(); + init_firstOrDefault2(); + init_firstOrDefaultAsync2(); + init_groupBy2(); + init_groupByAsync2(); + init_groupByWithSel2(); + init_groupJoin2(); + init_groupJoinAsync2(); + init_intersect2(); + init_intersectAsync2(); + init_join2(); + init_last2(); + init_lastAsync2(); + init_lastOrDefault2(); + init_lastOrDefaultAsync2(); + init_max2(); + init_maxAsync2(); + init_min2(); + init_minAsync2(); + init_ofType2(); + init_orderBy2(); + init_orderByAsync2(); + init_orderByDescending2(); + init_orderByDescendingAsync2(); + init_partition2(); + init_partitionAsync2(); + init_reverse2(); + init_select2(); + init_selectAsync2(); + init_selectMany2(); + init_selectManyAsync2(); + init_sequenceEquals2(); + init_sequenceEqualsAsync2(); + init_single2(); + init_singleAsync2(); + init_singleOrDefault2(); + init_singleOrDefaultAsync2(); + init_skip2(); + init_skipWhile2(); + init_skipWhileAsync2(); + init_sum2(); + init_sumAsync2(); + init_take2(); + init_takeWhile2(); + init_takeWhileAsync2(); + init_toArray2(); + init_toMap2(); + init_toMapAsync2(); + init_toObject2(); + init_toObjectAsync2(); + init_toSet2(); + init_union2(); + init_unionAsync2(); + init_where2(); + init_whereAsync2(); + init_zip2(); + init_zipAsync2(); + bindLinqAsync = (object2) => { + const prototype = object2.prototype; + const bind2 = (func, key) => { + const wrapped = function(...params) { + return func(this, ...params); + }; + Object.defineProperty(wrapped, "length", { value: func.length - 1 }); + prototype[key] = wrapped; + }; + bind2(aggregate4, "aggregate"); + bind2(all2, "all"); + bind2(allAsync2, "allAsync"); + bind2(any3, "any"); + bind2(anyAsync2, "anyAsync"); + bind2(asParallel2, "asParallel"); + bind2(average2, "average"); + bind2(averageAsync2, "averageAsync"); + bind2(chunk2, "chunk"); + bind2(concatenate2, "concatenate"); + bind2(contains2, "contains"); + bind2(containsAsync2, "containsAsync"); + bind2(count3, "count"); + bind2(countAsync2, "countAsync"); + bind2(defaultIfEmpty2, "defaultIfEmpty"); + bind2(distinct2, "distinct"); + bind2(distinctAsync2, "distinctAsync"); + bind2(each2, "each"); + bind2(eachAsync2, "eachAsync"); + bind2(elementAt2, "elementAt"); + bind2(elementAtOrDefault2, "elementAtOrDefault"); + bind2(except2, "except"); + bind2(exceptAsync2, "exceptAsync"); + bind2(first3, "first"); + bind2(firstAsync2, "firstAsync"); + bind2(firstOrDefault3, "firstOrDefault"); + bind2(firstOrDefaultAsync2, "firstOrDefaultAsync"); + bind2(groupBy2, "groupBy"); + bind2(groupByAsync2, "groupByAsync"); + bind2(groupByWithSel2, "groupByWithSel"); + bind2(groupJoin2, "groupJoin"); + bind2(groupJoinAsync2, "groupJoinAsync"); + bind2(intersect2, "intersect"); + bind2(intersectAsync2, "intersectAsync"); + bind2(join2, "joinByKey"); + bind2(last3, "last"); + bind2(lastAsync2, "lastAsync"); + bind2(lastOrDefault3, "lastOrDefault"); + bind2(lastOrDefaultAsync2, "lastOrDefaultAsync"); + bind2(max3, "max"); + bind2(maxAsync2, "maxAsync"); + bind2(min3, "min"); + bind2(minAsync2, "minAsync"); + bind2(ofType2, "ofType"); + bind2(orderBy2, "orderBy"); + bind2(orderByAsync2, "orderByAsync"); + bind2(orderByDescending2, "orderByDescending"); + bind2(orderByDescendingAsync2, "orderByDescendingAsync"); + bind2(partition2, "partition"); + bind2(partitionAsync2, "partitionAsync"); + bind2(reverse2, "reverse"); + bind2(select4, "select"); + bind2(selectAsync4, "selectAsync"); + bind2(selectMany4, "selectMany"); + bind2(selectManyAsync3, "selectManyAsync"); + bind2(sequenceEquals2, "sequenceEquals"); + bind2(sequenceEqualsAsync2, "sequenceEqualsAsync"); + bind2(single3, "single"); + bind2(singleAsync2, "singleAsync"); + bind2(singleOrDefault3, "singleOrDefault"); + bind2(singleOrDefaultAsync2, "singleOrDefaultAsync"); + bind2(skip2, "skip"); + bind2(skipWhile3, "skipWhile"); + bind2(skipWhileAsync3, "skipWhileAsync"); + bind2(sum3, "sum"); + bind2(sumAsync2, "sumAsync"); + bind2(take2, "take"); + bind2(takeWhile3, "takeWhile"); + bind2(takeWhileAsync3, "takeWhileAsync"); + bind2(toArray2, "toArray"); + bind2(toMap2, "toMap"); + bind2(toMapAsync2, "toMapAsync"); + bind2(toObject2, "toObject"); + bind2(toObjectAsync2, "toObjectAsync"); + bind2(toSet2, "toSet"); + bind2(union3, "union"); + bind2(unionAsync2, "unionAsync"); + bind2(where3, "where"); + bind2(whereAsync3, "whereAsync"); + bind2(zip3, "zip"); + bind2(zipAsync2, "zipAsync"); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/aggregate.js + var aggregate5, aggregate13, aggregate23, aggregate33; + var init_aggregate3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/aggregate.js"() { + init_shared(); + aggregate5 = (source2, seedOrFunc, func, resultSelector) => { + if (resultSelector) { + if (!func) { + throw new ReferenceError("TAccumulate function is undefined"); + } + return aggregate33(source2, seedOrFunc, func, resultSelector); + } else if (func) { + return aggregate23(source2, seedOrFunc, func); + } else { + return aggregate13(source2, seedOrFunc); + } + }; + aggregate13 = async (source2, func) => { + let aggregateValue; + for await (const value of source2) { + if (aggregateValue) { + aggregateValue = func(aggregateValue, value); + } else { + aggregateValue = value; + } + } + if (aggregateValue === void 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return aggregateValue; + }; + aggregate23 = async (source2, seed, func) => { + let aggregateValue = seed; + for await (const value of source2) { + aggregateValue = func(aggregateValue, value); + } + return aggregateValue; + }; + aggregate33 = async (source2, seed, func, resultSelector) => { + let aggregateValue = seed; + for await (const value of source2) { + aggregateValue = func(aggregateValue, value); + } + return resultSelector(aggregateValue); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/_nextIteration.js + var nextIteration; + var init_nextIteration = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/_nextIteration.js"() { + nextIteration = (source2, onfulfilled) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const generator = () => dataFunc.generator().then((x3) => { + const convValues = new Array(x3.length); + for (let i4 = 0; i4 < x3.length; i4++) { + convValues[i4] = onfulfilled(x3[i4]); + } + return convValues; + }); + return { + generator, + type: 0 + }; + } + case 1: { + const generator = () => { + const previousData = dataFunc.generator(); + const newPromises = new Array(previousData.length); + for (let i4 = 0; i4 < previousData.length; i4++) { + newPromises[i4] = previousData[i4].then(onfulfilled); + } + return newPromises; + }; + return { + generator, + type: 1 + }; + } + case 2: { + const generator = async () => { + const previousData = await dataFunc.generator(); + const newPromises = new Array(previousData.length); + for (let i4 = 0; i4 < previousData.length; i4++) { + newPromises[i4] = previousData[i4].then(onfulfilled); + } + return newPromises; + }; + return { + generator, + type: 2 + }; + } + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/all.js + var all3; + var init_all3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/all.js"() { + init_nextIteration(); + all3 = (source2, predicate) => { + const nextIter = nextIteration(source2, (x3) => { + if (!predicate(x3)) { + throw new Error(String(false)); + } + return true; + }); + switch (nextIter.type) { + case 0: + return nextIter.generator().then(() => true, () => false); + case 1: + return Promise.all(nextIter.generator()).then(() => true, () => false); + case 2: + return nextIter.generator().then(Promise.all.bind(Promise)).then(() => true, () => false); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationAsync.js + var nextIterationAsync; + var init_nextIterationAsync = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationAsync.js"() { + nextIterationAsync = (source2, onfulfilled) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const generator = async () => { + const results = await dataFunc.generator(); + const newPromises = new Array(results.length); + for (let i4 = 0; i4 < results.length; i4++) { + newPromises[i4] = onfulfilled(results[i4]); + } + return newPromises; + }; + return { + generator, + type: 2 + }; + } + case 1: { + const generator = () => { + const promises = dataFunc.generator(); + return promises.map(async (promise) => { + const value = await promise; + return await onfulfilled(value); + }); + }; + return { + generator, + type: 1 + }; + } + case 2: { + const generator = async () => { + const promises = await dataFunc.generator(); + return promises.map((promise) => promise.then(onfulfilled)); + }; + return { + generator, + type: 2 + }; + } + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/allAsync.js + var allAsync3; + var init_allAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/allAsync.js"() { + init_nextIterationAsync(); + allAsync3 = (source2, predicate) => { + const nextIter = nextIterationAsync(source2, async (x3) => { + if (await predicate(x3) === false) { + throw new Error(String(false)); + } + return true; + }); + switch (nextIter.type) { + case 1: + return Promise.all(nextIter.generator()).then(() => true, () => false); + case 2: + return nextIter.generator().then(Promise.all.bind(Promise)).then(() => true, () => false); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/any.js + var any4, any13, any23; + var init_any3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/any.js"() { + init_nextIteration(); + any4 = (source2, predicate) => { + if (predicate) { + return any23(source2, predicate); + } else { + return any13(source2); + } + }; + any13 = async (source2) => { + const dataFunc = source2.dataFunc; + let values2; + switch (dataFunc.type) { + case 1: + values2 = dataFunc.generator(); + return values2.length !== 0; + case 0: + case 2: + values2 = await dataFunc.generator(); + return values2.length !== 0; + } + }; + any23 = async (source2, predicate) => { + const dataFunc = nextIteration(source2, predicate); + let values2; + switch (dataFunc.type) { + case 0: + values2 = await dataFunc.generator(); + return values2.includes(true); + case 1: + values2 = await Promise.all(dataFunc.generator()); + return values2.includes(true); + case 2: + values2 = await Promise.all(await dataFunc.generator()); + return values2.includes(true); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/anyAsync.js + var anyAsync3; + var init_anyAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/anyAsync.js"() { + init_nextIterationAsync(); + anyAsync3 = async (source2, predicate) => { + const nextIter = nextIterationAsync(source2, predicate); + let promises; + switch (nextIter.type) { + case 1: + promises = nextIter.generator(); + if (promises.length === 0) { + return false; + } + return new Promise((resolve, reject) => { + let resolvedCount = 0; + for (const promise of promises) { + promise.then((value) => { + resolvedCount++; + if (value) { + resolve(true); + } else if (resolvedCount === promises.length) { + resolve(false); + } + }, reject); + } + }); + case 2: + promises = await nextIter.generator(); + if (Promise.length === 0) { + return false; + } + const values2 = await Promise.all(promises); + return values2.includes(true); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/asAsync.js + var asAsync2; + var init_asAsync2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/asAsync.js"() { + init_fromAsync(); + asAsync2 = (source2) => { + async function* generator() { + for await (const value of source2) { + yield value; + } + } + return fromAsync(generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/_typeDataToArray.js + var typeDataToArray; + var init_typeDataToArray = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/_typeDataToArray.js"() { + typeDataToArray = async (dataFunc) => { + switch (dataFunc.type) { + case 0: + return await dataFunc.generator(); + case 1: + return await Promise.all(dataFunc.generator()); + case 2: + const data2 = await dataFunc.generator(); + return await Promise.all(data2); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/average.js + var average3; + var init_average3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/average.js"() { + init_shared(); + init_nextIteration(); + init_typeDataToArray(); + average3 = async (source2, selector) => { + let data2; + if (selector) { + data2 = nextIteration(source2, selector); + } else { + data2 = source2.dataFunc; + } + const values2 = await typeDataToArray(data2); + if (values2.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + let sum5 = 0; + for (const item of values2) { + sum5 += item; + } + return sum5 / values2.length; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/averageAsync.js + var averageAsync3; + var init_averageAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/averageAsync.js"() { + init_shared(); + init_nextIterationAsync(); + init_typeDataToArray(); + averageAsync3 = async (source2, selector) => { + const nextIter = nextIterationAsync(source2, selector); + const values2 = await typeDataToArray(nextIter); + if (values2.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + let value = 0; + for (const selectedValue of values2) { + value += selectedValue; + } + return value / values2.length; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/chunk.js + var chunk3; + var init_chunk3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/chunk.js"() { + init_BasicParallelEnumerable(); + init_shared(); + chunk3 = (source2, size) => { + if (size < 1) { + throw new ArgumentOutOfRangeException("index"); + } + let dataFunc; + switch (source2.dataFunc.type) { + case 1: + const arrayOfPromises = source2.dataFunc.generator; + dataFunc = { + type: 1, + generator: () => { + const chunks = []; + let yieldChunk = []; + for (const promise of arrayOfPromises()) { + yieldChunk.push(promise); + if (yieldChunk.length === size) { + chunks.push(Promise.all(yieldChunk)); + yieldChunk = []; + } + } + if (yieldChunk.length) { + chunks.push(Promise.all(yieldChunk)); + } + return chunks; + } + }; + break; + case 2: + const promiseOfPromises = source2.dataFunc.generator; + dataFunc = { + type: 2, + generator: async () => { + const chunks = []; + let yieldChunk = []; + for (const promise of await promiseOfPromises()) { + yieldChunk.push(promise); + if (yieldChunk.length === size) { + chunks.push(Promise.all(yieldChunk)); + yieldChunk = []; + } + } + if (yieldChunk.length) { + chunks.push(Promise.all(yieldChunk)); + } + return chunks; + } + }; + break; + case 0: + const promiseToArray = source2.dataFunc.generator; + dataFunc = { + type: 0, + generator: async () => { + const chunks = []; + let yieldChunk = []; + for (const value of await promiseToArray()) { + yieldChunk.push(value); + if (yieldChunk.length === size) { + chunks.push(yieldChunk); + yieldChunk = []; + } + } + if (yieldChunk.length) { + chunks.push(yieldChunk); + } + return chunks; + } + }; + break; + } + return new BasicParallelEnumerable(dataFunc); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/concatenate.js + var concatenate3; + var init_concatenate3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/concatenate.js"() { + init_BasicParallelEnumerable(); + concatenate3 = (first5, second) => { + const generator = async () => { + const [firstData, secondData] = await Promise.all([first5.toArray(), second.toArray()]); + return [...firstData, ...secondData]; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/contains.js + var contains3; + var init_contains3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/contains.js"() { + init_shared(); + init_nextIteration(); + contains3 = async (source2, value, comparer = StrictEqualityComparer) => { + let values2; + if (comparer) { + values2 = nextIteration(source2, (x3) => comparer(value, x3)); + } else { + values2 = nextIteration(source2, (x3) => x3 === value); + } + switch (values2.type) { + case 0: { + const data2 = await values2.generator(); + return data2.some((x3) => x3); + } + case 1: { + const data2 = await Promise.all(values2.generator()); + return data2.some((x3) => x3); + } + case 2: { + const data2 = await Promise.all(await values2.generator()); + return data2.some((x3) => x3); + } + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/containsAsync.js + var containsAsync3; + var init_containsAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/containsAsync.js"() { + init_nextIterationAsync(); + containsAsync3 = async (source2, value, comparer) => { + const values2 = nextIterationAsync(source2, (x3) => comparer(value, x3)); + switch (values2.type) { + case 1: { + const data2 = await Promise.all(values2.generator()); + return data2.some((x3) => x3); + } + case 2: { + const data2 = await Promise.all(await values2.generator()); + return data2.some((x3) => x3); + } + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/count.js + var count4, count13, count23; + var init_count3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/count.js"() { + count4 = (source2, predicate) => { + if (predicate) { + return count23(source2, predicate); + } else { + return count13(source2); + } + }; + count13 = async (source2) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: + case 2: + const arrayData = await source2.toArray(); + return arrayData.length; + case 1: + const promises = dataFunc.generator(); + return promises.length; + } + }; + count23 = async (source2, predicate) => { + const values2 = await source2.toArray(); + let totalCount = 0; + for (let i4 = 0; i4 < values2.length; i4++) { + if (predicate(values2[i4]) === true) { + totalCount++; + } + } + return totalCount; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/countAsync.js + var countAsync3; + var init_countAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/countAsync.js"() { + init_nextIterationAsync(); + countAsync3 = async (source2, predicate) => { + const data2 = nextIterationAsync(source2, predicate); + let countPromise; + switch (data2.type) { + case 1: + countPromise = Promise.all(data2.generator()); + break; + case 2: + countPromise = Promise.all(await data2.generator()); + break; + } + let totalCount = 0; + for (const value of await countPromise) { + if (value) { + totalCount++; + } + } + return totalCount; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/defaultIfEmpty.js + var defaultIfEmpty3; + var init_defaultIfEmpty3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/defaultIfEmpty.js"() { + init_BasicParallelEnumerable(); + defaultIfEmpty3 = (source2, defaultValue) => { + const dataFunc = source2.dataFunc; + const isPromise = defaultValue instanceof Promise; + let typeData; + switch (dataFunc.type) { + case 0: + { + const generator = () => dataFunc.generator().then((values2) => { + if (values2.length) { + return values2; + } + if (isPromise) { + return defaultValue.then((value) => [value]); + } else { + return [defaultValue]; + } + }); + typeData = { + generator, + type: dataFunc.type + }; + } + break; + case 1: + { + const generator = () => { + const promises = dataFunc.generator(); + if (promises.length) { + return promises; + } + if (isPromise) { + return [defaultValue]; + } else { + return [Promise.resolve(defaultValue)]; + } + }; + typeData = { + generator, + type: dataFunc.type + }; + } + break; + case 2: + { + const generator = async () => { + const promises = await dataFunc.generator(); + if (promises.length) { + return promises; + } + if (isPromise) { + return [defaultValue]; + } else { + return [Promise.resolve(defaultValue)]; + } + }; + typeData = { + generator, + type: dataFunc.type + }; + } + break; + } + return new BasicParallelEnumerable(typeData); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/distinct.js + var distinct3; + var init_distinct3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/distinct.js"() { + init_shared(); + init_BasicParallelEnumerable(); + distinct3 = (source2, comparer = StrictEqualityComparer) => { + const generator = async () => { + const distinctElements = []; + for (const item of await source2.toArray()) { + const foundItem = distinctElements.find((x3) => comparer(x3, item)); + if (!foundItem) { + distinctElements.push(item); + } + } + return distinctElements; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/distinctAsync.js + var distinctAsync3; + var init_distinctAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/distinctAsync.js"() { + init_BasicParallelEnumerable(); + distinctAsync3 = (source2, comparer) => { + const generator = async () => { + const distinctElements = []; + outerLoop: + for (const item of await source2.toArray()) { + for (const distinctElement of distinctElements) { + const found = await comparer(distinctElement, item); + if (found) { + continue outerLoop; + } + } + distinctElements.push(item); + } + return distinctElements; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/each.js + var each3; + var init_each3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/each.js"() { + init_BasicParallelEnumerable(); + init_nextIteration(); + each3 = (source2, action) => { + return new BasicParallelEnumerable(nextIteration(source2, (x3) => { + action(x3); + return x3; + })); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/eachAsync.js + var eachAsync3; + var init_eachAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/eachAsync.js"() { + init_BasicParallelEnumerable(); + init_nextIterationAsync(); + eachAsync3 = (source2, action) => { + const dataFunc = nextIterationAsync(source2, async (x3) => { + await action(x3); + return x3; + }); + return new BasicParallelEnumerable(dataFunc); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/elementAt.js + var elementAt3; + var init_elementAt3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/elementAt.js"() { + init_shared(); + elementAt3 = async (source2, index) => { + if (index < 0) { + throw new ArgumentOutOfRangeException("index"); + } + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const values2 = await dataFunc.generator(); + if (index >= values2.length) { + throw new ArgumentOutOfRangeException("index"); + } else { + return values2[index]; + } + } + case 1: { + const promises = dataFunc.generator(); + if (index >= promises.length) { + throw new ArgumentOutOfRangeException("index"); + } else { + return await promises[index]; + } + } + case 2: { + const promises = await dataFunc.generator(); + if (index >= promises.length) { + throw new ArgumentOutOfRangeException("index"); + } else { + return await promises[index]; + } + } + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/elementAtOrDefault.js + var elementAtOrDefault3; + var init_elementAtOrDefault3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/elementAtOrDefault.js"() { + elementAtOrDefault3 = async (source2, index) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const values2 = await dataFunc.generator(); + if (index >= values2.length) { + return null; + } else { + return values2[index]; + } + } + case 1: { + const promises = dataFunc.generator(); + if (index >= promises.length) { + return null; + } else { + return await promises[index]; + } + } + case 2: { + const promises = await dataFunc.generator(); + if (index >= promises.length) { + return null; + } else { + return await promises[index]; + } + } + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/except.js + var except3; + var init_except3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/except.js"() { + init_shared(); + init_BasicParallelEnumerable(); + except3 = (first5, second, comparer = StrictEqualityComparer) => { + const generator = async () => { + const [firstValues, secondValues] = await Promise.all([first5.toArray(), second.toArray()]); + const resultValues = []; + for (const firstItem of firstValues) { + let exists = false; + for (let j3 = 0; j3 < secondValues.length; j3++) { + const secondItem = secondValues[j3]; + if (comparer(firstItem, secondItem) === true) { + exists = true; + break; + } + } + if (exists === false) { + resultValues.push(firstItem); + } + } + return resultValues; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/exceptAsync.js + var exceptAsync3; + var init_exceptAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/exceptAsync.js"() { + init_BasicParallelEnumerable(); + exceptAsync3 = (first5, second, comparer) => { + const generator = async () => { + const [firstValues, secondValues] = await Promise.all([first5.toArray(), second.toArray()]); + const resultValues = []; + for (const firstItem of firstValues) { + let exists = false; + for (let j3 = 0; j3 < secondValues.length; j3++) { + const secondItem = secondValues[j3]; + if (await comparer(firstItem, secondItem) === true) { + exists = true; + break; + } + } + if (exists === false) { + resultValues.push(firstItem); + } + } + return resultValues; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/toArray.js + var toArray3; + var init_toArray3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/toArray.js"() { + init_typeDataToArray(); + toArray3 = (source2) => { + return typeDataToArray(source2.dataFunc); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/first.js + var first4, first13, first23; + var init_first3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/first.js"() { + init_shared(); + init_toArray3(); + first4 = (source2, predicate) => { + if (predicate) { + return first23(source2, predicate); + } else { + return first13(source2); + } + }; + first13 = async (source2) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const values2 = await dataFunc.generator(); + if (values2.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return values2[0]; + } + } + case 1: { + const promises = dataFunc.generator(); + if (promises.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return await promises[0]; + } + } + case 2: { + const promises = await dataFunc.generator(); + if (promises.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return await promises[0]; + } + } + } + }; + first23 = async (source2, predicate) => { + const data2 = await toArray3(source2); + for (const value of data2) { + if (predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/firstAsync.js + var firstAsync3; + var init_firstAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/firstAsync.js"() { + init_shared(); + init_toArray3(); + firstAsync3 = async (source2, predicate) => { + const data2 = await toArray3(source2); + for (const value of data2) { + if (await predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/firstOrDefault.js + var firstOrDefault4, firstOrDefault13, firstOrDefault23; + var init_firstOrDefault3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/firstOrDefault.js"() { + init_toArray3(); + firstOrDefault4 = (source2, predicate) => { + if (predicate) { + return firstOrDefault23(source2, predicate); + } else { + return firstOrDefault13(source2); + } + }; + firstOrDefault13 = async (source2) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const values2 = await dataFunc.generator(); + if (values2.length === 0) { + return null; + } else { + return values2[0]; + } + } + case 1: { + const promises = dataFunc.generator(); + if (promises.length === 0) { + return null; + } else { + return await promises[0]; + } + } + case 2: { + const promises = await dataFunc.generator(); + if (promises.length === 0) { + return null; + } else { + return await promises[0]; + } + } + } + }; + firstOrDefault23 = async (source2, predicate) => { + const data2 = await toArray3(source2); + for (const value of data2) { + if (predicate(value) === true) { + return value; + } + } + return null; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/firstOrDefaultAsync.js + var firstOrDefaultAsync3; + var init_firstOrDefaultAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/firstOrDefaultAsync.js"() { + init_toArray3(); + firstOrDefaultAsync3 = async (source2, predicate) => { + const data2 = await toArray3(source2); + for (const value of data2) { + if (await predicate(value) === true) { + return value; + } + } + return null; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/groupBy.js + var groupBy3, groupBy_0_Simple3, groupBy_03; + var init_groupBy3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/groupBy.js"() { + init_Grouping(); + init_BasicParallelEnumerable(); + groupBy3 = (source2, keySelector, comparer) => { + if (comparer) { + return groupBy_03(source2, keySelector, comparer); + } else { + return groupBy_0_Simple3(source2, keySelector); + } + }; + groupBy_0_Simple3 = (source2, keySelector) => { + const generator = async () => { + const keyMap = {}; + for (const value of await source2.toArray()) { + const key = keySelector(value); + const grouping = keyMap[key]; + if (grouping) { + grouping.push(value); + } else { + keyMap[key] = new Grouping(key, value); + } + } + const results = new Array(); + for (const value in keyMap) { + results.push(keyMap[value]); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + groupBy_03 = (source2, keySelector, comparer) => { + const generator = async () => { + const keyMap = new Array(); + for (const value of await source2.toArray()) { + const key = keySelector(value); + let found = false; + for (let i4 = 0; i4 < keyMap.length; i4++) { + const group = keyMap[i4]; + if (comparer(group.key, key)) { + group.push(value); + found = true; + break; + } + } + if (found === false) { + keyMap.push(new Grouping(key, value)); + } + } + const results = new Array(); + for (const g4 of keyMap) { + results.push(g4); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/groupByAsync.js + var groupByAsync3, groupByAsync_03, groupByAsync_0_Simple3; + var init_groupByAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/groupByAsync.js"() { + init_Grouping(); + init_BasicParallelEnumerable(); + init_nextIterationAsync(); + groupByAsync3 = (source2, keySelector, comparer) => { + if (comparer) { + return groupByAsync_03(source2, keySelector, comparer); + } else { + return groupByAsync_0_Simple3(source2, keySelector); + } + }; + groupByAsync_03 = (source2, keySelector, comparer) => { + const generator = async () => { + const typedData = nextIterationAsync(source2, async (value) => { + const key = await keySelector(value); + return [key, value]; + }); + let values2; + switch (typedData.type) { + case 1: + values2 = await Promise.all(typedData.generator()); + break; + case 2: + values2 = await Promise.all(await typedData.generator()); + break; + } + const keyMap = new Array(); + for (const [key, value] of values2) { + let found = false; + for (let i4 = 0; i4 < keyMap.length; i4++) { + const group = keyMap[i4]; + if (await comparer(group.key, key) === true) { + group.push(value); + found = true; + break; + } + } + if (found === false) { + keyMap.push(new Grouping(key, value)); + } + } + const results = new Array(); + for (const g4 of keyMap) { + results.push(g4); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + groupByAsync_0_Simple3 = (source2, keySelector) => { + const generator = async () => { + const typedData = nextIterationAsync(source2, async (value) => { + const key = await keySelector(value); + return [key, value]; + }); + let values2; + switch (typedData.type) { + case 1: + values2 = await Promise.all(typedData.generator()); + break; + case 2: + values2 = await Promise.all(await typedData.generator()); + break; + } + const keyMap = {}; + for (const [key, value] of values2) { + const grouping = keyMap[key]; + if (grouping) { + grouping.push(value); + } else { + keyMap[key] = new Grouping(key, value); + } + } + const results = new Array(); + for (const value in keyMap) { + results.push(keyMap[value]); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/groupByWithSel.js + var groupByWithSel3, groupBy12, groupBy1Simple2; + var init_groupByWithSel3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/groupByWithSel.js"() { + init_Grouping(); + init_BasicParallelEnumerable(); + groupByWithSel3 = (source2, keySelector, elementSelector, comparer) => { + if (comparer) { + return groupBy12(source2, keySelector, elementSelector, comparer); + } else { + return groupBy1Simple2(source2, keySelector, elementSelector); + } + }; + groupBy12 = (source2, keySelector, elementSelector, comparer) => { + const generator = async () => { + const keyMap = new Array(); + for await (const value of source2) { + const key = keySelector(value); + let found = false; + for (let i4 = 0; i4 < keyMap.length; i4++) { + const group = keyMap[i4]; + if (comparer(group.key, key)) { + group.push(elementSelector(value)); + found = true; + break; + } + } + if (found === false) { + const element = elementSelector(value); + keyMap.push(new Grouping(key, element)); + } + } + const results = new Array(); + for (const value of keyMap) { + results.push(value); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + groupBy1Simple2 = (source2, keySelector, elementSelector) => { + const generator = async () => { + const keyMap = {}; + for (const value of await source2.toArray()) { + const key = keySelector(value); + const grouping = keyMap[key]; + const element = elementSelector(value); + if (grouping) { + grouping.push(element); + } else { + keyMap[key] = new Grouping(key, element); + } + } + const results = new Array(); + for (const value in keyMap) { + results.push(keyMap[value]); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/groupJoin.js + var groupJoin3, groupJoinWithComparer5, groupJoinSimple5; + var init_groupJoin3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/groupJoin.js"() { + init_BasicParallelEnumerable(); + groupJoin3 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + const generator = comparer ? groupJoinWithComparer5(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) : groupJoinSimple5(outer, inner, outerKeySelector, innerKeySelector, resultSelector); + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + groupJoinWithComparer5 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + return async () => { + const innerKeyMap = []; + for await (const innerValue of inner) { + const key = innerKeySelector(innerValue); + const record = innerKeyMap.find((x3) => comparer(x3.key, key)); + if (record) { + record.values.push(innerValue); + } else { + innerKeyMap.push({ key, values: [innerValue] }); + } + } + const outerValues = await outer.toArray(); + return outerValues.map((outerValue) => { + var _a; + const key = outerKeySelector(outerValue); + const innerRecord = (_a = innerKeyMap.find((x3) => comparer(x3.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] }; + return resultSelector(outerValue, innerRecord.values); + }); + }; + }; + groupJoinSimple5 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => { + return async () => { + const innerKeyMap = /* @__PURE__ */ new Map(); + for await (const innerValue of inner) { + const key = innerKeySelector(innerValue); + const values2 = innerKeyMap.get(key); + if (values2) { + values2.push(innerValue); + } else { + innerKeyMap.set(key, [innerValue]); + } + } + const outerValues = await outer.toArray(); + return outerValues.map((outerValue) => { + var _a; + const key = outerKeySelector(outerValue); + const values2 = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : []; + return resultSelector(outerValue, values2); + }); + }; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/groupJoinAsync.js + var groupJoinAsync3, groupJoinWithComparer6, groupJoinSimple6; + var init_groupJoinAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/groupJoinAsync.js"() { + init_BasicParallelEnumerable(); + groupJoinAsync3 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + const generator = comparer ? groupJoinWithComparer6(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) : groupJoinSimple6(outer, inner, outerKeySelector, innerKeySelector, resultSelector); + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + groupJoinWithComparer6 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer) => { + return async () => { + const innerKeyMap = []; + for await (const innerValue of inner) { + const key = await innerKeySelector(innerValue); + const record = innerKeyMap.find((x3) => comparer(x3.key, key)); + if (record) { + record.values.push(innerValue); + } else { + innerKeyMap.push({ key, values: [innerValue] }); + } + } + const outerValues = await outer.toArray(); + const resultPromises = outerValues.map(async (outerValue) => { + var _a; + const key = await outerKeySelector(outerValue); + const innerRecord = (_a = innerKeyMap.find((x3) => comparer(x3.key, key))) !== null && _a !== void 0 ? _a : { key, values: [] }; + return resultSelector(outerValue, innerRecord.values); + }); + return await Promise.all(resultPromises); + }; + }; + groupJoinSimple6 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector) => { + return async () => { + const innerKeyMap = /* @__PURE__ */ new Map(); + for await (const innerValue of inner) { + const key = await innerKeySelector(innerValue); + const values2 = innerKeyMap.get(key); + if (values2) { + values2.push(innerValue); + } else { + innerKeyMap.set(key, [innerValue]); + } + } + const outerValues = await outer.toArray(); + const resultPromises = outerValues.map(async (outerValue) => { + var _a; + const key = await outerKeySelector(outerValue); + const values2 = (_a = innerKeyMap.get(key)) !== null && _a !== void 0 ? _a : []; + return resultSelector(outerValue, values2); + }); + return await Promise.all(resultPromises); + }; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/intersect.js + var intersect3; + var init_intersect3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/intersect.js"() { + init_shared(); + init_BasicParallelEnumerable(); + intersect3 = (first5, second, comparer = StrictEqualityComparer) => { + const generator = async () => { + const firstResults = await first5.distinct(comparer).toArray(); + if (firstResults.length === 0) { + return []; + } + const secondResults = await second.toArray(); + const results = new Array(); + for (let i4 = 0; i4 < firstResults.length; i4++) { + const firstValue = firstResults[i4]; + for (let j3 = 0; j3 < secondResults.length; j3++) { + const secondValue = secondResults[j3]; + if (comparer(firstValue, secondValue) === true) { + results.push(firstValue); + break; + } + } + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/intersectAsync.js + var intersectAsync3; + var init_intersectAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/intersectAsync.js"() { + init_BasicParallelEnumerable(); + intersectAsync3 = (first5, second, comparer) => { + const generator = async () => { + const firstResults = await first5.distinctAsync(comparer).toArray(); + if (firstResults.length === 0) { + return []; + } + const secondResults = await second.toArray(); + const results = new Array(); + for (let i4 = 0; i4 < firstResults.length; i4++) { + const firstValue = firstResults[i4]; + for (let j3 = 0; j3 < secondResults.length; j3++) { + const secondValue = secondResults[j3]; + if (await comparer(firstValue, secondValue) === true) { + results.push(firstValue); + break; + } + } + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/join.js + var join3; + var init_join3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/join.js"() { + init_shared(); + init_BasicParallelEnumerable(); + join3 = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer = StrictEqualityComparer) => { + const generator = async () => { + const [innerArray, outerArray] = await Promise.all([inner.toArray(), outer.toArray()]); + const results = new Array(); + for (const o3 of outerArray) { + const outerKey = outerKeySelector(o3); + for (const i4 of innerArray) { + const innerKey = innerKeySelector(i4); + if (comparer(outerKey, innerKey) === true) { + results.push(resultSelector(o3, i4)); + } + } + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/last.js + var last4, last13, last23; + var init_last3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/last.js"() { + init_shared(); + last4 = (source2, predicate) => { + if (predicate) { + return last23(source2, predicate); + } else { + return last13(source2); + } + }; + last13 = async (source2) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const values2 = await dataFunc.generator(); + if (values2.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return values2[values2.length - 1]; + } + } + case 1: { + const promises = dataFunc.generator(); + if (promises.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return await promises[promises.length - 1]; + } + } + case 2: { + const promises = await dataFunc.generator(); + if (promises.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } else { + return await promises[promises.length - 1]; + } + } + } + }; + last23 = async (source2, predicate) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const values2 = await dataFunc.generator(); + for (let i4 = values2.length - 1; i4 >= 0; i4--) { + const value = values2[i4]; + if (predicate(value)) { + return value; + } + } + break; + } + case 1: { + const promises = dataFunc.generator(); + for (let i4 = promises.length - 1; i4 >= 0; i4--) { + const value = await promises[i4]; + if (predicate(value)) { + return value; + } + } + break; + } + case 2: { + const promises = await dataFunc.generator(); + for (let i4 = promises.length - 1; i4 >= 0; i4--) { + const value = await promises[i4]; + if (predicate(value)) { + return value; + } + } + break; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/lastAsync.js + var lastAsync3; + var init_lastAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/lastAsync.js"() { + init_shared(); + lastAsync3 = async (source2, predicate) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const values2 = await dataFunc.generator(); + for (let i4 = values2.length - 1; i4 >= 0; i4--) { + const value = values2[i4]; + if (await predicate(value) === true) { + return value; + } + } + break; + } + case 1: { + const promises = dataFunc.generator(); + for (let i4 = promises.length - 1; i4 >= 0; i4--) { + const value = await promises[i4]; + if (await predicate(value) === true) { + return value; + } + } + break; + } + case 2: { + const promises = await dataFunc.generator(); + for (let i4 = promises.length - 1; i4 >= 0; i4--) { + const value = await promises[i4]; + if (await predicate(value) === true) { + return value; + } + } + break; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/lastOrDefault.js + var lastOrDefault4, lastOrDefault13, lastOrDefault23; + var init_lastOrDefault3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/lastOrDefault.js"() { + lastOrDefault4 = (source2, predicate) => { + if (predicate) { + return lastOrDefault23(source2, predicate); + } else { + return lastOrDefault13(source2); + } + }; + lastOrDefault13 = async (source2) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const values2 = await dataFunc.generator(); + if (values2.length === 0) { + return null; + } else { + return values2[values2.length - 1]; + } + } + case 1: { + const promises = dataFunc.generator(); + if (promises.length === 0) { + return null; + } else { + return await promises[promises.length - 1]; + } + } + case 2: { + const promises = await dataFunc.generator(); + if (promises.length === 0) { + return null; + } else { + return await promises[promises.length - 1]; + } + } + } + }; + lastOrDefault23 = async (source2, predicate) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const values2 = await dataFunc.generator(); + for (let i4 = values2.length - 1; i4 >= 0; i4--) { + const value = values2[i4]; + if (predicate(value)) { + return value; + } + } + break; + } + case 1: { + const promises = dataFunc.generator(); + for (let i4 = promises.length - 1; i4 >= 0; i4--) { + const value = await promises[i4]; + if (predicate(value)) { + return value; + } + } + break; + } + case 2: { + const promises = await dataFunc.generator(); + for (let i4 = promises.length - 1; i4 >= 0; i4--) { + const value = await promises[i4]; + if (predicate(value)) { + return value; + } + } + break; + } + } + return null; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/lastOrDefaultAsync.js + var lastOrDefaultAsync3; + var init_lastOrDefaultAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/lastOrDefaultAsync.js"() { + lastOrDefaultAsync3 = async (source2, predicate) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const values2 = await dataFunc.generator(); + for (let i4 = values2.length - 1; i4 >= 0; i4--) { + const value = values2[i4]; + if (await predicate(value) === true) { + return value; + } + } + break; + } + case 1: { + const promises = dataFunc.generator(); + for (let i4 = promises.length - 1; i4 >= 0; i4--) { + const value = await promises[i4]; + if (await predicate(value) === true) { + return value; + } + } + break; + } + case 2: { + const promises = await dataFunc.generator(); + for (let i4 = promises.length - 1; i4 >= 0; i4--) { + const value = await promises[i4]; + if (await predicate(value) === true) { + return value; + } + } + break; + } + } + return null; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/max.js + var max4; + var init_max3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/max.js"() { + init_shared(); + init_nextIteration(); + init_typeDataToArray(); + max4 = async (source2, selector) => { + let dataFunc; + if (selector) { + dataFunc = nextIteration(source2, selector); + } else { + dataFunc = source2.dataFunc; + } + const data2 = await typeDataToArray(dataFunc); + if (data2.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return Math.max.apply(null, data2); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/maxAsync.js + var maxAsync3; + var init_maxAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/maxAsync.js"() { + init_shared(); + init_nextIterationAsync(); + init_typeDataToArray(); + maxAsync3 = async (source2, selector) => { + const dataFunc = nextIterationAsync(source2, selector); + const maxInfo = await typeDataToArray(dataFunc); + if (maxInfo.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return Math.max.apply(null, maxInfo); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/min.js + var min4; + var init_min3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/min.js"() { + init_shared(); + init_nextIteration(); + init_typeDataToArray(); + min4 = async (source2, selector) => { + let dataFunc; + if (selector) { + dataFunc = nextIteration(source2, selector); + } else { + dataFunc = source2.dataFunc; + } + const data2 = await typeDataToArray(dataFunc); + if (data2.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return Math.min.apply(null, data2); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/minAsync.js + var minAsync3; + var init_minAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/minAsync.js"() { + init_shared(); + init_nextIterationAsync(); + init_typeDataToArray(); + minAsync3 = async (source2, selector) => { + const dataFunc = nextIterationAsync(source2, selector); + const maxInfo = await typeDataToArray(dataFunc); + if (maxInfo.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return Math.min.apply(null, maxInfo); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/ofType.js + var ofType3; + var init_ofType3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/ofType.js"() { + init_BasicParallelEnumerable(); + init_nextIteration(); + init_typeDataToArray(); + ofType3 = (source2, type) => { + const typeCheck = typeof type === "string" ? (x3) => [typeof x3 === type, x3] : (x3) => [x3 instanceof type, x3]; + const generator = async () => { + const dataFunc = nextIteration(source2, typeCheck); + const values2 = await typeDataToArray(dataFunc); + const filteredValues = []; + for (const [pass, value] of values2) { + if (pass) { + filteredValues.push(value); + } + } + return filteredValues; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncKeyMap.js + var asAsyncKeyMap2; + var init_asAsyncKeyMap2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncKeyMap.js"() { + asAsyncKeyMap2 = async (source2, keySelector) => { + const map2 = /* @__PURE__ */ new Map(); + for await (const item of source2) { + const key = await keySelector(item); + const currentMapping = map2.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map2.set(key, [item]); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncSortedKeyValues.js + async function* asAsyncSortedKeyValues2(source2, keySelector, ascending, comparer) { + const map2 = await asAsyncKeyMap2(source2, keySelector); + const sortedKeys = [...map2.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i4 = 0; i4 < sortedKeys.length; i4++) { + yield map2.get(sortedKeys[i4]); + } + } else { + for (let i4 = sortedKeys.length - 1; i4 >= 0; i4--) { + yield map2.get(sortedKeys[i4]); + } + } + } + var init_asAsyncSortedKeyValues2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncSortedKeyValues.js"() { + init_asAsyncKeyMap2(); + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncKeyMapSync.js + var asAsyncKeyMapSync2; + var init_asAsyncKeyMapSync2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncKeyMapSync.js"() { + asAsyncKeyMapSync2 = async (source2, keySelector) => { + const map2 = /* @__PURE__ */ new Map(); + for (const item of source2) { + const key = await keySelector(item); + const currentMapping = map2.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map2.set(key, [item]); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncSortedKeyValuesSync.js + async function* asAsyncSortedKeyValuesSync2(source2, keySelector, ascending, comparer) { + const map2 = await asAsyncKeyMapSync2(source2, keySelector); + const sortedKeys = [...map2.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i4 = 0; i4 < sortedKeys.length; i4++) { + yield map2.get(sortedKeys[i4]); + } + } else { + for (let i4 = sortedKeys.length - 1; i4 >= 0; i4--) { + yield map2.get(sortedKeys[i4]); + } + } + } + var init_asAsyncSortedKeyValuesSync2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncSortedKeyValuesSync.js"() { + init_asAsyncKeyMapSync2(); + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_ordered/asKeyMap.js + var asKeyMap3; + var init_asKeyMap3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asKeyMap.js"() { + asKeyMap3 = async (source2, keySelector) => { + const map2 = /* @__PURE__ */ new Map(); + for await (const item of source2) { + const key = keySelector(item); + const currentMapping = map2.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map2.set(key, [item]); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_ordered/asSortedKeyValues.js + async function* asSortedKeyValues3(source2, keySelector, ascending, comparer) { + const map2 = await asKeyMap3(source2, keySelector); + const sortedKeys = [...map2.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i4 = 0; i4 < sortedKeys.length; i4++) { + yield map2.get(sortedKeys[i4]); + } + } else { + for (let i4 = sortedKeys.length - 1; i4 >= 0; i4--) { + yield map2.get(sortedKeys[i4]); + } + } + } + var init_asSortedKeyValues3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asSortedKeyValues.js"() { + init_asKeyMap3(); + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_ordered/asKeyMapSync.js + var asKeyMapSync2; + var init_asKeyMapSync2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asKeyMapSync.js"() { + asKeyMapSync2 = (source2, keySelector) => { + const map2 = /* @__PURE__ */ new Map(); + for (const item of source2) { + const key = keySelector(item); + const currentMapping = map2.get(key); + if (currentMapping) { + currentMapping.push(item); + } else { + map2.set(key, [item]); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_ordered/asSortedKeyValuesSync.js + async function* asSortedKeyValuesSync2(source2, keySelector, ascending, comparer) { + const map2 = asKeyMapSync2(source2, keySelector); + const sortedKeys = [...map2.keys()].sort(comparer ? comparer : void 0); + if (ascending) { + for (let i4 = 0; i4 < sortedKeys.length; i4++) { + yield map2.get(sortedKeys[i4]); + } + } else { + for (let i4 = sortedKeys.length - 1; i4 >= 0; i4--) { + yield map2.get(sortedKeys[i4]); + } + } + } + var init_asSortedKeyValuesSync2 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_ordered/asSortedKeyValuesSync.js"() { + init_asKeyMapSync2(); + } + }); + + // node_modules/linq-to-typescript/esm/parallel/OrderedParallelEnumerable.js + var OrderedParallelEnumerable; + var init_OrderedParallelEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/parallel/OrderedParallelEnumerable.js"() { + init_asAsyncSortedKeyValues2(); + init_asAsyncSortedKeyValuesSync2(); + init_asSortedKeyValues3(); + init_asSortedKeyValuesSync2(); + init_BasicParallelEnumerable(); + OrderedParallelEnumerable = class extends BasicParallelEnumerable { + constructor(orderedPairs) { + super({ + generator: async () => { + const asyncVals = orderedPairs(); + const array = []; + for await (const val of asyncVals) { + array.push(...val); + } + return array; + }, + type: 0 + }); + this.orderedPairs = orderedPairs; + } + static generateAsync(source2, keySelector, ascending, comparer) { + let orderedPairs; + if (source2 instanceof OrderedParallelEnumerable) { + orderedPairs = async function* () { + for await (const pair of source2.orderedPairs()) { + yield* asAsyncSortedKeyValuesSync2(pair, keySelector, ascending, comparer); + } + }; + } else { + orderedPairs = () => asAsyncSortedKeyValues2(source2, keySelector, ascending, comparer); + } + return new OrderedParallelEnumerable(orderedPairs); + } + static generate(source2, keySelector, ascending, comparer) { + let orderedPairs; + if (source2 instanceof OrderedParallelEnumerable) { + orderedPairs = async function* () { + for await (const pair of source2.orderedPairs()) { + yield* asSortedKeyValuesSync2(pair, keySelector, ascending, comparer); + } + }; + } else { + orderedPairs = () => asSortedKeyValues3(source2, keySelector, ascending, comparer); + } + return new OrderedParallelEnumerable(orderedPairs); + } + thenBy(keySelector, comparer) { + return OrderedParallelEnumerable.generate(this, keySelector, true, comparer); + } + thenByAsync(keySelector, comparer) { + return OrderedParallelEnumerable.generateAsync(this, keySelector, true, comparer); + } + thenByDescending(keySelector, comparer) { + return OrderedParallelEnumerable.generate(this, keySelector, false, comparer); + } + thenByDescendingAsync(keySelector, comparer) { + return OrderedParallelEnumerable.generateAsync(this, keySelector, false, comparer); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/orderBy.js + var orderBy3; + var init_orderBy3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/orderBy.js"() { + init_OrderedParallelEnumerable(); + orderBy3 = (source2, keySelector, comparer) => { + return OrderedParallelEnumerable.generate(source2, keySelector, true, comparer); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/orderByAsync.js + var orderByAsync3; + var init_orderByAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/orderByAsync.js"() { + init_OrderedParallelEnumerable(); + orderByAsync3 = (source2, keySelector, comparer) => { + return OrderedParallelEnumerable.generateAsync(source2, keySelector, true, comparer); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/orderByDescending.js + var orderByDescending3; + var init_orderByDescending3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/orderByDescending.js"() { + init_OrderedParallelEnumerable(); + orderByDescending3 = (source2, keySelector, comparer) => { + return OrderedParallelEnumerable.generate(source2, keySelector, false, comparer); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/orderByDescendingAsync.js + var orderByDescendingAsync3; + var init_orderByDescendingAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/orderByDescendingAsync.js"() { + init_OrderedParallelEnumerable(); + orderByDescendingAsync3 = (source2, keySelector, comparer) => { + return OrderedParallelEnumerable.generateAsync(source2, keySelector, false, comparer); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/partition.js + var partition3; + var init_partition3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/partition.js"() { + init_nextIteration(); + init_typeDataToArray(); + partition3 = async (source2, predicate) => { + const dataFunc = nextIteration(source2, (value) => { + return [predicate(value), value]; + }); + const values2 = await typeDataToArray(dataFunc); + const fail = []; + const pass = []; + for (const [passed, value] of values2) { + if (passed) { + pass.push(value); + } else { + fail.push(value); + } + } + return [pass, fail]; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/partitionAsync.js + var partitionAsync3; + var init_partitionAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/partitionAsync.js"() { + init_nextIterationAsync(); + init_typeDataToArray(); + partitionAsync3 = async (source2, predicate) => { + const dataFunc = nextIterationAsync(source2, async (value) => { + const passed = await predicate(value); + return [passed, value]; + }); + const values2 = await typeDataToArray(dataFunc); + const fail = []; + const pass = []; + for (const [passed, value] of values2) { + if (passed) { + pass.push(value); + } else { + fail.push(value); + } + } + return [pass, fail]; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/reverse.js + var reverse3; + var init_reverse3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/reverse.js"() { + init_BasicParallelEnumerable(); + reverse3 = (source2) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 1: { + const generator = () => { + return dataFunc.generator().reverse(); + }; + return new BasicParallelEnumerable({ + generator, + type: dataFunc.type + }); + } + case 2: { + const generator = async () => { + const array = await dataFunc.generator(); + return array.reverse(); + }; + return new BasicParallelEnumerable({ + generator, + type: dataFunc.type + }); + } + case 0: { + const generator = async () => { + const array = await dataFunc.generator(); + return array.reverse(); + }; + return new BasicParallelEnumerable({ + generator, + type: dataFunc.type + }); + } + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationWithIndex.js + var nextIterationWithIndex; + var init_nextIterationWithIndex = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationWithIndex.js"() { + nextIterationWithIndex = (source2, onfulfilled) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const generator = () => dataFunc.generator().then((x3) => { + const convValues = new Array(x3.length); + for (let i4 = 0; i4 < x3.length; i4++) { + convValues[i4] = onfulfilled(x3[i4], i4); + } + return convValues; + }); + return { + generator, + type: 0 + }; + } + case 1: { + const generator = () => { + const previousData = dataFunc.generator(); + const newPromises = new Array(previousData.length); + for (let i4 = 0; i4 < previousData.length; i4++) { + newPromises[i4] = previousData[i4].then((value) => { + return onfulfilled(value, i4); + }); + } + return newPromises; + }; + return { + generator, + type: 1 + }; + } + case 2: { + const generator = async () => { + const previousData = await dataFunc.generator(); + const newPromises = new Array(previousData.length); + for (let i4 = 0; i4 < previousData.length; i4++) { + newPromises[i4] = previousData[i4].then((value) => onfulfilled(value, i4)); + } + return newPromises; + }; + return { + generator, + type: 2 + }; + } + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/select.js + var select5; + var init_select3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/select.js"() { + init_BasicParallelEnumerable(); + init_nextIteration(); + init_nextIterationWithIndex(); + select5 = (source2, key) => { + if (typeof key === "function") { + if (key.length === 1) { + return new BasicParallelEnumerable(nextIteration(source2, key)); + } else { + return new BasicParallelEnumerable(nextIterationWithIndex(source2, key)); + } + } else { + return new BasicParallelEnumerable(nextIteration(source2, (x3) => x3[key])); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationWithIndexAsync.js + var nextIterationWithIndexAsync; + var init_nextIterationWithIndexAsync = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationWithIndexAsync.js"() { + nextIterationWithIndexAsync = (source2, onfulfilled) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const generator = async () => { + const results = await dataFunc.generator(); + const newPromises = new Array(results.length); + for (let i4 = 0; i4 < results.length; i4++) { + newPromises[i4] = onfulfilled(results[i4], i4); + } + return newPromises; + }; + return { + generator, + type: 2 + }; + } + case 1: { + const generator = () => dataFunc.generator().map((promise, index) => promise.then((x3) => onfulfilled(x3, index))); + return { + generator, + type: 1 + }; + } + case 2: { + const generator = async () => { + const promises = await dataFunc.generator(); + return promises.map((promise, index) => promise.then((x3) => onfulfilled(x3, index))); + }; + return { + generator, + type: 2 + }; + } + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/selectAsync.js + var selectAsync5; + var init_selectAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/selectAsync.js"() { + init_BasicParallelEnumerable(); + init_nextIterationAsync(); + init_nextIterationWithIndexAsync(); + selectAsync5 = (source2, keyOrSelector) => { + let generator; + if (typeof keyOrSelector === "function") { + if (keyOrSelector.length === 1) { + generator = nextIterationAsync(source2, keyOrSelector); + } else { + generator = nextIterationWithIndexAsync(source2, keyOrSelector); + } + } else { + generator = nextIterationAsync(source2, (x3) => x3[keyOrSelector]); + } + return new BasicParallelEnumerable(generator); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/selectMany.js + var selectMany5; + var init_selectMany3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/selectMany.js"() { + init_BasicParallelEnumerable(); + init_nextIteration(); + init_nextIterationWithIndex(); + selectMany5 = (source2, selector) => { + const generator = async () => { + let values2; + if (typeof selector === "function") { + if (selector.length === 1) { + values2 = nextIteration(source2, selector); + } else { + values2 = nextIterationWithIndex(source2, selector); + } + } else { + values2 = nextIteration(source2, (x3) => x3[selector]); + } + const valuesArray = []; + switch (values2.type) { + case 0: { + for (const outer of await values2.generator()) { + for (const y3 of outer) { + valuesArray.push(y3); + } + } + break; + } + case 1: { + for (const outer of values2.generator()) { + for (const y3 of await outer) { + valuesArray.push(y3); + } + } + break; + } + case 2: { + for (const outer of await values2.generator()) { + for (const y3 of await outer) { + valuesArray.push(y3); + } + } + break; + } + } + return valuesArray; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/selectManyAsync.js + var selectManyAsync4; + var init_selectManyAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/selectManyAsync.js"() { + init_BasicParallelEnumerable(); + init_nextIterationAsync(); + init_nextIterationWithIndexAsync(); + selectManyAsync4 = (source2, selector) => { + const generator = async () => { + let values2; + if (selector.length === 1) { + values2 = nextIterationAsync(source2, selector); + } else { + values2 = nextIterationWithIndexAsync(source2, selector); + } + const valuesArray = []; + switch (values2.type) { + case 1: { + for (const outer of values2.generator()) { + for (const y3 of await outer) { + valuesArray.push(y3); + } + } + break; + } + case 2: { + for (const outer of await values2.generator()) { + for (const y3 of await outer) { + valuesArray.push(y3); + } + } + break; + } + } + return valuesArray; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/sequenceEquals.js + var sequenceEquals3; + var init_sequenceEquals3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/sequenceEquals.js"() { + init_shared(); + sequenceEquals3 = async (first5, second, comparer = StrictEqualityComparer) => { + const firstArray = await first5.toArray(); + const secondArray = await second.toArray(); + if (firstArray.length !== secondArray.length) { + return false; + } + for (let i4 = 0; i4 < firstArray.length; i4++) { + const firstResult = firstArray[i4]; + const secondResult = secondArray[i4]; + if (comparer(firstResult, secondResult) === false) { + return false; + } + } + return true; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/sequenceEqualsAsync.js + var sequenceEqualsAsync3; + var init_sequenceEqualsAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/sequenceEqualsAsync.js"() { + sequenceEqualsAsync3 = async (first5, second, comparer) => { + const firstArray = await first5.toArray(); + const secondArray = await second.toArray(); + if (firstArray.length !== secondArray.length) { + return false; + } + for (let i4 = 0; i4 < firstArray.length; i4++) { + const firstResult = firstArray[i4]; + const secondResult = secondArray[i4]; + if (await comparer(firstResult, secondResult) === false) { + return false; + } + } + return true; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/single.js + var single4, single13, single23; + var init_single3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/single.js"() { + init_shared(); + init_toArray3(); + single4 = (source2, predicate) => { + if (predicate) { + return single23(source2, predicate); + } else { + return single13(source2); + } + }; + single13 = async (source2) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const results = await dataFunc.generator(); + if (results.length > 1) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else if (results.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return results[0]; + } + case 1: { + const results = dataFunc.generator(); + if (results.length > 1) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else if (results.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return results[0]; + } + case 2: { + const results = await dataFunc.generator(); + if (results.length > 1) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else if (results.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return await results[0]; + } + } + }; + single23 = async (source2, predicate) => { + const results = await toArray3(source2); + let hasValue = false; + let singleValue = null; + for (const value of results) { + if (predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return singleValue; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/singleAsync.js + var singleAsync3; + var init_singleAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/singleAsync.js"() { + init_shared(); + init_toArray3(); + singleAsync3 = async (source2, predicate) => { + const results = await toArray3(source2); + let hasValue = false; + let singleValue = null; + for (const value of results) { + if (await predicate(value) === true) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + if (hasValue === false) { + throw new InvalidOperationException(ErrorString.NoMatch); + } + return singleValue; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/singleOrDefault.js + var singleOrDefault4, singleOrDefault13, singleOrDefault23; + var init_singleOrDefault3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/singleOrDefault.js"() { + init_shared(); + init_toArray3(); + singleOrDefault4 = (source2, predicate) => { + if (predicate) { + return singleOrDefault23(source2, predicate); + } else { + return singleOrDefault13(source2); + } + }; + singleOrDefault13 = async (source2) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const results = await dataFunc.generator(); + if (results.length > 1) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else if (results.length === 0) { + return null; + } + return results[0]; + } + case 1: { + const results = dataFunc.generator(); + if (results.length > 1) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else if (results.length === 0) { + return null; + } + return results[0]; + } + case 2: { + const results = await dataFunc.generator(); + if (results.length > 1) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else if (results.length === 0) { + return null; + } + return await results[0]; + } + } + }; + singleOrDefault23 = async (source2, predicate) => { + const results = await toArray3(source2); + let hasValue = false; + let singleValue = null; + for (const value of results) { + if (predicate(value)) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + return singleValue; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/singleOrDefaultAsync.js + var singleOrDefaultAsync3; + var init_singleOrDefaultAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/singleOrDefaultAsync.js"() { + init_shared(); + init_toArray3(); + singleOrDefaultAsync3 = async (source2, predicate) => { + const results = await toArray3(source2); + let hasValue = false; + let singleValue = null; + for (const value of results) { + if (await predicate(value) === true) { + if (hasValue === true) { + throw new InvalidOperationException(ErrorString.MoreThanOneElement); + } else { + hasValue = true; + singleValue = value; + } + } + } + return singleValue; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/skip.js + var skip3; + var init_skip3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/skip.js"() { + init_BasicParallelEnumerable(); + skip3 = (source2, count5) => { + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 0: { + const generator = async () => (await dataFunc.generator()).slice(count5); + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + } + case 1: { + const generator = () => dataFunc.generator().slice(count5); + return new BasicParallelEnumerable({ + generator, + type: 1 + }); + } + case 2: { + const generator = async () => { + const dataInner = await dataFunc.generator(); + return dataInner.slice(count5); + }; + const dataFuncNew = { + generator, + type: 2 + }; + return new BasicParallelEnumerable(dataFuncNew); + } + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/skipWhile.js + var skipWhile4; + var init_skipWhile3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/skipWhile.js"() { + init_BasicParallelEnumerable(); + skipWhile4 = (source2, predicate) => { + const generator = async () => { + const values2 = await source2.toArray(); + let i4 = 0; + for (; i4 < values2.length; i4++) { + const value = values2[i4]; + if (predicate(value, i4) === false) { + break; + } + } + const returnedValues = []; + for (; i4 < values2.length; i4++) { + returnedValues.push(values2[i4]); + } + return returnedValues; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/skipWhileAsync.js + var skipWhileAsync4; + var init_skipWhileAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/skipWhileAsync.js"() { + init_BasicParallelEnumerable(); + skipWhileAsync4 = (source2, predicate) => { + const generator = async () => { + const values2 = await source2.toArray(); + let i4 = 0; + for (; i4 < values2.length; i4++) { + const value = values2[i4]; + if (await predicate(value, i4) === false) { + break; + } + } + const returnedValues = []; + for (; i4 < values2.length; i4++) { + returnedValues.push(values2[i4]); + } + return returnedValues; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/sum.js + var sum4, sum13, sum23; + var init_sum3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/sum.js"() { + sum4 = (source2, selector) => { + if (selector) { + return sum23(source2, selector); + } else { + return sum13(source2); + } + }; + sum13 = async (source2) => { + let totalSum = 0; + for (const value of await source2.toArray()) { + totalSum += value; + } + return totalSum; + }; + sum23 = async (source2, selector) => { + let total = 0; + for (const value of await source2.toArray()) { + total += selector(value); + } + return total; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/sumAsync.js + var sumAsync3; + var init_sumAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/sumAsync.js"() { + init_nextIterationAsync(); + init_typeDataToArray(); + sumAsync3 = async (source2, selector) => { + const dataFunc = nextIterationAsync(source2, selector); + const values2 = await typeDataToArray(dataFunc); + let sum5 = 0; + for (const value of values2) { + sum5 += value; + } + return sum5; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/take.js + var take3; + var init_take3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/take.js"() { + init_BasicParallelEnumerable(); + take3 = (source2, amount) => { + const amountLeft = amount > 0 ? amount : 0; + const dataFunc = source2.dataFunc; + switch (dataFunc.type) { + case 1: + const generator1 = () => dataFunc.generator().splice(0, amountLeft); + return new BasicParallelEnumerable({ + generator: generator1, + type: 1 + }); + case 2: + const generator2 = () => dataFunc.generator().then((x3) => x3.splice(0, amountLeft)); + return new BasicParallelEnumerable({ + generator: generator2, + type: 2 + }); + case 0: + default: + const generator3 = () => dataFunc.generator().then((x3) => x3.splice(0, amountLeft)); + return new BasicParallelEnumerable({ + generator: generator3, + type: 0 + }); + } + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/takeWhile.js + var takeWhile4; + var init_takeWhile3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/takeWhile.js"() { + init_BasicParallelEnumerable(); + takeWhile4 = (source2, predicate) => { + const generator = async () => { + const values2 = await source2.toArray(); + const results = new Array(); + if (predicate.length === 1) { + for (const value of values2) { + if (predicate(value) === true) { + results.push(value); + } else { + break; + } + } + } else { + for (let i4 = 0; i4 < values2.length; i4++) { + const value = values2[i4]; + if (predicate(value, i4) === true) { + results.push(value); + } else { + break; + } + } + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/takeWhileAsync.js + var takeWhileAsync4; + var init_takeWhileAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/takeWhileAsync.js"() { + init_BasicParallelEnumerable(); + takeWhileAsync4 = (source2, predicate) => { + const generator = async () => { + const values2 = await source2.toArray(); + const results = new Array(); + if (predicate.length === 1) { + const sPredicate = predicate; + for (const value of values2) { + if (await sPredicate(value) === true) { + results.push(value); + } else { + break; + } + } + } else { + for (let i4 = 0; i4 < values2.length; i4++) { + const value = values2[i4]; + if (await predicate(value, i4) === true) { + results.push(value); + } else { + break; + } + } + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/toMap.js + var toMap3; + var init_toMap3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/toMap.js"() { + init_nextIteration(); + init_typeDataToArray(); + toMap3 = async (source2, selector) => { + const map2 = /* @__PURE__ */ new Map(); + const dataFunc = nextIteration(source2, (value) => { + const key = selector(value); + return [key, value]; + }); + const keyValues = await typeDataToArray(dataFunc); + for (const [key, value] of keyValues) { + const array = map2.get(key); + if (array === void 0) { + map2.set(key, [value]); + } else { + array.push(value); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/toMapAsync.js + var toMapAsync3; + var init_toMapAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/toMapAsync.js"() { + init_nextIterationAsync(); + init_typeDataToArray(); + toMapAsync3 = async (source2, selector) => { + const map2 = /* @__PURE__ */ new Map(); + const dataFunc = nextIterationAsync(source2, async (value) => { + const key = await selector(value); + return [key, value]; + }); + const keyValues = await typeDataToArray(dataFunc); + for (const [key, value] of keyValues) { + const array = map2.get(key); + if (array === void 0) { + map2.set(key, [value]); + } else { + array.push(value); + } + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/toObject.js + var toObject3; + var init_toObject3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/toObject.js"() { + init_typeDataToArray(); + toObject3 = async (source2, selector) => { + const dataFunc = source2.dataFunc; + const values2 = await typeDataToArray(dataFunc); + const map2 = {}; + for (const value of values2) { + map2[selector(value)] = value; + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/toObjectAsync.js + var toObjectAsync3; + var init_toObjectAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/toObjectAsync.js"() { + init_nextIterationAsync(); + init_typeDataToArray(); + toObjectAsync3 = async (source2, selector) => { + const dataFunc = nextIterationAsync(source2, async (value) => { + const key = await selector(value); + return [key, value]; + }); + const keyValues = await typeDataToArray(dataFunc); + const map2 = {}; + for (const [key, value] of keyValues) { + map2[key] = value; + } + return map2; + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/toSet.js + var toSet3; + var init_toSet3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/toSet.js"() { + init_typeDataToArray(); + toSet3 = async (source2) => { + const dataFunc = source2.dataFunc; + const values2 = await typeDataToArray(dataFunc); + return new Set(values2); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/union.js + var union4, union13, union23; + var init_union3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/union.js"() { + init_BasicParallelEnumerable(); + union4 = (first5, second, comparer) => { + if (comparer) { + return union23(first5, second, comparer); + } else { + return union13(first5, second); + } + }; + union13 = (first5, second) => { + const generator = async () => { + const set = /* @__PURE__ */ new Set(); + const secondPromise = second.toArray(); + for await (const item of first5) { + if (set.has(item) === false) { + set.add(item); + } + } + const secondValues = await secondPromise; + for (const item of secondValues) { + if (set.has(item) === false) { + set.add(item); + } + } + return [...set.keys()]; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + union23 = (first5, second, comparer) => { + const generator = async () => { + const result = []; + const values2 = await Promise.all([first5.toArray(), second.toArray()]); + for (const source2 of values2) { + for (const value of source2) { + let exists = false; + for (const resultValue of result) { + if (comparer(value, resultValue) === true) { + exists = true; + break; + } + } + if (exists === false) { + result.push(value); + } + } + } + return result; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/unionAsync.js + var unionAsync3; + var init_unionAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/unionAsync.js"() { + init_BasicParallelEnumerable(); + unionAsync3 = (first5, second, comparer) => { + const generator = async () => { + const result = []; + const values2 = await Promise.all([first5.toArray(), second.toArray()]); + for (const source2 of values2) { + for (const value of source2) { + let exists = false; + for (const resultValue of result) { + if (await comparer(value, resultValue) === true) { + exists = true; + break; + } + } + if (exists === false) { + result.push(value); + } + } + } + return result; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/where.js + var where4; + var init_where3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/where.js"() { + init_BasicParallelEnumerable(); + where4 = (source2, predicate) => { + const generator = async () => { + const values2 = await source2.toArray(); + return values2.filter(predicate); + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/whereAsync.js + var whereAsync4; + var init_whereAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/whereAsync.js"() { + init_BasicParallelEnumerable(); + init_nextIterationWithIndexAsync(); + init_typeDataToArray(); + whereAsync4 = (source2, predicate) => { + const generator = async () => { + const dataFunc = nextIterationWithIndexAsync(source2, async (value, index) => { + const keep = await predicate(value, index); + return [keep, value]; + }); + const valuesAsync = await typeDataToArray(dataFunc); + const filteredValues = []; + for (const [keep, value] of valuesAsync) { + if (keep) { + filteredValues.push(value); + } + } + return filteredValues; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/zip.js + var zip4, zip13, zip23; + var init_zip3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/zip.js"() { + init_BasicParallelEnumerable(); + zip4 = (first5, second, resultSelector) => { + if (resultSelector) { + return zip23(first5, second, resultSelector); + } else { + return zip13(first5, second); + } + }; + zip13 = (source2, second) => { + const generator = async () => { + const [left, right] = await Promise.all([source2.toArray(), second.toArray()]); + const minLength = left.length < right.length ? left.length : right.length; + const results = new Array(minLength); + for (let i4 = 0; i4 < minLength; i4++) { + const a4 = left[i4]; + const b4 = right[i4]; + results[i4] = [a4, b4]; + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + zip23 = (source2, second, resultSelector) => { + const generator = async () => { + const [left, right] = await Promise.all([source2.toArray(), second.toArray()]); + const minLength = left.length < right.length ? left.length : right.length; + const results = new Array(minLength); + for (let i4 = 0; i4 < minLength; i4++) { + const a4 = left[i4]; + const b4 = right[i4]; + results[i4] = resultSelector(a4, b4); + } + return results; + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/parallel/_private/zipAsync.js + var zipAsync3; + var init_zipAsync3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/_private/zipAsync.js"() { + init_BasicParallelEnumerable(); + zipAsync3 = (first5, second, resultSelector) => { + const generator = async () => { + const [left, right] = await Promise.all([first5.toArray(), second.toArray()]); + const minLength = left.length < right.length ? left.length : right.length; + const resultPromises = new Array(minLength); + for (let i4 = 0; i4 < minLength; i4++) { + const a4 = left[i4]; + const b4 = right[i4]; + resultPromises[i4] = resultSelector(a4, b4); + } + return Promise.all(resultPromises); + }; + return new BasicParallelEnumerable({ + generator, + type: 0 + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/initializer/bindLinqParallel.js + var bindLinqParallel; + var init_bindLinqParallel = __esm({ + "node_modules/linq-to-typescript/esm/initializer/bindLinqParallel.js"() { + init_aggregate3(); + init_all3(); + init_allAsync3(); + init_any3(); + init_anyAsync3(); + init_asAsync2(); + init_average3(); + init_averageAsync3(); + init_chunk3(); + init_concatenate3(); + init_contains3(); + init_containsAsync3(); + init_count3(); + init_countAsync3(); + init_defaultIfEmpty3(); + init_distinct3(); + init_distinctAsync3(); + init_each3(); + init_eachAsync3(); + init_elementAt3(); + init_elementAtOrDefault3(); + init_except3(); + init_exceptAsync3(); + init_first3(); + init_firstAsync3(); + init_firstOrDefault3(); + init_firstOrDefaultAsync3(); + init_groupBy3(); + init_groupByAsync3(); + init_groupByWithSel3(); + init_groupJoin3(); + init_groupJoinAsync3(); + init_intersect3(); + init_intersectAsync3(); + init_join3(); + init_last3(); + init_lastAsync3(); + init_lastOrDefault3(); + init_lastOrDefaultAsync3(); + init_max3(); + init_maxAsync3(); + init_min3(); + init_minAsync3(); + init_ofType3(); + init_orderBy3(); + init_orderByAsync3(); + init_orderByDescending3(); + init_orderByDescendingAsync3(); + init_partition3(); + init_partitionAsync3(); + init_reverse3(); + init_select3(); + init_selectAsync3(); + init_selectMany3(); + init_selectManyAsync3(); + init_sequenceEquals3(); + init_sequenceEqualsAsync3(); + init_single3(); + init_singleAsync3(); + init_singleOrDefault3(); + init_singleOrDefaultAsync3(); + init_skip3(); + init_skipWhile3(); + init_skipWhileAsync3(); + init_sum3(); + init_sumAsync3(); + init_take3(); + init_takeWhile3(); + init_takeWhileAsync3(); + init_toArray3(); + init_toMap3(); + init_toMapAsync3(); + init_toObject3(); + init_toObjectAsync3(); + init_toSet3(); + init_union3(); + init_unionAsync3(); + init_where3(); + init_whereAsync3(); + init_zip3(); + init_zipAsync3(); + bindLinqParallel = (object2) => { + const prototype = object2.prototype; + const bind2 = (func, key) => { + const wrapped = function(...params) { + return func(this, ...params); + }; + Object.defineProperty(wrapped, "length", { value: func.length - 1 }); + prototype[key] = wrapped; + }; + bind2(aggregate5, "aggregate"); + bind2(all3, "all"); + bind2(allAsync3, "allAsync"); + bind2(any4, "any"); + bind2(anyAsync3, "anyAsync"); + bind2(asAsync2, "asAsync"); + bind2(average3, "average"); + bind2(averageAsync3, "averageAsync"); + bind2(chunk3, "chunk"); + bind2(concatenate3, "concatenate"); + bind2(contains3, "contains"); + bind2(containsAsync3, "containsAsync"); + bind2(count4, "count"); + bind2(countAsync3, "countAsync"); + bind2(defaultIfEmpty3, "defaultIfEmpty"); + bind2(distinct3, "distinct"); + bind2(distinctAsync3, "distinctAsync"); + bind2(each3, "each"); + bind2(eachAsync3, "eachAsync"); + bind2(elementAt3, "elementAt"); + bind2(elementAtOrDefault3, "elementAtOrDefault"); + bind2(except3, "except"); + bind2(exceptAsync3, "exceptAsync"); + bind2(first4, "first"); + bind2(firstAsync3, "firstAsync"); + bind2(firstOrDefault4, "firstOrDefault"); + bind2(firstOrDefaultAsync3, "firstOrDefaultAsync"); + bind2(groupBy3, "groupBy"); + bind2(groupByAsync3, "groupByAsync"); + bind2(groupByWithSel3, "groupByWithSel"); + bind2(groupJoin3, "groupJoin"); + bind2(groupJoinAsync3, "groupJoinAsync"); + bind2(groupJoin3, "groupJoin"); + bind2(groupJoinAsync3, "groupJoinAsync"); + bind2(intersect3, "intersect"); + bind2(intersectAsync3, "intersectAsync"); + bind2(join3, "joinByKey"); + bind2(last4, "last"); + bind2(lastAsync3, "lastAsync"); + bind2(lastOrDefault4, "lastOrDefault"); + bind2(lastOrDefaultAsync3, "lastOrDefaultAsync"); + bind2(max4, "max"); + bind2(maxAsync3, "maxAsync"); + bind2(min4, "min"); + bind2(minAsync3, "minAsync"); + bind2(ofType3, "ofType"); + bind2(orderBy3, "orderBy"); + bind2(orderByAsync3, "orderByAsync"); + bind2(orderByDescending3, "orderByDescending"); + bind2(orderByDescendingAsync3, "orderByDescendingAsync"); + bind2(partition3, "partition"); + bind2(partitionAsync3, "partitionAsync"); + bind2(reverse3, "reverse"); + bind2(select5, "select"); + bind2(selectAsync5, "selectAsync"); + bind2(selectMany5, "selectMany"); + bind2(selectManyAsync4, "selectManyAsync"); + bind2(sequenceEquals3, "sequenceEquals"); + bind2(sequenceEqualsAsync3, "sequenceEqualsAsync"); + bind2(single4, "single"); + bind2(singleAsync3, "singleAsync"); + bind2(singleOrDefault4, "singleOrDefault"); + bind2(singleOrDefaultAsync3, "singleOrDefaultAsync"); + bind2(skip3, "skip"); + bind2(skipWhile4, "skipWhile"); + bind2(skipWhileAsync4, "skipWhileAsync"); + bind2(sum4, "sum"); + bind2(sumAsync3, "sumAsync"); + bind2(take3, "take"); + bind2(takeWhile4, "takeWhile"); + bind2(takeWhileAsync4, "takeWhileAsync"); + bind2(toArray3, "toArray"); + bind2(toMap3, "toMap"); + bind2(toMapAsync3, "toMapAsync"); + bind2(toObject3, "toObject"); + bind2(toObjectAsync3, "toObjectAsync"); + bind2(toSet3, "toSet"); + bind2(union4, "union"); + bind2(unionAsync3, "unionAsync"); + bind2(where4, "where"); + bind2(whereAsync4, "whereAsync"); + bind2(zip4, "zip"); + bind2(zipAsync3, "zipAsync"); + }; + } + }); + + // node_modules/linq-to-typescript/esm/initializer/bindString.js + var bindString; + var init_bindString = __esm({ + "node_modules/linq-to-typescript/esm/initializer/bindString.js"() { + init_shared(); + init_BasicEnumerable(); + bindString = () => { + var _a; + const prototype = String.prototype; + const propertyNames = Object.getOwnPropertyNames(BasicEnumerable.prototype); + for (const prop of propertyNames) { + prototype[prop] = (_a = prototype[prop]) !== null && _a !== void 0 ? _a : BasicEnumerable.prototype[prop]; + } + prototype.first = function(predicate) { + if (predicate) { + for (let i4 = 0; i4 < this.length; i4++) { + const value = this[i4]; + if (predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + } + if (this.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return this[0]; + }; + prototype.firstOrDefault = function(predicate) { + if (predicate) { + for (let i4 = 0; i4 < this.length; i4++) { + const value = this[i4]; + if (predicate(value) === true) { + return value; + } + } + return null; + } + return this.length === 0 ? null : this[0]; + }; + prototype.count = function(predicate) { + if (predicate) { + let count5 = 0; + for (let i4 = 0; i4 < this.length; i4++) { + if (predicate(this[i4]) === true) { + count5++; + } + } + return count5; + } else { + return this.length; + } + }; + prototype.elementAt = function(index) { + if (index < 0 || index >= this.length) { + throw new ArgumentOutOfRangeException("index"); + } + return this[index]; + }; + prototype.elementAtOrDefault = function(index) { + return this[index] || null; + }; + prototype.last = function(predicate) { + if (predicate) { + for (let i4 = this.length - 1; i4 >= 0; i4--) { + const value = this[i4]; + if (predicate(value) === true) { + return value; + } + } + throw new InvalidOperationException(ErrorString.NoMatch); + } else { + if (this.length === 0) { + throw new InvalidOperationException(ErrorString.NoElements); + } + return this[this.length - 1]; + } + }; + prototype.lastOrDefault = function(predicate) { + if (predicate) { + for (let i4 = this.length - 1; i4 >= 0; i4--) { + const value = this[i4]; + if (predicate(value) === true) { + return value; + } + } + return null; + } else { + return this.length === 0 ? null : this[this.length - 1]; + } + }; + prototype.reverse = function() { + const outer = this; + function* generator() { + for (let i4 = outer.length - 1; i4 >= 0; i4--) { + yield outer[i4]; + } + } + return new BasicEnumerable(generator); + }; + }; + } + }); + + // node_modules/linq-to-typescript/esm/initializer/initializeLinq.js + var initializeLinq; + var init_initializeLinq = __esm({ + "node_modules/linq-to-typescript/esm/initializer/initializeLinq.js"() { + init_bindArray(); + init_bindString(); + init_bindLinq(); + initializeLinq = () => { + bindLinq(Map); + bindLinq(Set); + bindString(); + bindArray(Array); + bindArray(Int8Array); + bindArray(Int16Array); + bindArray(Int32Array); + bindArray(Uint8Array); + bindArray(Uint8ClampedArray); + bindArray(Uint16Array); + bindArray(Uint32Array); + bindArray(Float32Array); + bindArray(Float64Array); + }; + } + }); + + // node_modules/linq-to-typescript/esm/initializer/initializer.js + var init_initializer = __esm({ + "node_modules/linq-to-typescript/esm/initializer/initializer.js"() { + init_BasicAsyncEnumerable(); + init_BasicParallelEnumerable(); + init_BasicEnumerable(); + init_bindArray(); + init_bindArrayEnumerable(); + init_bindLinq(); + init_bindLinqAsync(); + init_bindLinqParallel(); + init_bindString(); + init_initializeLinq(); + bindLinq(BasicEnumerable); + bindLinqAsync(BasicAsyncEnumerable); + bindLinqParallel(BasicParallelEnumerable); + bindArrayEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/sync/static/empty.js + var init_empty = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/empty.js"() { + init_BasicEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/sync/static/enumerateObject.js + var init_enumerateObject = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/enumerateObject.js"() { + init_BasicEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/sync/static/flatten.js + var init_flatten = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/flatten.js"() { + init_BasicEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/sync/static/from.js + var from; + var init_from = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/from.js"() { + init_BasicEnumerable(); + from = (source2) => { + const isArrayLike = (x3) => { + return Array.isArray(x3) || typeof x3 === "object" && typeof x3.length === "number" && (x3.length === 0 || 0 in x3); + }; + const isIterableType = (x3) => typeof x3 === "function"; + if (isArrayLike(source2)) { + const generator = function* () { + for (let i4 = 0; i4 < source2.length; i4++) { + yield source2[i4]; + } + }; + return new BasicEnumerable(generator); + } + if (isIterableType(source2)) { + return new BasicEnumerable(source2); + } + return new BasicEnumerable(function* () { + for (const val of source2) { + yield val; + } + }); + }; + } + }); + + // node_modules/linq-to-typescript/esm/sync/static/range.js + var init_range = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/range.js"() { + init_shared(); + init_BasicEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/sync/static/repeat.js + var init_repeat = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/repeat.js"() { + init_shared(); + init_BasicEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/sync/static/index.js + var init_static = __esm({ + "node_modules/linq-to-typescript/esm/sync/static/index.js"() { + init_empty(); + init_enumerateObject(); + init_flatten(); + init_from(); + init_range(); + init_repeat(); + } + }); + + // node_modules/linq-to-typescript/esm/async/static/emptyAsync.js + var init_emptyAsync = __esm({ + "node_modules/linq-to-typescript/esm/async/static/emptyAsync.js"() { + init_BasicAsyncEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/async/static/enumerateObjectAsync.js + var init_enumerateObjectAsync = __esm({ + "node_modules/linq-to-typescript/esm/async/static/enumerateObjectAsync.js"() { + init_BasicAsyncEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/async/static/flattenAsync.js + var init_flattenAsync = __esm({ + "node_modules/linq-to-typescript/esm/async/static/flattenAsync.js"() { + init_BasicAsyncEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/async/static/rangeAsync.js + var init_rangeAsync = __esm({ + "node_modules/linq-to-typescript/esm/async/static/rangeAsync.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/async/static/repeatAsync.js + var init_repeatAsync = __esm({ + "node_modules/linq-to-typescript/esm/async/static/repeatAsync.js"() { + init_shared(); + init_BasicAsyncEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/async/static/index.js + var init_static2 = __esm({ + "node_modules/linq-to-typescript/esm/async/static/index.js"() { + init_emptyAsync(); + init_enumerateObjectAsync(); + init_flattenAsync(); + init_fromAsync(); + init_rangeAsync(); + init_repeatAsync(); + } + }); + + // node_modules/linq-to-typescript/esm/parallel/static/emptyParallel.js + var init_emptyParallel = __esm({ + "node_modules/linq-to-typescript/esm/parallel/static/emptyParallel.js"() { + init_BasicParallelEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/parallel/static/flattenParallel.js + var init_flattenParallel = __esm({ + "node_modules/linq-to-typescript/esm/parallel/static/flattenParallel.js"() { + init_BasicParallelEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/parallel/static/rangeParallel.js + var init_rangeParallel = __esm({ + "node_modules/linq-to-typescript/esm/parallel/static/rangeParallel.js"() { + init_shared(); + init_BasicParallelEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/parallel/static/repeatParallel.js + var init_repeatParallel = __esm({ + "node_modules/linq-to-typescript/esm/parallel/static/repeatParallel.js"() { + init_shared(); + init_BasicParallelEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/parallel/static/index.js + var init_static3 = __esm({ + "node_modules/linq-to-typescript/esm/parallel/static/index.js"() { + init_emptyParallel(); + init_flattenParallel(); + init_fromParallel(); + init_rangeParallel(); + init_repeatParallel(); + } + }); + + // node_modules/linq-to-typescript/esm/sync/isEnumerable.js + var init_isEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/sync/isEnumerable.js"() { + init_ArrayEnumerable(); + init_BasicEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/parallel/isParallelEnumerable.js + var init_isParallelEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/parallel/isParallelEnumerable.js"() { + init_BasicParallelEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/async/isAsyncEnumerable.js + var init_isAsyncEnumerable = __esm({ + "node_modules/linq-to-typescript/esm/async/isAsyncEnumerable.js"() { + init_BasicAsyncEnumerable(); + } + }); + + // node_modules/linq-to-typescript/esm/index.js + var init_esm = __esm({ + "node_modules/linq-to-typescript/esm/index.js"() { + init_types(); + init_shared(); + init_ArrayEnumerable(); + init_initializer(); + init_static(); + init_static2(); + init_static3(); + init_isEnumerable(); + init_isParallelEnumerable(); + init_isAsyncEnumerable(); + } + }); + + // src/utils/linq.ts + var require_linq = __commonJS({ + "src/utils/linq.ts"() { + init_esm(); + initializeLinq(); + } + }); + + // node_modules/rxjs/node_modules/tslib/tslib.js + var require_tslib = __commonJS({ + "node_modules/rxjs/node_modules/tslib/tslib.js"(exports, module) { + var __extends2; + var __assign2; + var __rest2; + var __decorate2; + var __param2; + var __metadata2; + var __awaiter2; + var __generator2; + var __exportStar2; + var __values2; + var __read2; + var __spread2; + var __spreadArrays2; + var __spreadArray2; + var __await2; + var __asyncGenerator2; + var __asyncDelegator2; + var __asyncValues2; + var __makeTemplateObject2; + var __importStar2; + var __importDefault2; + var __classPrivateFieldGet2; + var __classPrivateFieldSet2; + var __createBinding2; + (function(factory) { + var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; + if (typeof define === "function" && define.amd) { + define("tslib", ["exports"], function(exports2) { + factory(createExporter(root, createExporter(exports2))); + }); + } else if (typeof module === "object" && typeof module.exports === "object") { + factory(createExporter(root, createExporter(module.exports))); + } else { + factory(createExporter(root)); + } + function createExporter(exports2, previous) { + if (exports2 !== root) { + if (typeof Object.create === "function") { + Object.defineProperty(exports2, "__esModule", { value: true }); + } else { + exports2.__esModule = true; + } + } + return function(id, v3) { + return exports2[id] = previous ? previous(id, v3) : v3; + }; + } + })(function(exporter) { + var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d3, b4) { + d3.__proto__ = b4; + } || function(d3, b4) { + for (var p3 in b4) + if (Object.prototype.hasOwnProperty.call(b4, p3)) + d3[p3] = b4[p3]; + }; + __extends2 = function(d3, b4) { + if (typeof b4 !== "function" && b4 !== null) + throw new TypeError("Class extends value " + String(b4) + " is not a constructor or null"); + extendStatics(d3, b4); + function __() { + this.constructor = d3; + } + d3.prototype = b4 === null ? Object.create(b4) : (__.prototype = b4.prototype, new __()); + }; + __assign2 = Object.assign || function(t3) { + for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { + s4 = arguments[i4]; + for (var p3 in s4) + if (Object.prototype.hasOwnProperty.call(s4, p3)) + t3[p3] = s4[p3]; + } + return t3; + }; + __rest2 = function(s4, e2) { + var t3 = {}; + for (var p3 in s4) + if (Object.prototype.hasOwnProperty.call(s4, p3) && e2.indexOf(p3) < 0) + t3[p3] = s4[p3]; + if (s4 != null && typeof Object.getOwnPropertySymbols === "function") + for (var i4 = 0, p3 = Object.getOwnPropertySymbols(s4); i4 < p3.length; i4++) { + if (e2.indexOf(p3[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p3[i4])) + t3[p3[i4]] = s4[p3[i4]]; + } + return t3; + }; + __decorate2 = function(decorators, target, key, desc2) { + var c3 = arguments.length, r3 = c3 < 3 ? target : desc2 === null ? desc2 = Object.getOwnPropertyDescriptor(target, key) : desc2, d3; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") + r3 = Reflect.decorate(decorators, target, key, desc2); + else + for (var i4 = decorators.length - 1; i4 >= 0; i4--) + if (d3 = decorators[i4]) + r3 = (c3 < 3 ? d3(r3) : c3 > 3 ? d3(target, key, r3) : d3(target, key)) || r3; + return c3 > 3 && r3 && Object.defineProperty(target, key, r3), r3; + }; + __param2 = function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + __metadata2 = function(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") + return Reflect.metadata(metadataKey, metadataValue); + }; + __awaiter2 = function(thisArg, _arguments, P3, generator) { + function adopt(value) { + return value instanceof P3 ? value : new P3(function(resolve) { + resolve(value); + }); + } + return new (P3 || (P3 = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e2) { + reject(e2); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e2) { + reject(e2); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + __generator2 = function(thisArg, body2) { + var _3 = { label: 0, sent: function() { + if (t3[0] & 1) + throw t3[1]; + return t3[1]; + }, trys: [], ops: [] }, f3, y3, t3, g4; + return g4 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g4[Symbol.iterator] = function() { + return this; + }), g4; + function verb(n3) { + return function(v3) { + return step([n3, v3]); + }; + } + function step(op) { + if (f3) + throw new TypeError("Generator is already executing."); + while (_3) + try { + if (f3 = 1, y3 && (t3 = op[0] & 2 ? y3["return"] : op[0] ? y3["throw"] || ((t3 = y3["return"]) && t3.call(y3), 0) : y3.next) && !(t3 = t3.call(y3, op[1])).done) + return t3; + if (y3 = 0, t3) + op = [op[0] & 2, t3.value]; + switch (op[0]) { + case 0: + case 1: + t3 = op; + break; + case 4: + _3.label++; + return { value: op[1], done: false }; + case 5: + _3.label++; + y3 = op[1]; + op = [0]; + continue; + case 7: + op = _3.ops.pop(); + _3.trys.pop(); + continue; + default: + if (!(t3 = _3.trys, t3 = t3.length > 0 && t3[t3.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _3 = 0; + continue; + } + if (op[0] === 3 && (!t3 || op[1] > t3[0] && op[1] < t3[3])) { + _3.label = op[1]; + break; + } + if (op[0] === 6 && _3.label < t3[1]) { + _3.label = t3[1]; + t3 = op; + break; + } + if (t3 && _3.label < t3[2]) { + _3.label = t3[2]; + _3.ops.push(op); + break; + } + if (t3[2]) + _3.ops.pop(); + _3.trys.pop(); + continue; + } + op = body2.call(thisArg, _3); + } catch (e2) { + op = [6, e2]; + y3 = 0; + } finally { + f3 = t3 = 0; + } + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + __exportStar2 = function(m3, o3) { + for (var p3 in m3) + if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(o3, p3)) + __createBinding2(o3, m3, p3); + }; + __createBinding2 = Object.create ? function(o3, m3, k3, k22) { + if (k22 === void 0) + k22 = k3; + Object.defineProperty(o3, k22, { enumerable: true, get: function() { + return m3[k3]; + } }); + } : function(o3, m3, k3, k22) { + if (k22 === void 0) + k22 = k3; + o3[k22] = m3[k3]; + }; + __values2 = function(o3) { + var s4 = typeof Symbol === "function" && Symbol.iterator, m3 = s4 && o3[s4], i4 = 0; + if (m3) + return m3.call(o3); + if (o3 && typeof o3.length === "number") + return { + next: function() { + if (o3 && i4 >= o3.length) + o3 = void 0; + return { value: o3 && o3[i4++], done: !o3 }; + } + }; + throw new TypeError(s4 ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + __read2 = function(o3, n3) { + var m3 = typeof Symbol === "function" && o3[Symbol.iterator]; + if (!m3) + return o3; + var i4 = m3.call(o3), r3, ar = [], e2; + try { + while ((n3 === void 0 || n3-- > 0) && !(r3 = i4.next()).done) + ar.push(r3.value); + } catch (error) { + e2 = { error }; + } finally { + try { + if (r3 && !r3.done && (m3 = i4["return"])) + m3.call(i4); + } finally { + if (e2) + throw e2.error; + } + } + return ar; + }; + __spread2 = function() { + for (var ar = [], i4 = 0; i4 < arguments.length; i4++) + ar = ar.concat(__read2(arguments[i4])); + return ar; + }; + __spreadArrays2 = function() { + for (var s4 = 0, i4 = 0, il = arguments.length; i4 < il; i4++) + s4 += arguments[i4].length; + for (var r3 = Array(s4), k3 = 0, i4 = 0; i4 < il; i4++) + for (var a4 = arguments[i4], j3 = 0, jl = a4.length; j3 < jl; j3++, k3++) + r3[k3] = a4[j3]; + return r3; + }; + __spreadArray2 = function(to, from2, pack) { + if (pack || arguments.length === 2) + for (var i4 = 0, l3 = from2.length, ar; i4 < l3; i4++) { + if (ar || !(i4 in from2)) { + if (!ar) + ar = Array.prototype.slice.call(from2, 0, i4); + ar[i4] = from2[i4]; + } + } + return to.concat(ar || Array.prototype.slice.call(from2)); + }; + __await2 = function(v3) { + return this instanceof __await2 ? (this.v = v3, this) : new __await2(v3); + }; + __asyncGenerator2 = function(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var g4 = generator.apply(thisArg, _arguments || []), i4, q3 = []; + return i4 = {}, verb("next"), verb("throw"), verb("return"), i4[Symbol.asyncIterator] = function() { + return this; + }, i4; + function verb(n3) { + if (g4[n3]) + i4[n3] = function(v3) { + return new Promise(function(a4, b4) { + q3.push([n3, v3, a4, b4]) > 1 || resume(n3, v3); + }); + }; + } + function resume(n3, v3) { + try { + step(g4[n3](v3)); + } catch (e2) { + settle(q3[0][3], e2); + } + } + function step(r3) { + r3.value instanceof __await2 ? Promise.resolve(r3.value.v).then(fulfill, reject) : settle(q3[0][2], r3); + } + function fulfill(value) { + resume("next", value); + } + function reject(value) { + resume("throw", value); + } + function settle(f3, v3) { + if (f3(v3), q3.shift(), q3.length) + resume(q3[0][0], q3[0][1]); + } + }; + __asyncDelegator2 = function(o3) { + var i4, p3; + return i4 = {}, verb("next"), verb("throw", function(e2) { + throw e2; + }), verb("return"), i4[Symbol.iterator] = function() { + return this; + }, i4; + function verb(n3, f3) { + i4[n3] = o3[n3] ? function(v3) { + return (p3 = !p3) ? { value: __await2(o3[n3](v3)), done: n3 === "return" } : f3 ? f3(v3) : v3; + } : f3; + } + }; + __asyncValues2 = function(o3) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var m3 = o3[Symbol.asyncIterator], i4; + return m3 ? m3.call(o3) : (o3 = typeof __values2 === "function" ? __values2(o3) : o3[Symbol.iterator](), i4 = {}, verb("next"), verb("throw"), verb("return"), i4[Symbol.asyncIterator] = function() { + return this; + }, i4); + function verb(n3) { + i4[n3] = o3[n3] && function(v3) { + return new Promise(function(resolve, reject) { + v3 = o3[n3](v3), settle(resolve, reject, v3.done, v3.value); + }); + }; + } + function settle(resolve, reject, d3, v3) { + Promise.resolve(v3).then(function(v4) { + resolve({ value: v4, done: d3 }); + }, reject); + } + }; + __makeTemplateObject2 = function(cooked, raw) { + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { value: raw }); + } else { + cooked.raw = raw; + } + return cooked; + }; + var __setModuleDefault = Object.create ? function(o3, v3) { + Object.defineProperty(o3, "default", { enumerable: true, value: v3 }); + } : function(o3, v3) { + o3["default"] = v3; + }; + __importStar2 = function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) + if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) + __createBinding2(result, mod, k3); + } + __setModuleDefault(result, mod); + return result; + }; + __importDefault2 = function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + __classPrivateFieldGet2 = function(receiver, state, kind, f3) { + if (kind === "a" && !f3) + throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f3 : !state.has(receiver)) + throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f3 : kind === "a" ? f3.call(receiver) : f3 ? f3.value : state.get(receiver); + }; + __classPrivateFieldSet2 = function(receiver, state, value, kind, f3) { + if (kind === "m") + throw new TypeError("Private method is not writable"); + if (kind === "a" && !f3) + throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f3 : !state.has(receiver)) + throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return kind === "a" ? f3.call(receiver, value) : f3 ? f3.value = value : state.set(receiver, value), value; + }; + exporter("__extends", __extends2); + exporter("__assign", __assign2); + exporter("__rest", __rest2); + exporter("__decorate", __decorate2); + exporter("__param", __param2); + exporter("__metadata", __metadata2); + exporter("__awaiter", __awaiter2); + exporter("__generator", __generator2); + exporter("__exportStar", __exportStar2); + exporter("__createBinding", __createBinding2); + exporter("__values", __values2); + exporter("__read", __read2); + exporter("__spread", __spread2); + exporter("__spreadArrays", __spreadArrays2); + exporter("__spreadArray", __spreadArray2); + exporter("__await", __await2); + exporter("__asyncGenerator", __asyncGenerator2); + exporter("__asyncDelegator", __asyncDelegator2); + exporter("__asyncValues", __asyncValues2); + exporter("__makeTemplateObject", __makeTemplateObject2); + exporter("__importStar", __importStar2); + exporter("__importDefault", __importDefault2); + exporter("__classPrivateFieldGet", __classPrivateFieldGet2); + exporter("__classPrivateFieldSet", __classPrivateFieldSet2); + }); + } + }); + + // src/client.ts + var import_linq = __toESM(require_linq()); + + // node_modules/preact/dist/preact.module.js + var n; + var l; + var u; + var i; + var t; + var o; + var r; + var f; + var e = {}; + var c = []; + var s = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i; + function a(n3, l3) { + for (var u4 in l3) + n3[u4] = l3[u4]; + return n3; + } + function h(n3) { + var l3 = n3.parentNode; + l3 && l3.removeChild(n3); + } + function v(l3, u4, i4) { + var t3, o3, r3, f3 = {}; + for (r3 in u4) + r3 == "key" ? t3 = u4[r3] : r3 == "ref" ? o3 = u4[r3] : f3[r3] = u4[r3]; + if (arguments.length > 2 && (f3.children = arguments.length > 3 ? n.call(arguments, 2) : i4), typeof l3 == "function" && l3.defaultProps != null) + for (r3 in l3.defaultProps) + f3[r3] === void 0 && (f3[r3] = l3.defaultProps[r3]); + return y(l3, f3, t3, o3, null); + } + function y(n3, i4, t3, o3, r3) { + var f3 = { type: n3, props: i4, key: t3, ref: o3, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, __h: null, constructor: void 0, __v: r3 == null ? ++u : r3 }; + return r3 == null && l.vnode != null && l.vnode(f3), f3; + } + function d(n3) { + return n3.children; + } + function _(n3, l3) { + this.props = n3, this.context = l3; + } + function k(n3, l3) { + if (l3 == null) + return n3.__ ? k(n3.__, n3.__.__k.indexOf(n3) + 1) : null; + for (var u4; l3 < n3.__k.length; l3++) + if ((u4 = n3.__k[l3]) != null && u4.__e != null) + return u4.__e; + return typeof n3.type == "function" ? k(n3) : null; + } + function b(n3) { + var l3, u4; + if ((n3 = n3.__) != null && n3.__c != null) { + for (n3.__e = n3.__c.base = null, l3 = 0; l3 < n3.__k.length; l3++) + if ((u4 = n3.__k[l3]) != null && u4.__e != null) { + n3.__e = n3.__c.base = u4.__e; + break; + } + return b(n3); + } + } + function m(n3) { + (!n3.__d && (n3.__d = true) && t.push(n3) && !g.__r++ || r !== l.debounceRendering) && ((r = l.debounceRendering) || o)(g); + } + function g() { + for (var n3; g.__r = t.length; ) + n3 = t.sort(function(n4, l3) { + return n4.__v.__b - l3.__v.__b; + }), t = [], n3.some(function(n4) { + var l3, u4, i4, t3, o3, r3; + n4.__d && (o3 = (t3 = (l3 = n4).__v).__e, (r3 = l3.__P) && (u4 = [], (i4 = a({}, t3)).__v = t3.__v + 1, j(r3, t3, i4, l3.__n, r3.ownerSVGElement !== void 0, t3.__h != null ? [o3] : null, u4, o3 == null ? k(t3) : o3, t3.__h), z(u4, t3), t3.__e != o3 && b(t3))); + }); + } + function w(n3, l3, u4, i4, t3, o3, r3, f3, s4, a4) { + var h7, v3, p3, _3, b4, m3, g4, w3 = i4 && i4.__k || c, A2 = w3.length; + for (u4.__k = [], h7 = 0; h7 < l3.length; h7++) + if ((_3 = u4.__k[h7] = (_3 = l3[h7]) == null || typeof _3 == "boolean" ? null : typeof _3 == "string" || typeof _3 == "number" || typeof _3 == "bigint" ? y(null, _3, null, null, _3) : Array.isArray(_3) ? y(d, { children: _3 }, null, null, null) : _3.__b > 0 ? y(_3.type, _3.props, _3.key, null, _3.__v) : _3) != null) { + if (_3.__ = u4, _3.__b = u4.__b + 1, (p3 = w3[h7]) === null || p3 && _3.key == p3.key && _3.type === p3.type) + w3[h7] = void 0; + else + for (v3 = 0; v3 < A2; v3++) { + if ((p3 = w3[v3]) && _3.key == p3.key && _3.type === p3.type) { + w3[v3] = void 0; + break; + } + p3 = null; + } + j(n3, _3, p3 = p3 || e, t3, o3, r3, f3, s4, a4), b4 = _3.__e, (v3 = _3.ref) && p3.ref != v3 && (g4 || (g4 = []), p3.ref && g4.push(p3.ref, null, _3), g4.push(v3, _3.__c || b4, _3)), b4 != null ? (m3 == null && (m3 = b4), typeof _3.type == "function" && _3.__k === p3.__k ? _3.__d = s4 = x(_3, s4, n3) : s4 = P(n3, _3, p3, w3, b4, s4), typeof u4.type == "function" && (u4.__d = s4)) : s4 && p3.__e == s4 && s4.parentNode != n3 && (s4 = k(p3)); + } + for (u4.__e = m3, h7 = A2; h7--; ) + w3[h7] != null && (typeof u4.type == "function" && w3[h7].__e != null && w3[h7].__e == u4.__d && (u4.__d = k(i4, h7 + 1)), N(w3[h7], w3[h7])); + if (g4) + for (h7 = 0; h7 < g4.length; h7++) + M(g4[h7], g4[++h7], g4[++h7]); + } + function x(n3, l3, u4) { + for (var i4, t3 = n3.__k, o3 = 0; t3 && o3 < t3.length; o3++) + (i4 = t3[o3]) && (i4.__ = n3, l3 = typeof i4.type == "function" ? x(i4, l3, u4) : P(u4, i4, i4, t3, i4.__e, l3)); + return l3; + } + function P(n3, l3, u4, i4, t3, o3) { + var r3, f3, e2; + if (l3.__d !== void 0) + r3 = l3.__d, l3.__d = void 0; + else if (u4 == null || t3 != o3 || t3.parentNode == null) + n: + if (o3 == null || o3.parentNode !== n3) + n3.appendChild(t3), r3 = null; + else { + for (f3 = o3, e2 = 0; (f3 = f3.nextSibling) && e2 < i4.length; e2 += 2) + if (f3 == t3) + break n; + n3.insertBefore(t3, o3), r3 = o3; + } + return r3 !== void 0 ? r3 : t3.nextSibling; + } + function C(n3, l3, u4, i4, t3) { + var o3; + for (o3 in u4) + o3 === "children" || o3 === "key" || o3 in l3 || H(n3, o3, null, u4[o3], i4); + for (o3 in l3) + t3 && typeof l3[o3] != "function" || o3 === "children" || o3 === "key" || o3 === "value" || o3 === "checked" || u4[o3] === l3[o3] || H(n3, o3, l3[o3], u4[o3], i4); + } + function $(n3, l3, u4) { + l3[0] === "-" ? n3.setProperty(l3, u4) : n3[l3] = u4 == null ? "" : typeof u4 != "number" || s.test(l3) ? u4 : u4 + "px"; + } + function H(n3, l3, u4, i4, t3) { + var o3; + n: + if (l3 === "style") + if (typeof u4 == "string") + n3.style.cssText = u4; + else { + if (typeof i4 == "string" && (n3.style.cssText = i4 = ""), i4) + for (l3 in i4) + u4 && l3 in u4 || $(n3.style, l3, ""); + if (u4) + for (l3 in u4) + i4 && u4[l3] === i4[l3] || $(n3.style, l3, u4[l3]); + } + else if (l3[0] === "o" && l3[1] === "n") + o3 = l3 !== (l3 = l3.replace(/Capture$/, "")), l3 = l3.toLowerCase() in n3 ? l3.toLowerCase().slice(2) : l3.slice(2), n3.l || (n3.l = {}), n3.l[l3 + o3] = u4, u4 ? i4 || n3.addEventListener(l3, o3 ? T : I, o3) : n3.removeEventListener(l3, o3 ? T : I, o3); + else if (l3 !== "dangerouslySetInnerHTML") { + if (t3) + l3 = l3.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s"); + else if (l3 !== "href" && l3 !== "list" && l3 !== "form" && l3 !== "tabIndex" && l3 !== "download" && l3 in n3) + try { + n3[l3] = u4 == null ? "" : u4; + break n; + } catch (n4) { + } + typeof u4 == "function" || (u4 != null && (u4 !== false || l3[0] === "a" && l3[1] === "r") ? n3.setAttribute(l3, u4) : n3.removeAttribute(l3)); + } + } + function I(n3) { + this.l[n3.type + false](l.event ? l.event(n3) : n3); + } + function T(n3) { + this.l[n3.type + true](l.event ? l.event(n3) : n3); + } + function j(n3, u4, i4, t3, o3, r3, f3, e2, c3) { + var s4, h7, v3, y3, p3, k3, b4, m3, g4, x3, A2, P3, C2, $2 = u4.type; + if (u4.constructor !== void 0) + return null; + i4.__h != null && (c3 = i4.__h, e2 = u4.__e = i4.__e, u4.__h = null, r3 = [e2]), (s4 = l.__b) && s4(u4); + try { + n: + if (typeof $2 == "function") { + if (m3 = u4.props, g4 = (s4 = $2.contextType) && t3[s4.__c], x3 = s4 ? g4 ? g4.props.value : s4.__ : t3, i4.__c ? b4 = (h7 = u4.__c = i4.__c).__ = h7.__E : ("prototype" in $2 && $2.prototype.render ? u4.__c = h7 = new $2(m3, x3) : (u4.__c = h7 = new _(m3, x3), h7.constructor = $2, h7.render = O), g4 && g4.sub(h7), h7.props = m3, h7.state || (h7.state = {}), h7.context = x3, h7.__n = t3, v3 = h7.__d = true, h7.__h = []), h7.__s == null && (h7.__s = h7.state), $2.getDerivedStateFromProps != null && (h7.__s == h7.state && (h7.__s = a({}, h7.__s)), a(h7.__s, $2.getDerivedStateFromProps(m3, h7.__s))), y3 = h7.props, p3 = h7.state, v3) + $2.getDerivedStateFromProps == null && h7.componentWillMount != null && h7.componentWillMount(), h7.componentDidMount != null && h7.__h.push(h7.componentDidMount); + else { + if ($2.getDerivedStateFromProps == null && m3 !== y3 && h7.componentWillReceiveProps != null && h7.componentWillReceiveProps(m3, x3), !h7.__e && h7.shouldComponentUpdate != null && h7.shouldComponentUpdate(m3, h7.__s, x3) === false || u4.__v === i4.__v) { + h7.props = m3, h7.state = h7.__s, u4.__v !== i4.__v && (h7.__d = false), h7.__v = u4, u4.__e = i4.__e, u4.__k = i4.__k, u4.__k.forEach(function(n4) { + n4 && (n4.__ = u4); + }), h7.__h.length && f3.push(h7); + break n; + } + h7.componentWillUpdate != null && h7.componentWillUpdate(m3, h7.__s, x3), h7.componentDidUpdate != null && h7.__h.push(function() { + h7.componentDidUpdate(y3, p3, k3); + }); + } + if (h7.context = x3, h7.props = m3, h7.__v = u4, h7.__P = n3, A2 = l.__r, P3 = 0, "prototype" in $2 && $2.prototype.render) + h7.state = h7.__s, h7.__d = false, A2 && A2(u4), s4 = h7.render(h7.props, h7.state, h7.context); + else + do { + h7.__d = false, A2 && A2(u4), s4 = h7.render(h7.props, h7.state, h7.context), h7.state = h7.__s; + } while (h7.__d && ++P3 < 25); + h7.state = h7.__s, h7.getChildContext != null && (t3 = a(a({}, t3), h7.getChildContext())), v3 || h7.getSnapshotBeforeUpdate == null || (k3 = h7.getSnapshotBeforeUpdate(y3, p3)), C2 = s4 != null && s4.type === d && s4.key == null ? s4.props.children : s4, w(n3, Array.isArray(C2) ? C2 : [C2], u4, i4, t3, o3, r3, f3, e2, c3), h7.base = u4.__e, u4.__h = null, h7.__h.length && f3.push(h7), b4 && (h7.__E = h7.__ = null), h7.__e = false; + } else + r3 == null && u4.__v === i4.__v ? (u4.__k = i4.__k, u4.__e = i4.__e) : u4.__e = L(i4.__e, u4, i4, t3, o3, r3, f3, c3); + (s4 = l.diffed) && s4(u4); + } catch (n4) { + u4.__v = null, (c3 || r3 != null) && (u4.__e = e2, u4.__h = !!c3, r3[r3.indexOf(e2)] = null), l.__e(n4, u4, i4); + } + } + function z(n3, u4) { + l.__c && l.__c(u4, n3), n3.some(function(u5) { + try { + n3 = u5.__h, u5.__h = [], n3.some(function(n4) { + n4.call(u5); + }); + } catch (n4) { + l.__e(n4, u5.__v); + } + }); + } + function L(l3, u4, i4, t3, o3, r3, f3, c3) { + var s4, a4, v3, y3 = i4.props, p3 = u4.props, d3 = u4.type, _3 = 0; + if (d3 === "svg" && (o3 = true), r3 != null) { + for (; _3 < r3.length; _3++) + if ((s4 = r3[_3]) && "setAttribute" in s4 == !!d3 && (d3 ? s4.localName === d3 : s4.nodeType === 3)) { + l3 = s4, r3[_3] = null; + break; + } + } + if (l3 == null) { + if (d3 === null) + return document.createTextNode(p3); + l3 = o3 ? document.createElementNS("http://www.w3.org/2000/svg", d3) : document.createElement(d3, p3.is && p3), r3 = null, c3 = false; + } + if (d3 === null) + y3 === p3 || c3 && l3.data === p3 || (l3.data = p3); + else { + if (r3 = r3 && n.call(l3.childNodes), a4 = (y3 = i4.props || e).dangerouslySetInnerHTML, v3 = p3.dangerouslySetInnerHTML, !c3) { + if (r3 != null) + for (y3 = {}, _3 = 0; _3 < l3.attributes.length; _3++) + y3[l3.attributes[_3].name] = l3.attributes[_3].value; + (v3 || a4) && (v3 && (a4 && v3.__html == a4.__html || v3.__html === l3.innerHTML) || (l3.innerHTML = v3 && v3.__html || "")); + } + if (C(l3, p3, y3, o3, c3), v3) + u4.__k = []; + else if (_3 = u4.props.children, w(l3, Array.isArray(_3) ? _3 : [_3], u4, i4, t3, o3 && d3 !== "foreignObject", r3, f3, r3 ? r3[0] : i4.__k && k(i4, 0), c3), r3 != null) + for (_3 = r3.length; _3--; ) + r3[_3] != null && h(r3[_3]); + c3 || ("value" in p3 && (_3 = p3.value) !== void 0 && (_3 !== l3.value || d3 === "progress" && !_3 || d3 === "option" && _3 !== y3.value) && H(l3, "value", _3, y3.value, false), "checked" in p3 && (_3 = p3.checked) !== void 0 && _3 !== l3.checked && H(l3, "checked", _3, y3.checked, false)); + } + return l3; + } + function M(n3, u4, i4) { + try { + typeof n3 == "function" ? n3(u4) : n3.current = u4; + } catch (n4) { + l.__e(n4, i4); + } + } + function N(n3, u4, i4) { + var t3, o3; + if (l.unmount && l.unmount(n3), (t3 = n3.ref) && (t3.current && t3.current !== n3.__e || M(t3, null, u4)), (t3 = n3.__c) != null) { + if (t3.componentWillUnmount) + try { + t3.componentWillUnmount(); + } catch (n4) { + l.__e(n4, u4); + } + t3.base = t3.__P = null; + } + if (t3 = n3.__k) + for (o3 = 0; o3 < t3.length; o3++) + t3[o3] && N(t3[o3], u4, typeof n3.type != "function"); + i4 || n3.__e == null || h(n3.__e), n3.__e = n3.__d = void 0; + } + function O(n3, l3, u4) { + return this.constructor(n3, u4); + } + function S(u4, i4, t3) { + var o3, r3, f3; + l.__ && l.__(u4, i4), r3 = (o3 = typeof t3 == "function") ? null : t3 && t3.__k || i4.__k, f3 = [], j(i4, u4 = (!o3 && t3 || i4).__k = v(d, null, [u4]), r3 || e, e, i4.ownerSVGElement !== void 0, !o3 && t3 ? [t3] : r3 ? null : i4.firstChild ? n.call(i4.childNodes) : null, f3, !o3 && t3 ? t3 : r3 ? r3.__e : i4.firstChild, o3), z(f3, u4); + } + n = c.slice, l = { __e: function(n3, l3, u4, i4) { + for (var t3, o3, r3; l3 = l3.__; ) + if ((t3 = l3.__c) && !t3.__) + try { + if ((o3 = t3.constructor) && o3.getDerivedStateFromError != null && (t3.setState(o3.getDerivedStateFromError(n3)), r3 = t3.__d), t3.componentDidCatch != null && (t3.componentDidCatch(n3, i4 || {}), r3 = t3.__d), r3) + return t3.__E = t3; + } catch (l4) { + n3 = l4; + } + throw n3; + } }, u = 0, i = function(n3) { + return n3 != null && n3.constructor === void 0; + }, _.prototype.setState = function(n3, l3) { + var u4; + u4 = this.__s != null && this.__s !== this.state ? this.__s : this.__s = a({}, this.state), typeof n3 == "function" && (n3 = n3(a({}, u4), this.props)), n3 && a(u4, n3), n3 != null && this.__v && (l3 && this.__h.push(l3), m(this)); + }, _.prototype.forceUpdate = function(n3) { + this.__v && (this.__e = true, n3 && this.__h.push(n3), m(this)); + }, _.prototype.render = d, t = [], o = typeof Promise == "function" ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, g.__r = 0, f = 0; + + // src/client/css/CssFuncs.ts + var hsl = (hue2, pctSat, pctLight) => `hsl(${hue2},${pctSat}%,${pctLight}%)`; + var hsla = (hue2, pctSat, pctLight, fctAlpha) => `hsla(${hue2},${pctSat}%,${pctLight}%,${fctAlpha})`; + var rgb = (red, green, blue) => `rgb(${red},${green},${blue})`; + var rgba = (red, green, blue, alpha) => `rgba(${red},${green},${blue},${alpha})`; + var url = (path2) => `url(${path2})`; + var rem = (num) => `${num}rem`; + + // src/client/css/Defaults.ts + var hue = 213; + var sat = 32; + var darken = 0.25; + var _Defaults = class { + constructor() { + } + }; + var Defaults = _Defaults; + __publicField(Defaults, "remBaseLength", 1); + __publicField(Defaults, "remSpacing", _Defaults.remBaseLength * 0.3); + __publicField(Defaults, "baseLength", rem(_Defaults.remBaseLength)); + __publicField(Defaults, "spacing", rem(_Defaults.remSpacing)); + __publicField(Defaults, "colorVeryBright", hsl(hue, sat, 96)); + __publicField(Defaults, "colorBright", hsl(hue, sat, 84)); + __publicField(Defaults, "textColor", hsl(hue, sat, 25)); + __publicField(Defaults, "colorLightGrey", rgb(239, 239, 239)); + __publicField(Defaults, "colorGrey", rgb(118, 118, 118)); + __publicField(Defaults, "colorDarken", hsla(hue, sat, 50, darken)); + __publicField(Defaults, "colorDarkenMore", hsla(hue, sat, 50, darken * 2)); + __publicField(Defaults, "colorDarkenLess", hsla(hue, sat, 50, darken / 2)); + + // src/client/css/Styles.ts + var padded = { + padding: rem(Defaults.remSpacing) + }; + var margined = { + margin: rem(Defaults.remSpacing) + }; + var paddedMargined = { + ...padded, + ...margined + }; + var baseStyle = { + fontFamily: '"Inter", -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif', + fontSize: rem(Defaults.remBaseLength), + color: Defaults.textColor, + letterSpacing: 0, + textRendering: "optimizeLegibility", + fontFeatureSettings: '"liga" 0' + }; + + // src/utils/maybe.ts + function isDefined(e2) { + return e2 != void 0; + } + function isUndefined(e2) { + return e2 == void 0; + } + function toArray4(e2) { + return isDefined(e2) ? [e2] : []; + } + + // src/utils/milliseconds.ts + var Milliseconds = { + fromSeconds: (count5) => count5 * 1e3, + fromMinutes: (count5) => count5 * 1e3 * 60, + fromHours: (count5) => count5 * 1e3 * 60 * 60, + fromDays: (count5) => count5 * 1e3 * 60 * 60 * 24, + fromWeeks: (count5) => count5 * 1e3 * 60 * 60 * 24 * 7, + toSeconds: (count5) => count5 / 1e3, + toMinutes: (count5) => count5 / 1e3 / 60, + toHours: (count5) => count5 / 1e3 / 60 / 60, + toDays: (count5) => count5 / 1e3 / 60 / 60 / 24, + toWeeks: (count5) => count5 / 1e3 / 60 / 60 / 24 / 7 + }; + + // node_modules/rxjs/node_modules/tslib/modules/index.js + var import_tslib = __toESM(require_tslib(), 1); + var { + __extends, + __assign, + __rest, + __decorate, + __param, + __metadata, + __awaiter, + __generator, + __exportStar, + __createBinding, + __values, + __read, + __spread, + __spreadArrays, + __spreadArray, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet + } = import_tslib.default; + + // node_modules/rxjs/dist/esm5/internal/util/isFunction.js + function isFunction(value) { + return typeof value === "function"; + } + + // node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js + function createErrorClass(createImpl) { + var _super = function(instance) { + Error.call(instance); + instance.stack = new Error().stack; + }; + var ctorFunc = createImpl(_super); + ctorFunc.prototype = Object.create(Error.prototype); + ctorFunc.prototype.constructor = ctorFunc; + return ctorFunc; + } + + // node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js + var UnsubscriptionError = createErrorClass(function(_super) { + return function UnsubscriptionErrorImpl(errors) { + _super(this); + this.message = errors ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function(err, i4) { + return i4 + 1 + ") " + err.toString(); + }).join("\n ") : ""; + this.name = "UnsubscriptionError"; + this.errors = errors; + }; + }); + + // node_modules/rxjs/dist/esm5/internal/util/arrRemove.js + function arrRemove(arr, item) { + if (arr) { + var index = arr.indexOf(item); + 0 <= index && arr.splice(index, 1); + } + } + + // node_modules/rxjs/dist/esm5/internal/Subscription.js + var Subscription = function() { + function Subscription2(initialTeardown) { + this.initialTeardown = initialTeardown; + this.closed = false; + this._parentage = null; + this._finalizers = null; + } + Subscription2.prototype.unsubscribe = function() { + var e_1, _a, e_2, _b; + var errors; + if (!this.closed) { + this.closed = true; + var _parentage = this._parentage; + if (_parentage) { + this._parentage = null; + if (Array.isArray(_parentage)) { + try { + for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) { + var parent_1 = _parentage_1_1.value; + parent_1.remove(this); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) + _a.call(_parentage_1); + } finally { + if (e_1) + throw e_1.error; + } + } + } else { + _parentage.remove(this); + } + } + var initialFinalizer = this.initialTeardown; + if (isFunction(initialFinalizer)) { + try { + initialFinalizer(); + } catch (e2) { + errors = e2 instanceof UnsubscriptionError ? e2.errors : [e2]; + } + } + var _finalizers = this._finalizers; + if (_finalizers) { + this._finalizers = null; + try { + for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) { + var finalizer = _finalizers_1_1.value; + try { + execFinalizer(finalizer); + } catch (err) { + errors = errors !== null && errors !== void 0 ? errors : []; + if (err instanceof UnsubscriptionError) { + errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors)); + } else { + errors.push(err); + } + } + } + } catch (e_2_1) { + e_2 = { error: e_2_1 }; + } finally { + try { + if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) + _b.call(_finalizers_1); + } finally { + if (e_2) + throw e_2.error; + } + } + } + if (errors) { + throw new UnsubscriptionError(errors); + } + } + }; + Subscription2.prototype.add = function(teardown) { + var _a; + if (teardown && teardown !== this) { + if (this.closed) { + execFinalizer(teardown); + } else { + if (teardown instanceof Subscription2) { + if (teardown.closed || teardown._hasParent(this)) { + return; + } + teardown._addParent(this); + } + (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown); + } + } + }; + Subscription2.prototype._hasParent = function(parent) { + var _parentage = this._parentage; + return _parentage === parent || Array.isArray(_parentage) && _parentage.includes(parent); + }; + Subscription2.prototype._addParent = function(parent) { + var _parentage = this._parentage; + this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent; + }; + Subscription2.prototype._removeParent = function(parent) { + var _parentage = this._parentage; + if (_parentage === parent) { + this._parentage = null; + } else if (Array.isArray(_parentage)) { + arrRemove(_parentage, parent); + } + }; + Subscription2.prototype.remove = function(teardown) { + var _finalizers = this._finalizers; + _finalizers && arrRemove(_finalizers, teardown); + if (teardown instanceof Subscription2) { + teardown._removeParent(this); + } + }; + Subscription2.EMPTY = function() { + var empty2 = new Subscription2(); + empty2.closed = true; + return empty2; + }(); + return Subscription2; + }(); + var EMPTY_SUBSCRIPTION = Subscription.EMPTY; + function isSubscription(value) { + return value instanceof Subscription || value && "closed" in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe); + } + function execFinalizer(finalizer) { + if (isFunction(finalizer)) { + finalizer(); + } else { + finalizer.unsubscribe(); + } + } + + // node_modules/rxjs/dist/esm5/internal/config.js + var config = { + onUnhandledError: null, + onStoppedNotification: null, + Promise: void 0, + useDeprecatedSynchronousErrorHandling: false, + useDeprecatedNextContext: false + }; + + // node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js + var timeoutProvider = { + setTimeout: function(handler, timeout) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + var delegate = timeoutProvider.delegate; + if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) { + return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args))); + } + return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args))); + }, + clearTimeout: function(handle) { + var delegate = timeoutProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle); + }, + delegate: void 0 + }; + + // node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js + function reportUnhandledError(err) { + timeoutProvider.setTimeout(function() { + var onUnhandledError = config.onUnhandledError; + if (onUnhandledError) { + onUnhandledError(err); + } else { + throw err; + } + }); + } + + // node_modules/rxjs/dist/esm5/internal/util/noop.js + function noop() { + } + + // node_modules/rxjs/dist/esm5/internal/NotificationFactories.js + var COMPLETE_NOTIFICATION = function() { + return createNotification("C", void 0, void 0); + }(); + function errorNotification(error) { + return createNotification("E", void 0, error); + } + function nextNotification(value) { + return createNotification("N", value, void 0); + } + function createNotification(kind, value, error) { + return { + kind, + value, + error + }; + } + + // node_modules/rxjs/dist/esm5/internal/util/errorContext.js + var context = null; + function errorContext(cb) { + if (config.useDeprecatedSynchronousErrorHandling) { + var isRoot = !context; + if (isRoot) { + context = { errorThrown: false, error: null }; + } + cb(); + if (isRoot) { + var _a = context, errorThrown = _a.errorThrown, error = _a.error; + context = null; + if (errorThrown) { + throw error; + } + } + } else { + cb(); + } + } + function captureError(err) { + if (config.useDeprecatedSynchronousErrorHandling && context) { + context.errorThrown = true; + context.error = err; + } + } + + // node_modules/rxjs/dist/esm5/internal/Subscriber.js + var Subscriber = function(_super) { + __extends(Subscriber2, _super); + function Subscriber2(destination) { + var _this = _super.call(this) || this; + _this.isStopped = false; + if (destination) { + _this.destination = destination; + if (isSubscription(destination)) { + destination.add(_this); + } + } else { + _this.destination = EMPTY_OBSERVER; + } + return _this; + } + Subscriber2.create = function(next, error, complete) { + return new SafeSubscriber(next, error, complete); + }; + Subscriber2.prototype.next = function(value) { + if (this.isStopped) { + handleStoppedNotification(nextNotification(value), this); + } else { + this._next(value); + } + }; + Subscriber2.prototype.error = function(err) { + if (this.isStopped) { + handleStoppedNotification(errorNotification(err), this); + } else { + this.isStopped = true; + this._error(err); + } + }; + Subscriber2.prototype.complete = function() { + if (this.isStopped) { + handleStoppedNotification(COMPLETE_NOTIFICATION, this); + } else { + this.isStopped = true; + this._complete(); + } + }; + Subscriber2.prototype.unsubscribe = function() { + if (!this.closed) { + this.isStopped = true; + _super.prototype.unsubscribe.call(this); + this.destination = null; + } + }; + Subscriber2.prototype._next = function(value) { + this.destination.next(value); + }; + Subscriber2.prototype._error = function(err) { + try { + this.destination.error(err); + } finally { + this.unsubscribe(); + } + }; + Subscriber2.prototype._complete = function() { + try { + this.destination.complete(); + } finally { + this.unsubscribe(); + } + }; + return Subscriber2; + }(Subscription); + var _bind = Function.prototype.bind; + function bind(fn2, thisArg) { + return _bind.call(fn2, thisArg); + } + var ConsumerObserver = function() { + function ConsumerObserver2(partialObserver) { + this.partialObserver = partialObserver; + } + ConsumerObserver2.prototype.next = function(value) { + var partialObserver = this.partialObserver; + if (partialObserver.next) { + try { + partialObserver.next(value); + } catch (error) { + handleUnhandledError(error); + } + } + }; + ConsumerObserver2.prototype.error = function(err) { + var partialObserver = this.partialObserver; + if (partialObserver.error) { + try { + partialObserver.error(err); + } catch (error) { + handleUnhandledError(error); + } + } else { + handleUnhandledError(err); + } + }; + ConsumerObserver2.prototype.complete = function() { + var partialObserver = this.partialObserver; + if (partialObserver.complete) { + try { + partialObserver.complete(); + } catch (error) { + handleUnhandledError(error); + } + } + }; + return ConsumerObserver2; + }(); + var SafeSubscriber = function(_super) { + __extends(SafeSubscriber2, _super); + function SafeSubscriber2(observerOrNext, error, complete) { + var _this = _super.call(this) || this; + var partialObserver; + if (isFunction(observerOrNext) || !observerOrNext) { + partialObserver = { + next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : void 0, + error: error !== null && error !== void 0 ? error : void 0, + complete: complete !== null && complete !== void 0 ? complete : void 0 + }; + } else { + var context_1; + if (_this && config.useDeprecatedNextContext) { + context_1 = Object.create(observerOrNext); + context_1.unsubscribe = function() { + return _this.unsubscribe(); + }; + partialObserver = { + next: observerOrNext.next && bind(observerOrNext.next, context_1), + error: observerOrNext.error && bind(observerOrNext.error, context_1), + complete: observerOrNext.complete && bind(observerOrNext.complete, context_1) + }; + } else { + partialObserver = observerOrNext; + } + } + _this.destination = new ConsumerObserver(partialObserver); + return _this; + } + return SafeSubscriber2; + }(Subscriber); + function handleUnhandledError(error) { + if (config.useDeprecatedSynchronousErrorHandling) { + captureError(error); + } else { + reportUnhandledError(error); + } + } + function defaultErrorHandler(err) { + throw err; + } + function handleStoppedNotification(notification, subscriber) { + var onStoppedNotification = config.onStoppedNotification; + onStoppedNotification && timeoutProvider.setTimeout(function() { + return onStoppedNotification(notification, subscriber); + }); + } + var EMPTY_OBSERVER = { + closed: true, + next: noop, + error: defaultErrorHandler, + complete: noop + }; + + // node_modules/rxjs/dist/esm5/internal/symbol/observable.js + var observable = function() { + return typeof Symbol === "function" && Symbol.observable || "@@observable"; + }(); + + // node_modules/rxjs/dist/esm5/internal/util/identity.js + function identity(x3) { + return x3; + } + + // node_modules/rxjs/dist/esm5/internal/util/pipe.js + function pipeFromArray(fns) { + if (fns.length === 0) { + return identity; + } + if (fns.length === 1) { + return fns[0]; + } + return function piped(input2) { + return fns.reduce(function(prev, fn2) { + return fn2(prev); + }, input2); + }; + } + + // node_modules/rxjs/dist/esm5/internal/Observable.js + var Observable = function() { + function Observable2(subscribe) { + if (subscribe) { + this._subscribe = subscribe; + } + } + Observable2.prototype.lift = function(operator) { + var observable2 = new Observable2(); + observable2.source = this; + observable2.operator = operator; + return observable2; + }; + Observable2.prototype.subscribe = function(observerOrNext, error, complete) { + var _this = this; + var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete); + errorContext(function() { + var _a = _this, operator = _a.operator, source2 = _a.source; + subscriber.add(operator ? operator.call(subscriber, source2) : source2 ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber)); + }); + return subscriber; + }; + Observable2.prototype._trySubscribe = function(sink) { + try { + return this._subscribe(sink); + } catch (err) { + sink.error(err); + } + }; + Observable2.prototype.forEach = function(next, promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function(resolve, reject) { + var subscriber = new SafeSubscriber({ + next: function(value) { + try { + next(value); + } catch (err) { + reject(err); + subscriber.unsubscribe(); + } + }, + error: reject, + complete: resolve + }); + _this.subscribe(subscriber); + }); + }; + Observable2.prototype._subscribe = function(subscriber) { + var _a; + return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber); + }; + Observable2.prototype[observable] = function() { + return this; + }; + Observable2.prototype.pipe = function() { + var operations = []; + for (var _i = 0; _i < arguments.length; _i++) { + operations[_i] = arguments[_i]; + } + return pipeFromArray(operations)(this); + }; + Observable2.prototype.toPromise = function(promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function(resolve, reject) { + var value; + _this.subscribe(function(x3) { + return value = x3; + }, function(err) { + return reject(err); + }, function() { + return resolve(value); + }); + }); + }; + Observable2.create = function(subscribe) { + return new Observable2(subscribe); + }; + return Observable2; + }(); + function getPromiseCtor(promiseCtor) { + var _a; + return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise; + } + function isObserver(value) { + return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete); + } + function isSubscriber(value) { + return value && value instanceof Subscriber || isObserver(value) && isSubscription(value); + } + + // node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js + var ObjectUnsubscribedError = createErrorClass(function(_super) { + return function ObjectUnsubscribedErrorImpl() { + _super(this); + this.name = "ObjectUnsubscribedError"; + this.message = "object unsubscribed"; + }; + }); + + // node_modules/rxjs/dist/esm5/internal/Subject.js + var Subject = function(_super) { + __extends(Subject2, _super); + function Subject2() { + var _this = _super.call(this) || this; + _this.closed = false; + _this.currentObservers = null; + _this.observers = []; + _this.isStopped = false; + _this.hasError = false; + _this.thrownError = null; + return _this; + } + Subject2.prototype.lift = function(operator) { + var subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + }; + Subject2.prototype._throwIfClosed = function() { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + }; + Subject2.prototype.next = function(value) { + var _this = this; + errorContext(function() { + var e_1, _a; + _this._throwIfClosed(); + if (!_this.isStopped) { + if (!_this.currentObservers) { + _this.currentObservers = Array.from(_this.observers); + } + try { + for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) { + var observer = _c.value; + observer.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (_c && !_c.done && (_a = _b.return)) + _a.call(_b); + } finally { + if (e_1) + throw e_1.error; + } + } + } + }); + }; + Subject2.prototype.error = function(err) { + var _this = this; + errorContext(function() { + _this._throwIfClosed(); + if (!_this.isStopped) { + _this.hasError = _this.isStopped = true; + _this.thrownError = err; + var observers = _this.observers; + while (observers.length) { + observers.shift().error(err); + } + } + }); + }; + Subject2.prototype.complete = function() { + var _this = this; + errorContext(function() { + _this._throwIfClosed(); + if (!_this.isStopped) { + _this.isStopped = true; + var observers = _this.observers; + while (observers.length) { + observers.shift().complete(); + } + } + }); + }; + Subject2.prototype.unsubscribe = function() { + this.isStopped = this.closed = true; + this.observers = this.currentObservers = null; + }; + Object.defineProperty(Subject2.prototype, "observed", { + get: function() { + var _a; + return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0; + }, + enumerable: false, + configurable: true + }); + Subject2.prototype._trySubscribe = function(subscriber) { + this._throwIfClosed(); + return _super.prototype._trySubscribe.call(this, subscriber); + }; + Subject2.prototype._subscribe = function(subscriber) { + this._throwIfClosed(); + this._checkFinalizedStatuses(subscriber); + return this._innerSubscribe(subscriber); + }; + Subject2.prototype._innerSubscribe = function(subscriber) { + var _this = this; + var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers; + if (hasError || isStopped) { + return EMPTY_SUBSCRIPTION; + } + this.currentObservers = null; + observers.push(subscriber); + return new Subscription(function() { + _this.currentObservers = null; + arrRemove(observers, subscriber); + }); + }; + Subject2.prototype._checkFinalizedStatuses = function(subscriber) { + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped; + if (hasError) { + subscriber.error(thrownError); + } else if (isStopped) { + subscriber.complete(); + } + }; + Subject2.prototype.asObservable = function() { + var observable2 = new Observable(); + observable2.source = this; + return observable2; + }; + Subject2.create = function(destination, source2) { + return new AnonymousSubject(destination, source2); + }; + return Subject2; + }(Observable); + var AnonymousSubject = function(_super) { + __extends(AnonymousSubject2, _super); + function AnonymousSubject2(destination, source2) { + var _this = _super.call(this) || this; + _this.destination = destination; + _this.source = source2; + return _this; + } + AnonymousSubject2.prototype.next = function(value) { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value); + }; + AnonymousSubject2.prototype.error = function(err) { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err); + }; + AnonymousSubject2.prototype.complete = function() { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a); + }; + AnonymousSubject2.prototype._subscribe = function(subscriber) { + var _a, _b; + return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION; + }; + return AnonymousSubject2; + }(Subject); + + // node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js + var BehaviorSubject = function(_super) { + __extends(BehaviorSubject2, _super); + function BehaviorSubject2(_value) { + var _this = _super.call(this) || this; + _this._value = _value; + return _this; + } + Object.defineProperty(BehaviorSubject2.prototype, "value", { + get: function() { + return this.getValue(); + }, + enumerable: false, + configurable: true + }); + BehaviorSubject2.prototype._subscribe = function(subscriber) { + var subscription = _super.prototype._subscribe.call(this, subscriber); + !subscription.closed && subscriber.next(this._value); + return subscription; + }; + BehaviorSubject2.prototype.getValue = function() { + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value; + if (hasError) { + throw thrownError; + } + this._throwIfClosed(); + return _value; + }; + BehaviorSubject2.prototype.next = function(value) { + _super.prototype.next.call(this, this._value = value); + }; + return BehaviorSubject2; + }(Subject); + + // node_modules/immer/dist/immer.esm.mjs + function n2(n3) { + for (var r3 = arguments.length, t3 = Array(r3 > 1 ? r3 - 1 : 0), e2 = 1; e2 < r3; e2++) + t3[e2 - 1] = arguments[e2]; + if (true) { + var i4 = Y[n3], o3 = i4 ? typeof i4 == "function" ? i4.apply(null, t3) : i4 : "unknown error nr: " + n3; + throw Error("[Immer] " + o3); + } + throw Error("[Immer] minified error nr: " + n3 + (t3.length ? " " + t3.map(function(n4) { + return "'" + n4 + "'"; + }).join(",") : "") + ". Find the full error at: https://bit.ly/3cXEKWf"); + } + function r2(n3) { + return !!n3 && !!n3[Q]; + } + function t2(n3) { + var r3; + return !!n3 && (function(n4) { + if (!n4 || typeof n4 != "object") + return false; + var r4 = Object.getPrototypeOf(n4); + if (r4 === null) + return true; + var t3 = Object.hasOwnProperty.call(r4, "constructor") && r4.constructor; + return t3 === Object || typeof t3 == "function" && Function.toString.call(t3) === Z; + }(n3) || Array.isArray(n3) || !!n3[L2] || !!((r3 = n3.constructor) === null || r3 === void 0 ? void 0 : r3[L2]) || s2(n3) || v2(n3)); + } + function i2(n3, r3, t3) { + t3 === void 0 && (t3 = false), o2(n3) === 0 ? (t3 ? Object.keys : nn)(n3).forEach(function(e2) { + t3 && typeof e2 == "symbol" || r3(e2, n3[e2], n3); + }) : n3.forEach(function(t4, e2) { + return r3(e2, t4, n3); + }); + } + function o2(n3) { + var r3 = n3[Q]; + return r3 ? r3.i > 3 ? r3.i - 4 : r3.i : Array.isArray(n3) ? 1 : s2(n3) ? 2 : v2(n3) ? 3 : 0; + } + function u2(n3, r3) { + return o2(n3) === 2 ? n3.has(r3) : Object.prototype.hasOwnProperty.call(n3, r3); + } + function a2(n3, r3) { + return o2(n3) === 2 ? n3.get(r3) : n3[r3]; + } + function f2(n3, r3, t3) { + var e2 = o2(n3); + e2 === 2 ? n3.set(r3, t3) : e2 === 3 ? (n3.delete(r3), n3.add(t3)) : n3[r3] = t3; + } + function c2(n3, r3) { + return n3 === r3 ? n3 !== 0 || 1 / n3 == 1 / r3 : n3 != n3 && r3 != r3; + } + function s2(n3) { + return X && n3 instanceof Map; + } + function v2(n3) { + return q && n3 instanceof Set; + } + function p(n3) { + return n3.o || n3.t; + } + function l2(n3) { + if (Array.isArray(n3)) + return Array.prototype.slice.call(n3); + var r3 = rn(n3); + delete r3[Q]; + for (var t3 = nn(r3), e2 = 0; e2 < t3.length; e2++) { + var i4 = t3[e2], o3 = r3[i4]; + o3.writable === false && (o3.writable = true, o3.configurable = true), (o3.get || o3.set) && (r3[i4] = { configurable: true, writable: true, enumerable: o3.enumerable, value: n3[i4] }); + } + return Object.create(Object.getPrototypeOf(n3), r3); + } + function d2(n3, e2) { + return e2 === void 0 && (e2 = false), y2(n3) || r2(n3) || !t2(n3) ? n3 : (o2(n3) > 1 && (n3.set = n3.add = n3.clear = n3.delete = h2), Object.freeze(n3), e2 && i2(n3, function(n4, r3) { + return d2(r3, true); + }, true), n3); + } + function h2() { + n2(2); + } + function y2(n3) { + return n3 == null || typeof n3 != "object" || Object.isFrozen(n3); + } + function b2(r3) { + var t3 = tn[r3]; + return t3 || n2(18, r3), t3; + } + function m2(n3, r3) { + tn[n3] || (tn[n3] = r3); + } + function _2() { + return U || n2(0), U; + } + function j2(n3, r3) { + r3 && (b2("Patches"), n3.u = [], n3.s = [], n3.v = r3); + } + function O2(n3) { + g2(n3), n3.p.forEach(S2), n3.p = null; + } + function g2(n3) { + n3 === U && (U = n3.l); + } + function w2(n3) { + return U = { p: [], l: U, h: n3, m: true, _: 0 }; + } + function S2(n3) { + var r3 = n3[Q]; + r3.i === 0 || r3.i === 1 ? r3.j() : r3.O = true; + } + function P2(r3, e2) { + e2._ = e2.p.length; + var i4 = e2.p[0], o3 = r3 !== void 0 && r3 !== i4; + return e2.h.g || b2("ES5").S(e2, r3, o3), o3 ? (i4[Q].P && (O2(e2), n2(4)), t2(r3) && (r3 = M2(e2, r3), e2.l || x2(e2, r3)), e2.u && b2("Patches").M(i4[Q].t, r3, e2.u, e2.s)) : r3 = M2(e2, i4, []), O2(e2), e2.u && e2.v(e2.u, e2.s), r3 !== H2 ? r3 : void 0; + } + function M2(n3, r3, t3) { + if (y2(r3)) + return r3; + var e2 = r3[Q]; + if (!e2) + return i2(r3, function(i4, o4) { + return A(n3, e2, r3, i4, o4, t3); + }, true), r3; + if (e2.A !== n3) + return r3; + if (!e2.P) + return x2(n3, e2.t, true), e2.t; + if (!e2.I) { + e2.I = true, e2.A._--; + var o3 = e2.i === 4 || e2.i === 5 ? e2.o = l2(e2.k) : e2.o; + i2(e2.i === 3 ? new Set(o3) : o3, function(r4, i4) { + return A(n3, e2, o3, r4, i4, t3); + }), x2(n3, o3, false), t3 && n3.u && b2("Patches").R(e2, t3, n3.u, n3.s); + } + return e2.o; + } + function A(e2, i4, o3, a4, c3, s4) { + if (c3 === o3 && n2(5), r2(c3)) { + var v3 = M2(e2, c3, s4 && i4 && i4.i !== 3 && !u2(i4.D, a4) ? s4.concat(a4) : void 0); + if (f2(o3, a4, v3), !r2(v3)) + return; + e2.m = false; + } + if (t2(c3) && !y2(c3)) { + if (!e2.h.F && e2._ < 1) + return; + M2(e2, c3), i4 && i4.A.l || x2(e2, c3); + } + } + function x2(n3, r3, t3) { + t3 === void 0 && (t3 = false), n3.h.F && n3.m && d2(r3, t3); + } + function z2(n3, r3) { + var t3 = n3[Q]; + return (t3 ? p(t3) : n3)[r3]; + } + function I2(n3, r3) { + if (r3 in n3) + for (var t3 = Object.getPrototypeOf(n3); t3; ) { + var e2 = Object.getOwnPropertyDescriptor(t3, r3); + if (e2) + return e2; + t3 = Object.getPrototypeOf(t3); + } + } + function k2(n3) { + n3.P || (n3.P = true, n3.l && k2(n3.l)); + } + function E(n3) { + n3.o || (n3.o = l2(n3.t)); + } + function R(n3, r3, t3) { + var e2 = s2(r3) ? b2("MapSet").N(r3, t3) : v2(r3) ? b2("MapSet").T(r3, t3) : n3.g ? function(n4, r4) { + var t4 = Array.isArray(n4), e3 = { i: t4 ? 1 : 0, A: r4 ? r4.A : _2(), P: false, I: false, D: {}, l: r4, t: n4, k: null, o: null, j: null, C: false }, i4 = e3, o3 = en; + t4 && (i4 = [e3], o3 = on); + var u4 = Proxy.revocable(i4, o3), a4 = u4.revoke, f3 = u4.proxy; + return e3.k = f3, e3.j = a4, f3; + }(r3, t3) : b2("ES5").J(r3, t3); + return (t3 ? t3.A : _2()).p.push(e2), e2; + } + function D(e2) { + return r2(e2) || n2(22, e2), function n3(r3) { + if (!t2(r3)) + return r3; + var e3, u4 = r3[Q], c3 = o2(r3); + if (u4) { + if (!u4.P && (u4.i < 4 || !b2("ES5").K(u4))) + return u4.t; + u4.I = true, e3 = F(r3, c3), u4.I = false; + } else + e3 = F(r3, c3); + return i2(e3, function(r4, t3) { + u4 && a2(u4.t, r4) === t3 || f2(e3, r4, n3(t3)); + }), c3 === 3 ? new Set(e3) : e3; + }(e2); + } + function F(n3, r3) { + switch (r3) { + case 2: + return new Map(n3); + case 3: + return Array.from(n3); + } + return l2(n3); + } + function T2() { + function e2(n3) { + if (!t2(n3)) + return n3; + if (Array.isArray(n3)) + return n3.map(e2); + if (s2(n3)) + return new Map(Array.from(n3.entries()).map(function(n4) { + return [n4[0], e2(n4[1])]; + })); + if (v2(n3)) + return new Set(Array.from(n3).map(e2)); + var r3 = Object.create(Object.getPrototypeOf(n3)); + for (var i4 in n3) + r3[i4] = e2(n3[i4]); + return u2(n3, L2) && (r3[L2] = n3[L2]), r3; + } + function f3(n3) { + return r2(n3) ? e2(n3) : n3; + } + var c3 = "add"; + m2("Patches", { $: function(r3, t3) { + return t3.forEach(function(t4) { + for (var i4 = t4.path, u4 = t4.op, f4 = r3, s4 = 0; s4 < i4.length - 1; s4++) { + var v3 = o2(f4), p3 = "" + i4[s4]; + v3 !== 0 && v3 !== 1 || p3 !== "__proto__" && p3 !== "constructor" || n2(24), typeof f4 == "function" && p3 === "prototype" && n2(24), typeof (f4 = a2(f4, p3)) != "object" && n2(15, i4.join("/")); + } + var l3 = o2(f4), d3 = e2(t4.value), h7 = i4[i4.length - 1]; + switch (u4) { + case "replace": + switch (l3) { + case 2: + return f4.set(h7, d3); + case 3: + n2(16); + default: + return f4[h7] = d3; + } + case c3: + switch (l3) { + case 1: + return h7 === "-" ? f4.push(d3) : f4.splice(h7, 0, d3); + case 2: + return f4.set(h7, d3); + case 3: + return f4.add(d3); + default: + return f4[h7] = d3; + } + case "remove": + switch (l3) { + case 1: + return f4.splice(h7, 1); + case 2: + return f4.delete(h7); + case 3: + return f4.delete(t4.value); + default: + return delete f4[h7]; + } + default: + n2(17, u4); + } + }), r3; + }, R: function(n3, r3, t3, e3) { + switch (n3.i) { + case 0: + case 4: + case 2: + return function(n4, r4, t4, e4) { + var o3 = n4.t, s4 = n4.o; + i2(n4.D, function(n5, i4) { + var v3 = a2(o3, n5), p3 = a2(s4, n5), l3 = i4 ? u2(o3, n5) ? "replace" : c3 : "remove"; + if (v3 !== p3 || l3 !== "replace") { + var d3 = r4.concat(n5); + t4.push(l3 === "remove" ? { op: l3, path: d3 } : { op: l3, path: d3, value: p3 }), e4.push(l3 === c3 ? { op: "remove", path: d3 } : l3 === "remove" ? { op: c3, path: d3, value: f3(v3) } : { op: "replace", path: d3, value: f3(v3) }); + } + }); + }(n3, r3, t3, e3); + case 5: + case 1: + return function(n4, r4, t4, e4) { + var i4 = n4.t, o3 = n4.D, u4 = n4.o; + if (u4.length < i4.length) { + var a4 = [u4, i4]; + i4 = a4[0], u4 = a4[1]; + var s4 = [e4, t4]; + t4 = s4[0], e4 = s4[1]; + } + for (var v3 = 0; v3 < i4.length; v3++) + if (o3[v3] && u4[v3] !== i4[v3]) { + var p3 = r4.concat([v3]); + t4.push({ op: "replace", path: p3, value: f3(u4[v3]) }), e4.push({ op: "replace", path: p3, value: f3(i4[v3]) }); + } + for (var l3 = i4.length; l3 < u4.length; l3++) { + var d3 = r4.concat([l3]); + t4.push({ op: c3, path: d3, value: f3(u4[l3]) }); + } + i4.length < u4.length && e4.push({ op: "replace", path: r4.concat(["length"]), value: i4.length }); + }(n3, r3, t3, e3); + case 3: + return function(n4, r4, t4, e4) { + var i4 = n4.t, o3 = n4.o, u4 = 0; + i4.forEach(function(n5) { + if (!o3.has(n5)) { + var i5 = r4.concat([u4]); + t4.push({ op: "remove", path: i5, value: n5 }), e4.unshift({ op: c3, path: i5, value: n5 }); + } + u4++; + }), u4 = 0, o3.forEach(function(n5) { + if (!i4.has(n5)) { + var o4 = r4.concat([u4]); + t4.push({ op: c3, path: o4, value: n5 }), e4.unshift({ op: "remove", path: o4, value: n5 }); + } + u4++; + }); + }(n3, r3, t3, e3); + } + }, M: function(n3, r3, t3, e3) { + t3.push({ op: "replace", path: [], value: r3 === H2 ? void 0 : r3 }), e3.push({ op: "replace", path: [], value: n3 }); + } }); + } + var G; + var U; + var W = typeof Symbol != "undefined" && typeof Symbol("x") == "symbol"; + var X = typeof Map != "undefined"; + var q = typeof Set != "undefined"; + var B = typeof Proxy != "undefined" && Proxy.revocable !== void 0 && typeof Reflect != "undefined"; + var H2 = W ? Symbol.for("immer-nothing") : ((G = {})["immer-nothing"] = true, G); + var L2 = W ? Symbol.for("immer-draftable") : "__$immer_draftable"; + var Q = W ? Symbol.for("immer-state") : "__$immer_state"; + var V = typeof Symbol != "undefined" && Symbol.iterator || "@@iterator"; + var Y = { 0: "Illegal state", 1: "Immer drafts cannot have computed properties", 2: "This object has been frozen and should not be mutated", 3: function(n3) { + return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + n3; + }, 4: "An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.", 5: "Immer forbids circular references", 6: "The first or second argument to `produce` must be a function", 7: "The third argument to `produce` must be a function or undefined", 8: "First argument to `createDraft` must be a plain object, an array, or an immerable object", 9: "First argument to `finishDraft` must be a draft returned by `createDraft`", 10: "The given draft is already finalized", 11: "Object.defineProperty() cannot be used on an Immer draft", 12: "Object.setPrototypeOf() cannot be used on an Immer draft", 13: "Immer only supports deleting array indices", 14: "Immer only supports setting array indices and the 'length' property", 15: function(n3) { + return "Cannot apply patch, path doesn't resolve: " + n3; + }, 16: 'Sets cannot have "replace" patches.', 17: function(n3) { + return "Unsupported patch operation: " + n3; + }, 18: function(n3) { + return "The plugin for '" + n3 + "' has not been loaded into Immer. To enable the plugin, import and call `enable" + n3 + "()` when initializing your application."; + }, 20: "Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available", 21: function(n3) { + return "produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '" + n3 + "'"; + }, 22: function(n3) { + return "'current' expects a draft, got: " + n3; + }, 23: function(n3) { + return "'original' expects a draft, got: " + n3; + }, 24: "Patching reserved attributes like __proto__, prototype and constructor is not allowed" }; + var Z = "" + Object.prototype.constructor; + var nn = typeof Reflect != "undefined" && Reflect.ownKeys ? Reflect.ownKeys : Object.getOwnPropertySymbols !== void 0 ? function(n3) { + return Object.getOwnPropertyNames(n3).concat(Object.getOwnPropertySymbols(n3)); + } : Object.getOwnPropertyNames; + var rn = Object.getOwnPropertyDescriptors || function(n3) { + var r3 = {}; + return nn(n3).forEach(function(t3) { + r3[t3] = Object.getOwnPropertyDescriptor(n3, t3); + }), r3; + }; + var tn = {}; + var en = { get: function(n3, r3) { + if (r3 === Q) + return n3; + var e2 = p(n3); + if (!u2(e2, r3)) + return function(n4, r4, t3) { + var e3, i5 = I2(r4, t3); + return i5 ? "value" in i5 ? i5.value : (e3 = i5.get) === null || e3 === void 0 ? void 0 : e3.call(n4.k) : void 0; + }(n3, e2, r3); + var i4 = e2[r3]; + return n3.I || !t2(i4) ? i4 : i4 === z2(n3.t, r3) ? (E(n3), n3.o[r3] = R(n3.A.h, i4, n3)) : i4; + }, has: function(n3, r3) { + return r3 in p(n3); + }, ownKeys: function(n3) { + return Reflect.ownKeys(p(n3)); + }, set: function(n3, r3, t3) { + var e2 = I2(p(n3), r3); + if (e2 == null ? void 0 : e2.set) + return e2.set.call(n3.k, t3), true; + if (!n3.P) { + var i4 = z2(p(n3), r3), o3 = i4 == null ? void 0 : i4[Q]; + if (o3 && o3.t === t3) + return n3.o[r3] = t3, n3.D[r3] = false, true; + if (c2(t3, i4) && (t3 !== void 0 || u2(n3.t, r3))) + return true; + E(n3), k2(n3); + } + return n3.o[r3] === t3 && typeof t3 != "number" && (t3 !== void 0 || r3 in n3.o) || (n3.o[r3] = t3, n3.D[r3] = true, true); + }, deleteProperty: function(n3, r3) { + return z2(n3.t, r3) !== void 0 || r3 in n3.t ? (n3.D[r3] = false, E(n3), k2(n3)) : delete n3.D[r3], n3.o && delete n3.o[r3], true; + }, getOwnPropertyDescriptor: function(n3, r3) { + var t3 = p(n3), e2 = Reflect.getOwnPropertyDescriptor(t3, r3); + return e2 ? { writable: true, configurable: n3.i !== 1 || r3 !== "length", enumerable: e2.enumerable, value: t3[r3] } : e2; + }, defineProperty: function() { + n2(11); + }, getPrototypeOf: function(n3) { + return Object.getPrototypeOf(n3.t); + }, setPrototypeOf: function() { + n2(12); + } }; + var on = {}; + i2(en, function(n3, r3) { + on[n3] = function() { + return arguments[0] = arguments[0][0], r3.apply(this, arguments); + }; + }), on.deleteProperty = function(r3, t3) { + return isNaN(parseInt(t3)) && n2(13), on.set.call(this, r3, t3, void 0); + }, on.set = function(r3, t3, e2) { + return t3 !== "length" && isNaN(parseInt(t3)) && n2(14), en.set.call(this, r3[0], t3, e2, r3[0]); + }; + var un = function() { + function e2(r3) { + var e3 = this; + this.g = B, this.F = true, this.produce = function(r4, i5, o3) { + if (typeof r4 == "function" && typeof i5 != "function") { + var u4 = i5; + i5 = r4; + var a4 = e3; + return function(n3) { + var r5 = this; + n3 === void 0 && (n3 = u4); + for (var t3 = arguments.length, e4 = Array(t3 > 1 ? t3 - 1 : 0), o4 = 1; o4 < t3; o4++) + e4[o4 - 1] = arguments[o4]; + return a4.produce(n3, function(n4) { + var t4; + return (t4 = i5).call.apply(t4, [r5, n4].concat(e4)); + }); + }; + } + var f3; + if (typeof i5 != "function" && n2(6), o3 !== void 0 && typeof o3 != "function" && n2(7), t2(r4)) { + var c3 = w2(e3), s4 = R(e3, r4, void 0), v3 = true; + try { + f3 = i5(s4), v3 = false; + } finally { + v3 ? O2(c3) : g2(c3); + } + return typeof Promise != "undefined" && f3 instanceof Promise ? f3.then(function(n3) { + return j2(c3, o3), P2(n3, c3); + }, function(n3) { + throw O2(c3), n3; + }) : (j2(c3, o3), P2(f3, c3)); + } + if (!r4 || typeof r4 != "object") { + if ((f3 = i5(r4)) === void 0 && (f3 = r4), f3 === H2 && (f3 = void 0), e3.F && d2(f3, true), o3) { + var p3 = [], l3 = []; + b2("Patches").M(r4, f3, p3, l3), o3(p3, l3); + } + return f3; + } + n2(21, r4); + }, this.produceWithPatches = function(n3, r4) { + if (typeof n3 == "function") + return function(r5) { + for (var t4 = arguments.length, i6 = Array(t4 > 1 ? t4 - 1 : 0), o4 = 1; o4 < t4; o4++) + i6[o4 - 1] = arguments[o4]; + return e3.produceWithPatches(r5, function(r6) { + return n3.apply(void 0, [r6].concat(i6)); + }); + }; + var t3, i5, o3 = e3.produce(n3, r4, function(n4, r5) { + t3 = n4, i5 = r5; + }); + return typeof Promise != "undefined" && o3 instanceof Promise ? o3.then(function(n4) { + return [n4, t3, i5]; + }) : [o3, t3, i5]; + }, typeof (r3 == null ? void 0 : r3.useProxies) == "boolean" && this.setUseProxies(r3.useProxies), typeof (r3 == null ? void 0 : r3.autoFreeze) == "boolean" && this.setAutoFreeze(r3.autoFreeze); + } + var i4 = e2.prototype; + return i4.createDraft = function(e3) { + t2(e3) || n2(8), r2(e3) && (e3 = D(e3)); + var i5 = w2(this), o3 = R(this, e3, void 0); + return o3[Q].C = true, g2(i5), o3; + }, i4.finishDraft = function(r3, t3) { + var e3 = r3 && r3[Q]; + e3 && e3.C || n2(9), e3.I && n2(10); + var i5 = e3.A; + return j2(i5, t3), P2(void 0, i5); + }, i4.setAutoFreeze = function(n3) { + this.F = n3; + }, i4.setUseProxies = function(r3) { + r3 && !B && n2(20), this.g = r3; + }, i4.applyPatches = function(n3, t3) { + var e3; + for (e3 = t3.length - 1; e3 >= 0; e3--) { + var i5 = t3[e3]; + if (i5.path.length === 0 && i5.op === "replace") { + n3 = i5.value; + break; + } + } + e3 > -1 && (t3 = t3.slice(e3 + 1)); + var o3 = b2("Patches").$; + return r2(n3) ? o3(n3, t3) : this.produce(n3, function(n4) { + return o3(n4, t3); + }); + }, e2; + }(); + var an = new un(); + var fn = an.produce; + var cn = an.produceWithPatches.bind(an); + var sn = an.setAutoFreeze.bind(an); + var vn = an.setUseProxies.bind(an); + var pn = an.applyPatches.bind(an); + var ln = an.createDraft.bind(an); + var dn = an.finishDraft.bind(an); + + // src/client/stateMachine/clientState.ts + var initialClientState = {}; + + // src/api/serverState.ts + var initialServerState = { account: { loggedOut: [] } }; + + // src/client/stateMachine/appState.ts + T2(); + var initialAppState = { server: initialServerState, client: initialClientState }; + var appStateSubject = new BehaviorSubject(initialAppState); + function updateApp(...recipes) { + const currentState = appState(); + const draft = ln(currentState); + for (const recipe of recipes) + if (isDefined(recipe)) + recipe(draft); + let patches = void 0; + const nextState = dn(draft, (p3, _3) => { + patches = p3; + }); + const serverPatches = patches.filter((p3) => p3.path.length > 1 && p3.path[0] === "server"); + if (serverPatches.length > 0) { + const x3 = 2; + } + appStateSubject.next(nextState); + } + var observableAppState = appStateSubject.asObservable(); + var appState = () => appStateSubject.getValue(); + + // src/utils/runtimeTypeChecking.ts + function isObject(thing) { + return typeof thing === "object"; + } + function isArray(thing) { + return Array.isArray(thing); + } + function isString(thing) { + return typeof thing === "string"; + } + function isFunction2(obj) { + return obj instanceof Function; + } + + // src/client/njsx/njsx.ts + var { assign } = Object; + var { isArray: isArray2 } = Array; + var NJSXConfig = { + argumentTransformations: [], + dynamicSelectorHandler: (name) => { + throw new TypeError(`Can't refine by ${name}: No handler for dynamic selector was provided`); + } + }; + function njsx(type, baseState = {}) { + const builder = (...args) => { + return args.length > 0 ? njsx(type, args.reduce(applyArgument, baseState)) : v(type, baseState, ...baseState.children || []); + }; + builder.__isNJSXBuilder__ = true; + if (!NJSXConfig.dynamicSelectorHandler) + return builder; + const proxyHandler = { + get(target, name) { + return name === "__isNJSXBuilder__" ? target.__isNJSXBuilder__ : target(NJSXConfig.dynamicSelectorHandler(name.toString())); + } + }; + return new Proxy(builder, proxyHandler); + } + function getStyle(thing) { + if (isDefined(thing.style)) + return thing.style; + else + return {}; + } + function merge(left, right) { + return assign({}, left, right); + } + function mergeWithStyle(left, right) { + const style3 = merge(getStyle(left), getStyle(right)); + const base3 = merge(left, right); + return { ...base3, style: style3 }; + } + function applyArgument(state, baseArg) { + const arg = NJSXConfig.argumentTransformations.reduce((s4, tx) => tx(s4), baseArg); + if (isIgnored(arg)) + return state; + if (isArray2(arg)) + return arg.reduce(applyArgument, state); + if (isBuilder(arg)) + return addChild(state, arg()); + if (isChild(arg)) + return addChild(state, arg); + if (isFunction2(arg)) + return arg(state); + if (isObject(arg)) + return mergeWithStyle(state, arg); + throw new TypeError(`Unsupported NJSX argument: ${arg}`); + } + function isBuilder(target) { + return target.__isNJSXBuilder__; + } + function isIgnored(target) { + return target === null || target === void 0 || typeof target === "boolean"; + } + function isChild(target) { + return typeof target === "number" || typeof target === "string" || target.$$typeof === Symbol.for("react.element") && typeof target === "object"; + } + function addChild(state, child) { + return assign({}, state, { children: [...state.children || [], child] }); + } + var njsx_default = njsx; + + // src/client/njsx/njsx-react.ts + function CLASSES_FROM_STRINGS(arg) { + if (typeof arg !== "string" || !arg.trim().startsWith(".")) + return arg; + return (props) => { + const { className = "", ...otherProps } = props; + return { + ...otherProps, + className: [...className.split(" "), ...arg.split(".")].map((c3) => c3.trim()).filter(String).join(" ") + }; + }; + } + NJSXConfig.dynamicSelectorHandler = (arg) => `.${arg}`; + NJSXConfig.argumentTransformations = [CLASSES_FROM_STRINGS]; + var a3 = njsx_default("a"); + var abbr = njsx_default("abbr"); + var address = njsx_default("address"); + var area = njsx_default("area"); + var article = njsx_default("article"); + var aside = njsx_default("aside"); + var audio = njsx_default("audio"); + var b3 = njsx_default("b"); + var base = njsx_default("base"); + var bdi = njsx_default("bdi"); + var bdo = njsx_default("bdo"); + var big = njsx_default("big"); + var blockquote = njsx_default("blockquote"); + var body = njsx_default("body"); + var br = njsx_default("br"); + var button = njsx_default("button"); + var canvas = njsx_default("canvas"); + var caption = njsx_default("caption"); + var cite = njsx_default("cite"); + var code = njsx_default("code"); + var col = njsx_default("col"); + var colgroup = njsx_default("colgroup"); + var data = njsx_default("data"); + var datalist = njsx_default("datalist"); + var dd = njsx_default("dd"); + var del = njsx_default("del"); + var details = njsx_default("details"); + var dfn = njsx_default("dfn"); + var dialog = njsx_default("dialog"); + var div = njsx_default("div"); + var dl = njsx_default("dl"); + var dt = njsx_default("dt"); + var em = njsx_default("em"); + var embed = njsx_default("embed"); + var fieldset = njsx_default("fieldset"); + var figcaption = njsx_default("figcaption"); + var figure = njsx_default("figure"); + var footer = njsx_default("footer"); + var form = njsx_default("form"); + var h1 = njsx_default("h1"); + var h22 = njsx_default("h2"); + var h3 = njsx_default("h3"); + var h4 = njsx_default("h4"); + var h5 = njsx_default("h5"); + var h6 = njsx_default("h6"); + var head = njsx_default("head"); + var header = njsx_default("header"); + var hgroup = njsx_default("hgroup"); + var hr = njsx_default("hr"); + var html = njsx_default("html"); + var i3 = njsx_default("i"); + var iframe = njsx_default("iframe"); + var img = njsx_default("img"); + var input = njsx_default("input"); + var ins = njsx_default("ins"); + var kbd = njsx_default("kbd"); + var keygen = njsx_default("keygen"); + var label = njsx_default("label"); + var legend = njsx_default("legend"); + var li = njsx_default("li"); + var link = njsx_default("link"); + var main = njsx_default("main"); + var map = njsx_default("map"); + var mark = njsx_default("mark"); + var menu = njsx_default("menu"); + var menuitem = njsx_default("menuitem"); + var meta = njsx_default("meta"); + var meter = njsx_default("meter"); + var nav = njsx_default("nav"); + var noindex = njsx_default("noindex"); + var noscript = njsx_default("noscript"); + var object = njsx_default("object"); + var ol = njsx_default("ol"); + var optgroup = njsx_default("optgroup"); + var option = njsx_default("option"); + var output = njsx_default("output"); + var p2 = njsx_default("p"); + var param = njsx_default("param"); + var picture = njsx_default("picture"); + var pre = njsx_default("pre"); + var progress = njsx_default("progress"); + var q2 = njsx_default("q"); + var rp = njsx_default("rp"); + var rt = njsx_default("rt"); + var ruby = njsx_default("ruby"); + var s3 = njsx_default("s"); + var samp = njsx_default("samp"); + var script = njsx_default("script"); + var section = njsx_default("section"); + var select6 = njsx_default("select"); + var small = njsx_default("small"); + var source = njsx_default("source"); + var span = njsx_default("span"); + var strong = njsx_default("strong"); + var style = njsx_default("style"); + var sub = njsx_default("sub"); + var summary = njsx_default("summary"); + var sup = njsx_default("sup"); + var table = njsx_default("table"); + var tbody = njsx_default("tbody"); + var td = njsx_default("td"); + var textarea = njsx_default("textarea"); + var tfoot = njsx_default("tfoot"); + var th = njsx_default("th"); + var thead = njsx_default("thead"); + var time = njsx_default("time"); + var title = njsx_default("title"); + var tr = njsx_default("tr"); + var track = njsx_default("track"); + var u3 = njsx_default("u"); + var ul = njsx_default("ul"); + var video = njsx_default("video"); + var wbr = njsx_default("wbr"); + var svg = njsx_default("svg"); + var animate = njsx_default("animate"); + var animateTransform = njsx_default("animateTransform"); + var circle = njsx_default("circle"); + var clipPath = njsx_default("clipPath"); + var defs = njsx_default("defs"); + var desc = njsx_default("desc"); + var ellipse = njsx_default("ellipse"); + var feBlend = njsx_default("feBlend"); + var feColorMatrix = njsx_default("feColorMatrix"); + var feComponentTransfer = njsx_default("feComponentTransfer"); + var feComposite = njsx_default("feComposite"); + var feConvolveMatrix = njsx_default("feConvolveMatrix"); + var feDiffuseLighting = njsx_default("feDiffuseLighting"); + var feDisplacementMap = njsx_default("feDisplacementMap"); + var feDistantLight = njsx_default("feDistantLight"); + var feFlood = njsx_default("feFlood"); + var feFuncA = njsx_default("feFuncA"); + var feFuncB = njsx_default("feFuncB"); + var feFuncG = njsx_default("feFuncG"); + var feFuncR = njsx_default("feFuncR"); + var feGaussianBlur = njsx_default("feGaussianBlur"); + var feImage = njsx_default("feImage"); + var feMerge = njsx_default("feMerge"); + var feMergeNode = njsx_default("feMergeNode"); + var feMorphology = njsx_default("feMorphology"); + var feOffset = njsx_default("feOffset"); + var fePointLight = njsx_default("fePointLight"); + var feSpecularLighting = njsx_default("feSpecularLighting"); + var feSpotLight = njsx_default("feSpotLight"); + var feTile = njsx_default("feTile"); + var feTurbulence = njsx_default("feTurbulence"); + var filter = njsx_default("filter"); + var foreignObject = njsx_default("foreignObject"); + var g3 = njsx_default("g"); + var image = njsx_default("image"); + var line = njsx_default("line"); + var linearGradient = njsx_default("linearGradient"); + var marker = njsx_default("marker"); + var mask = njsx_default("mask"); + var metadata = njsx_default("metadata"); + var path = njsx_default("path"); + var pattern = njsx_default("pattern"); + var polygon = njsx_default("polygon"); + var polyline = njsx_default("polyline"); + var radialGradient = njsx_default("radialGradient"); + var rect = njsx_default("rect"); + var stop = njsx_default("stop"); + var symbol = njsx_default("symbol"); + var text = njsx_default("text"); + var textPath = njsx_default("textPath"); + var tspan = njsx_default("tspan"); + var use = njsx_default("use"); + var view = njsx_default("view"); + + // src/utils/utils.ts + var nop = (_3) => { + }; + function keys(t3) { + return Object.keys(t3); + } + function values(t3) { + return Object.values(t3); + } + function entries(t3) { + return Object.entries(t3); + } + function valueToFunction(tr2) { + if (typeof tr2 === "function") + return tr2; + return (_3) => tr2; + } + + // src/utils/match.ts + function update(u4, e2) { + const v3 = u4; + const o3 = D(v3); + const ks = keys(v3); + if (ks.length != 1) + throw new Error("not a valid union case"); + const tag2 = ks[0]; + const before = v3[tag2]; + const before2 = D(before); + const newVar = { ...before, ...e2 }; + v3[tag2] = newVar; + } + function unwrap(u4) { + const v3 = u4; + const ks = keys(v3); + if (ks.length != 1) + throw new Error("not a valid union case"); + const key = ks[0]; + return v3[key]; + } + function base2(u4) { + return unwrap(u4); + } + function tag(u4) { + const v3 = u4; + const ks = keys(v3); + if (ks.length != 1) + throw new Error("not a valid union case"); + return ks[0]; + } + function match(uCase, matchFuncs, otherwise) { + const otw = valueToFunction(otherwise); + const c3 = uCase; + const ks = keys(c3); + if (ks.length != 1) + return otw(c3); + const key = ks[0]; + const arg = c3[key]; + const matchFunc = matchFuncs[key]; + if (isUndefined(matchFunc)) + return otw(c3); + return matchFunc(arg); + } + + // src/client/widgets/Label.ts + var style2 = { + ...padded, + margin: 0, + display: "block", + lineHeight: rem(Defaults.remBaseLength), + userSelect: "none", + whiteSpace: "pre-line" + }; + function Label(text2) { + return p2({ style: style2 })[".label"](text2); + } + + // src/client/widgets/horizontal.ts + var horizontal = div[".horizontal"]({ + style: { + display: "grid", + gridAutoColumns: "max-content", + gridAutoFlow: "column" + } + }); + + // src/api/data/isA.ts + function isFolder(data2) { + return isDefined(data2) && match(data2, { folder: () => true }, false); + } + function isUser(data2) { + return isDefined(data2) && match(data2, { user: () => true }, false); + } + function isInstallation(data2) { + return isDefined(data2) && tag(data2).endsWith("Installation"); + } + function isParent(data2) { + return isDefined(data2) && (isFolder(data2) || isInstallation(data2)); + } + + // src/client/widgets/Icon.ts + var iconDiv = div[".icon"]({ + style: { + ...margined, + backgroundSize: "contain", + width: rem(Defaults.remBaseLength), + resize: "both", + backgroundRepeat: "no-repeat", + backgroundPosition: "center", + alignSelf: "stretch" + } + }); + function backgroundImage(iconName) { + const iconPath = `/icons/${iconName}.svg`; + return { backgroundImage: url(iconPath) }; + } + function getIcon(dbObject) { + return match(dbObject, { + folder: (_3) => "folder", + user: (u4) => u4.userType === "Admin" ? "user-admin" : "user-viewer" + }, (o3) => isInstallation(o3) ? "installation" : "exclamation"); + } + function Icon(type) { + const bgImage = backgroundImage(type); + return iconDiv({ style: bgImage }); + } + function iconLabel(icon, label2) { + return horizontal[".iconLabel"](Icon(icon), Label(label2), { style: { alignContent: "space-around" } }); + } + function DataElementIconLabel(dbObject) { + const iconType = getIcon(dbObject); + const o3 = base2(dbObject); + const label2 = o3.vrmName ?? o3.name; + return iconLabel(iconType, label2); + } + + // src/client/widgets/vertical.ts + var vertical = div[".vertical"]({ + style: { + display: "grid", + gridAutoRows: "max-content", + gridAutoFlow: "row" + } + }); + + // src/utils/tree.ts + init_esm(); + function Tree(getChildren2) { + function iterate(root) { + if (isUndefined(root)) + return []; + return from(iterateTree()); + function* iterateTree() { + const queue = [root]; + do { + const element = queue.shift(); + yield element; + for (const child of getChildren2(element)) + queue.push(child); + } while (queue.length > 0); + } + } + function iterateWithPath(root) { + return isDefined(root) ? from(iterateTreeWithPath()) : []; + function* iterateTreeWithPath() { + const stack = [[root]]; + while (true) { + const head2 = stack[0]; + if (head2.length > 0) { + yield stack.select((l3) => l3[0]).toArray(); + const children = getChildren2(head2[0]).toArray(); + stack.unshift(children); + } else { + stack.shift(); + if (stack.length > 0) + stack[0].shift(); + else + break; + } + } + } + } + return { + iterate, + iterateWithPath + }; + } + + // src/api/data/query.ts + var { iterate: getDescendants, iterateWithPath: getDescendantsWithPath } = Tree(getChildren); + function getChildren(data2) { + const d3 = base2(data2); + return isDefined(d3.children) ? d3.children : []; + } + function getPath(root, dataOrId) { + const elementId = isString(dataOrId) ? dataOrId : unwrap(dataOrId).id; + const path2 = getDescendantsWithPath(root).firstOrDefault((e2) => unwrap(e2[0]).id === elementId); + return isDefined(path2) ? path2 : []; + } + function getParent(root, element) { + const path2 = getPath(root, element); + if (isUndefined(path2) || path2.length < 2) + return void 0; + return path2[1]; + } + function getDescendantUsers(root) { + return getDescendants(root).where(isUser).select(unwrap); + } + function getDescendantInstallations(root) { + return getDescendants(root).where(isInstallation); + } + function getDbObjectById(root, id) { + if (isUndefined(id)) + return void 0; + return getDescendants(root).firstOrDefault((d3) => unwrap(d3).id === id); + } + + // src/client/navTreeNode.ts + function navTreeNode(node) { + const logInUser = loggedInUser(); + const ignore = logInUser?.userType === "Admin" ? (u4) => u4.id === logInUser?.id : (_3) => true; + if (match(node, { user: ignore }, false)) + return void 0; + const hasChildren = getChildren(node).any(); + const clientState = appState().client; + const isSelected = clientState.selectedElement === node; + const isHovered = clientState.hoveredElement === node; + const headerBg = isSelected ? Defaults.colorDarkenMore : isHovered ? Defaults.colorDarken : void 0; + const header2 = div({ + style: { backgroundColor: headerBg }, + onMouseEnter: () => updateApp(hoverElement(node)), + onClick: () => updateApp(selectElement(node)) + })(DataElementIconLabel(node)); + if (!hasChildren) + return header2; + const childrenStyle = { + marginLeft: rem(Defaults.remBaseLength), + backgroundColor: isHovered ? Defaults.colorDarkenLess : void 0, + gap: "0" + }; + const children = getChildren(node).select(navTreeNode).toArray(); + const content = vertical(children, { style: childrenStyle }); + return vertical(header2, content); + } + + // src/client/navPane.ts + var navStyle = { + padding: Defaults.spacing, + overflowY: "auto", + overflowX: "clip", + backgroundColor: Defaults.colorDarken + }; + var navStyled = nav({ style: navStyle }); + function navPane() { + const account = appState().server.account; + if (match(account, { loggedOut: (_3) => true }, false)) + return void 0; + const loggedInAccount = account; + const root = unwrap(loggedInAccount).home; + const tree = navTreeNode(root); + return navStyled(tree); + } + + // src/client/widgets/grid.ts + function gridColumns(columns) { + return grid(columns, void 0); + } + function grid(columns, rows) { + const style3 = { + display: "grid", + gap: Defaults.spacing, + gridTemplateColumns: columns ?? void 0, + gridTemplateRows: rows ?? void 0 + }; + return div[".grid"]({ style: style3 }); + } + + // src/client/widgets/modals/modal.ts + var modalBg = div({ + style: { + ...baseStyle, + left: 0, + right: 0, + top: 0, + bottom: 0, + position: "fixed", + backgroundColor: rgba(0, 0, 0, 0.5), + display: "flex", + alignItems: "center", + justifyContent: "center" + } + }); + var modalStyle = { + ...paddedMargined, + backgroundColor: Defaults.colorBright, + minWidth: rem(Defaults.remBaseLength * 12), + boxShadow: `${rem(Defaults.remSpacing / 2)} ${rem(Defaults.remSpacing / 2)} ${rem(Defaults.remSpacing * 2)} ${rem(Defaults.remSpacing / 2)} ${rgba(0, 0, 0, 0.3)}` + }; + var titleBarStyle = { + backgroundColor: Defaults.colorDarkenMore + }; + function Modal(icon, title2, ...content) { + const titleBar = iconLabel(icon, title2)[".titleBar"]({ style: titleBarStyle }); + return modalBg(vertical[".modal"]({ style: { gap: Defaults.spacing } })(titleBar, content, { style: modalStyle })); + } + + // src/client/widgets/modals/input.ts + var isInfo = (t3) => t3.inputType === "Info"; + var isTextInput = (t3) => t3.inputType === "Text"; + var isPasswordInput = (t3) => t3.inputType === "Password"; + var isDropDownInput = (t3) => t3.inputType === "DropDown"; + var isCheckBoxInput = (t3) => t3.inputType === "CheckBox"; + function textInput(label2, defaultValue, autocomplete) { + return { + inputType: "Text", + label: label2, + defaultValue, + autocomplete + }; + } + function checkBoxInput(label2, checked) { + return { + inputType: "CheckBox", + label: label2, + checked + }; + } + function dropDownInput(label2, values2) { + return { inputType: "DropDown", label: label2, values: values2 }; + } + function createInputWidget(name, i4) { + if (isInfo(i4)) { + const style3 = { style: { gridColumn: "1/span 2" } }; + if (isDefined(i4.icon)) + return iconLabel(i4.icon, i4.label)(style3); + else + return Label(i4.label)(style3); + } + const label2 = Label(i4.label); + if (isTextInput(i4)) + return [ + label2, + input({ + name, + type: "text", + defaultValue: i4.defaultValue ?? "", + autoComplete: isDefined(i4.autocomplete) ? "on" : "off", + spellCheck: "false" + }) + ]; + if (isPasswordInput(i4)) + return [label2, input({ type: "password", name })]; + if (isDropDownInput(i4)) + return [label2, select6(i4.values.map((v3) => option(v3)), { name })]; + if (isCheckBoxInput(i4)) + return [label2, input({ type: "checkbox", name, checked: i4.checked ?? false })]; + return Label("UNKNOWN INPUT TYPE"); + } + function createInputWidgets(inputs) { + const widgets = entries(inputs).map(([k3, v3]) => createInputWidget(k3, v3)); + return gridColumns("max-content auto")(widgets, { style: padded }); + } + + // src/client/widgets/Button.ts + var buttonStyle = { + ...margined, + paddingLeft: rem(Defaults.remSpacing), + paddingRight: rem(Defaults.remSpacing), + paddingTop: rem(Defaults.remSpacing * 0.75), + paddingBottom: rem(Defaults.remSpacing * 0.5), + minWidth: rem(4 * Defaults.remBaseLength), + userSelect: "none" + }; + var Button = button({ style: buttonStyle })[".button"]; + + // src/client/widgets/modals/dialog.ts + function PropertyList(properties) { + const rows = entries(properties).selectMany(([k3, v3], i4) => [createLabel(k3, i4), createValue(v3, i4)]).toArray(); + return vertical(gridColumns("max-content max-content auto")(rows, { style: padded })); + function createLabel(label2, row) { + return Label(label2)({ style: { gridColumn: 1, gridRow: row + 1 } }); + } + function createValue(value, row) { + const values2 = isArray(value) ? value : [value]; + const widgets = values2.map((v3) => isString(v3) && v3.startsWith("https://") ? a3(v3.substring(8), { href: v3, target: "_blank", style: { marginTop: "2px" } }) : Label(`${v3}`)({ style: { backgroundColor: Defaults.colorVeryBright } })); + return vertical(widgets, { style: { gridColumn: 2, gridRow: row + 1 } }); + } + } + function DialogEditElement(dbObject, inputs, onOk) { + return DialogOkCancel(getIcon(dbObject), base2(dbObject).name, inputs, onOk, (_3) => onOk(void 0)); + } + function DialogConfirmElementAction(element, question, onResponse) { + return DialogEditElement(element, { info: { inputType: "Info", label: question, icon: "exclamation" } }, (r3) => onResponse(isDefined(r3))); + } + function getFormData(event) { + const element = event.target; + const form2 = element.closest("form"); + const formData = new FormData(form2); + const data2 = {}; + formData.forEach((value, key) => data2[key] = value); + return data2; + } + async function onButtonClicked(e2, action) { + if (isDefined(e2)) + e2.preventDefault(); + if (isUndefined(action)) + return; + const fd = getFormData(e2); + return action(fd); + } + function Dialog(icon, title2, inputs, buttonActions) { + const buttons = horizontal(buttonActions.map((ba) => Button(ba.label, { + disabled: isUndefined(ba.action), + onClick: async (e2) => { + await onButtonClicked(e2, ba.action); + } + }))); + const buttonBar = gridColumns("auto max-content")(horizontal(buttons, { style: { gridColumn: 2 } })); + const contents = vertical(createInputWidgets(inputs), buttonBar, { style: { ...padded, gap: Defaults.spacing } }); + return Modal(icon, title2, form(contents)); + } + function DialogOkCancel(icon, title2, inputs, onOk, onCancel) { + const ok = { label: "Ok", action: onOk }; + const cancel = { label: "Cancel", action: onCancel ?? nop }; + return Dialog(icon, title2, inputs, [ok, cancel]); + } + function DialogOk(icon, title2, inputs, onOk) { + return Dialog(icon, title2, inputs, [{ label: "Ok", action: onOk }]); + } + + // src/client/util/utils.ts + function fetchWithTimeout(url2, init, timeoutMs) { + const ac = new AbortController(); + setTimeout(() => ac.abort(), timeoutMs); + return fetch(url2, init); + } + function fetchJsonWithTimeout(url2, init, timeoutMs) { + return fetchWithTimeout(url2, init, timeoutMs).catch((e2) => Promise.reject(`connection to server failed: ${e2}`)).then((r3) => r3.json()).catch((e2) => Promise.reject(`failed to parse json: ${e2}`)); + } + function postJsonWithTimeout(url2, payload, timeoutMs) { + return fetchJsonWithTimeout(url2, { method: "POST", body: JSON.stringify(payload) }, timeoutMs); + } + + // src/client/stateMachine/serverState.ts + var serverTimeout = Milliseconds.fromSeconds(1); + var serverUrl = "http://localhost:8080"; + function callServer(appState2, command) { + const account = appState2.server.account; + const token = match(account, { loggedIn: (s4) => s4.token }, void 0); + const request = { command, token }; + return postJsonWithTimeout(serverUrl, request, serverTimeout); + } + function clearError(appState2) { + appState2.server.error = void 0; + } + var createDbObject = (dbObject, parent) => async (appState2) => { + const parentId = unwrap(parent).id; + const command = { create: { dbObject, parentId } }; + appState2.server = await callServer(appState2, command); + }; + var removeDbObject = (dbObject) => async (appState2) => { + const dbObjectId = unwrap(dbObject).id; + const command = { remove: { dbObjectId } }; + appState2.server = await callServer(appState2, command); + }; + function updateDbObject(originalDbObject, modify) { + return async (appState2) => { + if (isUndefined(modify)) + return; + const home = base2(appState2.server.account).home; + if (isUndefined(home)) { + appState2.server.error = "please log in"; + return; + } + const dbObject = getDbObjectById(home, unwrap(originalDbObject).id); + if (isUndefined(dbObject) || tag(dbObject) !== tag(originalDbObject)) { + appState2.server.error = "could not find object to modify"; + return; + } + update(dbObject, modify); + }; + } + + // src/client/widgets/modals/errorDialog.ts + function errorDialog(error) { + function onOkClicked() { + updateApp(clearError); + } + return DialogOk("exclamation", "error", { error: { inputType: "Info", label: error, icon: "exclamation" } }, onOkClicked); + } + + // src/client/widgets/group.ts + var headerStyle = { ...padded, backgroundColor: Defaults.colorDarkenMore }; + var bodyStyle = { ...padded, backgroundColor: Defaults.colorDarken, gap: Defaults.spacing }; + function ElementGroup(element) { + return vertical(DataElementIconLabel(element)({ style: headerStyle }), { style: bodyStyle }); + } + + // src/api/data/types.ts + var UserTypes = { + admin: "Admin", + viewer: "Viewer" + }; + var AllUserTypes = values(UserTypes); + + // src/client/details/folderDetails.ts + function folderDetails(folder) { + async function onRenameFolderClicked() { + const nakedFolder = unwrap(folder); + const inputs = { newName: { inputType: "Text", label: "", defaultValue: nakedFolder.name } }; + async function renameFolder(d3) { + const rename = isDefined(d3) ? updateDbObject(folder, { name: d3.newName }) : void 0; + await updateApp(hideDialog, rename); + } + const dialog2 = DialogEditElement(folder, inputs, renameFolder); + await updateApp(showDialog(dialog2)); + } + async function onDeleteFolderClicked() { + function deleteFolder(ok) { + if (ok) { + return updateApp(hideDialog, deselectElement, removeDbObject(folder)); + } else { + return updateApp(hideDialog); + } + } + const nInstallations = getDescendantInstallations(folder).count(); + const nUsers = getDescendantUsers(folder).count(); + const qInstallations = nInstallations === 1 ? `${nInstallations} installation` : nInstallations > 1 ? `${nInstallations} installations` : void 0; + const qUsers = nUsers === 1 ? `${nUsers} user` : nUsers > 1 ? `${nUsers} users` : void 0; + const qInstallationsUsers = toArray4(qInstallations).concatenate(toArray4(qUsers)).toArray().join("\nand "); + const title2 = "Delete Folder?"; + const question = qInstallationsUsers.length > 0 ? [title2, qInstallationsUsers].join("\n\nThe folder contains ") : title2; + const dialog2 = DialogConfirmElementAction(folder, question, deleteFolder); + await updateApp(showDialog(dialog2)); + } + async function onNewFolderClicked() { + const inputs = { folderName: textInput("Folder Name") }; + async function onOk(d3) { + const newFolder = { folder: { children: [], id: "", name: d3.folderName } }; + const children = [newFolder, ...unwrap(folder).children]; + await updateApp(hideDialog, updateDbObject(folder, { children })); + } + async function onCancel(_3) { + await updateApp(hideDialog); + } + const dialog2 = DialogOkCancel("folder", "Create New Folder", inputs, onOk, onCancel); + await updateApp(showDialog(dialog2)); + } + async function onNewUserClicked2() { + const inputs = { + userName: textInput("User Name"), + password: textInput("Password"), + userType: dropDownInput("User Type", AllUserTypes) + }; + async function createUser(d3) { + const newUser = { user: { name: d3.userName, id: "", userType: d3.userType } }; + const children = [newUser, ...unwrap(folder).children]; + await updateApp(hideDialog, updateDbObject(folder, { children })); + } + const dialog2 = DialogOkCancel("user-admin", "Create New User", inputs, createUser); + await updateApp(showDialog(dialog2)); + } + async function onNewVrmInstallationClicked() { + const inputs = { + name: textInput("Name"), + vrmPortalId: textInput("VRM Portal Id"), + locality: textInput("locality"), + region: textInput("region"), + country: textInput("country"), + orderNumber: textInput("order number"), + ibn: checkBoxInput("IBN", true) + }; + async function createInstallation(d3) { + const tags = d3.ibn === "on" ? ["IBN"] : []; + const vrmInstallation = { vrmInstallation: { ...d3, tags } }; + await updateApp(createDbObject(vrmInstallation, folder), hideDialog); + } + const dialog2 = DialogOkCancel("installation", "New VRM Installation", inputs, createInstallation); + await updateApp(showDialog(dialog2)); + } + const actions = !isLoggedInAsAdmin() ? void 0 : horizontal(Button("Rename", { onClick: onRenameFolderClicked }), Button("Delete", { onClick: onDeleteFolderClicked }), Button("New Folder", { onClick: onNewFolderClicked }), Button("New User", { onClick: onNewUserClicked2 }), Button("New VRM Installation", { onClick: onNewVrmInstallationClicked })); + return ElementGroup(folder)(actions); + } + + // src/client/stateMachine/currentAppState.ts + function getHome() { + const account = appState().server.account; + return base2(account).home; + } + function getAllInstallations() { + const root = getHome(); + return getDescendantInstallations(root); + } + function knownTags() { + return getAllInstallations().selectMany((i4) => unwrap(i4).tags).distinct().orderBy((t3) => t3); + } + + // src/client/details/installationDetails.ts + var tagStyle = { + display: "inline-block", + position: "relative", + backgroundColor: Defaults.colorDarken, + borderRadius: rem(Defaults.remSpacing / 2), + margin: rem(Defaults.remSpacing / 2), + cursor: "not-allowed" + }; + function addTagWidget(placeholder, onTagAdded) { + return [ + input({ + placeholder, + autoComplete: "off", + spellCheck: "false", + list: "tags", + onChange: (e2) => { + e2.preventDefault(); + const input2 = e2.target; + onTagAdded(input2.value); + input2.value = ""; + } + }), + datalist(knownTags().select((t3) => option(t3)).toArray(), { id: "tags" }) + ]; + } + function tagWidget(tag2, installation) { + return Label(tag2)({ + style: tagStyle, + onClick: (_3) => onRemoveTagClicked(installation, tag2) + }); + } + function orderNumberWidget(orderNb, installation) { + return Label(orderNb)({ + style: tagStyle, + onClick: (_3) => onRemoveOrderNbClicked(installation, orderNb) + }); + } + async function onRemoveTagClicked(installation, tag2) { + tag2 = tag2.toUpperCase(); + async function onOk(doIt) { + const removeTag = doIt ? updateDbObject(installation, { tags: unwrap(installation).tags.filter((t3) => t3 !== tag2) }) : void 0; + await updateApp(hideDialog, removeTag); + } + const dialog2 = DialogConfirmElementAction(installation, `Remove Tag "${tag2}" ?`, onOk); + await updateApp(showDialog(dialog2)); + } + async function onRemoveOrderNbClicked(installation, orderNumber) { + async function onOk(doIt) { + const removeOdNb = doIt ? updateDbObject(installation, { orderNumbers: unwrap(installation).orderNumbers.filter((t3) => t3 !== orderNumber) }) : void 0; + await updateApp(hideDialog, removeOdNb); + } + const dialog2 = DialogConfirmElementAction(installation, `Remove Order Number "${orderNumber}" ?`, onOk); + await updateApp(showDialog(dialog2)); + } + function onNewUserClicked(installation) { + } + async function onDeleteInstallationClicked(installation) { + async function deleteInstallation(doIt) { + const remove = doIt ? removeDbObject(installation) : void 0; + await updateApp(hideDialog, remove); + } + const dialog2 = DialogConfirmElementAction(installation, "Delete Installation?", deleteInstallation); + await updateApp(showDialog(dialog2)); + } + async function onEditInstallationClicked(installation) { + const i4 = unwrap(installation); + const inputs = { + name: textInput("Installation Name", i4.name), + locality: textInput("Locality", i4.locality ?? ""), + region: textInput("Region", i4.region ?? ""), + country: textInput("Country", i4.country ?? "") + }; + async function editInstallation(d3) { + await updateApp(hideDialog, updateDbObject(installation, d3)); + } + const dialog2 = DialogEditElement(installation, inputs, editInstallation); + await updateApp(showDialog(dialog2)); + } + async function onAddTagClicked(installation, tag2) { + tag2 = tag2.toUpperCase(); + const isKnown = knownTags().contains(tag2); + const addTag = () => { + const i4 = unwrap(installation); + const tags = [...i4.tags, tag2]; + return updateDbObject(installation, { tags }); + }; + if (isKnown) { + await updateApp(addTag()); + return; + } + async function onDialogClosed(doIt) { + await updateApp(hideDialog, doIt ? addTag() : void 0); + } + const dialog2 = DialogConfirmElementAction(installation, `Add NEW Tag "${tag2}" ?`, onDialogClosed); + await updateApp(showDialog(dialog2)); + } + async function onAddOrderNumberClicked(installation) { + const inputs = { orderNb: textInput("Order Number", `${new Date().getFullYear()}-`) }; + async function addOrderNumber(d3) { + const add = isUndefined(d3) ? void 0 : updateDbObject(installation, { orderNumbers: [...unwrap(installation).orderNumbers, d3.orderNb] }); + await updateApp(hideDialog, add); + } + const dialog2 = DialogEditElement(installation, inputs, addOrderNumber); + await updateApp(showDialog(dialog2)); + } + function installationDetails(installation) { + const nakedInstallation = unwrap(installation); + const actions = !isLoggedInAsAdmin() ? void 0 : horizontal(Button("Edit")({ onClick: () => onEditInstallationClicked(installation) }), Button("Move")({ onClick: () => updateApp(setElementToMove(installation)) }), Button("Delete")({ onClick: () => onDeleteInstallationClicked(installation) }), Button("New User")({ onClick: () => onNewUserClicked(installation) })); + const main2 = PropertyList({ + locality: nakedInstallation.locality, + region: nakedInstallation.region, + country: nakedInstallation.country + }); + const presentTags = unwrap(installation).tags; + const tags = div({ style: { ...margined } }, Label("Tags:")({ style: { display: "inline-block" } }), presentTags.map((t3) => tagWidget(t3, installation)), addTagWidget("Add Tag...", (t3) => onAddTagClicked(installation, t3))); + const orderNumbers = div({ style: { ...margined } }, Label("Order Numbers:")({ style: { display: "inline-block" } }), unwrap(installation).orderNumbers.map((s4) => orderNumberWidget(s4, installation)), Button("Add Order Number", { onClick: () => onAddOrderNumberClicked(installation) })); + return ElementGroup(installation)(actions, main2, orderNumbers, tags); + } + + // src/client/details/userDetails.ts + init_esm(); + function userDetails(user) { + const u4 = unwrap(user); + async function onEditUserClicked() { + const userTypes = [u4.userType].concatenate(from(AllUserTypes).where((t3) => t3 !== u4.userType)).toArray(); + const inputs = { userType: dropDownInput("User Type", userTypes) }; + async function editUser(d3) { + const edit = isUndefined(d3) || d3.userType === u4.userType ? void 0 : updateDbObject(user, { userType: d3.userType }); + await updateApp(hideDialog, edit); + } + const dialog2 = DialogEditElement(user, inputs, editUser); + await updateApp(showDialog(dialog2)); + } + async function onDeleteUserClicked() { + async function deleteUser(doIt) { + const remove = doIt ? removeDbObject(user) : void 0; + await updateApp(hideDialog, remove); + } + const dialog2 = DialogConfirmElementAction(user, "Delete User?", deleteUser); + await updateApp(showDialog(dialog2)); + } + const actions = !isLoggedInAsAdmin() ? void 0 : horizontal(Button("Edit")({ onClick: onEditUserClicked }), Button("Delete")({ onClick: onDeleteUserClicked })); + return ElementGroup(user)(actions); + } + + // src/client/details/details.ts + var container = div({ style: { position: "relative" } }); + function details2() { + const state = appState(); + const selectedId = state.client.selectedElement; + const elementToMoveId = state.client.elementToMove; + const home = loggedInUserHome(state); + return container(detailsPane(selectedId), moveDialog(elementToMoveId, selectedId)); + } + function moveDialog(elementToMove, target) { + if (isUndefined(elementToMove)) + return void 0; + const home = loggedInUserHome(); + const canMove = isInstallation(elementToMove) && isFolder(target) || isFolder(elementToMove) && isFolder(target) || isUser(elementToMove) && isParent(target); + const parent = isDefined(home) ? getParent(home, elementToMove) : void 0; + const okAction = canMove && isDefined(parent) ? async () => { + const elementToMoveId = unwrap(elementToMove).id; + const removed = unwrap(parent).children.filter((c3) => base2(c3).id !== elementToMoveId); + const added = [elementToMove, ...unwrap(target).children]; + await updateApp(hideDialog, updateDbObject(parent, { children: removed }), updateDbObject(target, { children: added })); + } : void 0; + const buttonActions = [ + { label: "Ok", action: okAction }, + { label: "Cancel", action: () => updateApp(hideDialog) } + ]; + return Dialog("folder", "Move Element", {}, buttonActions)({ style: { position: "absolute" } }); + } + function detailsPane(detailsElement) { + return isInstallation(detailsElement) ? installationDetails(detailsElement) : isFolder(detailsElement) ? folderDetails(detailsElement) : isUser(detailsElement) ? userDetails(detailsElement) : void 0; + } + + // src/client/widgets/modals/loginDialog.ts + function loginDialog() { + const usernamePassword = { + username: { inputType: "Text", label: "Username" }, + password: { inputType: "Password", label: "Password" } + }; + const okButton = { + label: "Ok", + action: async (d3) => { + const server = await callServer(appState(), { login: d3 }); + updateApp(hideDialog, (s4) => { + s4.server = server; + }); + } + }; + return Dialog("key", "login", usernamePassword, [okButton]); + } + + // src/client.ts + var styledMain = main({ + style: { + ...baseStyle, + backgroundColor: Defaults.colorVeryBright, + touchAction: "manipulation", + height: "100vh", + padding: Defaults.spacing + } + }); + var serverTimeout2 = Milliseconds.fromSeconds(1); + var appNode = document.getElementById("app"); + function navDetails() { + return gridColumns("fit-content(40%) auto")({ style: { height: "100%" } })(navPane(), details2()); + } + function App() { + const { client, server } = appState(); + const isLoggedIn = match(server.account, { loggedIn: (_3) => true }, false); + const dialog2 = isDefined(server.error) ? errorDialog(server.error) : !isLoggedIn ? loginDialog() : client.dialog; + const content = isLoggedIn ? navDetails() : void 0; + return styledMain(div({ style: { position: "fixed", inset: Defaults.spacing } })(content, dialog2)); + } + async function onStateChanged(_3) { + const app = App(); + const vNode = app(); + S(vNode, appNode); + } + observableAppState.subscribe(onStateChanged); + function hideDialog(appState2) { + appState2.client.dialog = void 0; + } + var showDialog = (dialog2) => (appState2) => { + appState2.client.dialog = dialog2; + }; + var selectElement = (element) => (appState2) => { + appState2.client.selectedElement = element; + }; + function deselectElement(appState2) { + appState2.client.selectedElement = void 0; + } + var hoverElement = (element) => (appState2) => { + appState2.client.hoveredElement = element; + }; + var setElementToMove = (element) => (appState2) => { + appState2.client.elementToMove = element; + }; + function unsetElementToMove(appState2) { + return appState2.client.elementToMove = void 0; + } + function loggedInUser(state) { + const s4 = state ?? appState(); + return base2(s4.server.account).user?.user; + } + function loggedInUserHome(state) { + const s4 = state ?? appState(); + return base2(s4.server.account).home; + } + function isLoggedInAsAdmin(state) { + return loggedInUser(state)?.userType === UserTypes.admin; + } +})(); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +//# sourceMappingURL=client.js.map diff --git a/typescript/DataCache/dist/www/icons b/typescript/DataCache/dist/www/icons new file mode 120000 index 000000000..5e1f1c88f --- /dev/null +++ b/typescript/DataCache/dist/www/icons @@ -0,0 +1 @@ +../../src/client/icons \ No newline at end of file diff --git a/typescript/DataCache/dist/www/index.html b/typescript/DataCache/dist/www/index.html new file mode 120000 index 000000000..a435ee8f2 --- /dev/null +++ b/typescript/DataCache/dist/www/index.html @@ -0,0 +1 @@ +../../src/client/index.html \ No newline at end of file diff --git a/typescript/DataCache/package-lock.json b/typescript/DataCache/package-lock.json new file mode 100644 index 000000000..e47e6f6d3 --- /dev/null +++ b/typescript/DataCache/package-lock.json @@ -0,0 +1,4456 @@ +{ + "name": "DataCache", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "@types/react": "^18.0.14", + "@types/react-dom": "^18.0.5", + "esbuild": "^0.14.23", + "immer": "^9.0.16", + "linq-to-typescript": "^10.0.0", + "preact": "^10.8.2", + "rxjs": "^7.5.5", + "ts-proto": "^1.104.0" + }, + "devDependencies": { + "@types/node": "^17.0.45", + "@typescript-eslint/eslint-plugin": "^5.12.1", + "@typescript-eslint/parser": "^5.12.1", + "eslint": "^8.10.0", + "node-fetch": "^3.2.0", + "simplytyped": "^3.3.0", + "ts-auto-guard": "^2.4.1", + "typescript": "^4.8.3" + } + }, + "node_modules/@dsherret/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-InCaQ/KEOcFtAFztn47wadritBLP2nT6m/ucbBnIgI5YwxuMzKKCHtqazR2+D1yR6y1ZTnPea9aLFEUrTttUSQ==", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", + "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@ts-morph/common": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.7.5.tgz", + "integrity": "sha512-nlFunSKAsFWI0Ol/uPxJcpVqXxTGNuaWXTmoQDhcnwj1UM4QmBSUVWzqoQ0OzUlqo4sV1gobfFBkMHuZVemMAQ==", + "dev": true, + "dependencies": { + "@dsherret/to-absolute-glob": "^2.0.2", + "fast-glob": "^3.2.5", + "is-negated-glob": "^1.0.0", + "mkdirp": "^1.0.4", + "multimatch": "^5.0.0", + "typescript": "~4.1.3" + } + }, + "node_modules/@ts-morph/common/node_modules/typescript": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.6.tgz", + "integrity": "sha512-pxnwLxeb/Z5SP80JDRzVjh58KsM6jZHRAOtTpS7sXLS4ogXNKC9ANxHHZqLLeVHZN35jCtI4JdmLLbLiC1kBow==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@types/command-line-args": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", + "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", + "dev": true + }, + "node_modules/@types/command-line-usage": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", + "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + }, + "node_modules/@types/object-hash": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz", + "integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "node_modules/@types/react": { + "version": "18.0.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz", + "integrity": "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz", + "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "node_modules/@types/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==", + "dev": true + }, + "node_modules/@types/strip-json-comments": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", + "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.1.tgz", + "integrity": "sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.12.1", + "@typescript-eslint/type-utils": "5.12.1", + "@typescript-eslint/utils": "5.12.1", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.1.tgz", + "integrity": "sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.12.1", + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/typescript-estree": "5.12.1", + "debug": "^4.3.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", + "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.1.tgz", + "integrity": "sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.12.1", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", + "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz", + "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz", + "integrity": "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.12.1", + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/typescript-estree": "5.12.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", + "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.12.1", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/code-block-writer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz", + "integrity": "sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/command-line-usage/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/command-line-usage/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/command-line-usage/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/dataloader": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", + "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==" + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/esbuild": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.23.tgz", + "integrity": "sha512-XjnIcZ9KB6lfonCa+jRguXyRYcldmkyZ99ieDksqW/C8bnyEX299yA4QH2XcgijCgaddEZePPTgvx/2imsq7Ig==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-arm64": "0.14.23", + "esbuild-darwin-64": "0.14.23", + "esbuild-darwin-arm64": "0.14.23", + "esbuild-freebsd-64": "0.14.23", + "esbuild-freebsd-arm64": "0.14.23", + "esbuild-linux-32": "0.14.23", + "esbuild-linux-64": "0.14.23", + "esbuild-linux-arm": "0.14.23", + "esbuild-linux-arm64": "0.14.23", + "esbuild-linux-mips64le": "0.14.23", + "esbuild-linux-ppc64le": "0.14.23", + "esbuild-linux-riscv64": "0.14.23", + "esbuild-linux-s390x": "0.14.23", + "esbuild-netbsd-64": "0.14.23", + "esbuild-openbsd-64": "0.14.23", + "esbuild-sunos-64": "0.14.23", + "esbuild-windows-32": "0.14.23", + "esbuild-windows-64": "0.14.23", + "esbuild-windows-arm64": "0.14.23" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.23.tgz", + "integrity": "sha512-k9sXem++mINrZty1v4FVt6nC5BQCFG4K2geCIUUqHNlTdFnuvcqsY7prcKZLFhqVC1rbcJAr9VSUGFL/vD4vsw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.23.tgz", + "integrity": "sha512-lB0XRbtOYYL1tLcYw8BoBaYsFYiR48RPrA0KfA/7RFTr4MV7Bwy/J4+7nLsVnv9FGuQummM3uJ93J3ptaTqFug==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.23.tgz", + "integrity": "sha512-yat73Z/uJ5tRcfRiI4CCTv0FSnwErm3BJQeZAh+1tIP0TUNh6o+mXg338Zl5EKChD+YGp6PN+Dbhs7qa34RxSw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.23.tgz", + "integrity": "sha512-/1xiTjoLuQ+LlbfjJdKkX45qK/M7ARrbLmyf7x3JhyQGMjcxRYVR6Dw81uH3qlMHwT4cfLW4aEVBhP1aNV7VsA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.23.tgz", + "integrity": "sha512-uyPqBU/Zcp6yEAZS4LKj5jEE0q2s4HmlMBIPzbW6cTunZ8cyvjG6YWpIZXb1KK3KTJDe62ltCrk3VzmWHp+iLg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.23.tgz", + "integrity": "sha512-37R/WMkQyUfNhbH7aJrr1uCjDVdnPeTHGeDhZPUNhfoHV0lQuZNCKuNnDvlH/u/nwIYZNdVvz1Igv5rY/zfrzQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.23.tgz", + "integrity": "sha512-H0gztDP60qqr8zoFhAO64waoN5yBXkmYCElFklpd6LPoobtNGNnDe99xOQm28+fuD75YJ7GKHzp/MLCLhw2+vQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.23.tgz", + "integrity": "sha512-x64CEUxi8+EzOAIpCUeuni0bZfzPw/65r8tC5cy5zOq9dY7ysOi5EVQHnzaxS+1NmV+/RVRpmrzGw1QgY2Xpmw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.23.tgz", + "integrity": "sha512-c4MLOIByNHR55n3KoYf9hYDfBRghMjOiHLaoYLhkQkIabb452RWi+HsNgB41sUpSlOAqfpqKPFNg7VrxL3UX9g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.23.tgz", + "integrity": "sha512-kHKyKRIAedYhKug2EJpyJxOUj3VYuamOVA1pY7EimoFPzaF3NeY7e4cFBAISC/Av0/tiV0xlFCt9q0HJ68IBIw==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.23.tgz", + "integrity": "sha512-7ilAiJEPuJJnJp/LiDO0oJm5ygbBPzhchJJh9HsHZzeqO+3PUzItXi+8PuicY08r0AaaOe25LA7sGJ0MzbfBag==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.23.tgz", + "integrity": "sha512-fbL3ggK2wY0D8I5raPIMPhpCvODFE+Bhb5QGtNP3r5aUsRR6TQV+ZBXIaw84iyvKC8vlXiA4fWLGhghAd/h/Zg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.23.tgz", + "integrity": "sha512-GHMDCyfy7+FaNSO8RJ8KCFsnax8fLUsOrj9q5Gi2JmZMY0Zhp75keb5abTFCq2/Oy6KVcT0Dcbyo/bFb4rIFJA==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.23.tgz", + "integrity": "sha512-ovk2EX+3rrO1M2lowJfgMb/JPN1VwVYrx0QPUyudxkxLYrWeBxDKQvc6ffO+kB4QlDyTfdtAURrVzu3JeNdA2g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.23.tgz", + "integrity": "sha512-uYYNqbVR+i7k8ojP/oIROAHO9lATLN7H2QeXKt2H310Fc8FJj4y3Wce6hx0VgnJ4k1JDrgbbiXM8rbEgQyg8KA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.23.tgz", + "integrity": "sha512-hAzeBeET0+SbScknPzS2LBY6FVDpgE+CsHSpe6CEoR51PApdn2IB0SyJX7vGelXzlyrnorM4CAsRyb9Qev4h9g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.23.tgz", + "integrity": "sha512-Kttmi3JnohdaREbk6o9e25kieJR379TsEWF0l39PQVHXq3FR6sFKtVPgY8wk055o6IB+rllrzLnbqOw/UV60EA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.23.tgz", + "integrity": "sha512-JtIT0t8ymkpl6YlmOl6zoSWL5cnCgyLaBdf/SiU/Eg3C13r0NbHZWNT/RDEMKK91Y6t79kTs3vyRcNZbfu5a8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.23.tgz", + "integrity": "sha512-cTFaQqT2+ik9e4hePvYtRZQ3pqOvKDVNarzql0VFIzhc0tru/ZgdLoXd6epLiKT+SzoSce6V9YJ+nn6RCn6SHw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz", + "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.2.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "dev": true, + "dependencies": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fetch-blob": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", + "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dev": true, + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/linq-to-typescript": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/linq-to-typescript/-/linq-to-typescript-10.0.0.tgz", + "integrity": "sha512-2DPRBExWNFe3vLfheSQXWdB+UuytZ3Gvry22pzNtU0ONUCnO6aHEc8Ooqev21CaxiTiVx3QFcyT0rKA0ZxMVuQ==", + "engines": { + "node": ">=17" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz", + "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==", + "dev": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/preact": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.8.2.tgz", + "integrity": "sha512-AKGt0BsDSiAYzVS78jZ9qRwuorY2CoSZtf1iOC6gLb/3QyZt+fLT09aYJBjRc/BEcRc4j+j3ggERMdNE43i1LQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/simplytyped": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/simplytyped/-/simplytyped-3.3.0.tgz", + "integrity": "sha512-mz4RaNdKTZiaKXgi6P1k/cdsxV3gz+y1Wh2NXHWD40dExktLh4Xx/h6MFakmQWODZHj/2rKe59acacpL74ZhQA==", + "dev": true, + "peerDependencies": { + "typescript": ">=2.8.0" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-auto-guard": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/ts-auto-guard/-/ts-auto-guard-2.4.1.tgz", + "integrity": "sha512-9s+MdZaAej1CYW3SmL4f9kK42T5NGCPuB60ZONYalwIgfTYRapzMzQ6lj4J80J6pfabhLKCqt9PLitHsef/lxg==", + "dev": true, + "dependencies": { + "@types/command-line-args": "^5.0.0", + "@types/command-line-usage": "^5.0.1", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "ts-morph": "^9.1.0", + "tsconfig": "^7.0.0" + }, + "bin": { + "ts-auto-guard": "lib/cli.js" + } + }, + "node_modules/ts-morph": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-9.1.0.tgz", + "integrity": "sha512-sei4u651MBenr27sD6qLDXN3gZ4thiX71E3qV7SuVtDas0uvK2LtgZkIYUf9DKm/fLJ6AB/+yhRJ1vpEBJgy7Q==", + "dev": true, + "dependencies": { + "@dsherret/to-absolute-glob": "^2.0.2", + "@ts-morph/common": "~0.7.0", + "code-block-writer": "^10.1.1" + } + }, + "node_modules/ts-poet": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-4.11.0.tgz", + "integrity": "sha512-OaXnCKsRs0yrc0O7LFhnq/US2DB4Wd313cS+qjG2XMksZ74pF/jvMHkJdURXJiAo4kSahL2N4e8JOdwUjOMNdw==", + "dependencies": { + "lodash": "^4.17.15", + "prettier": "^2.5.1" + } + }, + "node_modules/ts-proto": { + "version": "1.114.7", + "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.114.7.tgz", + "integrity": "sha512-0v+ogiBK6zt0aVDWN5w3CaGo5Q0O4ZuO/8Rr1Yj1C4c+HCqFJQvew2o+0PyO6Td10xlpD9FzfP+RqArfu1eh8w==", + "dependencies": { + "@types/object-hash": "^1.3.0", + "dataloader": "^1.4.0", + "object-hash": "^1.3.1", + "protobufjs": "^6.8.8", + "ts-poet": "^4.11.0", + "ts-proto-descriptors": "1.6.0" + }, + "bin": { + "protoc-gen-ts_proto": "protoc-gen-ts_proto" + } + }, + "node_modules/ts-proto-descriptors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.6.0.tgz", + "integrity": "sha512-Vrhue2Ti99us/o76mGy28nF3W/Uanl1/8detyJw2yyRwiBC5yxy+hEZqQ/ZX2PbZ1vyCpJ51A9L4PnCCnkBMTQ==", + "dependencies": { + "long": "^4.0.0", + "protobufjs": "^6.8.8" + } + }, + "node_modules/tsconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", + "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "dev": true, + "dependencies": { + "@types/strip-bom": "^3.0.0", + "@types/strip-json-comments": "0.0.30", + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" + } + }, + "node_modules/tsconfig/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", + "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", + "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + }, + "dependencies": { + "@dsherret/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-InCaQ/KEOcFtAFztn47wadritBLP2nT6m/ucbBnIgI5YwxuMzKKCHtqazR2+D1yR6y1ZTnPea9aLFEUrTttUSQ==", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "@eslint/eslintrc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", + "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "@ts-morph/common": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.7.5.tgz", + "integrity": "sha512-nlFunSKAsFWI0Ol/uPxJcpVqXxTGNuaWXTmoQDhcnwj1UM4QmBSUVWzqoQ0OzUlqo4sV1gobfFBkMHuZVemMAQ==", + "dev": true, + "requires": { + "@dsherret/to-absolute-glob": "^2.0.2", + "fast-glob": "^3.2.5", + "is-negated-glob": "^1.0.0", + "mkdirp": "^1.0.4", + "multimatch": "^5.0.0", + "typescript": "~4.1.3" + }, + "dependencies": { + "typescript": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.6.tgz", + "integrity": "sha512-pxnwLxeb/Z5SP80JDRzVjh58KsM6jZHRAOtTpS7sXLS4ogXNKC9ANxHHZqLLeVHZN35jCtI4JdmLLbLiC1kBow==", + "dev": true + } + } + }, + "@types/command-line-args": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", + "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", + "dev": true + }, + "@types/command-line-usage": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", + "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + }, + "@types/object-hash": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz", + "integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==" + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "@types/react": { + "version": "18.0.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz", + "integrity": "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz", + "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==", + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "@types/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==", + "dev": true + }, + "@types/strip-json-comments": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", + "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.1.tgz", + "integrity": "sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.12.1", + "@typescript-eslint/type-utils": "5.12.1", + "@typescript-eslint/utils": "5.12.1", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.1.tgz", + "integrity": "sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.12.1", + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/typescript-estree": "5.12.1", + "debug": "^4.3.2" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", + "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.1.tgz", + "integrity": "sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.12.1", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + }, + "dependencies": { + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "@typescript-eslint/types": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", + "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz", + "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/visitor-keys": "5.12.1", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz", + "integrity": "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.12.1", + "@typescript-eslint/types": "5.12.1", + "@typescript-eslint/typescript-estree": "5.12.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", + "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.12.1", + "eslint-visitor-keys": "^3.0.0" + } + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true + }, + "array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "code-block-writer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz", + "integrity": "sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "requires": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + } + }, + "command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "requires": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + }, + "data-uri-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", + "dev": true + }, + "dataloader": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", + "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==" + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "esbuild": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.23.tgz", + "integrity": "sha512-XjnIcZ9KB6lfonCa+jRguXyRYcldmkyZ99ieDksqW/C8bnyEX299yA4QH2XcgijCgaddEZePPTgvx/2imsq7Ig==", + "requires": { + "esbuild-android-arm64": "0.14.23", + "esbuild-darwin-64": "0.14.23", + "esbuild-darwin-arm64": "0.14.23", + "esbuild-freebsd-64": "0.14.23", + "esbuild-freebsd-arm64": "0.14.23", + "esbuild-linux-32": "0.14.23", + "esbuild-linux-64": "0.14.23", + "esbuild-linux-arm": "0.14.23", + "esbuild-linux-arm64": "0.14.23", + "esbuild-linux-mips64le": "0.14.23", + "esbuild-linux-ppc64le": "0.14.23", + "esbuild-linux-riscv64": "0.14.23", + "esbuild-linux-s390x": "0.14.23", + "esbuild-netbsd-64": "0.14.23", + "esbuild-openbsd-64": "0.14.23", + "esbuild-sunos-64": "0.14.23", + "esbuild-windows-32": "0.14.23", + "esbuild-windows-64": "0.14.23", + "esbuild-windows-arm64": "0.14.23" + } + }, + "esbuild-android-arm64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.23.tgz", + "integrity": "sha512-k9sXem++mINrZty1v4FVt6nC5BQCFG4K2geCIUUqHNlTdFnuvcqsY7prcKZLFhqVC1rbcJAr9VSUGFL/vD4vsw==", + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.23.tgz", + "integrity": "sha512-lB0XRbtOYYL1tLcYw8BoBaYsFYiR48RPrA0KfA/7RFTr4MV7Bwy/J4+7nLsVnv9FGuQummM3uJ93J3ptaTqFug==", + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.23.tgz", + "integrity": "sha512-yat73Z/uJ5tRcfRiI4CCTv0FSnwErm3BJQeZAh+1tIP0TUNh6o+mXg338Zl5EKChD+YGp6PN+Dbhs7qa34RxSw==", + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.23.tgz", + "integrity": "sha512-/1xiTjoLuQ+LlbfjJdKkX45qK/M7ARrbLmyf7x3JhyQGMjcxRYVR6Dw81uH3qlMHwT4cfLW4aEVBhP1aNV7VsA==", + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.23.tgz", + "integrity": "sha512-uyPqBU/Zcp6yEAZS4LKj5jEE0q2s4HmlMBIPzbW6cTunZ8cyvjG6YWpIZXb1KK3KTJDe62ltCrk3VzmWHp+iLg==", + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.23.tgz", + "integrity": "sha512-37R/WMkQyUfNhbH7aJrr1uCjDVdnPeTHGeDhZPUNhfoHV0lQuZNCKuNnDvlH/u/nwIYZNdVvz1Igv5rY/zfrzQ==", + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.23.tgz", + "integrity": "sha512-H0gztDP60qqr8zoFhAO64waoN5yBXkmYCElFklpd6LPoobtNGNnDe99xOQm28+fuD75YJ7GKHzp/MLCLhw2+vQ==", + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.23.tgz", + "integrity": "sha512-x64CEUxi8+EzOAIpCUeuni0bZfzPw/65r8tC5cy5zOq9dY7ysOi5EVQHnzaxS+1NmV+/RVRpmrzGw1QgY2Xpmw==", + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.23.tgz", + "integrity": "sha512-c4MLOIByNHR55n3KoYf9hYDfBRghMjOiHLaoYLhkQkIabb452RWi+HsNgB41sUpSlOAqfpqKPFNg7VrxL3UX9g==", + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.23.tgz", + "integrity": "sha512-kHKyKRIAedYhKug2EJpyJxOUj3VYuamOVA1pY7EimoFPzaF3NeY7e4cFBAISC/Av0/tiV0xlFCt9q0HJ68IBIw==", + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.23.tgz", + "integrity": "sha512-7ilAiJEPuJJnJp/LiDO0oJm5ygbBPzhchJJh9HsHZzeqO+3PUzItXi+8PuicY08r0AaaOe25LA7sGJ0MzbfBag==", + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.23.tgz", + "integrity": "sha512-fbL3ggK2wY0D8I5raPIMPhpCvODFE+Bhb5QGtNP3r5aUsRR6TQV+ZBXIaw84iyvKC8vlXiA4fWLGhghAd/h/Zg==", + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.23.tgz", + "integrity": "sha512-GHMDCyfy7+FaNSO8RJ8KCFsnax8fLUsOrj9q5Gi2JmZMY0Zhp75keb5abTFCq2/Oy6KVcT0Dcbyo/bFb4rIFJA==", + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.23.tgz", + "integrity": "sha512-ovk2EX+3rrO1M2lowJfgMb/JPN1VwVYrx0QPUyudxkxLYrWeBxDKQvc6ffO+kB4QlDyTfdtAURrVzu3JeNdA2g==", + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.23.tgz", + "integrity": "sha512-uYYNqbVR+i7k8ojP/oIROAHO9lATLN7H2QeXKt2H310Fc8FJj4y3Wce6hx0VgnJ4k1JDrgbbiXM8rbEgQyg8KA==", + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.23.tgz", + "integrity": "sha512-hAzeBeET0+SbScknPzS2LBY6FVDpgE+CsHSpe6CEoR51PApdn2IB0SyJX7vGelXzlyrnorM4CAsRyb9Qev4h9g==", + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.23.tgz", + "integrity": "sha512-Kttmi3JnohdaREbk6o9e25kieJR379TsEWF0l39PQVHXq3FR6sFKtVPgY8wk055o6IB+rllrzLnbqOw/UV60EA==", + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.23.tgz", + "integrity": "sha512-JtIT0t8ymkpl6YlmOl6zoSWL5cnCgyLaBdf/SiU/Eg3C13r0NbHZWNT/RDEMKK91Y6t79kTs3vyRcNZbfu5a8g==", + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.23", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.23.tgz", + "integrity": "sha512-cTFaQqT2+ik9e4hePvYtRZQ3pqOvKDVNarzql0VFIzhc0tru/ZgdLoXd6epLiKT+SzoSce6V9YJ+nn6RCn6SHw==", + "optional": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz", + "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.2.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + } + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "dev": true, + "requires": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fetch-blob": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", + "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", + "dev": true, + "requires": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "requires": { + "array-back": "^3.0.1" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dev": true, + "requires": { + "fetch-blob": "^3.1.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "immer": { + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "linq-to-typescript": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/linq-to-typescript/-/linq-to-typescript-10.0.0.tgz", + "integrity": "sha512-2DPRBExWNFe3vLfheSQXWdB+UuytZ3Gvry22pzNtU0ONUCnO6aHEc8Ooqev21CaxiTiVx3QFcyT0rKA0ZxMVuQ==" + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dev": true, + "requires": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true + }, + "node-fetch": { + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz", + "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==", + "dev": true, + "requires": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + } + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "preact": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.8.2.tgz", + "integrity": "sha512-AKGt0BsDSiAYzVS78jZ9qRwuorY2CoSZtf1iOC6gLb/3QyZt+fLT09aYJBjRc/BEcRc4j+j3ggERMdNE43i1LQ==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==" + }, + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "simplytyped": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/simplytyped/-/simplytyped-3.3.0.tgz", + "integrity": "sha512-mz4RaNdKTZiaKXgi6P1k/cdsxV3gz+y1Wh2NXHWD40dExktLh4Xx/h6MFakmQWODZHj/2rKe59acacpL74ZhQA==", + "dev": true, + "requires": {} + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "requires": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "dependencies": { + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true + }, + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-auto-guard": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/ts-auto-guard/-/ts-auto-guard-2.4.1.tgz", + "integrity": "sha512-9s+MdZaAej1CYW3SmL4f9kK42T5NGCPuB60ZONYalwIgfTYRapzMzQ6lj4J80J6pfabhLKCqt9PLitHsef/lxg==", + "dev": true, + "requires": { + "@types/command-line-args": "^5.0.0", + "@types/command-line-usage": "^5.0.1", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "ts-morph": "^9.1.0", + "tsconfig": "^7.0.0" + } + }, + "ts-morph": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-9.1.0.tgz", + "integrity": "sha512-sei4u651MBenr27sD6qLDXN3gZ4thiX71E3qV7SuVtDas0uvK2LtgZkIYUf9DKm/fLJ6AB/+yhRJ1vpEBJgy7Q==", + "dev": true, + "requires": { + "@dsherret/to-absolute-glob": "^2.0.2", + "@ts-morph/common": "~0.7.0", + "code-block-writer": "^10.1.1" + } + }, + "ts-poet": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-4.11.0.tgz", + "integrity": "sha512-OaXnCKsRs0yrc0O7LFhnq/US2DB4Wd313cS+qjG2XMksZ74pF/jvMHkJdURXJiAo4kSahL2N4e8JOdwUjOMNdw==", + "requires": { + "lodash": "^4.17.15", + "prettier": "^2.5.1" + } + }, + "ts-proto": { + "version": "1.114.7", + "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.114.7.tgz", + "integrity": "sha512-0v+ogiBK6zt0aVDWN5w3CaGo5Q0O4ZuO/8Rr1Yj1C4c+HCqFJQvew2o+0PyO6Td10xlpD9FzfP+RqArfu1eh8w==", + "requires": { + "@types/object-hash": "^1.3.0", + "dataloader": "^1.4.0", + "object-hash": "^1.3.1", + "protobufjs": "^6.8.8", + "ts-poet": "^4.11.0", + "ts-proto-descriptors": "1.6.0" + } + }, + "ts-proto-descriptors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.6.0.tgz", + "integrity": "sha512-Vrhue2Ti99us/o76mGy28nF3W/Uanl1/8detyJw2yyRwiBC5yxy+hEZqQ/ZX2PbZ1vyCpJ51A9L4PnCCnkBMTQ==", + "requires": { + "long": "^4.0.0", + "protobufjs": "^6.8.8" + } + }, + "tsconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", + "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "dev": true, + "requires": { + "@types/strip-bom": "^3.0.0", + "@types/strip-json-comments": "0.0.30", + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", + "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==", + "dev": true + }, + "typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "web-streams-polyfill": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", + "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "requires": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "dependencies": { + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } +} diff --git a/typescript/DataCache/package.json b/typescript/DataCache/package.json new file mode 100644 index 000000000..2ca840c4a --- /dev/null +++ b/typescript/DataCache/package.json @@ -0,0 +1,30 @@ +{ + "main": "src/server.ts", + "type": "commonjs", + "devDependencies": { + "@types/node": "^17.0.45", + "@typescript-eslint/eslint-plugin": "^5.12.1", + "@typescript-eslint/parser": "^5.12.1", + "eslint": "^8.10.0", + "node-fetch": "^3.2.0", + "simplytyped": "^3.3.0", + "ts-auto-guard": "^2.4.1", + "typescript": "^4.8.3" + }, + "scripts": { + "buildServer": "esbuild src/server.ts --bundle --sourcemap --outfile=dist/server.js --platform=node", + "buildAndRunServer": "npm run buildServer && node dist/server.js", + "buildClient": "esbuild src/client.ts --bundle --sourcemap --outfile=dist/www/client.js", + "buildClientMinified": "esbuild src/client.ts --bundle --minify --sourcemap --outfile=dist/www/client.js" + }, + "dependencies": { + "@types/react": "^18.0.14", + "@types/react-dom": "^18.0.5", + "esbuild": "^0.14.23", + "immer": "^9.0.16", + "linq-to-typescript": "^10.0.0", + "preact": "^10.8.2", + "rxjs": "^7.5.5", + "ts-proto": "^1.104.0" + } +} diff --git a/typescript/DataCache/src/server.ts b/typescript/DataCache/src/server.ts new file mode 100644 index 000000000..69d8b0cfc --- /dev/null +++ b/typescript/DataCache/src/server.ts @@ -0,0 +1,30 @@ +import './utils/linq' +import DataCache from "./server/dataCache/dataCache"; +import {TimeSpan, UnixTime} from "./server/dataCache/time"; +import {filter} from "rxjs"; + + +const resolution = TimeSpan.fromSeconds(2); + +const cache = new DataCache(x => (Promise.resolve({foo: 0})), resolution) + +const sampleTimes = [1, 2, 3, 4, 5, 6].select(e => UnixTime.fromTicks(e)).toArray(); + +const series = cache.getSeries(sampleTimes) + +console.log(series) + +console.log("done") + + + + + + + + + + + + + diff --git a/typescript/DataCache/src/server/dataCache/S3/S3Access.ts b/typescript/DataCache/src/server/dataCache/S3/S3Access.ts new file mode 100644 index 000000000..6780f0ced --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/S3/S3Access.ts @@ -0,0 +1,79 @@ +import {sha1Hmac} from "./Sha1"; +import {Utf8} from "./Utf8"; +import {toBase64} from "./UInt8Utils"; + +export class S3Access +{ + constructor + ( + readonly bucket: string, + readonly region: string, + readonly provider: string, + readonly key: string, + readonly secret: string, + readonly contentType: string + ) + {} + + get host() : string { return `${this.bucket}.${this.region}.${this.provider}` } + get url() : string { return `https://${this.host}` } + + public get(s3Path : string): Promise + { + const method = "GET"; + const auth = this.createAuthorizationHeader(method, s3Path, ""); + const url = this.url + "/" + s3Path + const headers = {"Host": this.host, "Authorization": auth}; + + try + { + return fetch(url, {method: method, mode: "cors", headers: headers}) + } + catch + { + return Promise.reject() + } + } + + private createAuthorizationHeader(method: string, + s3Path: string, + date: string) + { + return createAuthorizationHeader + ( + method, + this.bucket, + s3Path, + date, + this.key, + this.secret, + this.contentType + ); + } +} + +function createAuthorizationHeader(method: string, + bucket: string, + s3Path: string, + date: string, + s3Key: string, + s3Secret: string, + contentType: string, + md5Hash: string = "") +{ + // StringToSign = HTTP-Verb + "\n" + + // Content-MD5 + "\n" + + // Content-Type + "\n" + + // Date + "\n" + + // CanonicalizedAmzHeaders + + // CanonicalizedResource; + + const payload = Utf8.encode(`${method}\n${md5Hash}\n${contentType}\n${date}\n/${bucket}/${s3Path}`) + + //console.log(`${method}\n${md5Hash}\n${contentType}\n${date}\n/${bucket}/${s3Path}`) + + const secret = Utf8.encode(s3Secret) + const signature = toBase64(sha1Hmac(payload, secret)); + + return `AWS ${s3Key}:${signature}` +} diff --git a/typescript/DataCache/src/server/dataCache/S3/Sha1.ts b/typescript/DataCache/src/server/dataCache/S3/Sha1.ts new file mode 100644 index 000000000..17dcea21f --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/S3/Sha1.ts @@ -0,0 +1,125 @@ +import {concat, pad} from "./UInt8Utils"; + +const BigEndian = false + +export function sha1Hmac(msg: Uint8Array, key: Uint8Array): Uint8Array +{ + if (key.byteLength > 64) + key = sha1(key) + if (key.byteLength < 64) + key = pad(key, 64) + + const oKey = key.map(b => b ^ 0x5C); + const iKey = key.map(b => b ^ 0x36); + + const iData = concat(iKey, msg); + const iHash = sha1(iData); + const oData = concat(oKey, iHash); + + return sha1(oData); +} + +export function sha1(data: Uint8Array): Uint8Array +{ + const paddedData: DataView = initData(data) + + const H = new Uint32Array([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]) + const S = new Uint32Array(5) // State + const round = new Uint32Array(80); + + function initRound(startOffset: number) + { + for (let i = 0; i < 16; i++) + round[i] = paddedData.getUint32((startOffset + i) * 4, BigEndian); + + for (let i = 16; i < 80; i++) + { + const int32 = round[i - 3] ^ round[i - 8] ^ round[i - 14] ^ round[i - 16]; + round[i] = rotate1(int32); // SHA0 has no rotate + } + } + + const functions = + [ + () => (S[1] & S[2] | ~S[1] & S[3]) + 0x5A827999, + () => (S[1] ^ S[2] ^ S[3]) + 0x6ED9EBA1, + () => (S[1] & S[2] | S[1] & S[3] | S[2] & S[3]) + 0x8F1BBCDC, + () => (S[1] ^ S[2] ^ S[3]) + 0xCA62C1D6 + ] + + for (let startOffset = 0; startOffset < paddedData.byteLength / 4; startOffset += 16) + { + initRound(startOffset); + + S.set(H) + + for (let r = 0, i = 0; r < 4; r++) + { + const f = functions[r] + const end = i + 20; + + do + { + const S0 = rotate5(S[0]) + f() + S[4] + round[i]; + S[4] = S[3]; + S[3] = S[2]; + S[2] = rotate30(S[1]); + S[1] = S[0]; + S[0] = S0; + } + while (++i < end) + } + + for (let i = 0; i < 5; i++) + H[i] += S[i] + } + + swapEndianness(H); + + return new Uint8Array(H.buffer) +} + +function rotate5(int32: number) +{ + return (int32 << 5) | (int32 >>> 27); // >>> for unsigned shift +} + +function rotate30(int32: number) +{ + return (int32 << 30) | (int32 >>> 2); +} + +function rotate1(int32: number) +{ + return (int32 << 1) | (int32 >>> 31); +} + +function initData(data: Uint8Array): DataView +{ + const dataLength = data.length + const extendedLength = dataLength + 9; // add 8 bytes for UInt64 length + 1 byte for "stop-bit" (0x80) + const paddedLength = Math.ceil(extendedLength / 64) * 64; // pad to 512 bits block + const paddedData = new Uint8Array(paddedLength) + + paddedData.set(data) + paddedData[dataLength] = 0x80 // append single 1 bit at end of data + + const dataView = new DataView(paddedData.buffer) + + // append UInt64 length + dataView.setUint32(paddedData.length - 4, dataLength << 3 , BigEndian) // dataLength in *bits* LO, (<< 3: x8 bits per byte) + dataView.setUint32(paddedData.length - 8, dataLength >>> 29, BigEndian) // dataLength in *bits* HI + + return dataView +} + +function swapEndianness(uint32Array: Uint32Array) +{ + const dv = new DataView(uint32Array.buffer) + for (let i = 0; i < uint32Array.byteLength; i += 4) + { + const uint32 = dv.getUint32(i, false) + dv.setUint32(i, uint32, true) + } +} + diff --git a/typescript/DataCache/src/server/dataCache/S3/UInt8Utils.ts b/typescript/DataCache/src/server/dataCache/S3/UInt8Utils.ts new file mode 100644 index 000000000..7e6c5d607 --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/S3/UInt8Utils.ts @@ -0,0 +1,56 @@ +export function pad(data: Uint8Array, length: number): Uint8Array +{ + if (length < data.byteLength) + throw new RangeError("length") + + const padded = new Uint8Array(length) + padded.set(data) + + return padded; +} + +export function concat(left: Uint8Array, right: Uint8Array): Uint8Array +{ + const c = new Uint8Array(left.length + right.length); + c.set(left); + c.set(right, left.length); + return c +} + +export function toHexString(data: Uint8Array) +{ + return [...data].map(byteToHex).join(''); +} + +function byteToHex(b: number) +{ + return b.toString(16).padStart(2, "0"); +} + +const b64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' + +export function toBase64(data : Uint8Array) : string +{ + const byteLength = data.byteLength + const base64LengthPadded = 4 * Math.ceil(byteLength / 3) + const base64Length = Math.ceil(byteLength / 3 * 4); + + const base64 = new Array(base64LengthPadded) + + for (let i = 0, o = 0; i < byteLength;) + { + const x = data[i++] + const y = data[i++] ?? 0 + const z = data[i++] ?? 0 + + base64[o++] = b64Chars[x >>> 2] + base64[o++] = b64Chars[(x << 4 | y >>> 4) & 63] + base64[o++] = b64Chars[(y << 2 | z >>> 6) & 63] + base64[o++] = b64Chars[z & 63] + } + + for (let i = base64LengthPadded; i > base64Length ;) + base64[--i] = "=" + + return base64.join('') +} \ No newline at end of file diff --git a/typescript/DataCache/src/server/dataCache/S3/Utf8.ts b/typescript/DataCache/src/server/dataCache/S3/Utf8.ts new file mode 100644 index 000000000..a7ea2951d --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/S3/Utf8.ts @@ -0,0 +1,10 @@ +export namespace Utf8 +{ + const encoder = new TextEncoder() + const decoder = new TextDecoder() + + export const encode = (text: string): Uint8Array => encoder.encode(text); + export const decode = (data: Uint8Array): string => decoder.decode(data); +} + + diff --git a/typescript/DataCache/src/server/dataCache/data.ts b/typescript/DataCache/src/server/dataCache/data.ts new file mode 100644 index 000000000..ccdbf6164 --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/data.ts @@ -0,0 +1,20 @@ +import {Timestamped} from "./types"; +import {isDefined, Maybe} from "../../utils/maybe"; + +export type DataRecord = Record + +export type DataPoint = Timestamped> +export type RecordSeries = Array +export type PointSeries = Array>> +export type DataSeries = Array> + +export function getPoints(recordSeries: RecordSeries, series: keyof DataRecord): PointSeries +{ + return recordSeries.map(p => ({time: p.time, value: isDefined(p.value) ? p.value[series] : undefined})) +} + +export function getData(recordSeries: RecordSeries, series: keyof DataRecord): DataSeries +{ + return recordSeries.map(p => (isDefined(p.value) ? p.value[series] : undefined)) +} + diff --git a/typescript/DataCache/src/server/dataCache/dataCache.ts b/typescript/DataCache/src/server/dataCache/dataCache.ts new file mode 100644 index 000000000..f26068c54 --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/dataCache.ts @@ -0,0 +1,167 @@ +import {TimeSpan, UnixTime} from "./time"; +import {Observable, Subject} from "rxjs"; +import {SkipList} from "./skipList/skipList"; +import {createDispatchQueue} from "./promiseQueue"; +import {SkipListNode} from "./skipList/skipListNode"; +import {RecordSeries} from "./data"; +import {isUndefined, Maybe} from "../../utils/maybe"; + + +export const FetchResult = +{ + notAvailable : "N/A", + tryLater : "Try Later" +} as const + +export type FetchResult = + | T + | typeof FetchResult.notAvailable + | typeof FetchResult.tryLater + +function reverseBits(x : number): number +{ + // https://stackoverflow.com/a/60227327/141397 + + x = (x & 0x55555555) << 1 | (x & 0xAAAAAAAA) >> 1; + x = (x & 0x33333333) << 2 | (x & 0xCCCCCCCC) >> 2; + x = (x & 0x0F0F0F0F) << 4 | (x & 0xF0F0F0F0) >> 4; + x = (x & 0x00FF00FF) << 8 | (x & 0xFF00FF00) >> 8; + x = (x & 0x0000FFFF) << 16 | (x & 0xFFFF0000) >> 16; + + return x >>> 0; +} + + +export default class DataCache> +{ + private readonly cache: SkipList> = new SkipList>() + private readonly resolution: TimeSpan; + + readonly #fetch: (t: UnixTime) => Promise>; + + private readonly fetchQueue = createDispatchQueue(6) + private readonly fetching: Set = new Set() + + public readonly gotData: Observable; + + constructor(fetch: (t: UnixTime) => Promise>, resolution: TimeSpan) + { + this.#fetch = fetch; + this.resolution = resolution; + this.gotData = new Subject() + } + + public prefetch(times: Array, clear = true) + { + if (clear) + { + this.fetching.clear() + this.fetchQueue.clear() + } + + const timesWithPriority = times.map((time, index) => ({time, priority: reverseBits(index)})) + timesWithPriority.sort((x, y) => x.priority - y.priority) + + for (let i = 0; i < timesWithPriority.length; i++) + { + const time = timesWithPriority[i].time.round(this.resolution) + const t = time.ticks; + + const node = this.cache.find(t); + if (node.index !== t) + this.fetchData(time); + } + } + + public get(timeStamp: UnixTime, fetch = true): Maybe + { + const time = timeStamp.round(this.resolution) + const t = time.ticks; + + const node = this.cache.find(t); + if (node.index === t) + return node.value + + if (fetch) + this.fetchData(time); + + return this.interpolate(node, t) + } + + public getSeries(sampleTimes: UnixTime[]): RecordSeries + { + this.prefetch(sampleTimes) + return sampleTimes.map(time => ({time, value: this.get(time, false)})) + } + + private interpolate(before: SkipListNode>, t: number): Maybe + { + const dataBefore = before.value + const after = before.next[0]; + const dataAfter = after.value + + if (isUndefined(dataBefore) && isUndefined(dataAfter)) + return undefined + + if (isUndefined(dataBefore)) + return dataAfter + + if (isUndefined(dataAfter)) + return dataBefore + + const p = t - before.index + const n = after.index - t + const pn = p + n + + let interpolated: Partial> = {} + + for (const k of Object.keys(dataBefore)) + { + interpolated[k] = (dataBefore[k] * n + dataAfter[k] * p) / pn + } + + return interpolated as T + } + + private fetchData(time: UnixTime) + { + const t = time.ticks; + + if (this.fetching.has(t)) // we are already fetching t + return + + const fetchTask = () => + { + const onSuccess = (data: FetchResult) => + { + if (data === FetchResult.tryLater) + { + console.warn(FetchResult.tryLater) + return + } + + const value = data === FetchResult.notAvailable ? undefined : data; + this.cache.insert(value, t) + } + + const onFailure = (_: unknown) => + { + console.error(time.ticks + " FAILED!") // should not happen + } + + const dispatch = () => + { + this.fetching.delete(time.ticks); + (this.gotData as Subject).next(time); + } + + return this.#fetch(time) + .then(d => onSuccess(d), f => onFailure(f)) + .finally(() => dispatch()) + }; + + this.fetching.add(t) + this.fetchQueue.dispatch(() => fetchTask()); + } + +} \ No newline at end of file diff --git a/typescript/DataCache/src/server/dataCache/graphCanvas.ts b/typescript/DataCache/src/server/dataCache/graphCanvas.ts new file mode 100644 index 000000000..433cb4216 --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/graphCanvas.ts @@ -0,0 +1,167 @@ +import {isDefined} from "../../utils/maybe"; + +export class GraphCanvas +{ + private constructor(private readonly canvasElement: HTMLCanvasElement, + private readonly ctx: CanvasRenderingContext2D, + private readonly scaleX: number = 1, + private readonly scaleY: number = 1, + private readonly translateX: number = 0, + private readonly translateY: number = 0, + ) + { + + } + + public static fromCanvasElement(canvasElement: HTMLCanvasElement): GraphCanvas + { + const ctx = canvasElement.getContext("2d") as CanvasRenderingContext2D + return new GraphCanvas(canvasElement, ctx) + } + + public transform(scaleX: number, scaleY: number, translateX: number, translateY: number): GraphCanvas + { + return new GraphCanvas(this.canvasElement, + this.ctx, + this.scaleX * scaleX, + this.scaleY * scaleY, + this.translateX + translateX * this.scaleX, + this.translateY + translateY * this.scaleY) + } + + + public clear(bgStyle?: string | CanvasGradient | CanvasPattern) + { + if (isDefined(bgStyle)) + { + this.ctx.fillStyle = bgStyle + this.ctx.fillRect(0, 0, this.canvasElement.width, this.canvasElement.height) + } + else + { + this.ctx.clearRect(0, 0, this.canvasElement.width, this.canvasElement.height) + } + } + + + public beginPath() + { + this.ctx.beginPath() + } + + public closePath() + { + this.ctx.closePath() + } + + public moveTo(x: number, y: number) + { + this.ctx.moveTo(this.transformX(x), this.transformY(y)) + } + + public lineTo(x: number, y: number) + { + this.ctx.lineTo(this.transformX(x), this.transformY(y)) + } + + public fill() + { + this.ctx.fill(); + } + + public stroke() + { + this.ctx.stroke(); + } + + public save() + { + this.ctx.save(); + } + + public restore() + { + this.ctx.restore(); + } + + public set fillStyle(style: string | CanvasGradient | CanvasPattern) + { + this.ctx.fillStyle = style + } + + public get fillStyle(): string | CanvasGradient | CanvasPattern + { + return this.ctx.fillStyle + } + + public set strokeStyle(style: string | CanvasGradient | CanvasPattern) + { + this.ctx.strokeStyle = style + } + + public get strokeStyle(): string | CanvasGradient | CanvasPattern + { + return this.ctx.strokeStyle + } + + public set lineWidth(width: number) + { + this.ctx.lineWidth = width + } + + public get lineWidth(): number + { + return this.ctx.lineWidth + } + + public strokeCircle(x: number, y: number, radius: number, stroke?: string | CanvasGradient | CanvasPattern) + { + if (isDefined(stroke)) + this.ctx.strokeStyle = stroke + + this.ctx.beginPath(); + this.ctx.ellipse(this.transformX(x), this.transformY(y), radius, radius, 0, 0, 2 * Math.PI) + this.ctx.stroke(); + } + + public fillCircle(x: number, y: number, radius: number, fill?: string | CanvasGradient | CanvasPattern) + { + if (isDefined(fill)) + this.ctx.fillStyle = fill + + this.ctx.beginPath(); + this.ctx.ellipse(this.transformX(x), this.transformY(y), radius, radius, 0, 0, 2 * Math.PI) + this.ctx.fill(); + } + + + public fillRect(x: number, y: number, w: number, h: number) + { + this.ctx.fillRect(this.transformX(x), this.transformY(y), w, h) + } + + public strokeRect(x: number, y: number, w: number, h: number) + { + this.ctx.strokeRect(this.transformX(x), this.transformY(y), w, h) + } + + public transformX(x: number) + { + return x * this.scaleX + this.translateX + } + + public transformY(y: number) + { + return y * this.scaleY + this.translateY + } + + public transformBackX(x: number) + { + return (x - this.translateX) / this.scaleX + } + + public transformBackY(y: number) + { + return (y - this.translateY) / this.scaleY + } +} \ No newline at end of file diff --git a/typescript/DataCache/src/server/dataCache/linq.ts b/typescript/DataCache/src/server/dataCache/linq.ts new file mode 100644 index 000000000..1d566f445 --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/linq.ts @@ -0,0 +1,20 @@ +// 0. Import Module +import { initializeLinq, IEnumerable } from "linq-to-typescript" +// 1. Declare that the JS types implement the IEnumerable interface +declare global { + interface Array extends IEnumerable { } + interface Uint8Array extends IEnumerable { } + interface Uint8ClampedArray extends IEnumerable { } + interface Uint16Array extends IEnumerable { } + interface Uint32Array extends IEnumerable { } + interface Int8Array extends IEnumerable { } + interface Int16Array extends IEnumerable { } + interface Int32Array extends IEnumerable { } + interface Float32Array extends IEnumerable { } + interface Float64Array extends IEnumerable { } + interface Map extends IEnumerable<[K, V]> { } + interface Set extends IEnumerable { } + interface String extends IEnumerable { } +} +// 2. Bind Linq Functions to Array, Map, etc +initializeLinq() \ No newline at end of file diff --git a/typescript/DataCache/src/server/dataCache/observableUtils.ts b/typescript/DataCache/src/server/dataCache/observableUtils.ts new file mode 100644 index 000000000..319ef60a8 --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/observableUtils.ts @@ -0,0 +1,63 @@ +import {map, MonoTypeOperatorFunction, Observable, tap} from "rxjs"; +import {fastHash} from "./utils"; +import {HslColor, toCssColor} from "./color"; + +type ConcatX = [ + ...T[0], ...T[1], ...T[2], ...T[3], ...T[4], + ...T[5], ...T[6], ...T[7], ...T[8], ...T[9], + ...T[10], ...T[11], ...T[12], ...T[13], ...T[14], + ...T[15], ...T[16], ...T[17], ...T[18], ...T[19] +]; +type Flatten = + ConcatX<[...{ [K in keyof T]: T[K] extends any[] ? T[K] : [T[K]] }, ...[][]]> + + +export function flatten() +{ + return function>(source: Observable) + { + return source.pipe + ( + map(a => a.flat() as Flatten) + ) + } +} + +type RecursiveObject = T extends object ? T : never; + +type Terminals = +{ + [Key in keyof TModel]: TModel[Key] extends RecursiveObject + ? Terminals + : T; +}; + + + +export function debug(tag: string = "debug"): MonoTypeOperatorFunction +{ + const hslColor: HslColor = + { + h: fastHash(tag), + s: (fastHash('s' + tag) % 30 + 30) / 100, + l: (fastHash('l' + tag) % 30 + 30) / 100 + } + + const color = toCssColor(hslColor) + const css = `background: ${color}; color: #fff; padding: 3px; font-size: 9px;` + + return tap({ + next(value) + { + console.log(`%c[${tag}]`, css, value) + }, + error(error) + { + console.log(`%c[${tag}]`, css, error) + }, + complete() + { + console.log(`%c[${tag}]`, css) + } + }) +} \ No newline at end of file diff --git a/typescript/DataCache/src/server/dataCache/promiseQueue.ts b/typescript/DataCache/src/server/dataCache/promiseQueue.ts new file mode 100644 index 000000000..fd2b6bc0c --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/promiseQueue.ts @@ -0,0 +1,51 @@ + + +export function createDispatchQueue(maxInflight: number, debug = false): { dispatch: (task: () => Promise) => number; clear: () => void } +{ + const queue: Array<() => Promise> = [] + + let inflight = 0; + + function done() + { + inflight-- + + if (debug && inflight + queue.length === 0) + console.log("queue empty") + + if (inflight < maxInflight && queue.length > 0) + { + const task = queue.pop()! + inflight++ + task().finally(() => done()) + } + } + + function dispatch(task: () => Promise) : number + { + if (inflight < maxInflight) + { + inflight++; + task().finally(() => done()) + } + else + { + if (debug && queue.length === 0) + console.log("queue in use") + + queue.push(task) + } + + return queue.length + } + + function clear() + { + // https://stackoverflow.com/questions/1232040/how-do-i-empty-an-array-in-javascript + queue.length = 0 + if (debug) + console.log("queue cleared") + } + + return {dispatch, clear} +} \ No newline at end of file diff --git a/typescript/DataCache/src/server/dataCache/skipList/skipList.ts b/typescript/DataCache/src/server/dataCache/skipList/skipList.ts new file mode 100644 index 000000000..24187502d --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/skipList/skipList.ts @@ -0,0 +1,80 @@ +import {find, findPath, insert, Path, SkipListNode} from "./skipListNode"; + +export class SkipList +{ + public readonly head: SkipListNode; + public readonly tail: SkipListNode; + + private readonly nLevels: number; + + private _length = 0 + + constructor(nLevels: number = 20) + { + // TODO: auto-levels + + this.tail = + { + index: Number.MAX_VALUE, + next: [], + value: undefined! + }; + + this.head = + { + index: Number.MIN_VALUE, + next: Array(nLevels).fill(this.tail), + value: undefined! + }; + + this.nLevels = nLevels + } + + public find(index: number, startNode = this.head, endNode = this.tail): SkipListNode + { + return find(index, startNode, endNode) + } + + private findPath(index: number, startNode = this.head, endNode = this.tail): Path + { + return findPath(index, startNode, endNode) + } + + public insert(value: T, index: number): SkipListNode + { + const path = this.findPath(index) + const node = path[0]; + + if (node.index === index) // overwrite + { + node.value = value + return node + } + + const nodeToInsert = {value, index, next: []} as SkipListNode + + const rnd = (Math.random() * (1 << this.nLevels)) << 0; + + for (let level = 0; level < this.nLevels; level++) + { + insert(nodeToInsert, path[level], level) + + if ((rnd & (1 << level)) === 0) + break + } + + this._length += 1 + + return nodeToInsert; + } + + get length(): number + { + return this._length; + } + + // public remove(index: number): void + // { + // // TODO + // } +} diff --git a/typescript/DataCache/src/server/dataCache/skipList/skipListNode.ts b/typescript/DataCache/src/server/dataCache/skipList/skipListNode.ts new file mode 100644 index 000000000..d523c6de2 --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/skipList/skipListNode.ts @@ -0,0 +1,52 @@ +import {asMutableArray} from "../types"; + +export type Next = { readonly next: ReadonlyArray> } +export type Index = { readonly index: number } +export type Indexed = Index & { value: T } +export type SkipListNode = Next & Indexed +export type Path = SkipListNode[]; + +export function find(index: number, startNode: SkipListNode, endNode: SkipListNode): SkipListNode +{ + let node = startNode + + for (let level = startNode.next.length - 1; level >= 0; level--) + node = findOnLevel(index, node, endNode, level) + + return node +} + +export function findOnLevel(index: number, startNode: SkipListNode, endNode: SkipListNode, level: number): SkipListNode +{ + let node: SkipListNode = startNode + + while (true) + { + const next = node.next[level] + + if (index < next.index || endNode.index < next.index) + return node + + node = next + } +} + +export function findPath(index: number, startNode: SkipListNode, endNode: SkipListNode): Path +{ + const path = Array(startNode.next.length - 1) + let node = startNode + + for (let level = startNode.next.length - 1; level >= 0; level--) + { + node = findOnLevel(index, node, endNode, level) + path[level] = node + } + + return path +} + +export function insert(nodeToInsert: SkipListNode, after: SkipListNode, onLevel: number): void +{ + asMutableArray(nodeToInsert.next)[onLevel] = after.next[onLevel] + asMutableArray(after.next)[onLevel] = nodeToInsert +} \ No newline at end of file diff --git a/typescript/DataCache/src/server/dataCache/stringUtils.ts b/typescript/DataCache/src/server/dataCache/stringUtils.ts new file mode 100644 index 000000000..e9cbaca4a --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/stringUtils.ts @@ -0,0 +1,5 @@ +export function trim(str: string, string: string = " "): string +{ + const pattern = '^[' + string + ']*(.*?)[' + string + ']*$'; + return str.replace(new RegExp(pattern), '$1') +} \ No newline at end of file diff --git a/typescript/DataCache/src/server/dataCache/time.ts b/typescript/DataCache/src/server/dataCache/time.ts new file mode 100644 index 000000000..43b8501c5 --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/time.ts @@ -0,0 +1,302 @@ +import {trim} from "./stringUtils"; + +export class UnixTime +{ + private constructor(readonly ticks: number) + { + } + + public static readonly Epoch = new UnixTime(0) + + public static now(): UnixTime + { + return UnixTime.fromTicks(Date.now() / 1000) + } + + public static fromDate(date: Date): UnixTime + { + return UnixTime.fromTicks(date.getTime() / 1000) + } + + public toDate(): Date + { + return new Date(this.ticks * 1000) + } + + public static fromTicks(ticks: number): UnixTime + { + return new UnixTime(ticks) + } + + public later(timeSpan: TimeSpan): UnixTime + { + return new UnixTime(this.ticks + timeSpan.ticks) + } + + public move(ticks: number): UnixTime + { + return new UnixTime(this.ticks + ticks) + } + + public earlier(timeSpan: TimeSpan): UnixTime + { + return new UnixTime(this.ticks - timeSpan.ticks) + } + + public isEarlierThan(time: UnixTime): boolean + { + return this.ticks < time.ticks + } + + public isEarlierThanOrEqual(time: UnixTime): boolean + { + return this.ticks <= time.ticks + } + + public isLaterThan(time: UnixTime): boolean + { + return this.ticks > time.ticks + } + + public isLaterThanOrEqual(time: UnixTime): boolean + { + return this.ticks >= time.ticks + } + + public isEqual(time: UnixTime): boolean + { + return this.ticks === time.ticks + } + + public isInTheFuture(): boolean + { + return this.isLaterThan(UnixTime.now()) + } + + public isInThePast(): boolean + { + return this.ticks < UnixTime.now().ticks + } + + public round(ticks:number) : UnixTime + public round(duration: TimeSpan) : UnixTime + public round(durationOrTicks: TimeSpan | number) : UnixTime + { + const ticks = (typeof durationOrTicks === "number") ? durationOrTicks : durationOrTicks.ticks + + return new UnixTime(Math.round(this.ticks / ticks) * ticks) + } + + public rangeTo(time: UnixTime): TimeRange + { + return TimeRange.fromTimes(this, time); + } + + public rangeBefore(timeSpan: TimeSpan): TimeRange + { + return TimeRange.fromTimes(this.earlier(timeSpan), this); + } + + public rangeAfter(timeSpan: TimeSpan): TimeRange + { + return TimeRange.fromTimes(this, this.later(timeSpan)); + } + + public toString() : string + { + return this.ticks.toString() + } +} + + +export class TimeSpan +{ + private constructor(readonly ticks: number) {} + + get milliSeconds(): number { return this.ticks * 1000 } + get seconds() : number { return this.ticks } + get minutes() : number { return this.ticks / 60 } + get hours() : number { return this.minutes / 60 } + get days() : number { return this.hours / 24 } + get weeks() : number { return this.days / 7 } + + public static fromTicks (t: number): TimeSpan { return new TimeSpan(t) } + public static fromSeconds(t: number): TimeSpan { return TimeSpan.fromTicks(t) } + public static fromMinutes(t: number): TimeSpan { return TimeSpan.fromSeconds(t*60) } + public static fromHours (t: number): TimeSpan { return TimeSpan.fromMinutes(t*60) } + public static fromDays (t: number): TimeSpan { return TimeSpan.fromHours(t*24) } + public static fromWeeks (t: number): TimeSpan { return TimeSpan.fromDays(t*7) } + + public static span(from: UnixTime, to: UnixTime) : TimeSpan + { + return TimeSpan.fromTicks(Math.abs(to.ticks - from.ticks)) + } + + public add(timeSpan: TimeSpan) : TimeSpan + { + return TimeSpan.fromTicks(this.ticks + timeSpan.ticks) + } + + public subtract(timeSpan: TimeSpan) : TimeSpan + { + return TimeSpan.fromTicks(this.ticks - timeSpan.ticks) + } + + public divide(n: number) : TimeSpan + { + if (n <= 0) + throw 'n must be positive'; + + return TimeSpan.fromTicks(this.ticks/n) + } + + public multiply(n: number) : TimeSpan + { + if (n < 0) + throw 'n cannot be negative'; + + return TimeSpan.fromTicks(this.ticks * n) + } + + public round(ticks:number) : TimeSpan + public round(duration: TimeSpan) : TimeSpan + public round(durationOrTicks: TimeSpan | number) : TimeSpan + { + const ticks = (typeof durationOrTicks === "number") + ? durationOrTicks + : durationOrTicks.ticks + + return TimeSpan.fromTicks(Math.round(this.ticks / ticks) * ticks) + } + + + public toString() : string + { + let dt = 60*60*24*7 + + let ticks = this.ticks; + + if (ticks === 0) + return "0s" + + ticks = Math.abs(ticks) + + const nWeeks = Math.floor(ticks / dt) + ticks -= nWeeks * dt + + dt /= 7 + const nDays = Math.floor(ticks / dt) + ticks -= nDays * dt + + dt /= 24 + const nHours = Math.floor(ticks / dt) + ticks -= nHours * dt + + dt /= 60 + const nMinutes = Math.floor(ticks / dt) + ticks -= nMinutes * dt + + dt /= 60 + const nSeconds = Math.floor(ticks / dt) + + let s = "" + + if (nWeeks > 0) s += nWeeks .toString() + "w " + if (nDays > 0) s += nDays .toString() + "d " + if (nHours > 0) s += nHours .toString() + "h " + if (nMinutes > 0) s += nMinutes.toString() + "m " + if (nSeconds > 0) s += nSeconds.toString() + "s" + + return trim(s); + } +} + +export class TimeRange +{ + private constructor(private readonly from: number, private readonly to: number) + { + } + + public get start(): UnixTime + { + return UnixTime.fromTicks(this.from) + } + + public get mid(): UnixTime + { + return UnixTime.fromTicks((this.from + this.to) / 2) + } + + + public get end(): UnixTime + { + return UnixTime.fromTicks(this.to) + } + + public get duration(): TimeSpan + { + return TimeSpan.fromTicks(this.to - this.from) + } + + public static fromTimes(from: UnixTime, to: UnixTime): TimeRange + { + return from.isLaterThan(to) + ? new TimeRange(to.ticks, from.ticks) + : new TimeRange(from.ticks, to.ticks) + } + + public isInside(time: number) : boolean; + public isInside(time: UnixTime) : boolean; + public isInside(time: UnixTime | number) + { + const t = time instanceof UnixTime ? time.ticks : time + + return t >= this.from && t < this.to + } + + public sample(period: TimeSpan): UnixTime[] + { + const samples = [] + + for (let t = this.from; t < this.to; t += period.ticks) + samples.push(UnixTime.fromTicks(t)); + + return samples + } + + public subdivide(n: number) : TimeRange[] + { + if (n <= 0) + throw 'n must be positive'; + + const period = TimeSpan.fromTicks(this.duration.ticks / n); + if (period === this.duration) + return [this]; + + const samples = this.sample(period); + + const ranges : TimeRange[] = [] + + for (let i = 0; i < samples.length;) + ranges.push(TimeRange.fromTimes(samples[i], samples[++i])) + + return ranges + } + + + public earlier(dt: TimeSpan) : TimeRange + { + return new TimeRange(this.from - dt.ticks, this.to - dt.ticks) + } + + public later(dt: TimeSpan) : TimeRange + { + return new TimeRange(this.from + dt.ticks, this.to + dt.ticks) + } + + public move(ticks: number) : TimeRange + { + return new TimeRange(this.from + ticks, this.to + ticks) + } +} + diff --git a/typescript/DataCache/src/server/dataCache/types.ts b/typescript/DataCache/src/server/dataCache/types.ts new file mode 100644 index 000000000..665fd3663 --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/types.ts @@ -0,0 +1,21 @@ +import {UnixTime} from "./time"; + +export type Timestamped = { time: UnixTime, value: T } + +export type Pair = [T1, T2] + +export type Position = { readonly x: number, readonly y: number } +export type Direction = { readonly dx: number, readonly dy: number } +export type Size = { readonly width: number, readonly height: number } +export type Rect = Position & Size + +export type Mutable = { -readonly [P in keyof T]: T[P] }; + +export type FieldKey = { [P in keyof T]: T[P] extends (...args: any) => any ? never : P }[keyof T]; +export type AllFields = Pick>; +export type SomeFields = Partial> +export const asMutable = (t: T) => (t as Mutable); +export const asMutableArray = (t: ReadonlyArray) => (t as Array); +export const cast = (t: unknown) => (t as T); + +export type Rename = Pick> & { [P in N]: T[K] } \ No newline at end of file diff --git a/typescript/DataCache/src/server/dataCache/utils.ts b/typescript/DataCache/src/server/dataCache/utils.ts new file mode 100644 index 000000000..c5c5003fc --- /dev/null +++ b/typescript/DataCache/src/server/dataCache/utils.ts @@ -0,0 +1,119 @@ +import {IEnumerable} from "linq-to-typescript"; +import {isDefined} from "../../utils/maybe"; + +//export type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never + +export type Nothing = Record +// eslint-disable-next-line @typescript-eslint/no-empty-function + + + +export function fastHash(str: string): number +{ + const signed = str + .split('') + .reduce((p, c) => ((p << 5) - p) + c.charCodeAt(0) | 0, 0); + + return Math.abs(signed); +} + + + + + +// export function flattenObject(obj: object) : object +// { +// const flattened = {} +// +// for (const key of Object.keys(obj)) +// { +// // @ts-ignore +// const value = obj[key] +// +// if (typeof value === 'object' && value !== null && !Array.isArray(value)) +// { +// Object.assign(flattened, flattenObject(value)) +// } +// else +// { +// // @ts-ignore +// flattened[key] = value +// } +// } +// +// return flattened +// } +//return function>(source: Observable) + + + +export function* pairwise(iterable: Iterable, init?: T): Generator<[T, T]> +{ + const it = iterable[Symbol.iterator]() + + let first : T; + + if (isDefined(init)) + { + first = init + } + else + { + const f = it.next() + if (f.done) + return + + first = f.value + } + + let second = it.next() + + while(!second.done) + { + yield [first, second.value] + first = second.value + second = it.next() + } +} + +export function arraysEqual(a: Array, b: Array) +{ + if (a === b) return true; + if (a.length !== b.length) return false; + + for (let i = 0; i < a.length; ++i) + { + if (a[i] !== b[i]) return false; + } + + return true; +} + +export function mod(a:number, b:number) +{ + return ((a % b) + b) % b; +} + +export function clamp(a: number, min: number, max: number) +{ + return a > max ? max + : a < min ? min + : a +} + + +export function isDST(d : Date) +{ + const jan = new Date(d.getFullYear(), 0, 1).getTimezoneOffset(); + const jul = new Date(d.getFullYear(), 6, 1).getTimezoneOffset(); + + return Math.max(jan, jul) != d.getTimezoneOffset(); +} + +export function Transpose(src: IEnumerable>): IEnumerable> +{ + return src + .selectMany(line => line.select((element, column) => ({element, column}))) + .groupBy(i => i.column) + .select(g => g.select(e => e.element)); +} \ No newline at end of file diff --git a/typescript/DataCache/src/server/utils/fileSystem.ts b/typescript/DataCache/src/server/utils/fileSystem.ts new file mode 100644 index 000000000..f9975e8d8 --- /dev/null +++ b/typescript/DataCache/src/server/utils/fileSystem.ts @@ -0,0 +1,46 @@ +import fs from "fs"; + +export function doesFileExist(path: string): boolean +{ + try + { + fs.accessSync(path, fs.constants.F_OK); + return true; + } + catch (e) + { + return false; + } +} + +export function doesDirExist(path: string): boolean +{ + try + { + fs.readdirSync(path) + return true; + } + catch (e) + { + return false; + } +} + +export function readJsonFile(path: string) +{ + const data = fs.readFileSync(path, "utf-8") + return JSON.parse(data) as T +} + +export function writeJsonFile(path: string, contents: T) +{ + const data = JSON.stringify(contents) + return fs.writeFileSync(path, data, "utf-8") +} + +export function writeJsonFilePretty(path: string, contents: T) +{ + const data = JSON.stringify(contents,undefined,2) + return fs.writeFileSync(path, data, "utf-8") +} + diff --git a/typescript/DataCache/src/server/utils/httpResponse.ts b/typescript/DataCache/src/server/utils/httpResponse.ts new file mode 100644 index 000000000..466b3e7b2 --- /dev/null +++ b/typescript/DataCache/src/server/utils/httpResponse.ts @@ -0,0 +1,124 @@ +import {isDefined, isUndefined, Maybe} from "../../utils/maybe"; +import {Dictionary} from "../../utils/utilityTypes"; +import MimeType from "./mime"; +import {promisify} from "util"; +import fs from "fs"; +import http, {IncomingMessage, ServerResponse} from "http"; +import {entries} from "../../utils/utils"; +import {getLogger} from "../../utils/logging"; + +const log = getLogger("HTTP") +const readFile = promisify(fs.readFile) + +export type HttpResponse = { + body: Maybe + headers : Dictionary + statusCode: number +} + + +function contentTypeHeader(mimeType: string) +{ + return {['Content-type']: mimeType}; +} + +function forbidden(message = "403 : forbidden", headers: Dictionary = {}): HttpResponse +{ + return text(message, 403, headers) +} + +function notFound(message ="404 : not found", headers: Dictionary = {}): HttpResponse +{ + return text(message, 404, headers) +} + +function text(text: string, statusCode = 200, headers: Dictionary = {}): HttpResponse +{ + return { + statusCode: statusCode, + headers : {...headers, ...contentTypeHeader('text/plain')}, + body : text + }; +} + +function json(json: Dictionary, + replacer?: (k: string, v: unknown) => unknown, + headers: Dictionary = {}): HttpResponse +{ + return { + statusCode: 200, + headers : {...headers, ['Content-type']: MimeType.json}, + body: JSON.stringify(json, replacer) + } +} + +function empty(headers: Dictionary = {}): HttpResponse +{ + return { + statusCode: 200, + headers, + body: undefined + } +} + +function ok(body: Maybe, headers: Dictionary = {}): HttpResponse +{ + return { + statusCode: 200, + headers, + body + } +} + +async function file(localRootPath: string, urlPath: string, headers: Dictionary = {}, defaultPath = "/"): Promise +{ + if (urlPath.contains('..')) + return HTTP.forbidden(); + + const localPath = localRootPath + (urlPath === "/" ? defaultPath : urlPath); + + const body = await readFile(localPath).catch(_ => undefined) + + if (isUndefined(body)) + return HTTP.notFound(); + + if (!('Content-type' in headers)) + { + headers = {...headers, ...contentTypeHeader(MimeType.guessFromPath(localPath))} + } + + return HTTP.ok(body, headers) +} + +function createServer(serve: (request: IncomingMessage) => Promise) +{ + async function wrapServe(request: IncomingMessage, response: ServerResponse): Promise + { + const r = await serve(request) + + entries(r.headers).forEach(([k, v]) => response.setHeader(k, v)) + + response.statusCode = r.statusCode + + if (isDefined(r.body)) + response.end(r.body) + else + response.end() + } + + return http.createServer(wrapServe); +} + +const HTTP = +{ + contentTypeHeader, + forbidden, + notFound, + ok, + json, + empty, + file, + createServer +} + +export default HTTP; diff --git a/typescript/DataCache/src/server/utils/mime.ts b/typescript/DataCache/src/server/utils/mime.ts new file mode 100644 index 000000000..ede6484cd --- /dev/null +++ b/typescript/DataCache/src/server/utils/mime.ts @@ -0,0 +1,32 @@ +import PlatformPath from "path"; +import {isDefined, isUndefined} from "../../utils/maybe"; + + +function guessFromPath(path: string) : string +{ + const ext = PlatformPath.parse(path).ext?.substring(1) as keyof typeof MimeType; + + const mimeType = MimeType[ext] + + return isDefined(mimeType) && typeof mimeType === "string" + ? mimeType + : 'application/octet-stream' +} + +const MimeType = +{ + ico : 'image/x-icon', + html: 'text/html; charset=UTF-8', + js : 'text/javascript', + json: 'application/json; charset=UTF-8', + css : 'text/css; charset=UTF-8', + png : 'image/png', + jpg : 'image/jpeg', + wav : 'audio/wav', + mp3 : 'audio/mpeg', + svg : 'image/svg+xml; charset=UTF-8', + pdf : 'application/pdf', + guessFromPath +}; + +export default MimeType \ No newline at end of file diff --git a/typescript/DataCache/src/server/utils/requestUtils.ts b/typescript/DataCache/src/server/utils/requestUtils.ts new file mode 100644 index 000000000..8757cb3cc --- /dev/null +++ b/typescript/DataCache/src/server/utils/requestUtils.ts @@ -0,0 +1,45 @@ +import {IncomingMessage} from "http"; +import {firstValueFrom, map, Observable, startWith, toArray} from "rxjs"; + +export function observeData(request: IncomingMessage, maxLength: number = Number.POSITIVE_INFINITY): Observable +{ + let nBytes = 0; + + return new Observable(subscriber => + { + request.on('end', () => subscriber.complete()); + request.on('data', (data: Uint8Array) => + { + nBytes += data.byteLength + + if (nBytes <= maxLength) + subscriber.next(data); + else + { + const error = `too much data: expected ${maxLength} bytes or less, got ${nBytes} bytes.`; + subscriber.error(error); + request.destroy(new Error(error)) + } + }); + }); +} + +export async function getRequestJson(request: IncomingMessage, maxLength = 500000): Promise +{ + const data = await getData(request, maxLength) + return JSON.parse(data.toString()) +} + +const noData = new Uint8Array(0); + +export function getData(request: IncomingMessage, maxLength: number = Number.POSITIVE_INFINITY): Promise +{ + const data = observeData(request, maxLength).pipe + ( + startWith(noData), + toArray(), + map(b => Buffer.concat(b)), // cannot inline! + ) + + return firstValueFrom(data); +} \ No newline at end of file diff --git a/typescript/DataCache/src/server/utils/stringUtils.ts b/typescript/DataCache/src/server/utils/stringUtils.ts new file mode 100644 index 000000000..b377c01fe --- /dev/null +++ b/typescript/DataCache/src/server/utils/stringUtils.ts @@ -0,0 +1,22 @@ +export function toLowercaseAscii(string: string) +{ + return string + .normalize("NFD") + .replace(/[\u0300-\u036f]/g, "") + .toLowerCase(); +} + +export function containsIgnoringAccents(string: string, substring: string) +{ + if (substring === "") return true; + if (string === "") return false; + + substring = "" + substring; + + if (substring.length > string.length) + return false; + + return toLowercaseAscii(string).includes(toLowercaseAscii(substring)); +} + + diff --git a/typescript/DataCache/src/server/utils/utils.ts b/typescript/DataCache/src/server/utils/utils.ts new file mode 100644 index 000000000..bca2fd7ab --- /dev/null +++ b/typescript/DataCache/src/server/utils/utils.ts @@ -0,0 +1,37 @@ + +import {IncomingMessage} from "http"; +import {Dictionary} from "../../utils/utilityTypes"; +import {from} from "linq-to-typescript"; +import {isUndefined, Maybe} from "../../utils/maybe"; + +type StringValued = +{ + [Key in keyof T]: T[Key] extends number ? Maybe + : T[Key] extends string ? Maybe + : T[Key] extends boolean ? Maybe + : never +} + +export function getQueryParams(request: IncomingMessage): Maybe> +{ + if (isUndefined(request.url)) + return undefined + + const url = new URL(request.url, `https://${request.headers.host}/`); + + const query: Dictionary = {} + const urlSearchParams = new URLSearchParams(url.search); + + if (!from(urlSearchParams.entries()).any()) + return undefined + + for (const [key, value] of urlSearchParams.entries()) + query[key] = value; + + return query as StringValued; +} + +export function getPath(req: IncomingMessage) +{ + return new URL(req.url!, `https://${req.headers.host}/`).pathname; +} \ No newline at end of file diff --git a/typescript/DataCache/src/server/vpn/vpn.ts b/typescript/DataCache/src/server/vpn/vpn.ts new file mode 100644 index 000000000..822140e7b --- /dev/null +++ b/typescript/DataCache/src/server/vpn/vpn.ts @@ -0,0 +1,114 @@ +import fs from "fs"; +import fetch from "node-fetch"; +import {getLogger} from "../../utils/logging"; +import {doesDirExist, doesFileExist} from "../utils/fileSystem"; +import {Dictionary} from "../../utils/utilityTypes"; + +const log = getLogger('VPM') + +const vpnIp = "http://10.2.0.1" +const rxIp = /ifconfig-push +10\.2\.\d+\.\d+/g; +const ccdDir = "/etc/openvpn/server/Salino/ccd"; +const vpnStatusFile = "/var/log/openvpn/status"; + +const useFs = doesFileExist(vpnStatusFile) && doesDirExist(ccdDir) + +export type VpnIps = Dictionary; + +function vpn(vpnName: string): Promise +{ + return fetch(`${vpnIp}/vpn/${vpnName}`) + .then(r => r.text()) + .then(t => t.match(rxIp)?.firstOrDefault()?.replace("ifconfig-push", "").trim() ?? "") +} + +function getVpnIpFromFs(vpnName: string): string +{ + return fs + .readFileSync(`${ccdDir}/${vpnName}`, 'utf-8') + .match(rxIp) + ?.firstOrDefault() + ?.replace("ifconfig-push", "") + .trim() ?? "" +} + +// function getVpnOnlineStatusFromHttp(): Promise +// { +// return fetch(`${vpnIp}/vpnstatus.txt`) +// .then(r => r.text()) +// .then(s => s.split('\n')); +// } +// +// function getVpnOnlineStatusFromFs(): string[] +// { +// return fs +// .readFileSync(vpnStatusFile, 'utf8') +// .split('\n'); +// } + +function getVpnNamesFromHttp(): Promise +{ + return fetch(`${vpnIp}/vpn/`) + .then(r => r.json() as Promise<{ name: string, type: string }[]>) + .then(fs => fs + .where(n => n.type === "file") + .select(n => n.name) + .toArray() + ); +} + +function getCcdFilesFromFs() +{ + return fs + .readdirSync(ccdDir) + .where(p => !p.endsWith(".bak")) + .where(f => fs.lstatSync(`${ccdDir}/${f}`).isFile()) + .toArray(); +} + +function getVpnIpsFromFs(): VpnIps +{ + const ccdFiles = getCcdFilesFromFs(); + const vpnIps : VpnIps = {} + + for (const vpnName of ccdFiles) + vpnIps[vpnName] = getVpnIpFromFs(vpnName) + + return vpnIps +} + +export async function getVpnIpsFromHttp(): Promise +{ + log(`getting VPN status (http)`) + + const vpnNames = await getVpnNamesFromHttp(); + + const vpnIps : VpnIps = {} + + for (const vpnName of vpnNames) + vpnIps[vpnName] = await vpn(vpnName) + + return vpnIps +} + +// export function updateVpnStats(installation: VrmInstallation, vpnStats: VpnStatus[]) +// { +// if (!isDefined(installation.machineSerialNumber)) +// return; +// +// const stat = vpnStats.firstOrDefault(s => s.vpnName === installation.machineSerialNumber) +// if (stat === null) +// return; +// +// installation.vpnIp = stat.vpnIp; +// installation.vpnOnline = stat.vpnOnline; +// installation.vpnName = stat.vpnName; +// +// } + +export async function getVpnIps(): Promise +{ + return useFs + ? getVpnIpsFromFs() + : await getVpnIpsFromHttp() +} \ No newline at end of file diff --git a/typescript/DataCache/src/server/vpn/vpnSync.ts b/typescript/DataCache/src/server/vpn/vpnSync.ts new file mode 100644 index 000000000..2c86ab6f0 --- /dev/null +++ b/typescript/DataCache/src/server/vpn/vpnSync.ts @@ -0,0 +1,25 @@ +import {Milliseconds} from "../../utils/milliseconds"; + +import {getLogger} from "../../utils/logging"; +import {exhaustMap, Observable, of, repeat, share, tap} from "rxjs"; +import {getVpnIps, VpnIps} from "./vpn"; + +const updateDelay = Milliseconds.fromMinutes(5) + +const log = getLogger('VPN_SYNC') + +const vpnIps: Observable = of(0).pipe +( + tap(_ => log('fetching VPN info')), + exhaustMap(_ => getVpnIps()), + repeat({delay: updateDelay}), + tap(_ => log("VPN info updated")), + share() +) + +export default vpnIps + + + + + diff --git a/typescript/DataCache/src/server/vrm/api/api.ts b/typescript/DataCache/src/server/vrm/api/api.ts new file mode 100644 index 000000000..4a861d871 --- /dev/null +++ b/typescript/DataCache/src/server/vrm/api/api.ts @@ -0,0 +1,222 @@ +import fetch, {Request} from 'node-fetch'; +import {delay} from "../../../utils/utils"; +import {parseCreateTokenResponse, parseDevicesResponse, parseDiagnosticsResponse, parseGenericResponse, parseInstallationDataResponse, parseLoginResponse, parseTagsResponse} from "./parser"; +import {createTokenAuth} from "./auth"; +import {getLogger} from "../../../utils/logging"; +import {isDefined, isUndefined, Maybe} from "../../../utils/maybe"; +import {VrmApiAuth, VrmApiDevice, VrmApiDiagnostic, VrmApiError, VrmApiInstallation, VrmApiInstallationData} from "./apiTypes"; + +const vrmApiPrefix = 'https://vrmapi.victronenergy.com/v2/' // https://docs.victronenergy.com/vrmapi/overview.html +const nAttempts = 7; +const initialRetryDelayMs = 250; +const timeoutMs = 5000; +const log = getLogger('VRMAPI') + + +const tokenAuth = createTokenAuth(55450, "ccf470115ca6b729475b9f6a8722a7eb4036df043e7cbaf5002c2c18ccd2e4ee") + + +export function login(username: string, password: string): Promise +{ + log(`logging into VRM, user: ${username}`) + + const auth = undefined; + return vrmPost("auth/login", auth, {username, password}, parseLoginResponse) +} + +export async function createToken(auth: VrmApiAuth, tokenName: string): Promise +{ + log(`creating token "${tokenName}"`) + + const path = `users/${auth.idUser}/accesstokens/create`; + const token = await vrmPost(path, auth, {name: tokenName}, parseCreateTokenResponse); + + return createTokenAuth(auth.idUser, token) +} + +function createVrmRequest(path: string, method: "GET" | "POST", auth: Maybe, payload?: unknown) +{ + const url = path.startsWith(vrmApiPrefix) ? path + : path.startsWith('/') ? vrmApiPrefix + path.substring(1) + : vrmApiPrefix + path + + const body = isDefined(payload) + ? JSON.stringify(payload) + : undefined; + + const headers = isDefined(auth) + ? auth.header + : undefined + + return new Request(url, {method, body, headers}); +} + +function vrmGet(path: string, auth: Maybe, parseResponse: (response: unknown) => T) +{ + const request = createVrmRequest(path, "GET", auth) + return callVrmApi(request, parseResponse) +} + +function vrmPost(path: string, auth: Maybe, payload: unknown, parseResponse: (response: unknown) => T): Promise +{ + const request = createVrmRequest(path, "POST", auth, payload) + return callVrmApi(request, parseResponse) +} + +//https://vrmapi.victronenergy.com/v2/installations/34807/settings +//{"description":"Graber, Zürich/ZH | InnovEnergy","phonenumber":""} + +export function editInstallation(idSite: number, + name?: string, + tags?: string[], + auth: VrmApiAuth = tokenAuth): Promise +{ + if (isUndefined(name) && isUndefined(tags)) + return Promise.resolve(true) // nothing to do + + return vrmPost(`installations/${idSite}/settings`, + auth, + { + description: name, + tags: isDefined(tags) ? tags.map(t => t.toUpperCase()) : undefined + }, + parseGenericResponse) +} + +export function deleteInstallation(idSite: number, auth: VrmApiAuth = tokenAuth): Promise +{ + return vrmPost(`installations/${idSite}/remove`, auth, undefined, parseGenericResponse) +} + +export function addInstallation(installationName: string, vrmPortalId: string, auth: VrmApiAuth = tokenAuth): Promise +{ + const payload = + { + installation_identifier: vrmPortalId, + description: installationName + } + + return vrmPost(`users/${auth.idUser}/addsite`, auth, payload, parseGenericResponse) +} + + +export function listTokens(auth: VrmApiAuth): Promise +{ + log(`listing tokens of user: ${auth.idUser}`) + + return vrmGet(`users/${auth.idUser}/accesstokens/list`, auth, (r: unknown) => r) +} + +export function getInstallationSummaries(auth: VrmApiAuth = tokenAuth): Promise +{ + return vrmGet(`users/${auth.idUser}/installations`, auth, parseInstallationDataResponse) +} + + +function getDiagnostics(idSite: number, auth: VrmApiAuth = tokenAuth): Promise +{ + return vrmGet(`installations/${idSite}/diagnostics?count=1000`, auth, parseDiagnosticsResponse) +} + +export async function getDevices(idSite: number, auth: VrmApiAuth = tokenAuth): Promise +{ + const allDevices = await vrmGet(`installations/${idSite}/system-overview`, auth, parseDevicesResponse); + + allDevices.devices.forEach(d => d.configured = true) + allDevices.unconfigured_devices.forEach(d => d.configured = false) + + return [...allDevices.devices, ...allDevices.unconfigured_devices]; +} + +export function getTags(idSite: number, auth: VrmApiAuth = tokenAuth): Promise +{ + return vrmGet(`installations/${idSite}/tags`, auth, parseTagsResponse); +} + + +const isVrmError = (e: unknown): e is VrmApiError => e instanceof VrmApiError; + +function error(msg: string, error?: unknown): Promise +{ + if (isVrmError(error)) + return Promise.reject(error); // do not repackage existing errors (multiple catch clauses) + + if (isDefined(error)) + { + if (error instanceof Error) + return Promise.reject(new VrmApiError(`${msg}: ${error}`)); + } + + return Promise.reject(new VrmApiError(msg)); +} + +export async function getAllInstallationData(auth: VrmApiAuth = tokenAuth): Promise +{ + const installationSummaries = await getInstallationSummaries(auth) + + const installationData: VrmApiInstallationData[] = [] + + for (const installationSummary of installationSummaries/*.take(70)*/) // TODO: remove take + { + log(`fetching installation "${installationSummary.name}"`) + //await delay(1000) + + const tags = await getTags(installationSummary.idSite, auth); + const devices = await getDevices(installationSummary.idSite, auth); + + installationData.push({installation: installationSummary, devices, tags}) + } + + return installationData; +} + +export async function getInstallationData(vrmPortalId: string, auth: VrmApiAuth = tokenAuth): Promise> +{ + const installationSummaries = await getInstallationSummaries(auth) + + const installation = installationSummaries.firstOrDefault(s => s.identifier === vrmPortalId) + if (!isDefined(installation)) + return undefined + + const tags = await getTags(installation.idSite, auth); + const devices = await getDevices(installation.idSite, auth); + + return {installation, devices, tags} +} + + +async function callVrmApi(request: Request, parseVrmResponse: (r: unknown) => T): Promise +{ + let attempt = 1; + let retryDelayMs = initialRetryDelayMs; + + // eslint-disable-next-line no-constant-condition + while (true) + { + const response = fetch(request) + .catch(e => error("fetch failed", e)) + .then(r => r.ok ? r : error(`request failed: [${r.status}] ${r.statusText}`)) + .then(r => r.json()) + .catch(e => error("json parsing failed", e)) + .then(parseVrmResponse) + .catch(e => error("vrm parser failed", e)) + .catch(e => isVrmError(e) ? e : new VrmApiError(`unexpected error: ${e}`)) // gotta catch 'em all + + const timeout = delay(timeoutMs) + .then(_ => new VrmApiError(`the request timed out after ${timeoutMs}ms`)); + + const result: T | VrmApiError = await Promise.race([response, timeout]) + + if (!isVrmError(result)) + return result + + if (attempt >= nAttempts) + throw `Giving up after ${attempt} attempts` + + //log(`attempt ${attempt} failed: "${result.message}". retrying in ${retryDelayMs}ms`); + + attempt++ + await delay(retryDelayMs) // wait before retrying + retryDelayMs *= 2; // exponential backoff + } +} diff --git a/typescript/DataCache/src/server/vrm/api/apiTypes.ts b/typescript/DataCache/src/server/vrm/api/apiTypes.ts new file mode 100644 index 000000000..56b6deb28 --- /dev/null +++ b/typescript/DataCache/src/server/vrm/api/apiTypes.ts @@ -0,0 +1,130 @@ +import {Maybe} from "../../../utils/maybe"; + + + +export type VrmApiInstallationData = +{ + installation : VrmApiInstallation, + tags : string[], + devices : VrmApiDevice[] +} + + // "idSite":171797, + // "accessLevel":1, + // "owner":true, + // "is_admin":true, + // "name":"_ IBN tbd Weisshaubt, Neunkirch\/SH | Lutz Bodenm\u00fcller AG (2022-00070)", + // "identifier":"48e7da8755b5", + // "idUser":55450, + // "pvMax":0, + // "timezone":"Europe\/Berlin", + // "phonenumber":null, + // "notes":null, + // "geofence":null, + // "geofenceEnabled":false, + // "realtimeUpdates":true, + // "hasMains":1, + // "hasGenerator":0, + // "noDataAlarmTimeout":null, + // "alarmMonitoring":1, + // "invalidVRMAuthTokenUsedInLogRequest":0, + // "syscreated":1650888746, + // "grafanaEnabled":0, + // "shared":false, + // "device_icon":"battery", + // "alarm":false, + // "last_timestamp":1650964098, + // "current_time":"15:40", + // "timezone_offset":7200, + // "images":false, + // "view_permissions" + // "demo_mode":false, + // "mqtt_webhost":"webmqtt61.victronenergy.com", + // "high_workload":false, + +export type VrmApiInstallation = +{ + accessLevel: number, + name: string, + identifier: string, + hasMains: number, + hasGenerator: number, + noDataAlarmTimeout: Maybe, + syscreated: number, + tags: string[], + vrmLink: Maybe, + inverter: string, + inverterFw: string, + nbMppts: number, + nbPvInverters: number, + idSite: number, +} + +// "name":"PV Inverter", +// "customName":"", +// "productCode":"", +// "idSite":98487, +// "productName":"Fronius PV Inverter", +// "lastConnection":1652968325, +// "class":"device-pv-inverter device-icon-fronius-pv-inverter", +// "froniusDeviceType":"Fronius Symo 10.0-3-M", +// "pL":"AC input 1", +// "connection":"AC current sensor", +// "instance":21, +// "idDeviceType":7, +// "settings" + +export type VrmApiDevice = +{ + name: string, + firmwareVersion: Maybe, + instance: number, + lastConnection: number, + productName: string, + froniusDeviceType: Maybe, + pL: Maybe, + configured : boolean, +} + +export type VrmApiGateway = +{ + autoUpdate: string, + updateTo: string, + lastConnection: number, + identifier: string, + lastPowerUpOrRestart: number, + twoWayCommunication: boolean, + machineSerialNumber: string, +}; + + +export type VrmApiGatewayDevice = VrmApiDevice & VrmApiGateway +export type VrmApiDevices = { devices: VrmApiDevice[], unconfigured_devices: VrmApiDevice[] }; + +export type VrmApiDiagnostic = +{ + idSite: number, + timestamp: number, + Device: string, + instance: number, + idDataAttribute: number, + description: string, + formatWithUnit: string, + dbusServiceType: string, + dbusPath: string, + code: string, + bitmask: number, + formattedValue: string, + rawValue: string | number | boolean, + id: number +} + +export type VrmApiSuccess = { success: boolean } +export type VrmApiLoginResponse = VrmApiSuccess & { idUser: number, token: string } +export type VrmApiCreateTokenResponse = VrmApiSuccess & { idAccessToken: number, token: string } +export type VrmApiTagsResponse = VrmApiSuccess & { tags: string[] } +export type VrmApiRecordsResponse = VrmApiSuccess & { records: T } +export type VrmApiAuthHeader = { 'X-Authorization': string } +export type VrmApiAuth = { idUser: number, header: VrmApiAuthHeader } + +export class VrmApiError extends Error {constructor(message: string) { super(message); }} \ No newline at end of file diff --git a/typescript/DataCache/src/server/vrm/api/auth.ts b/typescript/DataCache/src/server/vrm/api/auth.ts new file mode 100644 index 000000000..91d665e1a --- /dev/null +++ b/typescript/DataCache/src/server/vrm/api/auth.ts @@ -0,0 +1,13 @@ +import {VrmApiAuth} from "./apiTypes"; + +export function createUserAuth(idUser: number, token: string): VrmApiAuth +{ + const header = {"X-Authorization": `Bearer ${token}`}; + return {idUser, header} +} + +export function createTokenAuth(idUser: number, token: string): VrmApiAuth +{ + const header = {"X-Authorization": `Token ${token}`}; + return {idUser, header} +} \ No newline at end of file diff --git a/typescript/DataCache/src/server/vrm/api/parser.ts b/typescript/DataCache/src/server/vrm/api/parser.ts new file mode 100644 index 000000000..468fcf8fe --- /dev/null +++ b/typescript/DataCache/src/server/vrm/api/parser.ts @@ -0,0 +1,68 @@ +import {createUserAuth} from "./auth"; +import {isUndefined} from "../../../utils/maybe"; +import {VrmApiAuth, VrmApiCreateTokenResponse, VrmApiDevices, VrmApiDiagnostic, VrmApiInstallation, VrmApiLoginResponse, VrmApiRecordsResponse, VrmApiSuccess, VrmApiTagsResponse} from "./apiTypes"; + + +export function parseLoginResponse(response: unknown): VrmApiAuth +{ + const r = response as VrmApiLoginResponse + + if (isUndefined(r.idUser) || isUndefined(r.token)) + throw "failed to parse VrmTokenResponse" + + return createUserAuth(r.idUser, r.token); +} + + +export function parseCreateTokenResponse(response: unknown) : string +{ + const r = response as VrmApiCreateTokenResponse + + if (isUndefined(r.token) || isUndefined(r.idAccessToken) || isUndefined(r.success)) + throw "failed to parse VrmCreateTokenResponse" + + if (!r.success) + throw "VrmCreateToken failed" + + return r.token +} + +export function parseTagsResponse(response: unknown): string[] +{ + const tagsResponse = response as VrmApiTagsResponse + + if (isUndefined(tagsResponse.tags) || isUndefined(tagsResponse.success)) + throw "failed to parse VrmTagsResponse" + + if (!tagsResponse.success) + throw "VrmTagsResponse failed" + + return tagsResponse.tags +} + +function parseRecordsResponse(response: unknown): T +{ + const recordsResponse = response as VrmApiRecordsResponse + + if (isUndefined(recordsResponse.records) || isUndefined(recordsResponse.success)) + throw "failed to parse VrmRecordsResponse" + + if (!recordsResponse.success) + throw "VrmRecordsResponse failed" + + return recordsResponse.records +} + +export function parseGenericResponse(response: unknown): boolean +{ + const recordsResponse = response as VrmApiSuccess + + if (isUndefined(recordsResponse.success)) + throw "failed to parse VrmRecordsResponse" + + return recordsResponse.success +} + +export const parseInstallationDataResponse = (r: unknown) => parseRecordsResponse(r); +export const parseDiagnosticsResponse = (r: unknown) => parseRecordsResponse(r); +export const parseDevicesResponse = (r: unknown) => parseRecordsResponse(r); \ No newline at end of file diff --git a/typescript/DataCache/src/server/vrm/convert.ts b/typescript/DataCache/src/server/vrm/convert.ts new file mode 100644 index 000000000..d649d387d --- /dev/null +++ b/typescript/DataCache/src/server/vrm/convert.ts @@ -0,0 +1,174 @@ +import {VrmApiGatewayDevice, VrmApiInstallationData} from "./api/apiTypes"; +import {VpnIps} from "../vpn/vpn"; +import {unwrap, Unwrap} from "../../utils/match"; +import {Database, Installation, VrmInstallation} from "../../api/data/types"; +import {getDescendantsWithPath} from "../../api/data/query"; +import {isDefined, isUndefined, Maybe} from "../../utils/maybe"; + + +export function getGatewayDevice(iVrm: VrmApiInstallationData) +{ + return iVrm + .devices + .firstOrDefault(d => d.name === "Gateway") as Maybe; +} + +export function getInverter(iVrm: VrmApiInstallationData) +{ + return iVrm + .devices + .where(d => d.name === "VE.Bus System") + .select(d => `${d.productName ?? "unknown"} [${d.firmwareVersion ?? "unknown"}]`) + .firstOrDefault() ?? "unknown"; +} + +export function getPvOnAcIn(iVrm: VrmApiInstallationData) +{ + return iVrm + .devices + .where(d => d.name === "PV Inverter" && isDefined(d.pL)) + .where(d => d.pL!.startsWith("AC input")) + .where(d => isDefined(d.productName)) + .select(d => `${d.productName} [${d.firmwareVersion ?? "unknown"}]`) + .orderBy(d => d) + .toArray(); +} + +export function getPvOnAcOut(iVrm: VrmApiInstallationData) +{ + return iVrm + .devices + .where(d => d.name === "PV Inverter" && isDefined(d.pL)) + .where(d => d.pL!.startsWith("AC output")) + .where(d => isDefined(d.productName)) + .select(d => `${d.productName} [${d.firmwareVersion ?? "unknown"}]`) + .orderBy(d => d) + .toArray(); +} + +export function getPvOnDc(iVrm: VrmApiInstallationData) +{ + return iVrm + .devices + .where(d => d.name === "Solar Charger") + .where(d => isDefined(d.productName)) + .select(d => `${d.productName} [${d.firmwareVersion ?? "unknown"}]`) + .orderBy(d => d) + .toArray(); +} + + + + +function unmangleVrmInstallationName(installationName: string) +{ + // "name": "_IBN Frischknecht, Waldstatt/AR | St.Gallisch-Appenzellisch Kraftwerke AG (2022-00128)", + + //const rx = / *(_IBN)? *([^,]+?),([^/]+?) *\/ *(.+?)( *\/ *.+?)? *| * (\(.+\)) */ + + const [ibnName, rest1] = installationName.split(/,(.*)/s) + + if (isUndefined(rest1) || isUndefined(ibnName)) + return undefined + + const [locality, rest2] = rest1.split(/\/(.*)/s) + + if (isUndefined(rest2)) + return undefined + + const [regionCountry, rest3] = rest2.split(/\|(.*)/s) + + if (isUndefined(rest3)) + return undefined + + const [region, country] = regionCountry.split(/\/(.*)/s) + + const [folder, orderNumber] = rest3.split(/\((.*)/s) + + if (isUndefined(orderNumber)) + return undefined + + const orderNumbers = orderNumber.replace(")", "").split(',') + + const rxIbn = /^\s*_\s*IBN\s*/; + + return { + ibn : rxIbn.test(ibnName), + name : ibnName.replace(rxIbn, "").trim(), + locality: locality.trim(), + region : region.trim(), + country : country?.trim(), + folder : folder.trim(), + orderNumbers + } +} + +export function toVrmInstallation(vrmData: VrmApiInstallationData, vpnIps: VpnIps = {}): VrmInstallation +{ + // TODO: VRM users + const tags = vrmData + .tags + .select(t => t.toUpperCase()) + .where(t => t !== "ALARM" && t !== "NO-ALARM" && t !== "NODATA") + .orderBy(t => t) + .toArray(); + + const gateway = getGatewayDevice(vrmData) + + const parsed = unmangleVrmInstallationName(vrmData.installation.name); + + if (parsed?.ibn === true && !tags.includes("IBN")) + tags.push("IBN") + + const vrmInstallation : Unwrap = { + + id : `vrm${vrmData.installation.idSite}`, + name : parsed?.name ?? vrmData.installation.name, + tags : tags, + orderNumbers: parsed?.orderNumbers ?? [], + vpnName : gateway?.machineSerialNumber ?? "unknown", + vpnIp : vpnIps?.[gateway!.machineSerialNumber] ?? "unknown", + country : parsed?.country, + region : parsed?.region, + locality : parsed?.locality, + children : [], + + controllerType: gateway?.productName ?? "unknown", + firmware : gateway?.firmwareVersion ?? "unknown", + accessLevel : vrmData.installation.accessLevel, // TODO + autoUpdate : gateway?.autoUpdate ?? "unknown", + updateTo : gateway?.updateTo ?? "unknown", + vrmId : vrmData.installation.idSite, + vrmPortalId : vrmData.installation.identifier, + pvOnAcIn : getPvOnAcIn(vrmData), + pvOnAcOut : getPvOnAcOut(vrmData), + pvOnDc : getPvOnDc(vrmData), + inverter : getInverter(vrmData), + vrmName : vrmData.installation.name + }; + + return {vrmInstallation}; +} + + +function getMangledVrmInstallationName(db: Database, installation: Unwrap) +{ + const path = getDescendantsWithPath(db.rootFolder) + .where(e => unwrap(e[0]).id === installation.id) + .take(1) + .selectMany(e => e) + .skip(1) // skip installation name + .select(e => unwrap(e).name) + .toArray() + + path.pop() // remove root "InnovEnergy" folder + + const {country, locality, region} = installation; + const lrc = [locality, region, country].filter(isDefined).join("/") + path.unshift(`${installation.name}, ${lrc}`) + + const ibn = installation.tags.includes("IBN") ? "_IBN " : "" + const orderNumbers = installation.orderNumbers.any() ? ` (${installation.orderNumbers.join(",")})` : ""; + + return `${ibn + path.join(" | ") + orderNumbers}` +} diff --git a/typescript/DataCache/src/server/vrm/vrmSync.ts b/typescript/DataCache/src/server/vrm/vrmSync.ts new file mode 100644 index 000000000..ed4ce4987 --- /dev/null +++ b/typescript/DataCache/src/server/vrm/vrmSync.ts @@ -0,0 +1,42 @@ +import {Milliseconds} from "../../utils/milliseconds"; +import {getAllInstallationData} from "./api/api"; +import {getLogger} from "../../utils/logging"; +import {exhaustMap, map, Observable, of, repeat, share, tap, withLatestFrom} from "rxjs"; +import {VrmApiInstallationData} from "./api/apiTypes"; +import vpnIps from "../vpn/vpnSync"; +import {VpnIps} from "../vpn/vpn"; +import {toVrmInstallation} from "./convert"; +import {VrmInstallation} from "../../api/data/types"; + +const updateDelay = Milliseconds.fromMinutes(5) + +const log = getLogger('VRM_SYNC') + +export const vrmInstallations: Observable = of(0).pipe +( + tap(_ => log('iteration started')), + exhaustMap(_ => getAllInstallationData()), + withLatestFrom(vpnIps), + map(([installationData, vpnIps]) => toVrmInstallations(installationData, vpnIps)), + repeat({delay: updateDelay}), + tap(_ => log(`iteration finished. Waiting for ${Milliseconds.toMinutes(updateDelay)} minutes`)), + share() +) + +export function toVrmInstallations(vrmData: VrmApiInstallationData[], vpnIps: VpnIps) : VrmInstallation[] +{ + return vrmData.map(d => toVrmInstallation(d, vpnIps)) +} + + + + + +// const vrmUser = "victron@innov.energy"; +// const vrmPassword = "NnoVctr201002"; + + + + + + diff --git a/typescript/DataCache/src/utils/diffing.ts b/typescript/DataCache/src/utils/diffing.ts new file mode 100644 index 000000000..f6b6905cb --- /dev/null +++ b/typescript/DataCache/src/utils/diffing.ts @@ -0,0 +1,161 @@ +import {from, IEnumerable} from "linq-to-typescript"; +import {compactArray, hasOwnProperty, keys} from "./utils"; + +export type Change = {path: string[], value: T} + +const primitiveTypes = ["number", "string", "boolean", "null", "function", "bigint"] + +const _keep = {} as const + +export function keep() +{ + return _keep as T +} + +export function getAt(target: any, path: IEnumerable): any +{ + let t = target + + for (const p of path) + { + if (!hasOwnProperty(t, p)) + throw "invalid path" // TODO: improve error msg + + t = t[p] + } + + return t +} + +export function getParent(target: any, path: IEnumerable): any +{ + let t = target + + const parentPath = path.toArray() + parentPath.pop() + + for (const p of parentPath) + { + if (!hasOwnProperty(t, p)) + throw "invalid path" // TODO: improve error msg + + t = t[p] + } + + return t +} + +export function applyChanges(target: any, changes : IEnumerable) +{ + for (const change of changes) + { + const path = [...change.path] // copy + const head = path.pop()! + const parent = getAt(target, path) + + if (change.value === undefined) + delete parent[head] + else + { + console.log(`${change.path.join("/")}: ${parent[head]} => ${change.value}`) + parent[head] = change.value + } + + if (Array.isArray(parent)) + compactArray(parent) // TODO: review + } +} + +export function getChanges(old_: any, new_: any): IEnumerable +{ + return from(diff(old_, new_)) +} + +export function isArrayOp(p: Change) +{ + return !isNaN(parseInt(p.path.lastOrDefault()!, 10)); +} + +// function observe(src: T, subject: Subject, path: Path = []): T +// { +// function get(target: T, p: string ): any +// { +// return observe(target, subject, [...path, p]) +// } +// +// function set(target: T, p: string, newValue: any, receiver: any): boolean +// { +// +// return true +// } +// +// return new Proxy(src, +// { +// get(target, prop, receiver) +// { +// alert(`GET ${prop}`); +// return Reflect.get(target, prop, receiver); // (1) +// }, +// set(target, prop:string, val, receiver) +// { +// alert(`SET ${prop}=${val}`); +// const success = Reflect.set(target, prop, val, receiver); +// +// if (success) +// { +// const patch : Patch = { path: [...path, prop], } +// subject.next() +// } +// +// return success; // (2) +// } +// }); +// +// //return new Proxy(src, {get, set}) +// } + + + + +function* diff(old_: any, new_: any, path: string[] = []): Generator +{ + const oldKeys = keys(old_); + const newKeys = keys(new_); + const allKeys = oldKeys + .concatenate(newKeys) + .distinct() + + for (const k of allKeys) + { + const p = [...path, k] as string[]; + + const oldValue = old_[k] + const newValue = new_[k] + + if (oldValue === newValue /*|| newValue === _keep*/) + continue // "reference equal": easy out + + const oldType = typeof oldValue + const newType = typeof newValue + + if (oldType !== newType || primitiveTypes.contains(newType)) + { + // oldValue !== newValue because of test already made above + + yield {path: p, value: newValue} + continue + } + + if (newType !== "object") + throw "unsupported data type!" + + if (keys(oldValue).any() && !keys(oldValue).intersect(keys(newValue)).any()) + { + // no common keys: replace whole object + yield {path: p, value: newValue} + continue + } + + yield* diff(oldValue, newValue, p) + } +} diff --git a/typescript/DataCache/src/utils/linq.ts b/typescript/DataCache/src/utils/linq.ts new file mode 100644 index 000000000..e68de7db4 --- /dev/null +++ b/typescript/DataCache/src/utils/linq.ts @@ -0,0 +1,21 @@ +// 0. Import Module + +import {IEnumerable, initializeLinq} from "linq-to-typescript" +// 1. Declare that the JS types implement the IEnumerable interface +declare global { + interface Array extends IEnumerable { } + interface Uint8Array extends IEnumerable { } + interface Uint8ClampedArray extends IEnumerable { } + interface Uint16Array extends IEnumerable { } + interface Uint32Array extends IEnumerable { } + interface Int8Array extends IEnumerable { } + interface Int16Array extends IEnumerable { } + interface Int32Array extends IEnumerable { } + interface Float32Array extends IEnumerable { } + interface Float64Array extends IEnumerable { } + interface Map extends IEnumerable<[K, V]> { } + interface Set extends IEnumerable { } + interface String extends IEnumerable { } +} +// 2. Bind Linq Functions to Array, Map, etc +initializeLinq() \ No newline at end of file diff --git a/typescript/DataCache/src/utils/logging.ts b/typescript/DataCache/src/utils/logging.ts new file mode 100644 index 000000000..ec5bcd1f0 --- /dev/null +++ b/typescript/DataCache/src/utils/logging.ts @@ -0,0 +1,11 @@ +let subsystemPadding = 0 + +export function getLogger(subsystem: string): (msg: string) => void +{ + subsystemPadding = Math.max(subsystem.length, subsystemPadding) + + // eslint-disable-next-line no-console + return (msg: string) => console.log(`${new Date().toLocaleString()} | ${(subsystem.padEnd(subsystemPadding))} | ${msg}`); +} + + diff --git a/typescript/DataCache/src/utils/match.ts b/typescript/DataCache/src/utils/match.ts new file mode 100644 index 000000000..f00d2c8bc --- /dev/null +++ b/typescript/DataCache/src/utils/match.ts @@ -0,0 +1,176 @@ +import {Dictionary, Func, Normalize1} from "./utilityTypes"; +import {keys, valueToFunction} from "./utils"; +import {isUndefined} from "./maybe"; +import {UnionToIntersection} from "simplytyped"; +import {current} from "immer"; + +// Type Compatibility +// https://www.typescriptlang.org/docs/handbook/type-compatibility.html + + +//TODO: review +export type IsUnionCase = + T extends Dictionary + ? [UnionToIntersection] extends [keyof T] + ? [keyof T] extends [UnionToIntersection] + ? true + : false + : false + : false + +//TODO: review +export type IsTaggedUnion = true extends UnionToIntersection> ? Dictionary : never + +export type Unwrap> = UnionToIntersection[keyof UnionToIntersection] ; + +export function update>(u: U, e: Partial>) +{ + const v = u as UnionToIntersection + const o = current(v) + + const ks = keys(v) + + if (ks.length != 1) + throw new Error("not a valid union case") + + const tag = ks[0] + + const before = v[tag]; + const before2 = current(before); + + + const newVar = {...before, ...e}; + v[tag] = newVar +} + +export function unwrap>(u: U) : Normalize1> +{ + const v = u as UnionToIntersection + + const ks = keys(v) + + if (ks.length != 1) + throw new Error("not a valid union case") + + const key = ks[0] + return v[key] as any; +} + +export function base>(u: U): Normalize1 & Partial>>> +{ + return unwrap(u) as Normalize1 & Partial>>> +} + +export function tag>(u: U) : keyof UnionToIntersection +{ + const v = u as UnionToIntersection + + const ks = keys(v) + + if (ks.length != 1) + throw new Error("not a valid union case") + + return ks[0] +} + +export function tagsEqual>(u: U, v: U) : v is U +{ + return tag(u) === tag(v) +} + + +type MapFuncs = { [k in keyof UnionToIntersection]: Func[k]> } +type OtherwiseKeys = Exclude, keyof M>; + +type OtherwiseArg = { + [k in keyof UnionToIntersection]: Record[k]> +}[OtherwiseKeys] + +type OtherwiseFunc>, R> = Func extends never ? unknown : OtherwiseArg, R>; + + +export function match, M extends Partial>, R>(uCase: U, matchFuncs: M, otherwise: OtherwiseFunc | R):{ [k in keyof M]: M[k] extends Func ? O : never }[keyof M] | R +{ + const otw = valueToFunction(otherwise) + + const c = uCase as UnionToIntersection + + const ks = keys(c) + + if (ks.length != 1) + return otw(c) + + const key = ks[0] + const arg = c[key] + + const matchFunc = matchFuncs[key] + + if (isUndefined(matchFunc)) + return otw(c); + + return matchFunc(arg as any) as any; +} + + +export function dispatch>() +{ + // type Intersection = UnionToIntersection; + // + // type MapFuncs = { [k in keyof Intersection]: Func } + // type OtherwiseKeys = Exclude; + // + // type OtherwiseArg = { + // [k in keyof Intersection]: Record + // }[OtherwiseKeys] + // + // type OtherwiseFunc, R> = Func extends never ? unknown : OtherwiseArg, R>; + + return >, R>(matchFuncs: M, otherwise: OtherwiseFunc | R) => + { + const otw = valueToFunction(otherwise) + + return (uCase: U): { [k in keyof M]: M[k] extends Func ? O : never }[keyof M] | R => + { + const c = uCase as UnionToIntersection + + const ks = keys(c) + + if (ks.length != 1) + return otw(c) + + const key = ks[0] + const arg = c[key] + + const matchFunc = matchFuncs[key] + + if (isUndefined(matchFunc)) + return otw(c); + + return matchFunc(arg as any) as any; + } + }; +} + + +export function concat, T extends Dictionary>(rec: R, t:T) +{ + + const result = {} as { + [k in keyof UnionToIntersection]: Record[k] & T> + }[keyof UnionToIntersection] + + for (const k in rec) + { + + // @ts-ignore + result[k] = { ...rec[k], ...t} + } + + return result +} + + + + + + diff --git a/typescript/DataCache/src/utils/maybe.ts b/typescript/DataCache/src/utils/maybe.ts new file mode 100644 index 000000000..7ab47fdb9 --- /dev/null +++ b/typescript/DataCache/src/utils/maybe.ts @@ -0,0 +1,16 @@ +export type Maybe = T | undefined | null; + +export function isDefined(e: Maybe): e is T +{ + return e != undefined // != by design to include null +} + +export function isUndefined(e: Maybe): e is undefined | null +{ + return e == undefined // == by design to include null +} + +export function toArray(e: Maybe): T[] +{ + return isDefined(e) ? [e] : [] +} diff --git a/typescript/DataCache/src/utils/milliseconds.ts b/typescript/DataCache/src/utils/milliseconds.ts new file mode 100644 index 000000000..7d0daf94a --- /dev/null +++ b/typescript/DataCache/src/utils/milliseconds.ts @@ -0,0 +1,18 @@ + +export type Milliseconds = number + +export const Milliseconds = +{ + fromSeconds: (count: number): Milliseconds => count * 1000, + fromMinutes: (count: number): Milliseconds => count * 1000 * 60, + fromHours : (count: number): Milliseconds => count * 1000 * 60 * 60, + fromDays : (count: number): Milliseconds => count * 1000 * 60 * 60 * 24, + fromWeeks : (count: number): Milliseconds => count * 1000 * 60 * 60 * 24 * 7, + + toSeconds: (count: Milliseconds): number => count / 1000, + toMinutes: (count: Milliseconds): number => count / 1000 / 60, + toHours : (count: Milliseconds): number => count / 1000 / 60 / 60, + toDays : (count: Milliseconds): number => count / 1000 / 60 / 60 / 24, + toWeeks : (count: Milliseconds): number => count / 1000 / 60 / 60 / 24 / 7, +} as const + diff --git a/typescript/DataCache/src/utils/path.ts b/typescript/DataCache/src/utils/path.ts new file mode 100644 index 000000000..6d82809b2 --- /dev/null +++ b/typescript/DataCache/src/utils/path.ts @@ -0,0 +1,81 @@ +import {isUndefined} from "./maybe"; +import {from, IEnumerable} from "linq-to-typescript"; +import {isBoolean, isNumber, isPlainObject, isString} from "./runtimeTypeChecking"; + +function getAt(root: any, path: (keyof any)[]) +{ + return path.reduce((v, p) => v[p], root) +} + + +function iterate(root: unknown): IEnumerable<{ path: string[]; node: unknown }> +{ + if (isUndefined(root)) + return [] + + return from(iterate(root)) + + function* iterate(node: unknown, path: string[] = []): Generator<{ path: string[]; node: unknown }> + { + if (isString(node) || isNumber(node) || isBoolean(node)) + yield {path, node} + else if (isPlainObject(node)) + for (const key in node) + { + path.push(key) + yield {path, node} + yield* iterate(node[key], path) + path.pop() + } + } +} + +function iterateLeafs(root: unknown): IEnumerable<{ path: string[]; node: unknown }> +{ + if (isUndefined(root)) + return [] + + return from(iterate(root)) + + function* iterate(node: unknown, path: string[] = []): Generator<{ path: string[]; node: unknown }> + { + if (isString(node) || isNumber(node) || isBoolean(node)) + yield {path, node} + else if (isPlainObject(node)) + for (const key in node) + { + path.push(key) + yield* iterate(node[key], path) + path.pop() + } + } +} + + +function iterateBranches(root: unknown): IEnumerable<{ path: string[]; node: unknown }> +{ + if (isUndefined(root)) + return [] + + return from(iterate(root)) + + function* iterate(node: unknown, path: string[] = []): Generator<{ path: string[]; node: unknown }> + { + if (isPlainObject(node)) + for (const key in node) + { + path.push(key) + yield {path, node} + yield* iterate(node[key], path) + path.pop() + } + } +} + +export const Path = +{ + iterate, + iterateLeafs, + iterateBranches, + getAt +} as const diff --git a/typescript/DataCache/src/utils/runtimeTypeChecking.ts b/typescript/DataCache/src/utils/runtimeTypeChecking.ts new file mode 100644 index 000000000..c24de1606 --- /dev/null +++ b/typescript/DataCache/src/utils/runtimeTypeChecking.ts @@ -0,0 +1,66 @@ +export type TypeCode = + | "undefined" + | "object" + | "boolean" + | "number" + | "string" + | "function" + | "symbol" + | "bigint"; + +export type PlainObject = Record + +export function isObject(thing: unknown) : thing is object +{ + return typeof thing === "object" +} + +export function isDate(thing: unknown) : thing is Date +{ + return thing instanceof Date +} + +export function isPlainObject(thing: unknown) : thing is PlainObject +{ + return isObject(thing) && !isDate(thing) +} + +export function isArray(thing: unknown) : thing is Array +{ + return Array.isArray(thing) +} + +export function isNumber(thing: unknown) : thing is number +{ + return typeof thing === "number" +} + +export function isBoolean(thing: unknown) : thing is boolean +{ + return typeof thing === "boolean" +} + +export function isString(thing: unknown) : thing is string +{ + return typeof thing === "string" +} + +// export function isFunction(thing: unknown): thing is (...args: unknown[]) => unknown +// { +// return typeof thing === "function" +// } + +export function isFunction(obj: unknown): obj is (...args: any[]) => any +{ + return obj instanceof Function; +} + +export function isSymbol(thing: unknown) : thing is symbol +{ + return typeof thing === "symbol" +} + +export function isBigint(thing: unknown) : thing is bigint +{ + return typeof thing === "bigint" +} diff --git a/typescript/DataCache/src/utils/tree.ts b/typescript/DataCache/src/utils/tree.ts new file mode 100644 index 000000000..88a83f785 --- /dev/null +++ b/typescript/DataCache/src/utils/tree.ts @@ -0,0 +1,71 @@ +import {from, IEnumerable} from "linq-to-typescript"; +import {isDefined, isUndefined, Maybe} from "./maybe"; + + +export function Tree(getChildren: (t: T) => IEnumerable) +{ + function iterate(root: Maybe): IEnumerable + { + if (isUndefined(root)) + return [] + + return from(iterateTree()) + + function* iterateTree() + { + const queue: T[] = [root!] + + do + { + const element = queue.shift()! + yield element + for (const child of getChildren(element)) + queue.push(child) + } + while (queue.length > 0) + } + } + + + function iterateWithPath(root: Maybe): IEnumerable + { + return isDefined(root) + ? from(iterateTreeWithPath()) + : []; + + function* iterateTreeWithPath() + { + const stack: Array> = [[root!]] + + while (true) + { + const head = stack[0]; + + if (head.length > 0) + { + yield stack + .select(l => l[0]) + .toArray() + + const children = getChildren(head[0]).toArray() + stack.unshift(children) + } + else + { + stack.shift() // remove empty array in front + if(stack.length > 0) + stack[0].shift() + else + break; + } + } + + } + } + + return { + iterate, + iterateWithPath + } as const +} + diff --git a/typescript/DataCache/src/utils/type.ts b/typescript/DataCache/src/utils/type.ts new file mode 100644 index 000000000..da775fb19 --- /dev/null +++ b/typescript/DataCache/src/utils/type.ts @@ -0,0 +1,115 @@ +export {} +// export type Type = +// | "number" +// | "object" +// | "string" +// | "never" +// | "any" +// | "unknown" +// | "undefined" +// | "boolean" +// | "bigint" +// | "symbol" +// | Property[] +// | Func +// +// export type Key = "string" | "number" | "symbol" +// +// export type Property = Func | +// { +// key: Key, +// type: Type, +// readonly? : boolean, +// nullable? : boolean +// } +// +// export type Arg = +// { +// name: string, +// type: Type, +// nullable? : boolean +// } +// +// export type Func = +// { +// args: Arg[], +// returnType: Type, +// } +// +// +// type X = Partial +// +// export function render(t: Type, indent = 0) +// { +// if (typeof t === "string") +// return t +// +// +// return "ERROR" +// } +// + + +type DeviceType = + | "Pv" + | "Load" + | "Battery" + | "Grid" + | "Inverter" + | "AcInToAcOut" + | "DcDc" + | "AcInBus" + | "AcOutBus" + | "DcBus" + | "Dc48Bus" // low voltage DC Bus, to be eliminated in later versions + + +type Phase = +{ + voltage : number // U, non-negative + current : number // I, sign depends on device type, see sign convention below +} + +type AcPhase = Phase & +{ + phi : number // [0,2pi) +} + +type Device = +{ + Type: DeviceType, + Name?: string, +} + +type Stack = +{ + Top? : Device[], // 0 to N + Right? : Device // 0 or 1 + Bottom? : Device[] // 0 to N + Disconnected?: boolean // not present = false +} + +/// A DC device must have a field denoting its DC connection +type DcDevice = Device & +{ + Dc : Phase +} + + +/// An AC device can have 1 to 3 AC phases +/// An AC device also needs a Frequency measurement +/// Total power can be obtained by summing the power of the phases +type AcDevice = Device & +{ + Ac: AcPhase[] + Frequency: number +} + + +/// A low voltage 48V DC device +/// Needed to distinguish the two sides of the DCDC +/// Will be dropped once we get HV batteries +type Dc48Device = Device & +{ + dc48 : Phase +} diff --git a/typescript/DataCache/src/utils/utilityTypes.ts b/typescript/DataCache/src/utils/utilityTypes.ts new file mode 100644 index 000000000..66f57ee96 --- /dev/null +++ b/typescript/DataCache/src/utils/utilityTypes.ts @@ -0,0 +1,52 @@ +import {UnionToIntersection} from "simplytyped"; + +export type Dictionary = Record +export type Nothing = Dictionary + +export type IsUnion = [T] extends [UnionToIntersection] ? false : true; + +export type UnionToDeepPartialIntersection = DeepPartial> +export type UnionToPartialIntersection = Partial> + +export type Func = (arg: T) => R +export type AsyncFunc = (arg: T) => Promise + +export type SyncAction = (arg: T) => void +export type AsyncAction = (arg: T) => Promise +export type Action = SyncAction | AsyncAction + +export type Lazy = () => T +export type Base64 = string +export type ValueOf = T[keyof T]; + +export type DeepPartial = T extends object ? { [P in keyof T]?: DeepPartial; } : T; +export type DeepMutable = { -readonly [P in keyof T]: DeepMutable }; +export type Mutable = { -readonly [P in keyof T]: T[P] }; +export type NumberLiteralToStringLiteral = T extends number ? `${T}` : T + +export type KeyedChildren = { children?: Dictionary } + +export type Union = { [S in K] : V} + +export type IntersectionToUnion = { [Prop in keyof T]: Record }[keyof T] // not sure if this is aptly named + +// helper to flatten (instantiate) types in editor popups +// eslint-disable-next-line @typescript-eslint/ban-types + +export type Normalize = T extends (...args: infer A) => infer R ? (...args: Normalize) => Normalize + : [T] extends [any] ? { [K in keyof T]: Normalize } + : never + +export type Normalize1 = T extends (...args: infer A) => infer R ? (...args: A) => R + : [T] extends [any] ? { [K in keyof T]: T[K] } + : T + +export type Normalize2 = T extends (...args: infer A) => infer R ? (...args: Normalize1) => Normalize1 + : [T] extends [any] ? { [K in keyof T]: Normalize1 } + : never + +export function mutable(t: T) +{ + return t as Mutable +} + diff --git a/typescript/DataCache/src/utils/utils.ts b/typescript/DataCache/src/utils/utils.ts new file mode 100644 index 000000000..836b1391f --- /dev/null +++ b/typescript/DataCache/src/utils/utils.ts @@ -0,0 +1,281 @@ +import {Dictionary, Func, Lazy} from "./utilityTypes"; +import {isUndefined, Maybe} from "./maybe"; +import {IEnumerable} from "linq-to-typescript"; +import {Builder} from "../client/njsx/njsx"; + +export const id = (e:T) => e; + +// eslint-disable-next-line @typescript-eslint/no-empty-function +export const nop = (_?:unknown) => {}; + +export function sleep(ms: number): Promise +{ + return new Promise(resolve => setTimeout(resolve, ms)); +} + + +export function fail(error?: string) : T +{ + throw new Error(error) +} + +export function first(a: Array) : Maybe +{ + return a[0] +} + +export function last(array: T[]) : Maybe +{ + const last = array.length - 1 + + return last < 0 + ? undefined + : array[last] +} + + +export function compactArray(array: T[]) +{ + let j = 0; + + array.forEach((e, i) => + { + if (i !== j) + array[j] = e; + j++; + }); + + array.length = j; + + return array; +} + + +export const delay = (ms: number) => new Promise((resolve) => setTimeout(() => resolve(), ms)); + + +export function hasOwnProperty(thing: unknown, key : keyof any) +{ + return Object.prototype.hasOwnProperty.call(thing, key) +} + +export function toDictionary(ts: IEnumerable, keySelector: (element: T) => string): Dictionary +{ + function addEntry(d: Dictionary, t: T) + { + const key = keySelector(t); + d[key] = t; + return d + } + + return ts.aggregate({}, addEntry) +} + +export function keys(t: T): (keyof T)[] +{ + return Object.keys(t as object) as (keyof T)[] +} + + +export function values(t: Record): V[] +{ + return Object.values(t) +} + +type Entry = +{ + [P in keyof T]: P extends number ? [`${P}`, T[P]] + : P extends string ? [P, T[P]] + : never +}; + +export function entries(t: T) +{ + return Object.entries(t as Dictionary) +} + +export function shallowEqual(left: any, right: any) +{ + const keysLeft = keys(left) ; + const keysRight = keys(right); + + return keysLeft.length === keysRight.length && + keysLeft.every(key => Object.prototype.hasOwnProperty.call(right, key) && left[key] === right[key]); +} + + +export function objectEquals(x: any, y: any): boolean +{ + if (isUndefined(x) || isUndefined(y)) + return x === y; + + // after this just checking type of one would be enough + if (x.constructor !== y.constructor) + return false; + + // if they are functions, they should exactly refer to same one (because of closures) + // if they are regexps, they should exactly refer to same one (it is hard to better equality check on current ES) + if (x instanceof Function || x instanceof RegExp) + return x === y; + + if (x === y || x.valueOf() === y.valueOf()) + return true; + + // optimization + if (Array.isArray(x) && x.length !== y.length) + return false; + + // optimization: if they are dates, they must have had equal valueOf (above) + if (x instanceof Date) + return false; + + // if they are strictly equal, they both need to be an object at least + if (!(x instanceof Object && y instanceof Object)) return false; + + + const xKeys = Object.keys(x); + const yKeys = Object.keys(y); + + // recursive object equality check + return xKeys.length === yKeys.length + && yKeys.every(yKey => yKey in x) + && xKeys.every(xKey => objectEquals(x[xKey], y[xKey])); +} + +export function structurallyEqual(left: any, right: any) +{ + if (left === right) + return true; + + if (typeof left !== typeof right) + return false; + + if (typeof left !== 'object') + return left === right; + + if (keys(left).length !== keys(right).length) + return false; + + for (const key in left) + { + if (!(key in right)) + return false; + + if (!structurallyEqual(left[key], right[key])) + return false; + } + + return true; +} + + + +type FuncDict ={ [P in keyof T]: (a: T[P]) => any }; +type Out> = { [P in keyof T]: ReturnType }; + +// TODO: use Ramda ? +export function mapObject>(src: S, map: M): Out> +{ + const result : Partial>> = {} + + for (const k in src) + result[k] = map[k](src[k]) + + return result as Out> +} + +export function mapDict(src: Dictionary, map: (arg: T) => R): Dictionary +{ + const result : Partial> = {} + + for (const k in src) + result[k] = map(src[k]) + + return result as Dictionary +} + + +export function valueToFunction(tr: Func | R) : Func +{ + if (typeof tr === "function") + return tr as Func + + return (_: T) => tr +} + + +// export function mapEntries(src: Dictionary, map: (k: string, v: V) => [string, R]): Dictionary +// { +// const result: Dictionary = {} +// +// entries(src).forEach(([key, value]) => +// { +// const [k, v] = map(key, value) +// result[k] = v; +// }) +// +// return result +// } + +export function once(action: Builder) : Builder +export function once(action: Lazy) : Lazy> +{ + let done = false; + return () => + { + if (done) + return undefined + + done = true + return action() + } +} + + +// export function deepMerge(...objects: Record[]) +// { +// function extracted(prev: Record, cur: Record) +// { +// for (const key of keys(cur)) +// { +// const k = key as K +// +// const pVal = prev[k]; +// const oVal = cur[k]; +// +// if (isArray(pVal) && isArray(oVal)) +// { +// prev[k] = pVal.concat(...oVal); +// } +// else if (isObject(pVal) && isObject(oVal)) +// { +// prev[k] = deepMerge(pVal, oVal); +// } +// else +// { +// prev[k] = oVal; +// } +// } +// +// return prev; +// } +// +// return objects.reduce((prev, cur) => extracted(prev, cur), {} as Record); +// } + +// // Test objects +// const obj1 = { +// a: 1, +// b: 1, +// c: { x: 1, y: 1 }, +// d: [ 1, 1 ] +// } +// const obj2 = { +// b: 2, +// c: { y: 2, z: 2 }, +// d: [ 2, 2 ], +// e: 2 +// } +// const obj3 = deepMerge(obj1, obj2); + + diff --git a/typescript/DataCache/tsconfig.json b/typescript/DataCache/tsconfig.json new file mode 100644 index 000000000..295cb6d50 --- /dev/null +++ b/typescript/DataCache/tsconfig.json @@ -0,0 +1,82 @@ +{ + "compilerOptions": + { + "lib": ["es2021"], + "module": "ESNext", + "target": "es2021", + "strict": true, + "esModuleInterop": true, + //"skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "useDefineForClassFields": true, + "outDir": "dist", + "allowSyntheticDefaultImports": true, + + + // d.ts files + // "declaration": true, + // "emitDeclarationOnly": true, + + /* Basic Options */ + "incremental": true, /* Enable incremental compilation */ + //"module": "ES6", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ + + "allowJs": false, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */ + // "declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + // "outDir": "./", /* Redirect output structure to the directory. */ + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + "tsBuildInfoFile": "./node_modules/tsconfig.tsbuildinfo", /* Specify file to store incremental compilation information */ + "removeComments": true, /* Do not emit comments to output. */ + "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + "strictNullChecks": true, /* Enable strict null checks. */ + "strictFunctionTypes": true, /* Enable strict checking of function types. */ + "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + //"noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + //"noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ + + /* Module Resolution Options */ + "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + }, + + "include": ["src/**/*.ts","src/**/*.tsx"], + "exclude": ["node_modules", "dist"] +} diff --git a/typescript/DataCache/vrmData.json b/typescript/DataCache/vrmData.json new file mode 100644 index 000000000..9099f3036 --- /dev/null +++ b/typescript/DataCache/vrmData.json @@ -0,0 +1,10109 @@ +[ + { + "name": "_ IBN tbd Weisshaubt, Neunkirch/SH | Lutz Bodenmüller AG (2022-00070)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da8755b5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1650964098, + "lastPowerUpOrRestart": 1650892218, + "machineSerialNumber": "HQ2139N6ZPZ", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/171797", + "accessLevel": 1, + "syscreated": 1650888746, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.7", + "vpnName": "HQ2139N6ZPZ", + "vpnOnline": false + }, + { + "name": "_IBN Aeberhard, ZÜ/ | Bouygues E&S In Tec Schweiz AG (2021-00216)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6bc2aef8", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1644392989, + "lastPowerUpOrRestart": 1644392834, + "machineSerialNumber": "HQ2118Q44GV", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/154680", + "accessLevel": 1, + "syscreated": 1644338258, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.193", + "vpnName": "HQ2118Q44GV", + "vpnOnline": false + }, + { + "name": "_IBN Aegerter, Rombach/AG | kabeltechnik swiss ag (2021-00145)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "485", + "identifier": "0479b7aebbc0", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1634136660, + "lastPowerUpOrRestart": 1634122506, + "machineSerialNumber": "HQ2101925N3", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/132507", + "accessLevel": 1, + "syscreated": 1634052108, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.134", + "vpnName": "HQ2101925N3", + "vpnOnline": false + }, + { + "name": "_IBN Alther, Wil/SG | B. Stillhart Dach + Fassaden AG (2022-00039)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da8753e7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1648198051, + "lastPowerUpOrRestart": 1648140989, + "machineSerialNumber": "HQ2139MQWDW", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/164219", + "accessLevel": 1, + "syscreated": 1648138349, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.234", + "vpnName": "HQ2139MQWDW", + "vpnOnline": false + }, + { + "name": "_IBN Arx, Niederbuchsiten/SO | von arx systems ag (2022-00005)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da890793", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1645619912, + "lastPowerUpOrRestart": 1645613370, + "machineSerialNumber": "HQ2139HY2AU", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/157594", + "accessLevel": 1, + "syscreated": 1645609146, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.208", + "vpnName": "HQ2139HY2AU", + "vpnOnline": false + }, + { + "name": "_IBN Aschlimann, Johanna | Bouygues E&S In Tec Schweiz AG (2022-00059", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "00e93aac3437", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1649075841, + "lastPowerUpOrRestart": 1648818734, + "machineSerialNumber": "HQ2139PGQMG", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/166409", + "accessLevel": 1, + "syscreated": 1648817942, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.241", + "vpnName": "HQ2139PGQMG", + "vpnOnline": false + }, + { + "name": "_IBN aws, Bazenheid/SG | AWS Aolar AG (2022-00073)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "494", + "identifier": "48e7da892947", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1649753623, + "lastPowerUpOrRestart": 1649679218, + "machineSerialNumber": "HQ2139EPERH", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/167643", + "accessLevel": 1, + "syscreated": 1649260630, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.244", + "vpnName": "HQ2139EPERH", + "vpnOnline": false + }, + { + "name": "_IBN Bätterkinden", + "identifier": "00e93aac45d7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1645119110, + "lastPowerUpOrRestart": 1644962387, + "machineSerialNumber": "HQ21399KVT9", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/156132", + "accessLevel": 1, + "syscreated": 1644962061, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.201", + "vpnName": "HQ21399KVT9", + "vpnOnline": false + }, + { + "name": "_IBN Bösiger, Matten/BE | BEO-SiNa GmbH (2021-00206)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da898067", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1642596551, + "lastPowerUpOrRestart": 1642519749, + "machineSerialNumber": "HQ2128NWV97", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/150190", + "accessLevel": 1, + "syscreated": 1642426808, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.179", + "vpnName": "HQ2128NWV97", + "vpnOnline": false + }, + { + "name": "_IBN Brunner, Jona/ZH | Solarville AG (2021-00212)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da8997cf", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1642500051, + "lastPowerUpOrRestart": 1642498370, + "machineSerialNumber": "HQ2128J3RHN", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/150114", + "accessLevel": 1, + "syscreated": 1642406712, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.178", + "vpnName": "HQ2128J3RHN", + "vpnOnline": false + }, + { + "name": "_IBN Castagna, Contar/TI | Casa Castagna (2021-00207)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da859291", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163624, + "lastPowerUpOrRestart": 1650977139, + "machineSerialNumber": "HQ2128FPAYJ", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/152257", + "accessLevel": 1, + "syscreated": 1643294439, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.185", + "vpnName": "HQ2128FPAYJ", + "vpnOnline": true + }, + { + "name": "_IBN Ebnöther, Hoffeld/SG | ie (2021-00136) | MNS 200 21 37 4 0196 | Slidomo 9 |", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6fc4668", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1631800742, + "lastPowerUpOrRestart": 1631800197, + "machineSerialNumber": "HQ2101U4B9M", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/128479", + "accessLevel": 1, + "syscreated": 1631799631, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.121", + "vpnName": "HQ2101U4B9M", + "vpnOnline": false + }, + { + "name": "_IBN Ersatzteil Cameroun | Haute Ecole (2021-00135)", + "identifier": "e415f6f85728", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.72~victron", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1630418528, + "lastPowerUpOrRestart": 1630418469, + "machineSerialNumber": "HQ204663YHM", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/125855", + "accessLevel": 1, + "syscreated": 1630416677, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.112", + "vpnName": "HQ204663YHM", + "vpnOnline": false + }, + { + "name": "_IBN Furian, Rabius/GR | Solpic AG (2021-00233)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da8959c7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1644418328, + "lastPowerUpOrRestart": 1644417269, + "machineSerialNumber": "HQ213924F4A", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/154880", + "accessLevel": 1, + "syscreated": 1644416251, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.195", + "vpnName": "HQ213924F4A", + "vpnOnline": false + }, + { + "name": "_IBN Gartenbau, Utzigen/BE | Burkhard Elektro AG (2022-00071)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da886407", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1649926376, + "lastPowerUpOrRestart": 1649917178, + "machineSerialNumber": "HQ21393FGNM", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/169422", + "accessLevel": 1, + "syscreated": 1649859321, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.1.253", + "vpnName": "HQ21393FGNM", + "vpnOnline": false + }, + { + "name": "_IBN Gentinetta, Basel/BS | Fabian Gentinetta (2021-00209)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "0281230c523a", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1643104099, + "lastPowerUpOrRestart": 1643103003, + "machineSerialNumber": "HQ21075A4ND", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/151662", + "accessLevel": 1, + "syscreated": 1643100809, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.183", + "vpnName": "HQ21075A4ND", + "vpnOnline": false + }, + { + "name": "_IBN GerMar / GerMar GmbH | MNS 400 21 40 4 0206 |Salidomo 18 |", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0479b7b3351f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~13be75", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1633933575, + "lastPowerUpOrRestart": 1633932556, + "machineSerialNumber": "HQ21011P913", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/131729", + "accessLevel": 1, + "syscreated": 1633608076, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.131", + "vpnName": "HQ21011P913", + "vpnOnline": false + }, + { + "name": "_IBN Gilg, Knonau/ZH | Alex Gemperle AG (2022-00096)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da88183f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1650610681, + "lastPowerUpOrRestart": 1650606207, + "machineSerialNumber": "HQ21482HNH6", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/170993", + "accessLevel": 1, + "syscreated": 1650543723, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.4", + "vpnName": "HQ21482HNH6", + "vpnOnline": false + }, + { + "name": "_IBN Gilgen, Schwarzenburg/BE | Breu AG (2022-00077)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "00e93aac4603", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163610, + "lastPowerUpOrRestart": 1650895946, + "machineSerialNumber": "HQ2139A6K3C", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/167146", + "accessLevel": 1, + "syscreated": 1649147284, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.243", + "vpnName": "HQ2139A6K3C", + "vpnOnline": true + }, + { + "name": "_IBN Hilberath, DE | Elektrotechnik Berzen GmbH (2021-00151)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "0479b7f17889", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1639065772, + "lastPowerUpOrRestart": 1639054253, + "machineSerialNumber": "HQ2101HICXX", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/143807", + "accessLevel": 1, + "syscreated": 1639042294, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.173", + "vpnName": "HQ2101HICXX", + "vpnOnline": false + }, + { + "name": "_IBN Höhener, Wädenswil/ZH | EWA Elektrizitätswerk Schwyz AG (2022-00040)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "00e93aac383d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1648643065, + "lastPowerUpOrRestart": 1648642646, + "machineSerialNumber": "HQ21393QQZ9", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/165437", + "accessLevel": 1, + "syscreated": 1648568165, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.236", + "vpnName": "HQ21393QQZ9", + "vpnOnline": false + }, + { + "name": "_IBN Holzbau, DE | Elektro- und Gebäudetechnik Lemmle (2022-00088)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da88a693", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1650521821, + "lastPowerUpOrRestart": 1650443485, + "machineSerialNumber": "HQ21397WXFY", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/170518", + "accessLevel": 1, + "syscreated": 1650380322, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.1", + "vpnName": "HQ21397WXFY", + "vpnOnline": false + }, + { + "name": "_IBN Kossobutzki, Mudenbach/DE | Drik Kossobutzki (2021-00213)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da857daf", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1642606042, + "lastPowerUpOrRestart": 1642604826, + "machineSerialNumber": "HQ2128NDE9X", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/149822", + "accessLevel": 1, + "syscreated": 1642169306, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.180", + "vpnName": "HQ2128NDE9X", + "vpnOnline": false + }, + { + "name": "_IBN Kümin, Schattdorf/UR | EWA-energieURI AG (2021-00129) | MNS 200 21 37 4 0197 | Salidomo 9 |", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "496", + "identifier": "0479b7aeadbf", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163629, + "lastPowerUpOrRestart": 1651161628, + "machineSerialNumber": "HQ2046PXCSV", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/128444", + "accessLevel": 1, + "syscreated": 1631792297, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.119", + "vpnName": "HQ2046PXCSV", + "vpnOnline": true + }, + { + "name": "_IBN Lingg, Uettligen/TG | Elektro Hegg AG (2022-00080)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da88e0ad", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1650626453, + "lastPowerUpOrRestart": 1650622299, + "machineSerialNumber": "HQ2148VVFRF", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/171223", + "accessLevel": 1, + "syscreated": 1650619768, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.5", + "vpnName": "HQ2148VVFRF", + "vpnOnline": false + }, + { + "name": "_IBN Mann, DE | Daniel Gebert Technik Gebert (2022-00098)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da87b40b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1650552600, + "lastPowerUpOrRestart": 1650541080, + "machineSerialNumber": "HQ2148RFK6N", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/170970", + "accessLevel": 1, + "syscreated": 1650540204, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.3", + "vpnName": "HQ2148RFK6N", + "vpnOnline": false + }, + { + "name": "_IBN Mares, Cumpadials/GR | electro cadi SA (2021-00236)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6bc2b190", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1644998947, + "lastPowerUpOrRestart": 1644921923, + "machineSerialNumber": "HQ2118DTKJ4", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/155858", + "accessLevel": 1, + "syscreated": 1644855960, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.200", + "vpnName": "HQ2118DTKJ4", + "vpnOnline": false + }, + { + "name": "_IBN Meyer, CH | A + Elektro AG (2022-00085)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b64ac69", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1649768686, + "lastPowerUpOrRestart": 1649765592, + "machineSerialNumber": "HQ21045DL1H", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/169079", + "accessLevel": 1, + "syscreated": 1649764707, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.251", + "vpnName": "HQ21045DL1H", + "vpnOnline": false + }, + { + "name": "_IBN Naef, Beringen/SH | Grossmann Brauchli AG (2022-00093)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b861181", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1649769018, + "lastPowerUpOrRestart": 1649766017, + "machineSerialNumber": "HQ2104QK3F8", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/168853", + "accessLevel": 1, + "syscreated": 1649692137, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.250", + "vpnName": "HQ2104QK3F8", + "vpnOnline": false + }, + { + "name": "_IBN Riedi, Niederuzwil/SG | Jaeggi Gmünder Energietechnik AG (2022-00094)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da889583", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1650455018, + "lastPowerUpOrRestart": 1650383875, + "machineSerialNumber": "HQ213937AJJ", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/170526", + "accessLevel": 1, + "syscreated": 1650382332, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.2", + "vpnName": "HQ213937AJJ", + "vpnOnline": false + }, + { + "name": "_IBN Rindlisbacher, Allschwil/BL | STARK STROM GmbH (2022-00009)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "102c6b9d06b9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163642, + "lastPowerUpOrRestart": 1647575777, + "machineSerialNumber": "HQ2118D6HKR", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/157562", + "accessLevel": 1, + "syscreated": 1645601364, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.207", + "vpnName": "HQ2118D6HKR", + "vpnOnline": true + }, + { + "name": "_IBN Rosner, Tumegl/GR | Solpic AG (2022-00083)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da86bd05", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1649944126, + "lastPowerUpOrRestart": 1649943478, + "machineSerialNumber": "HQ2128VT9YV", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/169632", + "accessLevel": 1, + "syscreated": 1649927692, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.1.254", + "vpnName": "HQ2128VT9YV", + "vpnOnline": false + }, + { + "name": "_IBN Ryter, Interlaken/BE | Gerber AG (2022-00038)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b64353f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1647001927, + "lastPowerUpOrRestart": 1646992478, + "machineSerialNumber": "HQ2104DZDKZ", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/161084", + "accessLevel": 1, + "syscreated": 1646990904, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.1.225", + "vpnName": "HQ2104DZDKZ", + "vpnOnline": false + }, + { + "name": "_IBN Schipfistrasse 7 Schattdorf/UR | EWA-energieURI AG (2022-00047)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "00e93aac3e17", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163614, + "lastPowerUpOrRestart": 1650931287, + "machineSerialNumber": "HQ2139JG3E3", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/163626", + "accessLevel": 1, + "syscreated": 1647967436, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.1.231", + "vpnName": "HQ2139JG3E3", + "vpnOnline": true + }, + { + "name": "_IBN Schneider, Schüpfen/BE | Guggisberg Dachtechnik AG (2022-00076)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "48e7da89e199", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1649403813, + "lastPowerUpOrRestart": 1649400816, + "machineSerialNumber": "HQ213936424", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/167987", + "accessLevel": 1, + "syscreated": 1649345965, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.248", + "vpnName": "HQ213936424", + "vpnOnline": false + }, + { + "name": "_IBN Schwroom, Bergkirchen/DE | EBS Elektrotechnik Stefan GmbH (2022-00092)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "00e93aac3463", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 6, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1650544931, + "lastPowerUpOrRestart": 1649203953, + "machineSerialNumber": "HQ2139WHQNE", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/163872", + "accessLevel": 1, + "syscreated": 1648047796, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.232", + "vpnName": "HQ2139WHQNE", + "vpnOnline": false + }, + { + "name": "_IBN Scotton, Lätti/BE | Feldmann & . AG (2022-00007)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da85ce63", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1645774616, + "lastPowerUpOrRestart": 1645770498, + "machineSerialNumber": "HQ2139J9WHD", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/157963", + "accessLevel": 1, + "syscreated": 1645717404, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.210", + "vpnName": "HQ2139J9WHD", + "vpnOnline": false + }, + { + "name": "_IBN Sommer, Uhwiesen/ZH | Scherrer Martin (2021-00239)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b86164d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1644842592, + "lastPowerUpOrRestart": 1644836113, + "machineSerialNumber": "HQ2118MV2KV", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/155739", + "accessLevel": 1, + "syscreated": 1644832775, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.198", + "vpnName": "HQ2118MV2KV", + "vpnOnline": false + }, + { + "name": "_IBN Sutter, Märwil/TG | Gebr. Willi Elektro AG (2022-00028)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "48e7da8872fd", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1647417799, + "lastPowerUpOrRestart": 1647417625, + "machineSerialNumber": "HQ2139P363G", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/161756", + "accessLevel": 1, + "syscreated": 1647277400, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.227", + "vpnName": "HQ2139P363G", + "vpnOnline": false + }, + { + "name": "_IBN tbd | EnergyOptimizer GmbH - Solarenergie (2021-00237)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da8590cf", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1644828630, + "lastPowerUpOrRestart": 1644828186, + "machineSerialNumber": "HQ21282HJWR", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/155417", + "accessLevel": 1, + "syscreated": 1644590780, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.197", + "vpnName": "HQ21282HJWR", + "vpnOnline": false + }, + { + "name": "_IBN tbd, ? | A+ Elektro AG (2022-00095)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da87804b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1650634911, + "lastPowerUpOrRestart": 1650628156, + "machineSerialNumber": "HQ2148D2XNN", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/171261", + "accessLevel": 1, + "syscreated": 1650627289, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.6", + "vpnName": "HQ2148D2XNN", + "vpnOnline": false + }, + { + "name": "_IBN tbd, CH | IB Wohlen AG (2022-00061)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da8829af", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1649157176, + "lastPowerUpOrRestart": 1649153036, + "machineSerialNumber": "HQ2139YWUUM", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/167022", + "accessLevel": 1, + "syscreated": 1649089142, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.242", + "vpnName": "HQ2139YWUUM", + "vpnOnline": false + }, + { + "name": "_IBN tbd, DE | EBS Elektrotechnik Stefan GmbH (2022-00099)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da87e683", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651059268, + "lastPowerUpOrRestart": 1650986242, + "machineSerialNumber": "HQ2139EHQ4C", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/172142", + "accessLevel": 1, + "syscreated": 1650985700, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.9", + "vpnName": "HQ2139EHQ4C", + "vpnOnline": false + }, + { + "name": "_IBN tbd, DE | EBS Elektrotechnik Stefan GmbH (2022-00101)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b9d086a", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651068246, + "lastPowerUpOrRestart": 1651055004, + "machineSerialNumber": "HQ2118KRNAZ", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/172345", + "accessLevel": 1, + "syscreated": 1651052713, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.10", + "vpnName": "HQ2118KRNAZ", + "vpnOnline": false + }, + { + "name": "_IBN tbd, DE | EBS Elektrotechnik Stefan GmbH (2022-00102)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da85c767", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163610, + "lastPowerUpOrRestart": 1651153890, + "machineSerialNumber": "HQ2148UK7R9", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/172696", + "accessLevel": 1, + "syscreated": 1651152180, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.11", + "vpnName": "HQ2148UK7R9", + "vpnOnline": true + }, + { + "name": "_IBN tbd, DE | EBS Elektrotechnik Stefan GmbH (2022-00103)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da872851", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163636, + "lastPowerUpOrRestart": 1651159073, + "machineSerialNumber": "HQ2148FZZGU", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/172747", + "accessLevel": 1, + "syscreated": 1651158295, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.12", + "vpnName": "HQ2148FZZGU", + "vpnOnline": true + }, + { + "name": "_IBN tbd, DE | EBS Elektrotechnik Stefen GmbH (2022-00100)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b643c58", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1650976832, + "lastPowerUpOrRestart": 1650895464, + "machineSerialNumber": "HQ20484QQA5", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/171840", + "accessLevel": 1, + "syscreated": 1650894662, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.8", + "vpnName": "HQ20484QQA5", + "vpnOnline": false + }, + { + "name": "_IBN tbd, in CH | Solarchain AG (2022-00036)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da886489", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1646987337, + "lastPowerUpOrRestart": 1646984594, + "machineSerialNumber": "HQ2139ADQ6M", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/160938", + "accessLevel": 1, + "syscreated": 1646926244, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.224", + "vpnName": "HQ2139ADQ6M", + "vpnOnline": false + }, + { + "name": "_IBN tbd, Mattenheim/DE | Elektrotechnik Schmidt (2022-00016", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "c0619ab0350c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1646750851, + "lastPowerUpOrRestart": 1646749969, + "machineSerialNumber": "HQ2122MJGT4", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/160387", + "accessLevel": 1, + "syscreated": 1646746079, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.222", + "vpnName": "HQ2122MJGT4", + "vpnOnline": false + }, + { + "name": "_IBN tbd, St Pierre de Clages/VS | EFISOL SA (2022-00030)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da87553f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1646642231, + "lastPowerUpOrRestart": 1646640434, + "machineSerialNumber": "HQ2139K4KY2", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/159566", + "accessLevel": 1, + "syscreated": 1646391527, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.217", + "vpnName": "HQ2139K4KY2", + "vpnOnline": false + }, + { + "name": "_IBN Tellenbach, Pieterlen/SO | Elektro Fahrni AG (2022-00033)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "48e7da869825", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1647593727, + "lastPowerUpOrRestart": 1647533967, + "machineSerialNumber": "HQ2139FARR6", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/162598", + "accessLevel": 1, + "syscreated": 1647531354, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.229", + "vpnName": "HQ2139FARR6", + "vpnOnline": false + }, + { + "name": "_IBN Test Neue", + "identifier": "3403de79441f", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1633958708, + "lastPowerUpOrRestart": 1633945028, + "machineSerialNumber": "HQ1907JKCP6", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/132250", + "accessLevel": 1, + "syscreated": 1633944691, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_IBN Treuthardt, Hasliberg/BE | Alex Gemperle AG (2021-00205)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "496", + "identifier": "48e7da869953", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163662, + "lastPowerUpOrRestart": 1650897495, + "machineSerialNumber": "HQ2139NHVQP", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/161174", + "accessLevel": 1, + "syscreated": 1647006314, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.226", + "vpnName": "HQ2139NHVQP", + "vpnOnline": true + }, + { + "name": "_IBN Widmer-Reichlin, CH | Kunz-Solartech GmbH (2022-00053)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da875a8d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1649073999, + "lastPowerUpOrRestart": 1649063319, + "machineSerialNumber": "HQ2148UF9W7", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/166385", + "accessLevel": 1, + "syscreated": 1648814557, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.240", + "vpnName": "HQ2148UF9W7", + "vpnOnline": false + }, + { + "name": "_IBN Zuberbühler, Pfyn/TG | InnovEnergy (2021-00199)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "1862e4cbeaf1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1639731027, + "lastPowerUpOrRestart": 1639678049, + "machineSerialNumber": "HQ2101C9ANU", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/145567", + "accessLevel": 1, + "syscreated": 1639675778, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.177", + "vpnName": "HQ2101C9ANU", + "vpnOnline": false + }, + { + "name": "_Test Anlage 1", + "identifier": "0cb2b7c7fbee", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~r4", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1646037257, + "lastPowerUpOrRestart": 1645111071, + "machineSerialNumber": "HQ18266ZP14", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/112352", + "accessLevel": 1, + "syscreated": 1623155454, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.177", + "vpnName": "HQ18266ZP14", + "vpnOnline": false + }, + { + "name": "_Test Venus an SECOMEA", + "identifier": "1cba8ca22050", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1610723060, + "lastPowerUpOrRestart": 1610722757, + "machineSerialNumber": "HQ202449Q26", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/91933", + "accessLevel": 1, + "syscreated": 1610715087, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.13", + "vpnName": "HQ202449Q26", + "vpnOnline": false + }, + { + "name": "-IBN Heinzelmann, Liebistorf/FR | Feldmann & Co. AG (2022-00008)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da87c967", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1645712807, + "lastPowerUpOrRestart": 1645711658, + "machineSerialNumber": "HQ2128MFCVU", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/157822", + "accessLevel": 1, + "syscreated": 1645691768, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.1.209", + "vpnName": "HQ2128MFCVU", + "vpnOnline": false + }, + { + "name": "0281224aab44", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0281224aab44 - USEDASREPLACEMENT", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ie", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1620386773, + "lastPowerUpOrRestart": 1620385635, + "machineSerialNumber": "HQ205061YR8", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/107567", + "accessLevel": 1, + "syscreated": 1620381870, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.1.50", + "vpnName": "HQ205061YR8", + "vpnOnline": true + }, + { + "name": "0c1c5712834a", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c5712834a", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.57~ie", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1601383947, + "lastPowerUpOrRestart": 1601383936, + "machineSerialNumber": "HQ2002WL7M1", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/67840", + "accessLevel": 1, + "syscreated": 1596633158, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.159", + "vpnName": "HQ2002WL7M1", + "vpnOnline": false + }, + { + "name": "1cba8c98a6c4", + "identifier": "1cba8c98a6c4 - USEDASREPLACEMENT", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.51", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1619771416, + "lastPowerUpOrRestart": 1619769564, + "machineSerialNumber": "HQ202414K62", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/106501", + "accessLevel": 1, + "syscreated": 1619769589, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.49", + "vpnName": "HQ202414K62", + "vpnOnline": true + }, + { + "name": "38d2694408a3", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "38d2694408a3 - USEDASREPLACEMENT", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.57~ie", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1602503838, + "lastPowerUpOrRestart": 1602141143, + "machineSerialNumber": "HQ2024BUQ7V", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/73552", + "accessLevel": 1, + "syscreated": 1601384893, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.239", + "vpnName": "HQ2024BUQ7V", + "vpnOnline": true + }, + { + "name": "48e7da875455", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da875455", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1648715254, + "lastPowerUpOrRestart": 1648708223, + "machineSerialNumber": "HQ21393AWZD", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/165965", + "accessLevel": 1, + "syscreated": 1648707200, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.238", + "vpnName": "HQ21393AWZD", + "vpnOnline": false + }, + { + "name": "7804733f0d92", + "identifier": "7804733f0d92", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.54", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1634806411, + "lastPowerUpOrRestart": 1634806401, + "machineSerialNumber": "HQ1945QCIA2", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/62073", + "accessLevel": 1, + "syscreated": 1591695691, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.147", + "vpnName": "HQ1945QCIA2", + "vpnOnline": false + }, + { + "name": "Abächerli, Hinwil/ZH | eConnect GmbH (2019-00078)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "7c669d48ca7b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163657, + "lastPowerUpOrRestart": 1650526688, + "machineSerialNumber": "HQ1927TEV8U", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/52669", + "accessLevel": 1, + "syscreated": 1580556656, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.104", + "vpnName": "HQ1927TEV8U", + "vpnOnline": true + }, + { + "name": "Abele, Alfdorf/DE | Elektro Abele (2021-00066)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "e415f6fb4714", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1623679168, + "lastPowerUpOrRestart": 1623678450, + "machineSerialNumber": "HQ2042PSWQN", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/112966", + "accessLevel": 1, + "syscreated": 1623412845, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.69", + "vpnName": "HQ2042PSWQN", + "vpnOnline": false + }, + { + "name": "Aeschlimann, Schwarzenegg/BE | InnovEnergy (2018-00001)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "471", + "identifier": "9884e38d476b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163655, + "lastPowerUpOrRestart": 1639029631, + "machineSerialNumber": "HQ1738IEZSR", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/22020", + "accessLevel": 1, + "syscreated": 1529071727, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.130", + "vpnName": "HQ1738IEZSR", + "vpnOnline": false + }, + { + "name": "Affentranger, Buttisholz/LU | Alectron AG (2018-00006)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "413", + "identifier": "508cb1cca580", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1649255334, + "lastPowerUpOrRestart": 1641504832, + "machineSerialNumber": "HQ1734ZJ13C", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/71405", + "accessLevel": 1, + "syscreated": 1599597990, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.8", + "vpnName": "HQ1734ZJ13C", + "vpnOnline": false + }, + { + "name": "Affolter, Port/BE | eltanorm GmbH (2021-00196)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "0035ff9c4875", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163658, + "lastPowerUpOrRestart": 1647277929, + "machineSerialNumber": "HQ2110UD9XL", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/142446", + "accessLevel": 1, + "syscreated": 1638452456, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.169", + "vpnName": "HQ2110UD9XL", + "vpnOnline": true + }, + { + "name": "AI10 REACT H2020Ireland (2021-00071.3)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "028160fd4400", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1651163663, + "lastPowerUpOrRestart": 1651150283, + "machineSerialNumber": "HQ2050VUYBZ", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/112836", + "accessLevel": 1, + "syscreated": 1623344508, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.67", + "vpnName": "HQ2050VUYBZ", + "vpnOnline": true + }, + { + "name": "AI12 REACT H2020Ireland (2021-00071.2)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "0281ab5140f5", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163640, + "lastPowerUpOrRestart": 1650367756, + "machineSerialNumber": "HQ2050IDGL2", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/112820", + "accessLevel": 1, + "syscreated": 1623338462, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.66", + "vpnName": "HQ2050IDGL2", + "vpnOnline": true + }, + { + "name": "AI8 REACT H2020Ireland (2021-00071.1)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "028149ee7573", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163631, + "lastPowerUpOrRestart": 1649766857, + "machineSerialNumber": "HQ20503L3SA", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/112622", + "accessLevel": 1, + "syscreated": 1623250320, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.65", + "vpnName": "HQ20503L3SA", + "vpnOnline": true + }, + { + "name": "AI9 REACT H2020Ireland (2021-00071.4)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "482", + "identifier": "028172247dc5", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163625, + "lastPowerUpOrRestart": 1649773698, + "machineSerialNumber": "HQ2050KMJU3", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/112851", + "accessLevel": 1, + "syscreated": 1623352363, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.68", + "vpnName": "HQ2050KMJU3", + "vpnOnline": true + }, + { + "name": "Albert, Benzenschwil/AG | Michael Albert (2021-00179)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "0479b7b3272a", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163622, + "lastPowerUpOrRestart": 1647449453, + "machineSerialNumber": "HQ2101DVBFC", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/139428", + "accessLevel": 1, + "syscreated": 1637254757, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.159", + "vpnName": "HQ2101DVBFC", + "vpnOnline": true + }, + { + "name": "Albl, Winterthur/ZH | Senero AG (2022-00002)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "494", + "identifier": "48e7da870c7f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 3, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163649, + "lastPowerUpOrRestart": 1650384466, + "machineSerialNumber": "HQ2148ENDZG", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/168345", + "accessLevel": 1, + "syscreated": 1649437978, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.252", + "vpnName": "HQ2148ENDZG", + "vpnOnline": true + }, + { + "name": "Allenbach, Achseten/BE | Elektro Gyger AG (2022-00011)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "48e7da8754db", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163669, + "lastPowerUpOrRestart": 1649745226, + "machineSerialNumber": "HQ2139NTNKE", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/159288", + "accessLevel": 1, + "syscreated": 1646303257, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.215", + "vpnName": "HQ2139NTNKE", + "vpnOnline": true + }, + { + "name": "Amigazzi, Langwiesen/ZH | Vivo Solar GmbH (2021-00027)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "489", + "identifier": "02815a72965f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163664, + "lastPowerUpOrRestart": 1647277657, + "machineSerialNumber": "HQ20228WE1H", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/87708", + "accessLevel": 1, + "syscreated": 1606919856, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.34", + "vpnName": "HQ20228WE1H", + "vpnOnline": true + }, + { + "name": "Bachmann, Hütten/ZH | Schibli AG (2020-00087)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c570043f5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163652, + "lastPowerUpOrRestart": 1646145482, + "machineSerialNumber": "HQ2005SD35K", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/73926", + "accessLevel": 1, + "syscreated": 1601618035, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.227", + "vpnName": "HQ2005SD35K", + "vpnOnline": true + }, + { + "name": "Baier, Seligenstadt/DE | EEG Autark GmbH (2021-00161)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "028121b39ba5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163655, + "lastPowerUpOrRestart": 1647278508, + "machineSerialNumber": "HQ2107XFI4D", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/135499", + "accessLevel": 1, + "syscreated": 1635432278, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.144", + "vpnName": "HQ2107XFI4D", + "vpnOnline": true + }, + { + "name": "Bärtschi, Wolhusen/LU | Alectron AG (2020-00074)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "f8369bff8e08", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163665, + "lastPowerUpOrRestart": 1649690767, + "machineSerialNumber": "HQ2021XNSKY", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/70247", + "accessLevel": 1, + "syscreated": 1598606371, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.211", + "vpnName": "HQ2021XNSKY", + "vpnOnline": true + }, + { + "name": "Beck, Neuendorf/SO | von arx systems ag (2022-00052)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "48e7da87cf3f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163659, + "lastPowerUpOrRestart": 1650373447, + "machineSerialNumber": "HQ2139NJEM3", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/156576", + "accessLevel": 1, + "syscreated": 1645115615, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.204", + "vpnName": "HQ2139NJEM3", + "vpnOnline": true + }, + { + "name": "Benguerel, Sutz/BE | InnovEnergy (2019-00048)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "0cae7d54bcf3", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163670, + "lastPowerUpOrRestart": 1645713590, + "machineSerialNumber": "HQ1907ZS4BI", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/44456", + "accessLevel": 1, + "syscreated": 1569405240, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.105", + "vpnName": "HQ1907ZS4BI", + "vpnOnline": true + }, + { + "name": "Bertrams, Schafisheim/AG | STARK STROM GmbH (2021-00092)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "482", + "identifier": "0281cacaf87d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163661, + "lastPowerUpOrRestart": 1643881976, + "machineSerialNumber": "HQ2019ES6C4", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/118765", + "accessLevel": 1, + "syscreated": 1626284888, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.105", + "vpnName": "HQ2019ES6C4", + "vpnOnline": true + }, + { + "name": "Berwert, Sachseln/OW | Werth AG (2019-00034)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "f045da7bfb0b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163660, + "lastPowerUpOrRestart": 1645024141, + "machineSerialNumber": "HQ190387WH6", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/41333", + "accessLevel": 1, + "syscreated": 1565157148, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.106", + "vpnName": "HQ190387WH6", + "vpnOnline": true + }, + { + "name": "BEsolar, Siblingen/SH | BEsolar GmbH (2021-00039)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "94e36dceb98c", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163662, + "lastPowerUpOrRestart": 1646765218, + "machineSerialNumber": "HQ2042DC5X5", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/109391", + "accessLevel": 1, + "syscreated": 1621497454, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.53", + "vpnName": "HQ2042DC5X5", + "vpnOnline": true + }, + { + "name": "Betschart, Goldau/SZ | Elektro Ottiger AG (2019-00033)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "0cae7d644355", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1651163644, + "lastPowerUpOrRestart": 1648708303, + "machineSerialNumber": "HQ19079XRJB", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/41707", + "accessLevel": 1, + "syscreated": 1565701356, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.107", + "vpnName": "HQ19079XRJB", + "vpnOnline": true + }, + { + "name": "Beyeler, Meiringen/BE | InnovEnergy (2019-00018)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "38d26970cf3a", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163667, + "lastPowerUpOrRestart": 1646143367, + "machineSerialNumber": "HQ1825HAIY2", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/38754", + "accessLevel": 1, + "syscreated": 1561390754, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.151", + "vpnName": "HQ1825HAIY2", + "vpnOnline": true + }, + { + "name": "Bigler, Rupperswil/AG | Alectron AG (2019-00069)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "c4f3128197dc", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163649, + "lastPowerUpOrRestart": 1645428023, + "machineSerialNumber": "HQ19244DYFX", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/47739", + "accessLevel": 1, + "syscreated": 1573581154, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.108", + "vpnName": "HQ19244DYFX", + "vpnOnline": true + }, + { + "name": "BIOSPHERA VENICE (2020-00107)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "02812c1321d4", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.51", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1649143402, + "lastPowerUpOrRestart": 1649134401, + "machineSerialNumber": "HQ2019HNVTI", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/113798", + "accessLevel": 1, + "syscreated": 1623860617, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.1.75", + "vpnName": "HQ2019HNVTI", + "vpnOnline": false + }, + { + "name": "Blaser, Obfelden/ZH | Hotz Technik GmbH (2022-00043)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da869889", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1650621287, + "lastPowerUpOrRestart": 1650620028, + "machineSerialNumber": "HQ2139JGAPY", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/165417", + "accessLevel": 1, + "syscreated": 1648564507, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.235", + "vpnName": "HQ2139JGAPY", + "vpnOnline": false + }, + { + "name": "Blattag Bern AG, Bern/BE | Elentec GmbH (2020-00063)", + "inverter": "Quattro 48/15000/200-2x100", + "inverterFw": "476", + "identifier": "e8eb11def480", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163657, + "lastPowerUpOrRestart": 1637660131, + "machineSerialNumber": "HQ20246BJ3W", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/72607", + "accessLevel": 1, + "syscreated": 1600679350, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.160", + "vpnName": "HQ20246BJ3W", + "vpnOnline": true + }, + { + "name": "BLS, Biglen/BE | InnovEnergy (2019-00079)", + "inverter": "Quattro 48/10000/140-2x100", + "inverterFw": "469", + "identifier": "0479b7efc3de", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163656, + "lastPowerUpOrRestart": 1608216338, + "machineSerialNumber": "HQ1933H7D74", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/54211", + "accessLevel": 1, + "syscreated": 1582295213, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.98", + "vpnName": "HQ1933H7D74", + "vpnOnline": true + }, + { + "name": "BLS, Holligen/BE | InnovEnergy (2019-00023)", + "inverter": "Quattro 48/5000/70-2x100", + "inverterFw": "430", + "identifier": "6064054c7212", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 5, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163672, + "lastPowerUpOrRestart": 1637081733, + "machineSerialNumber": "HQ173848NP5", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/27160", + "accessLevel": 1, + "syscreated": 1539513295, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.155", + "vpnName": "HQ173848NP5", + "vpnOnline": false + }, + { + "name": "BLS, Menznau/LU | InnovEnergy (2018-00033)", + "inverter": "Quattro 48/10000/140-2x100", + "inverterFw": "433", + "identifier": "38d2693a9463", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.60~r4", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163652, + "lastPowerUpOrRestart": 1650485992, + "machineSerialNumber": "HQ1825M84HE", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/31053", + "accessLevel": 1, + "syscreated": 1548410271, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.94", + "vpnName": "HQ1825M84HE", + "vpnOnline": true + }, + { + "name": "Boley, Hofheim am Taunus/DE | EEG Autark GmbH (2021-00132)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "1862e4c0bff7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163625, + "lastPowerUpOrRestart": 1636000036, + "machineSerialNumber": "HQ2101HW866", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/125437", + "accessLevel": 1, + "syscreated": 1630071784, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.110", + "vpnName": "HQ2101HW866", + "vpnOnline": true + }, + { + "name": "Borer, Lyss/BE | GRENERGY AG (2020-00089)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "481", + "identifier": "0c1c57019713", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 3, + "firmware": "v2.66~r5", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1651163653, + "lastPowerUpOrRestart": 1648652754, + "machineSerialNumber": "HQ200543CY9", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/72384", + "accessLevel": 1, + "syscreated": 1600419917, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.220", + "vpnName": "HQ200543CY9", + "vpnOnline": true + }, + { + "name": "Bosshard, Dübendorf/ZH I SoloSolar GmbH (2020-00046)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "7804733f168f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163625, + "lastPowerUpOrRestart": 1642190339, + "machineSerialNumber": "HQ1945M6Y99", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/63976", + "accessLevel": 1, + "syscreated": 1593431731, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.153", + "vpnName": "HQ1945M6Y99", + "vpnOnline": true + }, + { + "name": "Bowles, Kappel am Albis/ZH | Hotz Technik GmbH (2021-00116)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6f8596b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163645, + "lastPowerUpOrRestart": 1647278644, + "machineSerialNumber": "HQ204621Z4M", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/123958", + "accessLevel": 1, + "syscreated": 1629297813, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.106", + "vpnName": "HQ204621Z4M", + "vpnOnline": true + }, + { + "name": "Bremgartner, Sigigen/LU | Alectron AG (2020-00041)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "780473406e73", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163658, + "lastPowerUpOrRestart": 1649334280, + "machineSerialNumber": "HQ1945MFRT8", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/64548", + "accessLevel": 1, + "syscreated": 1593805775, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.184", + "vpnName": "HQ1945MFRT8", + "vpnOnline": true + }, + { + "name": "Brubacher, Seelze/DE | Optema - Ronald Koch (2021-00176)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0281eefec2ad", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163642, + "lastPowerUpOrRestart": 1650640035, + "machineSerialNumber": "HQ21071BHI8", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/138021", + "accessLevel": 1, + "syscreated": 1636641323, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.154", + "vpnName": "HQ21071BHI8", + "vpnOnline": true + }, + { + "name": "Brugger in AT | JS Sonnenstrom GmbH (2022-00054)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "00e93aac3e1b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651149738, + "lastPowerUpOrRestart": 1649446042, + "machineSerialNumber": "HQ21399GMMR", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/162040", + "accessLevel": 1, + "syscreated": 1647360369, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.228", + "vpnName": "HQ21399GMMR", + "vpnOnline": false + }, + { + "name": "Brügger, Kerzers/BE | eltanom GmbH (2021-00060)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "94e36dceb110", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163625, + "lastPowerUpOrRestart": 1622741594, + "machineSerialNumber": "HQ2042GSIB5", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/110681", + "accessLevel": 1, + "syscreated": 1622184558, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.60", + "vpnName": "HQ2042GSIB5", + "vpnOnline": true + }, + { + "name": "Brügger, Laupen/BE | energy unlimited GmbH (2020-00088)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "e8eb11e308e0", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163657, + "lastPowerUpOrRestart": 1644479163, + "machineSerialNumber": "HQ2024B2DIC", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/71502", + "accessLevel": 1, + "syscreated": 1599672804, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.217", + "vpnName": "HQ2024B2DIC", + "vpnOnline": true + }, + { + "name": "Brunelli, Ligornetto/TI | Bouygues AG (2021-00076)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "94e36dce646f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163663, + "lastPowerUpOrRestart": 1649696465, + "machineSerialNumber": "HQ204685UUB", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/115214", + "accessLevel": 1, + "syscreated": 1624554238, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.81", + "vpnName": "HQ204685UUB", + "vpnOnline": true + }, + { + "name": "Brunner, Walzenhausen/AR | Swiss Photovoltaik GmbH (2021-00139)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "1862e4c6fdb6", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163674, + "lastPowerUpOrRestart": 1640097077, + "machineSerialNumber": "HQ2101SBCHX", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/129630", + "accessLevel": 1, + "syscreated": 1632408398, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.125", + "vpnName": "HQ2101SBCHX", + "vpnOnline": true + }, + { + "name": "Bücheler, Kerzers/FR | Bouygues AG (2020-00096)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c57003453", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163644, + "lastPowerUpOrRestart": 1608224815, + "machineSerialNumber": "HQ2005UX2KL", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/72858", + "accessLevel": 1, + "syscreated": 1600850918, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.224", + "vpnName": "HQ2005UX2KL", + "vpnOnline": true + }, + { + "name": "Bucher, Eschenbach/SG | Elektro Egli AG (2022-00015)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b860ffb", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163633, + "lastPowerUpOrRestart": 1647416220, + "machineSerialNumber": "HQ2104MKRLR", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/159156", + "accessLevel": 1, + "syscreated": 1646238377, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.214", + "vpnName": "HQ2104MKRLR", + "vpnOnline": false + }, + { + "name": "Bürgi, Fulenbach/SO | von arx systems ag (2022-00004)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "d41243d30429", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1648651003, + "lastPowerUpOrRestart": 1648650841, + "machineSerialNumber": "HQ210432ALU", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/165705", + "accessLevel": 1, + "syscreated": 1648643459, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.237", + "vpnName": "HQ210432ALU", + "vpnOnline": false + }, + { + "name": "Burki, Lätti/BE | KWenergy GmbH (2020-00043)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "7804734044b8", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163650, + "lastPowerUpOrRestart": 1645778061, + "machineSerialNumber": "HQ1945RENFU", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/64549", + "accessLevel": 1, + "syscreated": 1593806543, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.154", + "vpnName": "HQ1945RENFU", + "vpnOnline": true + }, + { + "name": "Bürki, Utzenstorf/BE | Elektro Grogg AG (2020-00032)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "7c669d53fd1f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163624, + "lastPowerUpOrRestart": 1608224927, + "machineSerialNumber": "HQ1933JF584", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/62048", + "accessLevel": 1, + "syscreated": 1591679631, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.196", + "vpnName": "HQ1933JF584", + "vpnOnline": true + }, + { + "name": "Buser, Möhlin/AG | Elektro Böhlen AG (2021-00087)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "1862e4c7052d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1649894352, + "lastPowerUpOrRestart": 1647277684, + "machineSerialNumber": "HQ20466YVQ9", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/117524", + "accessLevel": 1, + "syscreated": 1625748587, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.84", + "vpnName": "HQ20466YVQ9", + "vpnOnline": false + }, + { + "name": "Cameroun | Haute Ecole (2021-00064)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "481", + "identifier": "0035ff645d98", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.72~victron", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1633245921, + "lastPowerUpOrRestart": 1632899050, + "machineSerialNumber": "HQ20424S63Q", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/112341", + "accessLevel": 1, + "syscreated": 1623153453, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.64", + "vpnName": "HQ20424S63Q", + "vpnOnline": false + }, + { + "name": "Châtelain, La Côte-aux-Fées/NE | Easy-sun (2021-00121)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "1862e4cbf2ec", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163640, + "lastPowerUpOrRestart": 1643617230, + "machineSerialNumber": "HQ21019CSPF", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/125237", + "accessLevel": 1, + "syscreated": 1629983752, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.109", + "vpnName": "HQ21019CSPF", + "vpnOnline": true + }, + { + "name": "Christ, Büsserach/SO | STARK STROM GmbH (2021-00093)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "482", + "identifier": "0479b7b2e06b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163647, + "lastPowerUpOrRestart": 1637078599, + "machineSerialNumber": "HQ2046PNVHX", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/118914", + "accessLevel": 1, + "syscreated": 1626355042, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.90", + "vpnName": "HQ2046PNVHX", + "vpnOnline": true + }, + { + "name": "Christeler, Lenk/BE | Alectron AG (2019-00063)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "c4f3128197d0", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163629, + "lastPowerUpOrRestart": 1643122675, + "machineSerialNumber": "HQ1924L3DYA", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/52662", + "accessLevel": 1, + "syscreated": 1580547477, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.99", + "vpnName": "HQ1924L3DYA", + "vpnOnline": true + }, + { + "name": "Christener, Zäziwil/BE | Elentec GmbH (2020-00025)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "780473402e53", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163642, + "lastPowerUpOrRestart": 1643210897, + "machineSerialNumber": "HQ1945TPYS2", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/62128", + "accessLevel": 1, + "syscreated": 1591714346, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.153", + "vpnName": "HQ1945TPYS2", + "vpnOnline": true + }, + { + "name": "CKW Werkhalle, St. Erhard/LU | CKW Conex AG (2019-00050)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "0cae7d24a5f5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 3, + "firmware": "v2.52", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1651163662, + "lastPowerUpOrRestart": 1624883769, + "machineSerialNumber": "HQ19071LFGE", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/44686", + "accessLevel": 1, + "syscreated": 1569660449, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Clever Chicken Cameroun (2021-00003)", + "inverter": "Quattro 48/5000/70-2x100", + "inverterFw": "433", + "identifier": "0035ff646c20", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.51", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163550, + "lastPowerUpOrRestart": 1650778069, + "machineSerialNumber": "HQ2032MLIFN", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/93065", + "accessLevel": 1, + "syscreated": 1611565996, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.17", + "vpnName": "HQ2032MLIFN", + "vpnOnline": false + }, + { + "name": "D B Provincial House Salt Battery (2021-00105)", + "inverter": "Quattro 48/15000/200-2x100", + "inverterFw": "481", + "identifier": "0cb2b7b9f636", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 5, + "nbPvInverters": 8, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163633, + "lastPowerUpOrRestart": 1650973377, + "machineSerialNumber": "HQ2024ER4ZX", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/93077", + "accessLevel": 1, + "syscreated": 1611568989, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.18", + "vpnName": "HQ2024ER4ZX", + "vpnOnline": true + }, + { + "name": "Debrunner, Eschenz/TG | EWE Elektro AG (2021-00125)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0479b7b32d63", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163630, + "lastPowerUpOrRestart": 1647278476, + "machineSerialNumber": "HQ2101T1UN6", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/125808", + "accessLevel": 1, + "syscreated": 1630400679, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.111", + "vpnName": "HQ2101T1UN6", + "vpnOnline": true + }, + { + "name": "Diethelm, Brunnen/SZ | Alectron AG (2019-00004)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "7c386655d508", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163630, + "lastPowerUpOrRestart": 1648666047, + "machineSerialNumber": "HQ1837HUPTV", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/34388", + "accessLevel": 1, + "syscreated": 1554544954, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.109", + "vpnName": "HQ1837HUPTV", + "vpnOnline": true + }, + { + "name": "Dobler, Eppenberg/SO | kabeltechnik swiss ag (2021-00021)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "0035ff9185eb", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163638, + "lastPowerUpOrRestart": 1650137243, + "machineSerialNumber": "HQ2032ASIQA", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/100126", + "accessLevel": 1, + "syscreated": 1616136362, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.35", + "vpnName": "HQ2032ASIQA", + "vpnOnline": true + }, + { + "name": "Doldt, Zumikon/ZH | BS Strohmeier AG (2020-00094)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c5701d7ea", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163673, + "lastPowerUpOrRestart": 1638784671, + "machineSerialNumber": "HQ2005VSEVI", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/72364", + "accessLevel": 1, + "syscreated": 1600405215, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.219", + "vpnName": "HQ2005VSEVI", + "vpnOnline": true + }, + { + "name": "Don Bosco, Accra/GH | Antenna Foundation (2021-00105.1)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0cb2b7b9d7dc", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1627364823, + "lastPowerUpOrRestart": 1627364716, + "machineSerialNumber": "HQ2042W983G", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/120654", + "accessLevel": 1, + "syscreated": 1627364111, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.93", + "vpnName": "HQ2042W983G", + "vpnOnline": false + }, + { + "name": "Don Bosco, Accra/GH | Antenna Foundation (2021-00105.3)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0479b7b2d999", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1627367074, + "lastPowerUpOrRestart": 1627367039, + "machineSerialNumber": "HQ2101M2UUH", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/120659", + "accessLevel": 1, + "syscreated": 1627366712, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.1.95", + "vpnName": "HQ2101M2UUH", + "vpnOnline": false + }, + { + "name": "Don Bosco, Accra/GH | Antenna Foundation (2021-00105.4)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0479b7aeadf5", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1627368817, + "lastPowerUpOrRestart": 1627368691, + "machineSerialNumber": "HQ2101G4GAE", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/120661", + "accessLevel": 1, + "syscreated": 1627368264, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.1.96", + "vpnName": "HQ2101G4GAE", + "vpnOnline": false + }, + { + "name": "Doppmann, Grosswangen/LU | CKW Conex AG (2019-00029)", + "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", + "inverterFw": "456", + "identifier": "0cae7d0f5cac", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163644, + "lastPowerUpOrRestart": 1616416973, + "machineSerialNumber": "HQ1837GXQAZ", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/34385", + "accessLevel": 1, + "syscreated": 1554539849, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.110", + "vpnName": "HQ1837GXQAZ", + "vpnOnline": true + }, + { + "name": "Doppmann, Gstaad/BE | Alectron AG (2018-00032)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "430", + "identifier": "7c3866ed03c8", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1651163616, + "lastPowerUpOrRestart": 1649700990, + "machineSerialNumber": "HQ1810SDVPK", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/27813", + "accessLevel": 1, + "syscreated": 1540630575, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.186", + "vpnName": "HQ1810SDVPK", + "vpnOnline": true + }, + { + "name": "Dürst, Burgistein/BE | Brunner + Imboden AG (2021-00057)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "94e36dce8611", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163626, + "lastPowerUpOrRestart": 1647278513, + "machineSerialNumber": "HQ2042B4A4X", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/111466", + "accessLevel": 1, + "syscreated": 1622639006, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.62", + "vpnName": "HQ2042B4A4X", + "vpnOnline": true + }, + { + "name": "Duss, Freiburg/FR | Breu AG (2020-00060)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": 780473406783, + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163624, + "lastPowerUpOrRestart": 1646123196, + "machineSerialNumber": "HQ1945RM5DZ", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/64863", + "accessLevel": 1, + "syscreated": 1594133636, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.161", + "vpnName": "HQ1945RM5DZ", + "vpnOnline": true + }, + { + "name": "e415f6f87cb7", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "471", + "identifier": "e415f6f87cb7 - USEDASREPLACEMENT", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.51", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1612799313, + "lastPowerUpOrRestart": 1612798398, + "machineSerialNumber": "HQ2032EDLPI", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/94838", + "accessLevel": 1, + "syscreated": 1612798504, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.27", + "vpnName": "HQ2032EDLPI", + "vpnOnline": true + }, + { + "name": "Ebneter, Anzonico/TI | Bouygues E&S In Tec Schweiz AG (2021-00223)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "d41243cd79e0", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163666, + "lastPowerUpOrRestart": 1647277537, + "machineSerialNumber": "HQ2122MQGPK", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/152273", + "accessLevel": 1, + "syscreated": 1643297686, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.186", + "vpnName": "HQ2122MQGPK", + "vpnOnline": true + }, + { + "name": "Egli, Faulensee/BE | Elektro Hunziker AG (2020-00143)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "94e36dcea8b2", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163673, + "lastPowerUpOrRestart": 1620282322, + "machineSerialNumber": "HQ20245VBDE", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/88643", + "accessLevel": 1, + "syscreated": 1607606375, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.2", + "vpnName": "HQ20245VBDE", + "vpnOnline": true + }, + { + "name": "Eichenberger, Meggen/LU | Alectron AG (2019-00045)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "0cae7d63fccc", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163656, + "lastPowerUpOrRestart": 1635229029, + "machineSerialNumber": "HQ19073PYAT", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/43618", + "accessLevel": 1, + "syscreated": 1568216760, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.111", + "vpnName": "HQ19073PYAT", + "vpnOnline": true + }, + { + "name": "Emmenegger, Hellbühl/LU | Alectron AG (2019-00002)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "0cae7d0c3be8", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163659, + "lastPowerUpOrRestart": 1639400155, + "machineSerialNumber": "HQ18371DV7L", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/36333", + "accessLevel": 1, + "syscreated": 1557900213, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.112", + "vpnName": "HQ18371DV7L", + "vpnOnline": true + }, + { + "name": "Epp, Tagelswangen/ZH | Scherrer Gebäudehüllen AG (2020-00147)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c5700343e", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163663, + "lastPowerUpOrRestart": 1645702723, + "machineSerialNumber": "HQ2005PA3U8", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/91574", + "accessLevel": 1, + "syscreated": 1610461937, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.10", + "vpnName": "HQ2005PA3U8", + "vpnOnline": true + }, + { + "name": "Erni, Kaisten/AG | Elektro Siegrist AG (2021-00096)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0cb2b7b9bfca", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163627, + "lastPowerUpOrRestart": 1647278364, + "machineSerialNumber": "HQ20461JZ9B", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/121131", + "accessLevel": 1, + "syscreated": 1627537478, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.103", + "vpnName": "HQ20461JZ9B", + "vpnOnline": true + }, + { + "name": "Eschle, Laufen/BL | STARK STROM GmbH (2020-00030)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "02816caa6760", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.66", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1631739668, + "lastPowerUpOrRestart": 1623253546, + "machineSerialNumber": "HQ1939BB724", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/64144", + "accessLevel": 1, + "syscreated": 1593528013, + "vrmOnline": false, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Eschle, Laufen/BL | STARK STROM GmbH (2021-00191)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "492", + "identifier": "0035ff96ad7c", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163629, + "lastPowerUpOrRestart": 1644917798, + "machineSerialNumber": "HQ2110TY15V", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/140689", + "accessLevel": 1, + "syscreated": 1637770571, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.163", + "vpnName": "HQ2110TY15V", + "vpnOnline": true + }, + { + "name": "Fähnle, Hasliberg-Reuti/BE | InnovEnergy (2017-00008)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "474", + "identifier": "04a316c4e7b4", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163675, + "lastPowerUpOrRestart": 1650561776, + "machineSerialNumber": "HQ17079NXQJ", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/15822", + "accessLevel": 1, + "syscreated": 1510152199, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.173", + "vpnName": "HQ17079NXQJ", + "vpnOnline": true + }, + { + "name": "Farner, Guntalingen-Stammheim/ZH | InnovEnergy (2018-00004)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "413", + "identifier": "508cb1cd23b0", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.58", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1651163636, + "lastPowerUpOrRestart": 1602511088, + "machineSerialNumber": "HQ1734BZUJH", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/21330", + "accessLevel": 1, + "syscreated": 1527683108, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Felz Zwei, Girhalden/ZH | Elektro Scherzinger AG (2021-00127)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0479b7b2ca30", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163649, + "lastPowerUpOrRestart": 1643304940, + "machineSerialNumber": "HQ2101J1YIC", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/128456", + "accessLevel": 1, + "syscreated": 1631795724, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.120", + "vpnName": "HQ2101J1YIC", + "vpnOnline": true + }, + { + "name": "FIAMM FZSoNick SA, Stabio/TI (2020-00122)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "780473405a3f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~9", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1605687488, + "lastPowerUpOrRestart": 1605686483, + "machineSerialNumber": "HQ2005ZFKDH", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/76812", + "accessLevel": 1, + "syscreated": 1603979133, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.240", + "vpnName": "HQ2005ZFKDH", + "vpnOnline": false + }, + { + "name": "Florin, Brugg/AG | InnovEnergy (2019-00064)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "f045da77e72c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163650, + "lastPowerUpOrRestart": 1635143132, + "machineSerialNumber": "HQ1851FHC2C", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/48527", + "accessLevel": 1, + "syscreated": 1574596614, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.113", + "vpnName": "HQ1851FHC2C", + "vpnOnline": true + }, + { + "name": "Flück, Solothurn/SO | Bouygues AG (2020-00068)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c5713d83c", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163659, + "lastPowerUpOrRestart": 1643366971, + "machineSerialNumber": "HQ2002KYG99", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/68832", + "accessLevel": 1, + "syscreated": 1597411590, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.233", + "vpnName": "HQ2002KYG99", + "vpnOnline": true + }, + { + "name": "Flückiger, Aarau/AG | Ziltener Heizungen GmbH (2020-00091)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "f8369bf61c32", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163626, + "lastPowerUpOrRestart": 1639408751, + "machineSerialNumber": "HQ2005W4NVB", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/72307", + "accessLevel": 1, + "syscreated": 1600348415, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.218", + "vpnName": "HQ2005W4NVB", + "vpnOnline": true + }, + { + "name": "Flückiger, Grünenmatt/BE | clevergie ag - Region Emmental (2021-00231)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "102c6bc2b06f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163627, + "lastPowerUpOrRestart": 1646410792, + "machineSerialNumber": "HQ21189FYME", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/154919", + "accessLevel": 1, + "syscreated": 1644423781, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.196", + "vpnName": "HQ21189FYME", + "vpnOnline": true + }, + { + "name": "Flückiger, Seuzach/ZH | AWS Solar (2019-00015)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "430", + "identifier": "508cb1e48b3e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163658, + "lastPowerUpOrRestart": 1650974363, + "machineSerialNumber": "HQ17466TQPC", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/28695", + "accessLevel": 1, + "syscreated": 1542621455, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.174", + "vpnName": "HQ17466TQPC", + "vpnOnline": true + }, + { + "name": "Föhn, Buchberg/SH | Scherrer Gebäudehüllen AG (2020-00148)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "1cba8c98a6c4", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163674, + "lastPowerUpOrRestart": 1648748904, + "machineSerialNumber": "HQ202414K62", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/91586", + "accessLevel": 1, + "syscreated": 1610468956, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.49", + "vpnName": "HQ202414K62", + "vpnOnline": true + }, + { + "name": "FPTI, BR/Foz do Iguaçu | ie (1)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "430", + "identifier": "9884e39849a1", + "hasMains": false, + "hasGenerator": true, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.30~27", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1583075265, + "lastPowerUpOrRestart": 1572068663, + "machineSerialNumber": null, + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/21541", + "accessLevel": 1, + "syscreated": 1528021393, + "vrmOnline": false, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "FPTI, BR/Foz do Iguaçu | ie (2)", + "inverter": "Quattro 48/3000/35-2x50 120V", + "inverterFw": "430", + "identifier": "7c386651bcfa", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.71", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163651, + "lastPowerUpOrRestart": 1650973261, + "machineSerialNumber": "HQ1741778AH", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/32066", + "accessLevel": 1, + "syscreated": 1550578128, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Frankowsky, Windeck-Hurst/DE | IL sun+ Innovative Energie (2020-00103)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c570039ab", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163670, + "lastPowerUpOrRestart": 1645442070, + "machineSerialNumber": "HQ2005KRVDA", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/74177", + "accessLevel": 1, + "syscreated": 1601885462, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.230", + "vpnName": "HQ2005KRVDA", + "vpnOnline": true + }, + { + "name": "Frauenknecht, Stalden/OW | Egger Enertech AG (2019-00017)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "985dadd0cf11", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163687, + "lastPowerUpOrRestart": 1646061566, + "machineSerialNumber": "HQ1751QGZIA", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/34393", + "accessLevel": 1, + "syscreated": 1554550971, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.114", + "vpnName": "HQ1751QGZIA", + "vpnOnline": true + }, + { + "name": "Frey, Möriken/AG | Eglin Elektro AG (2021-00192)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "0035ff9b0ff7", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163674, + "lastPowerUpOrRestart": 1647277516, + "machineSerialNumber": "HQ2110L2XEJ", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/142587", + "accessLevel": 1, + "syscreated": 1638518131, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.170", + "vpnName": "HQ2110L2XEJ", + "vpnOnline": true + }, + { + "name": "Frischknecht, Gränichen/AG | Kabeltechnik swiss ag (2021-00201)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "e415f6f818b2", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1645559908, + "lastPowerUpOrRestart": 1645233699, + "machineSerialNumber": "HQ20462G59I", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/145317", + "accessLevel": 1, + "syscreated": 1639584561, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.175", + "vpnName": "HQ20462G59I", + "vpnOnline": false + }, + { + "name": "GACHA - G1 Fondation", + "inverter": "Quattro 48/15000/200-2x100", + "inverterFw": "490", + "identifier": "1862e4cc7100", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163671, + "lastPowerUpOrRestart": 1651126594, + "machineSerialNumber": "HQ2101SBN8F", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/120666", + "accessLevel": 1, + "syscreated": 1627370968, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.98", + "vpnName": "HQ2101SBN8F", + "vpnOnline": false + }, + { + "name": "GACHA G2 Menuiserie", + "inverter": "Quattro 48/15000/200-2x100", + "inverterFw": "490", + "identifier": "e415f6f19a97", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~victron", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1651163677, + "lastPowerUpOrRestart": 1649854400, + "machineSerialNumber": "HQ2101Q74EC", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/120670", + "accessLevel": 1, + "syscreated": 1627371719, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.99", + "vpnName": "HQ2101Q74EC", + "vpnOnline": true + }, + { + "name": "Galliker, Hitzkirch/LU | Alectron AG (2021-00069)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "e415f6f444c0", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163663, + "lastPowerUpOrRestart": 1627544722, + "machineSerialNumber": "HQ2101HXPI5", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/120664", + "accessLevel": 1, + "syscreated": 1627369534, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.97", + "vpnName": "HQ2101HXPI5", + "vpnOnline": true + }, + { + "name": "Gasser, Rapperswil/BE | Elektro Roder AG (2020-00066)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c57127393", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163693, + "lastPowerUpOrRestart": 1637839134, + "machineSerialNumber": "HQ2002Y7617", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/67816", + "accessLevel": 1, + "syscreated": 1596625954, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.160", + "vpnName": "HQ2002Y7617", + "vpnOnline": true + }, + { + "name": "Gemeinde Nottwil Bauamt, Nottwil/LU | Alectron AG (2020-00023)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "7804733f242d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.66~r5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163682, + "lastPowerUpOrRestart": 1639738818, + "machineSerialNumber": "HQ1945R8TW2", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/63851", + "accessLevel": 1, + "syscreated": 1593243878, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.189", + "vpnName": "HQ1945R8TW2", + "vpnOnline": false + }, + { + "name": "Gerber, Rüti/ZH | Clevergie AG (2020-00081)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "492", + "identifier": "0c1c57004383", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163661, + "lastPowerUpOrRestart": 1643019673, + "machineSerialNumber": "HQ2005WEDAW", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/70267", + "accessLevel": 1, + "syscreated": 1598616430, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.238", + "vpnName": "HQ2005WEDAW", + "vpnOnline": true + }, + { + "name": "Gerber, Winterthur/ZH | Senero AG (2021-00124)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6f830c7", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163685, + "lastPowerUpOrRestart": 1647278416, + "machineSerialNumber": "HQ2046ZWTGW", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/126289", + "accessLevel": 1, + "syscreated": 1630587805, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.115", + "vpnName": "HQ2046ZWTGW", + "vpnOnline": true + }, + { + "name": "Gerster, Laufen/BL | STARK STROM GmbH (2019-00061)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "469", + "identifier": "d0ff505d1f0c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 3, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163634, + "lastPowerUpOrRestart": 1649261018, + "machineSerialNumber": "HQ1924QWDZ3", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/48524", + "accessLevel": 1, + "syscreated": 1574593663, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.115", + "vpnName": "HQ1924QWDZ3", + "vpnOnline": true + }, + { + "name": "Geyer, Waltrop/DE | EEG Autark GmbH (2021-00186)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "0035ff98f1e1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163686, + "lastPowerUpOrRestart": 1647278801, + "machineSerialNumber": "HQ2110V1ZDY", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/140664", + "accessLevel": 1, + "syscreated": 1637764625, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.161", + "vpnName": "HQ2110V1ZDY", + "vpnOnline": true + }, + { + "name": "Gimmi, Kappel am Albis/ZH | Alex Gemperle AG (2020-00036)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "7804733fd023", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163639, + "lastPowerUpOrRestart": 1640111050, + "machineSerialNumber": "HQ1945LXLDD", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/63985", + "accessLevel": 1, + "syscreated": 1593434712, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.200", + "vpnName": "HQ1945LXLDD", + "vpnOnline": true + }, + { + "name": "Gittermann, Stein/AG | Kabeltechnik swiss ag (2021-00230)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6bc2ae6e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163646, + "lastPowerUpOrRestart": 1647305109, + "machineSerialNumber": "HQ21189FG2X", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/154781", + "accessLevel": 1, + "syscreated": 1644393941, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.194", + "vpnName": "HQ21189FG2X", + "vpnOnline": true + }, + { + "name": "Glarner Krankenversicherung, Schwanden/GL | Aulux Energietechnik GmbH (2021-00024)", + "inverter": "Quattro 48/10000/140-2x100", + "inverterFw": "481", + "identifier": "94e36dce8a73", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163663, + "lastPowerUpOrRestart": 1649175323, + "machineSerialNumber": "HQ2042YU3JW", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/105037", + "accessLevel": 1, + "syscreated": 1618942799, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.43", + "vpnName": "HQ2042YU3JW", + "vpnOnline": true + }, + { + "name": "Göthe, Steinhöring", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "0281a3463622", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163683, + "lastPowerUpOrRestart": 1647953589, + "machineSerialNumber": "HQ2107F9WN3", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/160326", + "accessLevel": 1, + "syscreated": 1646735324, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.221", + "vpnName": "HQ2107F9WN3", + "vpnOnline": true + }, + { + "name": "Graber, Zürich/ZH | InnovEnergy", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "424", + "identifier": "9884e3aef071", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163695, + "lastPowerUpOrRestart": 1648220175, + "machineSerialNumber": "HQ1728HEJ99", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/34807", + "accessLevel": 1, + "syscreated": 1555315067, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.6", + "vpnName": "HQ1728HEJ99", + "vpnOnline": true + }, + { + "name": "Graf, Kirchberg/SG | Elektro Iten (2021-00195)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "0479b7aead89", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163673, + "lastPowerUpOrRestart": 1647277423, + "machineSerialNumber": "HQ2101XD34F", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/142248", + "accessLevel": 1, + "syscreated": 1638373379, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.168", + "vpnName": "HQ2101XD34F", + "vpnOnline": true + }, + { + "name": "Greißl, Feichten/Neumarkt St. Veit/DE | Elektrotechnik Schmidt (2022-00065)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b9d089c", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163648, + "lastPowerUpOrRestart": 1649201056, + "machineSerialNumber": "HQ2118MYJHY", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/160542", + "accessLevel": 1, + "syscreated": 1646819408, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.223", + "vpnName": "HQ2118MYJHY", + "vpnOnline": true + }, + { + "name": "Grossniklaus, Gsteigwiler/BE | Frey & Cie Elektro AG (2021-00056)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "94e36dceb7d6", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163649, + "lastPowerUpOrRestart": 1646530624, + "machineSerialNumber": "HQ2042RUJEN", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/111386", + "accessLevel": 1, + "syscreated": 1622621734, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.61", + "vpnName": "HQ2042RUJEN", + "vpnOnline": true + }, + { + "name": "Grossrieder, Guggisberg/BE | Breu AG (2021-00067)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "482", + "identifier": "0cb2b7b9a527", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163671, + "lastPowerUpOrRestart": 1647277550, + "machineSerialNumber": "HQ2042RK6TH", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/118823", + "accessLevel": 1, + "syscreated": 1626329796, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.88", + "vpnName": "HQ2042RK6TH", + "vpnOnline": true + }, + { + "name": "Grund, Ellingen/DE | EEG autark (2020-00141)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0cb2b7b9d0aa", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.54~ie", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163411, + "lastPowerUpOrRestart": 1647553600, + "machineSerialNumber": "HQ2028KUHUJ", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/88785", + "accessLevel": 1, + "syscreated": 1607692178, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.4", + "vpnName": "HQ2028KUHUJ", + "vpnOnline": true + }, + { + "name": "Grundmann, Aarberg/BE | KWenergy GmbH (2020-00049)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "0479b7ef4ca4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163689, + "lastPowerUpOrRestart": 1647690340, + "machineSerialNumber": "HQ19339D9IX", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/65757", + "accessLevel": 1, + "syscreated": 1594890797, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.155", + "vpnName": "HQ19339D9IX", + "vpnOnline": true + }, + { + "name": "Gubler, Boll/BE | Bouygues AG (2021-00108)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0035ff921cf6", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163678, + "lastPowerUpOrRestart": 1633091419, + "machineSerialNumber": "HQ2032DDTEQ", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/98483", + "accessLevel": 1, + "syscreated": 1615281362, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.30", + "vpnName": "HQ2032DDTEQ", + "vpnOnline": true + }, + { + "name": "Günter, Mittelhäusern/BE | Breu AG (2020-00110)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "94e36dd4f737", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163654, + "lastPowerUpOrRestart": 1612455545, + "machineSerialNumber": "HQ2024ZX9N7", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/76854", + "accessLevel": 1, + "syscreated": 1603989958, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.242", + "vpnName": "HQ2024ZX9N7", + "vpnOnline": true + }, + { + "name": "Häberli, Stein am Rhein/SH | Grossmann Brauchli AG (2021-00200)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "e415f6f1927b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163676, + "lastPowerUpOrRestart": 1647277874, + "machineSerialNumber": "HQ2101D34C3", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/145328", + "accessLevel": 1, + "syscreated": 1639587890, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.176", + "vpnName": "HQ2101D34C3", + "vpnOnline": true + }, + { + "name": "Hager, Eschenbach/SG | Elektro Egli AG (2021-00228)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da885e3f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163707, + "lastPowerUpOrRestart": 1645713971, + "machineSerialNumber": "HQ21289V4HP", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/153699", + "accessLevel": 1, + "syscreated": 1643905327, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.191", + "vpnName": "HQ21289V4HP", + "vpnOnline": true + }, + { + "name": "Haller, Gwatt/BE | Elektro Fahrni AG (2021-00218)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da8a25b5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163678, + "lastPowerUpOrRestart": 1648570530, + "machineSerialNumber": "HQ2128HZY3J", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/152918", + "accessLevel": 1, + "syscreated": 1643634402, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.188", + "vpnName": "HQ2128HZY3J", + "vpnOnline": true + }, + { + "name": "Halter, Wiesendangen/ZH | DCP Energie GmbH (2020-00117)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "64cfd961318b", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163687, + "lastPowerUpOrRestart": 1632661258, + "machineSerialNumber": "HQ2024ELMKF", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/78272", + "accessLevel": 1, + "syscreated": 1605195394, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.244", + "vpnName": "HQ2024ELMKF", + "vpnOnline": true + }, + { + "name": "Hardegger Liegenschaften GmbH, Fahrweid/ZH | Elektro Ottinger AG (2021-00220)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da877179", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163711, + "lastPowerUpOrRestart": 1649819690, + "machineSerialNumber": "HQ2128F6X9K", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/153871", + "accessLevel": 1, + "syscreated": 1643968568, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.192", + "vpnName": "HQ2128F6X9K", + "vpnOnline": true + }, + { + "name": "Hehlen, Oey/BE | InnovEnergy (2019-00005)", + "inverter": "Quattro 48/5000/70-2x100", + "inverterFw": "459", + "identifier": "7804733f2b14", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1633572309, + "lastPowerUpOrRestart": 1632127932, + "machineSerialNumber": "HQ1945MGKUR", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/62070", + "accessLevel": 1, + "syscreated": 1591693763, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.0.146", + "vpnName": "HQ1945MGKUR", + "vpnOnline": false + }, + { + "name": "Heilinger, Bremgarten/BE | Rolf Gerber AG (2020-00040)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "0479b7f1815f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163668, + "lastPowerUpOrRestart": 1620469810, + "machineSerialNumber": "HQ19308F683", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/62054", + "accessLevel": 1, + "syscreated": 1591685115, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.149", + "vpnName": "HQ19308F683", + "vpnOnline": true + }, + { + "name": "Henz, Bärschwil/SO | STARK STROM GmbH (2019-00051)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "496", + "identifier": "0cae7d54b729", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163687, + "lastPowerUpOrRestart": 1651158105, + "machineSerialNumber": "HQ1907WRHJT", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/46406", + "accessLevel": 1, + "syscreated": 1571842852, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.0.197", + "vpnName": "HQ1907WRHJT", + "vpnOnline": true + }, + { + "name": "Henz, Wittnau/AG | Ruther AG (2021-00119)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6fd970a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163694, + "lastPowerUpOrRestart": 1646143344, + "machineSerialNumber": "HQ20466ES2E", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/125230", + "accessLevel": 1, + "syscreated": 1629981102, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.108", + "vpnName": "HQ20466ES2E", + "vpnOnline": true + }, + { + "name": "Hepfer, Thayngen/SH | Scherrer Gebäudehüllen AG (2020-00057)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "0c1c5705fd4e", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163658, + "lastPowerUpOrRestart": 1646751315, + "machineSerialNumber": "HQ2002FP98Q", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/66494", + "accessLevel": 1, + "syscreated": 1595482216, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.190", + "vpnName": "HQ2002FP98Q", + "vpnOnline": true + }, + { + "name": "Hergarten, Schleiden/DE | Der Energiesparberater (2021-00171)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "1862e4c6ce58", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163684, + "lastPowerUpOrRestart": 1646738041, + "machineSerialNumber": "HQ2101HKHTS", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/137582", + "accessLevel": 1, + "syscreated": 1636474650, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.151", + "vpnName": "HQ2101HKHTS", + "vpnOnline": true + }, + { + "name": "Hodel, Reiden/LU | CKW Conex AG (2019-00060)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "c4f3128132c0", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163698, + "lastPowerUpOrRestart": 1650948054, + "machineSerialNumber": "HQ1924VH6J8", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/48488", + "accessLevel": 1, + "syscreated": 1574516288, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.118", + "vpnName": "HQ1924VH6J8", + "vpnOnline": true + }, + { + "name": "Hofer, Freiburg/FR | Breu AG (2021-00025)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "e415f6fa4b44", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163667, + "lastPowerUpOrRestart": 1646408875, + "machineSerialNumber": "HQ2032QESN7", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/113491", + "accessLevel": 1, + "syscreated": 1623748291, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.25", + "vpnName": "HQ2032QESN7", + "vpnOnline": true + }, + { + "name": "Hofer, Müntschemier/BE | Elektro Montandon (2020-00019)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "475", + "identifier": "0c1c57019134", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163677, + "lastPowerUpOrRestart": 1628152695, + "machineSerialNumber": "HQ2005XHSA8", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/67920", + "accessLevel": 1, + "syscreated": 1596697303, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.162", + "vpnName": "HQ2005XHSA8", + "vpnOnline": true + }, + { + "name": "Hofer, Rothrist/AG | Bouygues AG (2020-00070)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "f8369bf624b4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163670, + "lastPowerUpOrRestart": 1608291287, + "machineSerialNumber": "HQ1728HEJ66", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/69184", + "accessLevel": 1, + "syscreated": 1597750502, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.201", + "vpnName": "HQ1728HEJ66", + "vpnOnline": true + }, + { + "name": "Höfler, Alvaneu/GR | Hassler Energia Alternativa AG (2020-00064)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "38d2694408a3", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163692, + "lastPowerUpOrRestart": 1646053853, + "machineSerialNumber": "HQ2024BUQ7V", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/68029", + "accessLevel": 1, + "syscreated": 1596781116, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.239", + "vpnName": "HQ2024BUQ7V", + "vpnOnline": true + }, + { + "name": "Hofmeier, St. Pantaleon/SO | InnovEnergy (2018-00015)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "430", + "identifier": "9c1d5849d241", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.33", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163708, + "lastPowerUpOrRestart": 1649410742, + "machineSerialNumber": null, + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/28757", + "accessLevel": 1, + "syscreated": 1542725485, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Höhenstrasse 3 Hilterfingen", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "494", + "identifier": "d4124390cde3", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.84", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163661, + "lastPowerUpOrRestart": 1650541138, + "machineSerialNumber": "HQ2035849Z2", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/114552", + "accessLevel": 1, + "syscreated": 1624286530, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.72", + "vpnName": "HQ2035849Z2", + "vpnOnline": false + }, + { + "name": "Holliger, Rickenbach/BL | Ruther AG (2021-00042)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0cb2b7cd0509", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163718, + "lastPowerUpOrRestart": 1646061565, + "machineSerialNumber": "HQ2032PAWPQ", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/109059", + "accessLevel": 1, + "syscreated": 1621331042, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.52", + "vpnName": "HQ2032PAWPQ", + "vpnOnline": true + }, + { + "name": "Holzherr, Breitenbach/SO | STARK STROM GmbH (2020-00105)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "f8369bf632c7", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.66~r5", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1650751401, + "lastPowerUpOrRestart": 1630462711, + "machineSerialNumber": "HQ2005KNZUW", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/74164", + "accessLevel": 1, + "syscreated": 1601879154, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.229", + "vpnName": "HQ2005KNZUW", + "vpnOnline": false + }, + { + "name": "Honorarkonsul AT, Cotonou/Benin | AMEEN SARL (2020-00007)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "487", + "identifier": "0479b7f28cc8", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163662, + "lastPowerUpOrRestart": 1651091598, + "machineSerialNumber": "HQ1933TKYPN", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/54814", + "accessLevel": 1, + "syscreated": 1582965224, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.40", + "vpnName": "HQ1933TKYPN", + "vpnOnline": true + }, + { + "name": "Huber, Basel/BS | Bouygues AG (2021-00101)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "1862e4c0a6e9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163693, + "lastPowerUpOrRestart": 1644942026, + "machineSerialNumber": "HQ2046PUZ9R", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/121015", + "accessLevel": 1, + "syscreated": 1627473934, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.101", + "vpnName": "HQ2046PUZ9R", + "vpnOnline": true + }, + { + "name": "Huber, Neunforn/TG | EWE Elektro AG (2021-00068)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0cb2b7b9c2a0", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163715, + "lastPowerUpOrRestart": 1647277611, + "machineSerialNumber": "HQ2042CMJVV", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/113981", + "accessLevel": 1, + "syscreated": 1623933350, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.76", + "vpnName": "HQ2042CMJVV", + "vpnOnline": true + }, + { + "name": "Hug, Schaffhausen/SH | Vivo Solar (2020-00084)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "1862e4c0889b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163708, + "lastPowerUpOrRestart": 1644856246, + "machineSerialNumber": "HQ2024CYGYN", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/71481", + "accessLevel": 1, + "syscreated": 1599658291, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.215", + "vpnName": "HQ2024CYGYN", + "vpnOnline": true + }, + { + "name": "Hunziker, Brienz/BE | InnovEnergy (2017-00002)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "418", + "identifier": "606405efd8fd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163689, + "lastPowerUpOrRestart": 1650068440, + "machineSerialNumber": "HQ1719IDU8E", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/14708", + "accessLevel": 1, + "syscreated": 1506003066, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.172", + "vpnName": "HQ1719IDU8E", + "vpnOnline": true + }, + { + "name": "Hurlebaus, Oberberken/DE | Elser Elektro + Haustechnik GmbH (2021-00210)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "028157f28cab", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163707, + "lastPowerUpOrRestart": 1650534080, + "machineSerialNumber": "HQ2050TI1MU", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/151063", + "accessLevel": 1, + "syscreated": 1642773689, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.181", + "vpnName": "HQ2050TI1MU", + "vpnOnline": true + }, + { + "name": "Hürlimann, Spiez/BE | Allenbach Holzbau und Solartechnik AG (2021-00143)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0479b7aebed8", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163675, + "lastPowerUpOrRestart": 1636658768, + "machineSerialNumber": "HQ2101IAA15", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/131934", + "accessLevel": 1, + "syscreated": 1633693656, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.132", + "vpnName": "HQ2101IAA15", + "vpnOnline": true + }, + { + "name": "Imhof, Wahlen/BL | STARK STROM GmbH (2022-00010)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "496", + "identifier": "102c6b861664", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163676, + "lastPowerUpOrRestart": 1649916409, + "machineSerialNumber": "HQ2118KXKAH", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/159385", + "accessLevel": 1, + "syscreated": 1646318578, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.216", + "vpnName": "HQ2118KXKAH", + "vpnOnline": true + }, + { + "name": "Itschner, Winterthur/ZH | DCP Energie GmbH (2020-00116)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "3ca30856d004", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163689, + "lastPowerUpOrRestart": 1650097501, + "machineSerialNumber": "HQ20245EEEE", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/78380", + "accessLevel": 1, + "syscreated": 1605273870, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.0.246", + "vpnName": "HQ20245EEEE", + "vpnOnline": true + }, + { + "name": "Jacob, Wilhelmsdorf/DE | Elektro Schneider GmbH (2020-00127)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0cb2b7b7ee73", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163700, + "lastPowerUpOrRestart": 1643622202, + "machineSerialNumber": "HQ202452T7J", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/78369", + "accessLevel": 1, + "syscreated": 1605270735, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.245", + "vpnName": "HQ202452T7J", + "vpnOnline": true + }, + { + "name": "Jenni, Fraubrunnen/BE | Genossenschaft Elektra Jegenstorf (2018-00028)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "430", + "identifier": "64cfd9881bf1", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1651163703, + "lastPowerUpOrRestart": 1650822525, + "machineSerialNumber": "HQ1803QZ7AF", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/27817", + "accessLevel": 1, + "syscreated": 1540636677, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.175", + "vpnName": "HQ1803QZ7AF", + "vpnOnline": true + }, + { + "name": "Justin, Kreta/GR | InnovEnergy (2021-00075)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "482", + "identifier": "d41243d302ea", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.66~acd9c91172", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1651163705, + "lastPowerUpOrRestart": 1644845697, + "machineSerialNumber": "HQ2048H9MJG", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/114937", + "accessLevel": 1, + "syscreated": 1624450783, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.79", + "vpnName": "HQ2048H9MJG", + "vpnOnline": true + }, + { + "name": "Kägi, Bronschhofen/SG | B. Stillhart Dach + Fassaden AG (2021-00061)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "487", + "identifier": "94e36dce7e3a", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163686, + "lastPowerUpOrRestart": 1646765736, + "machineSerialNumber": "HQ2046VMJ6U", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/119962", + "accessLevel": 1, + "syscreated": 1626942236, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.92", + "vpnName": "HQ2046VMJ6U", + "vpnOnline": true + }, + { + "name": "Kaiser, Hünstetten/DE | EEG Autark GmbH (2021-00163)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6fd8d1d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163698, + "lastPowerUpOrRestart": 1647278336, + "machineSerialNumber": "HQ20462CVCG", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/136710", + "accessLevel": 1, + "syscreated": 1636041165, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.148", + "vpnName": "HQ20462CVCG", + "vpnOnline": true + }, + { + "name": "Kamm, Grüningen/ZH | ch-Solar AG (2021-00235)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b8616a1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163723, + "lastPowerUpOrRestart": 1648106614, + "machineSerialNumber": "HQ2118KZHAT", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/155832", + "accessLevel": 1, + "syscreated": 1644850096, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.199", + "vpnName": "HQ2118KZHAT", + "vpnOnline": true + }, + { + "name": "Karl, Oberarth/SZ | Elektro Ottinger AG (2020-00135)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "475", + "identifier": "0cb2b7cd2e6d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163706, + "lastPowerUpOrRestart": 1644163166, + "machineSerialNumber": "HQ2028CXUN4", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/86789", + "accessLevel": 1, + "syscreated": 1606290506, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.250", + "vpnName": "HQ2028CXUN4", + "vpnOnline": true + }, + { + "name": "Karlsruher Institut für Technologie, Eggenstein-Leopoldshafen/DE | Technik Gebert (2021-00126)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0281576da64e", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163719, + "lastPowerUpOrRestart": 1637230723, + "machineSerialNumber": "HQ2107RINZ6", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/129648", + "accessLevel": 1, + "syscreated": 1632412727, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.126", + "vpnName": "HQ2107RINZ6", + "vpnOnline": true + }, + { + "name": "Kathriner, Wilen/OW | Werth AG (2019-00016)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "0cae7d0dfb00", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163670, + "lastPowerUpOrRestart": 1648797786, + "machineSerialNumber": "HQ18371NFFS", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/39037", + "accessLevel": 1, + "syscreated": 1561791154, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.119", + "vpnName": "HQ18371NFFS", + "vpnOnline": true + }, + { + "name": "Kehrli, Rosenlaui/BE | InnovEnergy (2017-00004)", + "inverter": "MultiPlus 48/1200/12-16", + "inverterFw": "430", + "identifier": "60640527a3bf", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.20~48", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1533887616, + "lastPowerUpOrRestart": 1533823973, + "machineSerialNumber": null, + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/24461", + "accessLevel": 1, + "syscreated": 1533822699, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Keller, Schachen/LU | Bouygues AG (2020-00069)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c5712701b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163682, + "lastPowerUpOrRestart": 1647415595, + "machineSerialNumber": "HQ20028TNET", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/68850", + "accessLevel": 1, + "syscreated": 1597419135, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.237", + "vpnName": "HQ20028TNET", + "vpnOnline": true + }, + { + "name": "Kilchenmann, Koppigen/BE | Elektro Grogg AG (2020-00002)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "471", + "identifier": "0479b7efa3f8", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.64~c01f5a2ca1", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163679, + "lastPowerUpOrRestart": 1629182647, + "machineSerialNumber": "HQ1933ICK84", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/56279", + "accessLevel": 1, + "syscreated": 1584512741, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.120", + "vpnName": "HQ1933ICK84", + "vpnOnline": true + }, + { + "name": "Kilchenmann, Oberösch/BE | Elektro Grogg AG (2020-00133)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "481", + "identifier": "0c1c57003f2d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.66~rc5", + "autoUpdate": "On", + "updateTo": "Release-candidate", + "lastConnection": 1651163678, + "lastPowerUpOrRestart": 1629709181, + "machineSerialNumber": "HQ2005MYQNU", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/79100", + "accessLevel": 1, + "syscreated": 1605853871, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.248", + "vpnName": "HQ2005MYQNU", + "vpnOnline": true + }, + { + "name": "Kinderhaus Accra/GH |Foundation (2021-00105.2)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "478", + "identifier": "94e36dce7e64", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1651156822, + "lastPowerUpOrRestart": 1651156762, + "machineSerialNumber": "HQ20469IA6H", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/120656", + "accessLevel": 1, + "syscreated": 1627365942, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.94", + "vpnName": "HQ20469IA6H", + "vpnOnline": false + }, + { + "name": "Kit de Mesure 100A (2020-00099.3)", + "identifier": "1862e4e357d5", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.51", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1635935407, + "lastPowerUpOrRestart": 1635766195, + "machineSerialNumber": "HQ2024VICKN", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/71142", + "accessLevel": 1, + "syscreated": 1599421785, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "KIT de mesure 65A (2020-00099.4)", + "inverter": "MultiPlus Compact 24/2000/50-30", + "inverterFw": "430", + "identifier": "38d2695f3fc6", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.51", + "autoUpdate": false, + "updateTo": false, + "lastConnection": 1635942747, + "lastPowerUpOrRestart": 47, + "machineSerialNumber": "HQ2024EESH5", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/71152", + "accessLevel": 1, + "syscreated": 1599451219, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Kloibhfer, Neumarkt/AT | Rainer Kloibhofer (2021-00197)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6fd7ceb", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163686, + "lastPowerUpOrRestart": 1642693910, + "machineSerialNumber": "HQ20462MCE3", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/134087", + "accessLevel": 1, + "syscreated": 1634808439, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.139", + "vpnName": "HQ20462MCE3", + "vpnOnline": true + }, + { + "name": "Knutti, Erlenbach/BE | InnovEnergy (2018-00012)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "459", + "identifier": "606405500f4d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163709, + "lastPowerUpOrRestart": 1650779585, + "machineSerialNumber": "HQ1738QVWNE", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/24832", + "accessLevel": 1, + "syscreated": 1534766253, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.136", + "vpnName": "HQ1738QVWNE", + "vpnOnline": true + }, + { + "name": "Koch, Neftenbach/ZH | eConnect (2020-00021)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "471", + "identifier": "0479b7a3e42a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163712, + "lastPowerUpOrRestart": 1646040851, + "machineSerialNumber": "HQ1933HVLMK", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/57990", + "accessLevel": 1, + "syscreated": 1586841632, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.121", + "vpnName": "HQ1933HVLMK", + "vpnOnline": true + }, + { + "name": "Köchlin, Gümmligen/BE | Gerber AG (2021-00185)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "e415f6f18ebb", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163722, + "lastPowerUpOrRestart": 1647277050, + "machineSerialNumber": "HQ2101B335J", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/139152", + "accessLevel": 1, + "syscreated": 1637173809, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.157", + "vpnName": "HQ2101B335J", + "vpnOnline": true + }, + { + "name": "Kramer, Galmiz | KWenergy GmbH (2020-00118)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "481", + "identifier": "0035ff64613a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163734, + "lastPowerUpOrRestart": 1626952084, + "machineSerialNumber": "HQ2042Y859D", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/105985", + "accessLevel": 1, + "syscreated": 1619517220, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.45", + "vpnName": "HQ2042Y859D", + "vpnOnline": true + }, + { + "name": "Krättli, Birrwil/AG | Ziltener Heizungen GmbH (2020-00126)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "f8369bf620d9", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163734, + "lastPowerUpOrRestart": 1626003509, + "machineSerialNumber": "HQ1751QHCI_", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/77528", + "accessLevel": 1, + "syscreated": 1604569954, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.7", + "vpnName": "HQ1751QHCI_", + "vpnOnline": true + }, + { + "name": "Krebs, Boll/BE | Burkhard Elektro AG (2021-00177)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "485", + "identifier": "0035ff9a72a4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163692, + "lastPowerUpOrRestart": 1647278303, + "machineSerialNumber": "HQ2110V1RNB", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/137794", + "accessLevel": 1, + "syscreated": 1636554140, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.152", + "vpnName": "HQ2110V1RNB", + "vpnOnline": true + }, + { + "name": "Krebs, Kaufdorf/BE | Breu AG (2021-00073)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "470", + "identifier": "0479b7f2825d", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163688, + "lastPowerUpOrRestart": 1649429030, + "machineSerialNumber": "HQ19334JFSC", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/54446", + "accessLevel": 1, + "syscreated": 1582640793, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.122", + "vpnName": "HQ19334JFSC", + "vpnOnline": true + }, + { + "name": "Krebs, Oberwangen/BE | Allenbach Holzbau und Solartechnik AG (2022-00044)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da892335", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163712, + "lastPowerUpOrRestart": 1649115016, + "machineSerialNumber": "HQ2139DWZKJ", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/163616", + "accessLevel": 1, + "syscreated": 1647965475, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.230", + "vpnName": "HQ2139DWZKJ", + "vpnOnline": true + }, + { + "name": "Künzi, Schafhausen/BE | Elentec GmbH (2020-00140)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "94e36dce992b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163738, + "lastPowerUpOrRestart": 1641999798, + "machineSerialNumber": "HQ2028D8MVW", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/87912", + "accessLevel": 1, + "syscreated": 1607065433, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.252", + "vpnName": "HQ2028D8MVW", + "vpnOnline": true + }, + { + "name": "Künzle, Dozwil/TG | Swiss Photovoltaik GmbH (2020-00104)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "477", + "identifier": "0479b7a3946b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163736, + "lastPowerUpOrRestart": 1635433521, + "machineSerialNumber": "HQ19331Z9CV", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/55283", + "accessLevel": 1, + "syscreated": 1583476459, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.199", + "vpnName": "HQ19331Z9CV", + "vpnOnline": true + }, + { + "name": "Kuster, Goldingen/SG | Elektro Egli AG (2021-00142)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "1862e4cbea9a", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163687, + "lastPowerUpOrRestart": 1647278315, + "machineSerialNumber": "HQ2101JBZQC", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/130493", + "accessLevel": 1, + "syscreated": 1632929608, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.127", + "vpnName": "HQ2101JBZQC", + "vpnOnline": true + }, + { + "name": "Lack, Büsserach/SO | STARK STROM GmbH (2021-00051)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "481", + "identifier": "94e36dcea4e3", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163702, + "lastPowerUpOrRestart": 1650420610, + "machineSerialNumber": "HQ2042HEN39", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/106377", + "accessLevel": 1, + "syscreated": 1619700457, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.47", + "vpnName": "HQ2042HEN39", + "vpnOnline": true + }, + { + "name": "Lager_SOB | 32580 | (2020-00079)", + "identifier": "689e196e06b6", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.57~ie", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1600851368, + "lastPowerUpOrRestart": 1600851359, + "machineSerialNumber": "HQ20245M4RI", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/72857", + "accessLevel": 1, + "syscreated": 1600850567, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.223", + "vpnName": "HQ20245M4RI", + "vpnOnline": false + }, + { + "name": "Ledergerber, Aesch/LU | ENPRO Energiearchitekten AG (2020-00136)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0cb2b7b9700b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163706, + "lastPowerUpOrRestart": 1647441592, + "machineSerialNumber": "HQ2028CXXNS", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/86965", + "accessLevel": 1, + "syscreated": 1606384979, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.251", + "vpnName": "HQ2028CXXNS", + "vpnOnline": true + }, + { + "name": "Leibundgut, Müntschemier/BE | Elektro Böhlen AG (2020-00082)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c570039c0", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163743, + "lastPowerUpOrRestart": 1630920059, + "machineSerialNumber": "HQ2005SNQ4J", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/70233", + "accessLevel": 1, + "syscreated": 1598601577, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.210", + "vpnName": "HQ2005SNQ4J", + "vpnOnline": true + }, + { + "name": "Lenz, Baar/ZG | Alex Gemperle AG (2021-00006)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "1cba8cd5e640", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163710, + "lastPowerUpOrRestart": 1642600644, + "machineSerialNumber": "HQ20246SBZP", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/118688", + "accessLevel": 1, + "syscreated": 1626263559, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.26", + "vpnName": "HQ20246SBZP", + "vpnOnline": true + }, + { + "name": "Leu, Neunkirch/SH | Vivo Solar GmbH (2020-00085)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c5701916d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163729, + "lastPowerUpOrRestart": 1650523616, + "machineSerialNumber": "IE1728HEJ77", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/71470", + "accessLevel": 1, + "syscreated": 1599651491, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.57", + "vpnName": "IE1728HEJ77", + "vpnOnline": true + }, + { + "name": "Leuenberger, Hellsau/BE | BKW AEK Contracting AG (2018-00024)", + "inverter": "Quattro 48/5000/70-2x100", + "inverterFw": "431", + "identifier": "508cb1caec69", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 5, + "firmware": "v2.60~r4", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1651163704, + "lastPowerUpOrRestart": 1651044867, + "machineSerialNumber": "HQ17467ACA3", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/29277", + "accessLevel": 1, + "syscreated": 1543908517, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.206", + "vpnName": "HQ17467ACA3", + "vpnOnline": true + }, + { + "name": "LG25 REACT H2020Español (2021-00071)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "496", + "identifier": "028181c3a7c0", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163730, + "lastPowerUpOrRestart": 1649254809, + "machineSerialNumber": "HQ2050S8C51", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/79370", + "accessLevel": 1, + "syscreated": 1606128256, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.46", + "vpnName": "HQ2050S8C51", + "vpnOnline": true + }, + { + "name": "Link, Bünzen/AG | Immoflat GmbH (2021-00078.1)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "0479b7aedadd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163743, + "lastPowerUpOrRestart": 1643293175, + "machineSerialNumber": "HQ2101HYLUG", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/127172", + "accessLevel": 1, + "syscreated": 1631112846, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.116", + "vpnName": "HQ2101HYLUG", + "vpnOnline": true + }, + { + "name": "Lioi, Lengwil/TG | EWE Elektro AG (2021-00152)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6fd9545", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163684, + "lastPowerUpOrRestart": 1647278237, + "machineSerialNumber": "HQ20462BX4G", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/134207", + "accessLevel": 1, + "syscreated": 1634830381, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.140", + "vpnName": "HQ20462BX4G", + "vpnOnline": true + }, + { + "name": "Lippmann, Uetliburg/SG | clevergie ag (2021-00170)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0cb2b7b9b0e8", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163727, + "lastPowerUpOrRestart": 1647338174, + "machineSerialNumber": "HQ2046A75SN", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/136687", + "accessLevel": 1, + "syscreated": 1636036657, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.149", + "vpnName": "HQ2046A75SN", + "vpnOnline": true + }, + { + "name": "Loher, Biel-Benken/BE | STARK STROM GmbH (2021-00047)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "e415f6f89eb6", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163731, + "lastPowerUpOrRestart": 1647278149, + "machineSerialNumber": "HQ2042UGEC4", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/109569", + "accessLevel": 1, + "syscreated": 1621578698, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.56", + "vpnName": "HQ2042UGEC4", + "vpnOnline": true + }, + { + "name": "Loosli, St. Erhard/LU | Alex Gemperle AG (2021-00059)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "94e36dce82ba", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1631308534, + "lastPowerUpOrRestart": 1629319252, + "machineSerialNumber": "HQ20424NZK1", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/110603", + "accessLevel": 1, + "syscreated": 1622125177, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.59", + "vpnName": "HQ20424NZK1", + "vpnOnline": false + }, + { + "name": "Lutz, Vaterstetten/DE | Eberwerk GmbH (2021-00001)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "1862e4d1c79a", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163742, + "lastPowerUpOrRestart": 1640609581, + "machineSerialNumber": "HQ2024AEUI6", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/92504", + "accessLevel": 1, + "syscreated": 1611221180, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.14", + "vpnName": "HQ2024AEUI6", + "vpnOnline": true + }, + { + "name": "Mächler, Meggen/LU | Alex Gemperle AG (2021-00120)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "0479b7b315cc", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1651163728, + "lastPowerUpOrRestart": 1649948715, + "machineSerialNumber": "HQ21015YQA4", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/130606", + "accessLevel": 1, + "syscreated": 1632995345, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.129", + "vpnName": "HQ21015YQA4", + "vpnOnline": true + }, + { + "name": "Mattenbach, Winterthur/ZH | Zollinger Architekten GmbH (2021-00118)", + "inverter": "Quattro 48/10000/140-2x100", + "inverterFw": "487", + "identifier": "102c6bc2b0b6", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1650874325, + "lastPowerUpOrRestart": 1648229571, + "machineSerialNumber": "HQ2118TF3W2", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/137280", + "accessLevel": 1, + "syscreated": 1636377744, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.150", + "vpnName": "HQ2118TF3W2", + "vpnOnline": false + }, + { + "name": "Matter, Schöftland/AG | Kunz-Solartech GmbH (2021-00187)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "e415f6f44910", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163734, + "lastPowerUpOrRestart": 1642953099, + "machineSerialNumber": "HQ2101TPQ2T", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/143680", + "accessLevel": 1, + "syscreated": 1638977755, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.172", + "vpnName": "HQ2101TPQ2T", + "vpnOnline": true + }, + { + "name": "Mayland, La Chaux-de-Fonds/NE | Bouygues AG (2021-00032)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0cb2b7b9bfbe", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163719, + "lastPowerUpOrRestart": 1629695729, + "machineSerialNumber": "HQ2042HKWY4", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/105500", + "accessLevel": 1, + "syscreated": 1619173055, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.44", + "vpnName": "HQ2042HKWY4", + "vpnOnline": true + }, + { + "name": "Meier, Reitnau/AG | Die Dachexperten GmbH (2020-00120)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "0281224aab44", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163725, + "lastPowerUpOrRestart": 1647860378, + "machineSerialNumber": "HQ205061YR8", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/89337", + "accessLevel": 1, + "syscreated": 1608101885, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.50", + "vpnName": "HQ205061YR8", + "vpnOnline": true + }, + { + "name": "Meier, Winterthur/ZH | Scherrer Gebäudehüllen AG (2020-00067)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0479b7ef9da1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163750, + "lastPowerUpOrRestart": 1635271085, + "machineSerialNumber": "HQ19308JANG", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/66034", + "accessLevel": 1, + "syscreated": 1595074204, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.23", + "vpnName": "HQ19308JANG", + "vpnOnline": true + }, + { + "name": "Merki, Jona/SG | Elektro Möhl AG (2019-00021)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "461", + "identifier": "7c386655fec5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163754, + "lastPowerUpOrRestart": 1644599285, + "machineSerialNumber": "HQ18372DYFA", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/39038", + "accessLevel": 1, + "syscreated": 1561797764, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.123", + "vpnName": "HQ18372DYFA", + "vpnOnline": true + }, + { + "name": "Meuwly, Weggis/LU | Bouygues AG (2021-00080)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "94e36dcea8fd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163741, + "lastPowerUpOrRestart": 1643103830, + "machineSerialNumber": "HQ20468IMZK", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/117568", + "accessLevel": 1, + "syscreated": 1625757656, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.85", + "vpnName": "HQ20468IMZK", + "vpnOnline": true + }, + { + "name": "Meyer, Morgarten/ZG | Alectron AG (2019-00003)", + "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", + "inverterFw": "456", + "identifier": "38d2693a27f0", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163722, + "lastPowerUpOrRestart": 1645774830, + "machineSerialNumber": "HQ1825TILC7", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/33420", + "accessLevel": 1, + "syscreated": 1552895923, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.124", + "vpnName": "HQ1825TILC7", + "vpnOnline": true + }, + { + "name": "Meyer, Sutz/BE | KWenergy GmbH (2021-00234)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "102c6b9d0943", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163756, + "lastPowerUpOrRestart": 1648793203, + "machineSerialNumber": "HQ2122PADT3", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/153432", + "accessLevel": 1, + "syscreated": 1643816515, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.190", + "vpnName": "HQ2122PADT3", + "vpnOnline": true + }, + { + "name": "MFH Langenthal, Langenthal/BE | Elektro Grogg AG (2020-00145)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c57002e08", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1643363400, + "lastPowerUpOrRestart": 1638197296, + "machineSerialNumber": "HQ2005YN7XC", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/74664", + "accessLevel": 1, + "syscreated": 1602224802, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.232", + "vpnName": "HQ2005YN7XC", + "vpnOnline": false + }, + { + "name": "Mijnssen, Melchnau/BE | clevergie ag - Region Emmental (2021-00232)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "d41243d30224", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163721, + "lastPowerUpOrRestart": 1647447200, + "machineSerialNumber": "HQ2048AEK68", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/158851", + "accessLevel": 1, + "syscreated": 1646140433, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.213", + "vpnName": "HQ2048AEK68", + "vpnOnline": true + }, + { + "name": "Ming, Lungern/OW | InnovEnergy (2019-00009)", + "inverter": "MultiPlus 48/1200/12-16", + "inverterFw": "469", + "identifier": "7c38665608ca", + "hasMains": false, + "hasGenerator": true, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163761, + "lastPowerUpOrRestart": 1646668206, + "machineSerialNumber": "HQ1837IEBCX", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/37805", + "accessLevel": 1, + "syscreated": 1559990977, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.125", + "vpnName": "HQ1837IEBCX", + "vpnOnline": true + }, + { + "name": "Ministry of good vibes/Dodo", + "inverter": "MultiPlus 48/5000/70-100", + "inverterFw": "430", + "identifier": "0cb2b7cb28ee", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.60", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1604569630, + "lastPowerUpOrRestart": 1600438191, + "machineSerialNumber": "HQ1925JAJHZ", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/66077", + "accessLevel": 1, + "syscreated": 1595153199, + "vrmOnline": false, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Mischler, Evilard/BE | Bouygues AG (2021-00037)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0035ff6448c8", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163726, + "lastPowerUpOrRestart": 1647426138, + "machineSerialNumber": "HQ20425HFL8", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/103264", + "accessLevel": 1, + "syscreated": 1617971595, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.41", + "vpnName": "HQ20425HFL8", + "vpnOnline": true + }, + { + "name": "Mitteldorf, Hettlingen/ZH | Senero AG (2021-00123)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6f1904d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163760, + "lastPowerUpOrRestart": 1634759666, + "machineSerialNumber": "HQ21012AWBI", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/126082", + "accessLevel": 1, + "syscreated": 1630509389, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.114", + "vpnName": "HQ21012AWBI", + "vpnOnline": true + }, + { + "name": "Monin, Mayens-de-la-Zour/VS | EFISOL SA (2021-00040)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0c1c5701dc58", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1651163707, + "lastPowerUpOrRestart": 1646672058, + "machineSerialNumber": "HQ2005NDN8H", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/104429", + "accessLevel": 1, + "syscreated": 1618571820, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.220", + "vpnName": "HQ2005NDN8H", + "vpnOnline": true + }, + { + "name": "Mooshuber, Mettenheim/DE | Elektrotechnik Schmidt (2022-00017)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "c0619ab039bd", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163763, + "lastPowerUpOrRestart": 1649333858, + "machineSerialNumber": "HQ21222PQRR", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/160188", + "accessLevel": 1, + "syscreated": 1646666492, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.218", + "vpnName": "HQ21222PQRR", + "vpnOnline": true + }, + { + "name": "Mösching, Kaufdorf/BE | Breu AG (2021-00138)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0479b7aec66d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163753, + "lastPowerUpOrRestart": 1643616045, + "machineSerialNumber": "HQ2101ZVNGW", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/129445", + "accessLevel": 1, + "syscreated": 1632321374, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.123", + "vpnName": "HQ2101ZVNGW", + "vpnOnline": true + }, + { + "name": "Moser, Affoltern a.A./ZH | EKZ Eltop AG (2021-00202)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "028194a54864", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163740, + "lastPowerUpOrRestart": 1647882836, + "machineSerialNumber": "HQ2107EGE5M", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/151704", + "accessLevel": 1, + "syscreated": 1643109147, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.184", + "vpnName": "HQ2107EGE5M", + "vpnOnline": true + }, + { + "name": "Moser, Corgèmont/JU | Kunz-Solartech GmbH (2021-00128)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0281b18181ed", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163750, + "lastPowerUpOrRestart": 1646659892, + "machineSerialNumber": "HQ20525RV89", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/128510", + "accessLevel": 1, + "syscreated": 1631804882, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.122", + "vpnName": "HQ20525RV89", + "vpnOnline": true + }, + { + "name": "Motschi, Oberbuchsiten/SO | von arx systems ag (2021-00083)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "482", + "identifier": "0479b7b32100", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163742, + "lastPowerUpOrRestart": 1647277891, + "machineSerialNumber": "HQ2046PS3BC", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/119678", + "accessLevel": 1, + "syscreated": 1626794287, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.91", + "vpnName": "HQ2046PS3BC", + "vpnOnline": true + }, + { + "name": "Mühlegg, Ruggell/FL | Hasler Solar AG (2020-00012)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "471", + "identifier": "0cb2b7cc679b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163733, + "lastPowerUpOrRestart": 1639501995, + "machineSerialNumber": "HQ2032DUKTR", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/57962", + "accessLevel": 1, + "syscreated": 1586765810, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.22", + "vpnName": "HQ2032DUKTR", + "vpnOnline": true + }, + { + "name": "Müller, Altbüron/LU | Alectron AG (2019-00014)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "7c386655d53b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~r5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1638348495, + "lastPowerUpOrRestart": 1631007294, + "machineSerialNumber": "HQ18377WLY1", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/36310", + "accessLevel": 1, + "syscreated": 1557846643, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.126", + "vpnName": "HQ18377WLY1", + "vpnOnline": false + }, + { + "name": "Müller, Hombrechtikon/ZH | Clevergie AG (2019-00070)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "d0ff505604dd", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163738, + "lastPowerUpOrRestart": 1639665358, + "machineSerialNumber": "HQ192416GBB", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/48493", + "accessLevel": 1, + "syscreated": 1574520983, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.127", + "vpnName": "HQ192416GBB", + "vpnOnline": false + }, + { + "name": "Müller, Muhen/AG | Elektro Hunziker AG (2021-00013)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0035ff647244", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163753, + "lastPowerUpOrRestart": 1634654214, + "machineSerialNumber": "HQ2032QDMDM", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/102188", + "accessLevel": 1, + "syscreated": 1617277882, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.37", + "vpnName": "HQ2032QDMDM", + "vpnOnline": true + }, + { + "name": "Muoser, Hofen/SH | Vivo Solar GmbH (2021-00017)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0cb2b7b9dc14", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163738, + "lastPowerUpOrRestart": 1651060722, + "machineSerialNumber": "HQ20425448G", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/98487", + "accessLevel": 1, + "syscreated": 1615282757, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.71", + "vpnName": "HQ20425448G", + "vpnOnline": true + }, + { + "name": "Mürner, Reichenbach/BE | Alectron AG (2018-00007)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "475", + "identifier": "606405f0c31c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1651163726, + "lastPowerUpOrRestart": 1651065990, + "machineSerialNumber": "HQ1719MEY2Z", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/21322", + "accessLevel": 1, + "syscreated": 1527679089, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.178", + "vpnName": "HQ1719MEY2Z", + "vpnOnline": true + }, + { + "name": "Mutzner, Fanas/GR | Elprom Partner AG (2021-00137)", + "inverter": "Quattro 48/10000/140-2x100", + "inverterFw": "476", + "identifier": "0c1c5700342c", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 6, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163756, + "lastPowerUpOrRestart": 1638468679, + "machineSerialNumber": "HQ2005SG49G", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/86887", + "accessLevel": 1, + "syscreated": 1606323323, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.9", + "vpnName": "HQ2005SG49G", + "vpnOnline": true + }, + { + "name": "Näf, Zweisimmen/BE | beosolar.ch (2021-00029)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6fc9e58", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163743, + "lastPowerUpOrRestart": 1647418179, + "machineSerialNumber": "HQ20428G1MH", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/103569", + "accessLevel": 1, + "syscreated": 1618206857, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.42", + "vpnName": "HQ20428G1MH", + "vpnOnline": true + }, + { + "name": "Niederberger, Alpnach/OW | Alectron AG (2019-00001)", + "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", + "inverterFw": "456", + "identifier": "38d2696270b9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163764, + "lastPowerUpOrRestart": 1643896885, + "machineSerialNumber": "HQ1832EYDEG", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/32614", + "accessLevel": 1, + "syscreated": 1551446478, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.128", + "vpnName": "HQ1832EYDEG", + "vpnOnline": true + }, + { + "name": "Oehrli, Bern/BE | Brunner + Imboden AG (2020-00004)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "470", + "identifier": "7c669d4dfa88", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.52", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1591970447, + "lastPowerUpOrRestart": 1585552252, + "machineSerialNumber": "HQ1927BHTIB", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/54460", + "accessLevel": 1, + "syscreated": 1582645923, + "vrmOnline": false, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Oesch, Schwarzenegg/BE | InnovEnergy (2018-00013)", + "inverter": "MultiPlus 48/5000/70-100", + "inverterFw": "430", + "identifier": "907065b3c782", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1651163746, + "lastPowerUpOrRestart": 1651154325, + "machineSerialNumber": "HQ1810GTLJV", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/27811", + "accessLevel": 1, + "syscreated": 1540628608, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.176", + "vpnName": "HQ1810GTLJV", + "vpnOnline": true + }, + { + "name": "Oeschger, Nürensdorf/ZH | e.e.com elektroanlagen ag (2021-00008)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0035ff642cba", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163715, + "lastPowerUpOrRestart": 1647859261, + "machineSerialNumber": "HQ2032EQJJT", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/95357", + "accessLevel": 1, + "syscreated": 1613126814, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.24", + "vpnName": "HQ2032EQJJT", + "vpnOnline": true + }, + { + "name": "OST Ostschweizer Fachhochschule (2021-00077)", + "identifier": "0cb2b7b9a51b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1623277989, + "lastPowerUpOrRestart": 1622931140, + "machineSerialNumber": "HQ2042IBQUL", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/109040", + "accessLevel": 1, + "syscreated": 1621325407, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.51", + "vpnName": "HQ2042IBQUL", + "vpnOnline": false + }, + { + "name": "Pantec, Selzach/SO | Gerber AG Elektro + Energie (2021-00146)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6f8835c", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1651163737, + "lastPowerUpOrRestart": 1638896538, + "machineSerialNumber": "HQ20466E4LS", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/132953", + "accessLevel": 1, + "syscreated": 1634224685, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.135", + "vpnName": "HQ20466E4LS", + "vpnOnline": true + }, + { + "name": "Pflugi, Breitenbach/SO | STARK STROM GmbH (2021-00046)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0035ff64611f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163774, + "lastPowerUpOrRestart": 1634903498, + "machineSerialNumber": "HQ2042DFPF3", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/109404", + "accessLevel": 1, + "syscreated": 1621500921, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.54", + "vpnName": "HQ2042DFPF3", + "vpnOnline": true + }, + { + "name": "Plieninger, Löhningen/SH | vivo solar gmbh (2021-00155)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6f8a3d2", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163779, + "lastPowerUpOrRestart": 1637884805, + "machineSerialNumber": "HQ204667IAD", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/133965", + "accessLevel": 1, + "syscreated": 1634742771, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.137", + "vpnName": "HQ204667IAD", + "vpnOnline": true + }, + { + "name": "Plozza, Thun/BE | Brunner + Imboden AG (2021-00015)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0035ff919605", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163770, + "lastPowerUpOrRestart": 1637681384, + "machineSerialNumber": "HQ2037Z68UM", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/97689", + "accessLevel": 1, + "syscreated": 1614756096, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.156", + "vpnName": "HQ2037Z68UM", + "vpnOnline": true + }, + { + "name": "Pohlen, Immensee/SZ | Elektro Ottinger AG (2020-00029)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "7804733f2b1d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163766, + "lastPowerUpOrRestart": 1638861652, + "machineSerialNumber": "HQ1945RY62M", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/64979", + "accessLevel": 1, + "syscreated": 1594217130, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.187", + "vpnName": "HQ1945RY62M", + "vpnOnline": true + }, + { + "name": "Polak, Wil/SG | Swiss Photovoltaik GmbH (2021-00140)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "1862e4c6fde9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163721, + "lastPowerUpOrRestart": 1650580901, + "machineSerialNumber": "HQ2101ZC3ZT", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/129620", + "accessLevel": 1, + "syscreated": 1632405867, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.124", + "vpnName": "HQ2101ZC3ZT", + "vpnOnline": true + }, + { + "name": "Putz-Scholz, Birkfeld/AT| Sonnenstrom GmbH (2020-00149)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c57002e4a", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163725, + "lastPowerUpOrRestart": 1637665772, + "machineSerialNumber": "HQ2005WSR4A", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/91695", + "accessLevel": 1, + "syscreated": 1610544014, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.12", + "vpnName": "HQ2005WSR4A", + "vpnOnline": true + }, + { + "name": "RBS, Schanzentunnel/BE | InnovEnergy (2018-00022)", + "inverter": "Quattro 48/10000/140-2x100", + "inverterFw": "430", + "identifier": "38d2696eaa32", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.20", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1542797758, + "lastPowerUpOrRestart": 1542797098, + "machineSerialNumber": null, + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/28785", + "accessLevel": 1, + "syscreated": 1542791007, + "vrmOnline": false, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Referenzanlage, Ebersberg/DE | Eberwerk GmbH (2020-00076)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "f8369bf607ec", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1642063335, + "lastPowerUpOrRestart": 1621080162, + "machineSerialNumber": "HQ2005XWTDQ", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/73003", + "accessLevel": 1, + "syscreated": 1600935404, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.225", + "vpnName": "HQ2005XWTDQ", + "vpnOnline": false + }, + { + "name": "Reichlin, Immensee/SZ | KWenergy GmbH (2020-00138)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c57073356", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163760, + "lastPowerUpOrRestart": 1649767363, + "machineSerialNumber": "HQ20242KCST", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/87928", + "accessLevel": 1, + "syscreated": 1607072836, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.253", + "vpnName": "HQ20242KCST", + "vpnOnline": false + }, + { + "name": "Reinhard, Ufhusen/LU | Simon Reinhard (2021-00198)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "e415f6f4d769", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.83~victron", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1651163743, + "lastPowerUpOrRestart": 1650970823, + "machineSerialNumber": "HQ2101K4EUC", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/143915", + "accessLevel": 1, + "syscreated": 1639059176, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.174", + "vpnName": "HQ2101K4EUC", + "vpnOnline": false + }, + { + "name": "Remund, Rizenbach/BE | energy unlimited GmbH (2020-00014)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "477", + "identifier": "0479b7a37e6c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163727, + "lastPowerUpOrRestart": 1650449228, + "machineSerialNumber": "HQ1933CZS3Z", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/59501", + "accessLevel": 1, + "syscreated": 1588860163, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.158", + "vpnName": "HQ1933CZS3Z", + "vpnOnline": true + }, + { + "name": "Richner, Hinterkappelen/BE | Gerber AG (2021-00167)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0035ff6448ef", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163777, + "lastPowerUpOrRestart": 1645084842, + "machineSerialNumber": "HQ20466CVYE", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/136620", + "accessLevel": 1, + "syscreated": 1636019822, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.146", + "vpnName": "HQ20466CVYE", + "vpnOnline": true + }, + { + "name": "Rickenbach, Neftenbach/ZH | eConnect (2020-00020)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "e415f6f87cb7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163770, + "lastPowerUpOrRestart": 1646053750, + "machineSerialNumber": "HQ2032EDLPI", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/58176", + "accessLevel": 1, + "syscreated": 1587036944, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.27", + "vpnName": "HQ2032EDLPI", + "vpnOnline": true + }, + { + "name": "Riedi, Ortsschwaben/BE | Gerber AG (2021-00238)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da896141", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163776, + "lastPowerUpOrRestart": 1649865571, + "machineSerialNumber": "HQ2128TF97Q", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/157263", + "accessLevel": 1, + "syscreated": 1645458418, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.206", + "vpnName": "HQ2128TF97Q", + "vpnOnline": true + }, + { + "name": "Rohner, Remetschwil/AG | Ronald Rohner (2021-00009)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "0c1c570039bd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163786, + "lastPowerUpOrRestart": 1648685607, + "machineSerialNumber": "HQ2005UFMG1", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/76825", + "accessLevel": 1, + "syscreated": 1603981513, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.241", + "vpnName": "HQ2005UFMG1", + "vpnOnline": true + }, + { + "name": "Rohr, Schwanden/BE | InnovEnergy (2019-00006)", + "inverter": "VE.Bus System", + "identifier": "102c6b8607e6", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.60~r4", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1651163758, + "lastPowerUpOrRestart": 1622014850, + "machineSerialNumber": "HQ18266ZP14", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/33162", + "accessLevel": 1, + "syscreated": 1552403847, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.177", + "vpnName": "HQ18266ZP14", + "vpnOnline": false + }, + { + "name": "Rohrer, Frick/AG | Elektro Siegrist AG (2021-00169)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6f88de8", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163755, + "lastPowerUpOrRestart": 1647278064, + "machineSerialNumber": "HQ20462H3UH", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/136483", + "accessLevel": 1, + "syscreated": 1635951810, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.145", + "vpnName": "HQ20462H3UH", + "vpnOnline": true + }, + { + "name": "Rohrer, Stansstad/NW | Odermatt + Sicher AG (2021-00058)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0cb2b7b9bfb8", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163786, + "lastPowerUpOrRestart": 1630324717, + "machineSerialNumber": "HQ20426QVYN", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/110567", + "accessLevel": 1, + "syscreated": 1622119024, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.58", + "vpnName": "HQ20426QVYN", + "vpnOnline": true + }, + { + "name": "Rohrer, Walzenhausen/AR | Swiss Photovoltaik GmbH (2021-00160)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6f1a343", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163756, + "lastPowerUpOrRestart": 1642514727, + "machineSerialNumber": "HQ21015DJYW", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/130579", + "accessLevel": 1, + "syscreated": 1632990770, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.128", + "vpnName": "HQ21015DJYW", + "vpnOnline": true + }, + { + "name": "Rohrschneider, Troisdorf/DE | IL sun+ Innovative Energie (2020-00139)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "3ca30856c1f5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163751, + "lastPowerUpOrRestart": 1649348646, + "machineSerialNumber": "HQ2028K5H19", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/87978", + "accessLevel": 1, + "syscreated": 1607086953, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.254", + "vpnName": "HQ2028K5H19", + "vpnOnline": true + }, + { + "name": "Rosenberger, Tittmoning/DE | Schupfner & Co. GmbH (2021-00011)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "475", + "identifier": "0035ff8d7eb6", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163750, + "lastPowerUpOrRestart": 1651134353, + "machineSerialNumber": "HQ2032Z82RD", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/97049", + "accessLevel": 1, + "syscreated": 1614258119, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.28", + "vpnName": "HQ2032Z82RD", + "vpnOnline": true + }, + { + "name": "Roth, Kandersteg/BE | Bouygues AG (2020-00144)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0cb2b7b9dc47", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 3, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163743, + "lastPowerUpOrRestart": 1631791493, + "machineSerialNumber": "HQ202863MWG", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/92684", + "accessLevel": 1, + "syscreated": 1611312946, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.16", + "vpnName": "HQ202863MWG", + "vpnOnline": true + }, + { + "name": "Rüdisühli, Lanterswil/TG | Gebr. Willi Elektro AG (2021-00038)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "e415f6fd877a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163757, + "lastPowerUpOrRestart": 1647278027, + "machineSerialNumber": "HQ2042BKEES", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/109480", + "accessLevel": 1, + "syscreated": 1621520523, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.55", + "vpnName": "HQ2042BKEES", + "vpnOnline": true + }, + { + "name": "Rüeger, Winterthur/ZH | EWE Elektro AG (2020-00009)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "471", + "identifier": "7c669d48ba7e", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163737, + "lastPowerUpOrRestart": 1639401901, + "machineSerialNumber": "HQ1933NJ7Y6", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/54683", + "accessLevel": 1, + "syscreated": 1582814131, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.157", + "vpnName": "HQ1933NJ7Y6", + "vpnOnline": true + }, + { + "name": "Rufer, Meiringen/BE | InnovEnergy (2017-00006)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "465", + "identifier": "04a316e173ca", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163739, + "lastPowerUpOrRestart": 1649159404, + "machineSerialNumber": "HQ1724TB1P1", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/15352", + "accessLevel": 1, + "syscreated": 1508501387, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.179", + "vpnName": "HQ1724TB1P1", + "vpnOnline": true + }, + { + "name": "Rüttimann, Ebertswil/ZH | ecoEN (2020-00045)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "0479b7ef71f4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163761, + "lastPowerUpOrRestart": 1649927784, + "machineSerialNumber": "HQ1930DCWYX", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/62080", + "accessLevel": 1, + "syscreated": 1591696851, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.202", + "vpnName": "HQ1930DCWYX", + "vpnOnline": true + }, + { + "name": "SaliGO!-Mietspeicher, Meiringen/BE | InnovEnergy", + "inverter": "MultiPlus 48/1200/12-16", + "inverterFw": "430", + "identifier": "6064054cdc7a", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.57~ie", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1603373093, + "lastPowerUpOrRestart": 1603093970, + "machineSerialNumber": "HQ1751U9E6Q", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/25261", + "accessLevel": 1, + "syscreated": 1535801086, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.198", + "vpnName": "HQ1751U9E6Q", + "vpnOnline": false + }, + { + "name": "Saner, Laufen/BL | STARK STROM GmbH (2021-00188)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "e415f6f87e7c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651144077, + "lastPowerUpOrRestart": 1648203643, + "machineSerialNumber": "HQ2046NRUVI", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/141874", + "accessLevel": 1, + "syscreated": 1638264003, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.166", + "vpnName": "HQ2046NRUVI", + "vpnOnline": false + }, + { + "name": "Schaffer, Greifensee/ZH | Jaeggi Gmünder Energietechnik AG (2020-00112)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "1862e4d154a4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163782, + "lastPowerUpOrRestart": 1649784191, + "machineSerialNumber": "HQ2021U1XFF", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/76838", + "accessLevel": 1, + "syscreated": 1603985139, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.243", + "vpnName": "HQ2021U1XFF", + "vpnOnline": true + }, + { + "name": "Scharpf, Böttlingen/DE | Elser Elektro + Haustechnik GmbH (2021-00222)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "48e7da86b0f5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163761, + "lastPowerUpOrRestart": 1649788764, + "machineSerialNumber": "HQ212894QGY", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/153181", + "accessLevel": 1, + "syscreated": 1643730759, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.189", + "vpnName": "HQ212894QGY", + "vpnOnline": true + }, + { + "name": "Scheffbuch, Allschwill/BL | STARK STROM GmbH (2021-00074)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "94e36dce9b14", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163746, + "lastPowerUpOrRestart": 1647277835, + "machineSerialNumber": "HQ2042NHY7J", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/113780", + "accessLevel": 1, + "syscreated": 1623853803, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.73", + "vpnName": "HQ2042NHY7J", + "vpnOnline": true + }, + { + "name": "Scheuner, Linden/BE | InnovEnergy (2017-00009)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "478", + "identifier": "c8fd19e5471b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1651163754, + "lastPowerUpOrRestart": 1649693851, + "machineSerialNumber": "HQ1803ZTZUW", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/28105", + "accessLevel": 1, + "syscreated": 1541171698, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.180", + "vpnName": "HQ1803ZTZUW", + "vpnOnline": true + }, + { + "name": "Schmid, Leimbach/ZH | RZ Energiemanagement GmbH (2019-00028)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "430", + "identifier": "508cb1e557ce", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~r4", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1651163760, + "lastPowerUpOrRestart": 1646651379, + "machineSerialNumber": "HQ17345F86W", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/18926", + "accessLevel": 1, + "syscreated": 1521009886, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.208", + "vpnName": "HQ17345F86W", + "vpnOnline": true + }, + { + "name": "Schmid, Riggisberg/BE | Breu AG (2021-00141)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "494", + "identifier": "102c6bc2ada2", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163750, + "lastPowerUpOrRestart": 1646405858, + "machineSerialNumber": "HQ21184F7MH", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/132480", + "accessLevel": 1, + "syscreated": 1634044898, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.133", + "vpnName": "HQ21184F7MH", + "vpnOnline": true + }, + { + "name": "Schmutz Duer, Couvet/NE | (2020-00132)", + "inverter": "Quattro 48/10000/140-2x100", + "inverterFw": "476", + "identifier": "0c1c5701e71a", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~victron", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1651163758, + "lastPowerUpOrRestart": 1642135627, + "machineSerialNumber": "HQ2005KC2SZ", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/88461", + "accessLevel": 1, + "syscreated": 1607511544, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.1", + "vpnName": "HQ2005KC2SZ", + "vpnOnline": true + }, + { + "name": "Schmutz, Tschingel/BE | Bernhard Ponpool (2020-00109.1)", + "identifier": "102c6b643300", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.66~acd9c91172", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1627484405, + "lastPowerUpOrRestart": 1627484255, + "machineSerialNumber": "HQ2048YN8X2", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/121050", + "accessLevel": 1, + "syscreated": 1627480977, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.102", + "vpnName": "HQ2048YN8X2", + "vpnOnline": false + }, + { + "name": "Schmutz, Tschingel/BE | Bernhard Ponpool (2020-00109.2)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "475", + "identifier": "0c1c570043ef", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.54~ie", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1603204202, + "lastPowerUpOrRestart": 1603203809, + "machineSerialNumber": "HQ2005NEUYH", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/75865", + "accessLevel": 1, + "syscreated": 1603200430, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.235", + "vpnName": "HQ2005NEUYH", + "vpnOnline": false + }, + { + "name": "Schneider, Uetendorf/BE | Brunner + Imboden AG (2020-00077)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c57019107", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163800, + "lastPowerUpOrRestart": 1636392018, + "machineSerialNumber": "HQ2005XNZNL", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/69092", + "accessLevel": 1, + "syscreated": 1597674477, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.192", + "vpnName": "HQ2005XNZNL", + "vpnOnline": true + }, + { + "name": "Schnieper, Emmen/LU | Alectron AG (2021-00036)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "481", + "identifier": "c8fd19e5e6ed", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Off", + "updateTo": "Official release", + "lastConnection": 1651163799, + "lastPowerUpOrRestart": 1650981363, + "machineSerialNumber": "HQ180382L4C", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/22934", + "accessLevel": 1, + "syscreated": 1530881643, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.181", + "vpnName": "HQ180382L4C", + "vpnOnline": true + }, + { + "name": "Schurter, Jona/SG | Bachtel Elektro GmbH (2019-00037)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "c4f3129a29cc", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163763, + "lastPowerUpOrRestart": 1612428972, + "machineSerialNumber": "HQ19072NE7P", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/41688", + "accessLevel": 1, + "syscreated": 1565694019, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.132", + "vpnName": "HQ19072NE7P", + "vpnOnline": true + }, + { + "name": "Schwander, Baldegg/LU | CKW Conex AG (2019-00043)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "0cae7d54553d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163766, + "lastPowerUpOrRestart": 1649925724, + "machineSerialNumber": "HQ1907HP192", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/42831", + "accessLevel": 1, + "syscreated": 1567172510, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.131", + "vpnName": "HQ1907HP192", + "vpnOnline": true + }, + { + "name": "Schwarz-Müller, Guntalingen/ZH | InnovEnergy (2019-00030)", + "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", + "inverterFw": "459", + "identifier": "985dadd06186", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163781, + "lastPowerUpOrRestart": 1612541081, + "machineSerialNumber": "HQ1825RFQ8E", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/31469", + "accessLevel": 1, + "syscreated": 1549441654, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.133", + "vpnName": "HQ1825RFQ8E", + "vpnOnline": true + }, + { + "name": "Schwarz, Pastetten/DE | Rudolf Heiss Beratungs- GmbH (2021-00004)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "478", + "identifier": "1862e4d1c79d", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163771, + "lastPowerUpOrRestart": 1628847551, + "machineSerialNumber": "HQ2024UTG53", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/94475", + "accessLevel": 1, + "syscreated": 1612508145, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.21", + "vpnName": "HQ2024UTG53", + "vpnOnline": true + }, + { + "name": "Schwegler, Meggen/LU | Alectron AG (2019-00044)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "466", + "identifier": "6064054fb2b0", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163783, + "lastPowerUpOrRestart": 1629695483, + "machineSerialNumber": "HQ1738AJNT8", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/19264", + "accessLevel": 1, + "syscreated": 1522240336, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.134", + "vpnName": "HQ1738AJNT8", + "vpnOnline": true + }, + { + "name": "Schwiefert, Wilen/OW | Elektrizitätswerk Obwalden (2020-00119)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "2c6b7d454bf7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163748, + "lastPowerUpOrRestart": 1646986018, + "machineSerialNumber": "HQ202417A2M", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/78999", + "accessLevel": 1, + "syscreated": 1605779766, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.247", + "vpnName": "HQ202417A2M", + "vpnOnline": true + }, + { + "name": "Schwingerhalle, Ruswil/LU | Alectron AG (2019-00052)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "0cae7d545066", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163777, + "lastPowerUpOrRestart": 1639586182, + "machineSerialNumber": "HQ1907888BP", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/46398", + "accessLevel": 1, + "syscreated": 1571837864, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.135", + "vpnName": "HQ1907888BP", + "vpnOnline": true + }, + { + "name": "SOB BHF Samstagern | Innolutions (2019-00035.1)", + "identifier": "0cb2b7b9cb46", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163769, + "lastPowerUpOrRestart": 1624454882, + "machineSerialNumber": "HQ2028CN751", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/88673", + "accessLevel": 1, + "syscreated": 1607618036, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.3", + "vpnName": "HQ2028CN751", + "vpnOnline": true + }, + { + "name": "SOB BU Schutt | Innolutions (2019-00035.2)", + "identifier": "94e36dce93f1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163777, + "lastPowerUpOrRestart": 1624438589, + "machineSerialNumber": "HQ20424Z7NE", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/101834", + "accessLevel": 1, + "syscreated": 1617111994, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.36", + "vpnName": "HQ20424Z7NE", + "vpnOnline": true + }, + { + "name": "SOB WHK Einsiedeln | Innolutions (2019-00035.3)", + "identifier": "6064053c4971", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163793, + "lastPowerUpOrRestart": 1644942700, + "machineSerialNumber": "HQ20246JMU9", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/72847", + "accessLevel": 1, + "syscreated": 1600846498, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.222", + "vpnName": "HQ20246JMU9", + "vpnOnline": true + }, + { + "name": "SOB, Biberegg/SZ | Innolutions (2019-00035.4)", + "identifier": "c8df84d370da", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.33", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1594372768, + "lastPowerUpOrRestart": 1594372238, + "machineSerialNumber": null, + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/48359", + "accessLevel": 1, + "syscreated": 1574355640, + "vrmOnline": false, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "SOB, Bonel/SZ | Innolutions (2019-00035.5)", + "identifier": "3403de78d200", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163783, + "lastPowerUpOrRestart": 1624436147, + "machineSerialNumber": "HQ1907TRBSQ", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/48348", + "accessLevel": 1, + "syscreated": 1574349136, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.78", + "vpnName": "HQ1907TRBSQ", + "vpnOnline": true + }, + { + "name": "SOB, Krummenau/SG | Innolutions (2019-00035.6)", + "identifier": "0cae7d5ffd26", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163771, + "lastPowerUpOrRestart": 1616486903, + "machineSerialNumber": "HQ1907YBNTW", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/48364", + "accessLevel": 1, + "syscreated": 1574357789, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.205", + "vpnName": "HQ1907YBNTW", + "vpnOnline": true + }, + { + "name": "SOB, Neuberg/SZ | Innolutions (2019-00035.7)", + "identifier": "9c1d58393482", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163780, + "lastPowerUpOrRestart": 1614940436, + "machineSerialNumber": "HQ1907Z9AVR", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/48361", + "accessLevel": 1, + "syscreated": 1574356498, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.203", + "vpnName": "HQ1907Z9AVR", + "vpnOnline": true + }, + { + "name": "SOB, Sattel/SZ | Innolutions (2019-00035.8)", + "identifier": "f045da7a76fa", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163770, + "lastPowerUpOrRestart": 1645025363, + "machineSerialNumber": "HQ1851VTE9Z", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/49212", + "accessLevel": 1, + "syscreated": 1575455327, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.204", + "vpnName": "HQ1851VTE9Z", + "vpnOnline": true + }, + { + "name": "SOB, Wilen/SZ | Innolutions (2019-00035.9)", + "identifier": "f045da77edc8", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163778, + "lastPowerUpOrRestart": 1624457991, + "machineSerialNumber": "HQ190389CXC", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/48362", + "accessLevel": 1, + "syscreated": 1574357226, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.80", + "vpnName": "HQ190389CXC", + "vpnOnline": true + }, + { + "name": "Sparr, Klaus/AT | OPTIKON OG (2018-00010)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "459", + "identifier": "9070659d2143", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~r4", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163808, + "lastPowerUpOrRestart": 1635490578, + "machineSerialNumber": "HQ18034VIIY", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/22794", + "accessLevel": 1, + "syscreated": 1530622391, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.182", + "vpnName": "HQ18034VIIY", + "vpnOnline": true + }, + { + "name": "Spinnler, Grindelwald/BE| Marcel Fischer, Heizungen, san. Installationen, Planungen (2021-00065)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "e415f6fd99da", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163810, + "lastPowerUpOrRestart": 1647277262, + "machineSerialNumber": "HQ204254BD7", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/112992", + "accessLevel": 1, + "syscreated": 1623416998, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.70", + "vpnName": "HQ204254BD7", + "vpnOnline": true + }, + { + "name": "Spühler, Wasterkingen/ZH | Vivo Solar GmbH (2020-00146)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c57003f60", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163765, + "lastPowerUpOrRestart": 1644856797, + "machineSerialNumber": "HQ2005ZSB67", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/92664", + "accessLevel": 1, + "syscreated": 1611306898, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.15", + "vpnName": "HQ2005ZSB67", + "vpnOnline": true + }, + { + "name": "Stadler, Wittenbach/SG | Niedermann (2019-00012)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "471", + "identifier": "40bd32edfaac", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.54~ie", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1607354741, + "lastPowerUpOrRestart": 1607354711, + "machineSerialNumber": "HQ18376YVQB", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/36346", + "accessLevel": 1, + "syscreated": 1557913405, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.136", + "vpnName": "HQ18376YVQB", + "vpnOnline": false + }, + { + "name": "Stark, Huttwil/BE | STARK STROM GmbH (2020-00059)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "028167dc0a44", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163756, + "lastPowerUpOrRestart": 1649121844, + "machineSerialNumber": "HQ1942AIPF4", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/68127", + "accessLevel": 1, + "syscreated": 1596814089, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.202", + "vpnName": "HQ1942AIPF4", + "vpnOnline": true + }, + { + "name": "Stark, Laufen/BL | STARK STROM GmbH (2019-00007)", + "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", + "inverterFw": "456", + "identifier": "0cb2b7c5564c", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163811, + "lastPowerUpOrRestart": 1651158112, + "machineSerialNumber": "HQ18266ZCVN", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/33161", + "accessLevel": 1, + "syscreated": 1552401793, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.207", + "vpnName": "HQ18266ZCVN", + "vpnOnline": true + }, + { + "name": "Stauffer, Kehrsatz/BE | Elentec GmbH (2020-00048)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": 780473400264, + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163809, + "lastPowerUpOrRestart": 1624975184, + "machineSerialNumber": "HQ1945M31XT", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/64854", + "accessLevel": 1, + "syscreated": 1594130707, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.193", + "vpnName": "HQ1945M31XT", + "vpnOnline": true + }, + { + "name": "Steg, Bronschhofen/SG | Jaeggi Gmünder Energietechnik AG (2021-00157)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6f8a399", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163796, + "lastPowerUpOrRestart": 1647277987, + "machineSerialNumber": "HQ2046PRLJF", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/135173", + "accessLevel": 1, + "syscreated": 1635324441, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.142", + "vpnName": "HQ2046PRLJF", + "vpnOnline": true + }, + { + "name": "Steger, Emmenbrücke/LU | Bouygues E&S InTec Schweiz AG (2021-00111)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6f828db", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163768, + "lastPowerUpOrRestart": 1648568071, + "machineSerialNumber": "HQ2046PPZ7H", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/135068", + "accessLevel": 1, + "syscreated": 1635261565, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.141", + "vpnName": "HQ2046PPZ7H", + "vpnOnline": true + }, + { + "name": "Stegmüller, Arni/BE | Elentec GmbH (2021-00070)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "487", + "identifier": "94e36dceabf7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~r5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163777, + "lastPowerUpOrRestart": 1647277060, + "machineSerialNumber": "HQ2042IAASY", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/113791", + "accessLevel": 1, + "syscreated": 1623856966, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.74", + "vpnName": "HQ2042IAASY", + "vpnOnline": true + }, + { + "name": "Steiger, Rheinau/ZH | Scherrer Gebäudehüllen AG (2020-00058)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "c4f31281e4ce", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163778, + "lastPowerUpOrRestart": 1636619624, + "machineSerialNumber": "HQ1930MZBM7", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/66028", + "accessLevel": 1, + "syscreated": 1595069739, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.188", + "vpnName": "HQ1930MZBM7", + "vpnOnline": true + }, + { + "name": "Steiner, Alpthal/SZ | Alectron AG (2019-00039)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "487", + "identifier": "0cae7d545579", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163815, + "lastPowerUpOrRestart": 1647263475, + "machineSerialNumber": "HQ1907D99PB", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/46369", + "accessLevel": 1, + "syscreated": 1571822915, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.141", + "vpnName": "HQ1907D99PB", + "vpnOnline": true + }, + { + "name": "SternGarage AG, Heerbrugg/SG | Bänziger Lutze Architektur AG (2018-00021)", + "inverter": "Quattro 48/10000/140-2x100", + "inverterFw": "459", + "identifier": "985dadd0cf29", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163806, + "lastPowerUpOrRestart": 1650898246, + "machineSerialNumber": "HQ1751QHCII", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/27162", + "accessLevel": 1, + "syscreated": 1539516033, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.144", + "vpnName": "HQ1751QHCII", + "vpnOnline": true + }, + { + "name": "Stocker, Fahrwangen/AG | Meier Elektro AG (2021-00033)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0281b4e7bcf9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ie", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163817, + "lastPowerUpOrRestart": 1641289223, + "machineSerialNumber": "HQ2050CUV6Z", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/106506", + "accessLevel": 1, + "syscreated": 1619771374, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.48", + "vpnName": "HQ2050CUV6Z", + "vpnOnline": true + }, + { + "name": "Stöcklin, Laufen/BL | STARK STROM GmbH (2019-00057)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "c8df84d36d65", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163775, + "lastPowerUpOrRestart": 1647418830, + "machineSerialNumber": "HQ18511Z94Z", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/49204", + "accessLevel": 1, + "syscreated": 1575451039, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.137", + "vpnName": "HQ18511Z94Z", + "vpnOnline": true + }, + { + "name": "Stoll, Oberembrach/ZH | Vivo Solar GmbH (2019-00053)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "469", + "identifier": "f045da7a8df8", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163791, + "lastPowerUpOrRestart": 1647498642, + "machineSerialNumber": "HQ1907F7X6C", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/45900", + "accessLevel": 1, + "syscreated": 1571217936, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.138", + "vpnName": "HQ1907F7X6C", + "vpnOnline": true + }, + { + "name": "Strebel, Bünzen/AG | Immoflat GmbH (2021-00078.2)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "0479b7aec634", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163784, + "lastPowerUpOrRestart": 1643378266, + "machineSerialNumber": "HQ2101V8DJ7", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/127276", + "accessLevel": 1, + "syscreated": 1631181069, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.118", + "vpnName": "HQ2101V8DJ7", + "vpnOnline": true + }, + { + "name": "Styger, Steinerberg/SZ | Elektro Ottinger AG (2020-00114)", + "inverter": "Quattro 48/8000/110-2x100 rev2", + "inverterFw": "496", + "identifier": "94e36dd5002b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163769, + "lastPowerUpOrRestart": 1650460999, + "machineSerialNumber": "HQ20285JVMW", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/79543", + "accessLevel": 1, + "syscreated": 1606220507, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.249", + "vpnName": "HQ20285JVMW", + "vpnOnline": true + }, + { + "name": "Sutter, Hellsau/BE | Elektro Grogg AG (2021-00030)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0cb2b7cd4b7a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163786, + "lastPowerUpOrRestart": 1634761804, + "machineSerialNumber": "HQ2032HD84T", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/99854", + "accessLevel": 1, + "syscreated": 1615992982, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.33", + "vpnName": "HQ2032HD84T", + "vpnOnline": true + }, + { + "name": "Sutter, Trogen/AR | CE Concept Energy AG (2021-00026)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0035ff91e777", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163784, + "lastPowerUpOrRestart": 1643321143, + "machineSerialNumber": "HQ2032HFPFF", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/102229", + "accessLevel": 1, + "syscreated": 1617286398, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.38", + "vpnName": "HQ2032HFPFF", + "vpnOnline": true + }, + { + "name": "taNET, Goldau/SZ | Elektro Ottinger AG (2019-00076)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "471", + "identifier": "0479b7efc3e1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.64~victron", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1635231840, + "lastPowerUpOrRestart": 1615800376, + "machineSerialNumber": "HQ1933KNGAF", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/53830", + "accessLevel": 1, + "syscreated": 1581954999, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.213", + "vpnName": "HQ1933KNGAF", + "vpnOnline": false + }, + { + "name": "TEST OST", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "0cb2b7b9a53c", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1637768429, + "lastPowerUpOrRestart": 1637768383, + "machineSerialNumber": "HQ2042DKYKB", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/109034", + "accessLevel": 1, + "syscreated": 1621321817, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Thöni, Meiringen/BE | InnovEnergy (2017-00005)", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "421", + "identifier": "04a316e1d1ca", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163792, + "lastPowerUpOrRestart": 1650768560, + "machineSerialNumber": "HQ1724LNX4Q", + "type": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/15838", + "accessLevel": 1, + "syscreated": 1510167138, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.171", + "vpnName": "HQ1724LNX4Q", + "vpnOnline": true + }, + { + "name": "Tschannen, Erlach/BE | KWenergy GmbH (2020-00111) | Inselnetz", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "470", + "identifier": "0281395b54f2", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1651163825, + "lastPowerUpOrRestart": 1649325170, + "machineSerialNumber": "HQ2021SL9SF", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/78246", + "accessLevel": 1, + "syscreated": 1605186174, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.245", + "vpnName": "HQ2021SL9SF", + "vpnOnline": true + }, + { + "name": "Tschannen, Murzelen/BE | Elektro Hegg AG (2021-00117)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "485", + "identifier": "e415f6f818d0", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163792, + "lastPowerUpOrRestart": 1646926395, + "machineSerialNumber": "HQ2046ZUJFC", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/124145", + "accessLevel": 1, + "syscreated": 1629383896, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.107", + "vpnName": "HQ2046ZUJFC", + "vpnOnline": true + }, + { + "name": "Tschanz, Jegenstorf/BE | Brunner + Imboden AG (2020-00024)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "7c669d4dd639", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.53", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1589906251, + "lastPowerUpOrRestart": 1589897311, + "machineSerialNumber": "HQ1933ILBWB", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/60232", + "accessLevel": 1, + "syscreated": 1589784122, + "vrmOnline": false, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Uehlinger, Reuti/BE | InnovEnergy (2020-00003)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "471", + "identifier": "0479b7a3a8de", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163807, + "lastPowerUpOrRestart": 1633235572, + "machineSerialNumber": "HQ19337Y9KF", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/53863", + "accessLevel": 1, + "syscreated": 1582016330, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.140", + "vpnName": "HQ19337Y9KF", + "vpnOnline": true + }, + { + "name": "Ulrich, Kerns/OW | Alectron AG (2019-00040)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "0cae7d548d47", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163804, + "lastPowerUpOrRestart": 1647448784, + "machineSerialNumber": "HQ1907YG6WS", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/41668", + "accessLevel": 1, + "syscreated": 1565685094, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.142", + "vpnName": "HQ1907YG6WS", + "vpnOnline": true + }, + { + "name": "Umweltarena, Spreitenbach/AG | W. Schmid Projekte AG (2019-00028)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "9c1d583913a2", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163832, + "lastPowerUpOrRestart": 1608299350, + "machineSerialNumber": "HQ1903FPAY3", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/38949", + "accessLevel": 1, + "syscreated": 1561652746, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.185", + "vpnName": "HQ1903FPAY3", + "vpnOnline": true + }, + { + "name": "Usinger, Ulmen/DE | EEG Autark GmbH (2021-00162)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0cb2b7b9a07d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163830, + "lastPowerUpOrRestart": 1639107824, + "machineSerialNumber": "HQ2046A59PI", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/135280", + "accessLevel": 1, + "syscreated": 1635344191, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.143", + "vpnName": "HQ2046A59PI", + "vpnOnline": true + }, + { + "name": "Utz, Münchenbuchsee/BE | Elektro Fahrni AG (2021-00219)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da865029", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163833, + "lastPowerUpOrRestart": 1647277287, + "machineSerialNumber": "HQ2128NUYV2", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/152497", + "accessLevel": 1, + "syscreated": 1643377303, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.187", + "vpnName": "HQ2128NUYV2", + "vpnOnline": true + }, + { + "name": "Utzschneider, Buchloe /DE | PV Total Der Energiesparberater (2021-00153)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "e415f6f4d0a3", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~615dd5c4c8", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163833, + "lastPowerUpOrRestart": 1642072454, + "machineSerialNumber": "HQ21017LR18", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/130677", + "accessLevel": 1, + "syscreated": 1633015904, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.130", + "vpnName": "HQ21017LR18", + "vpnOnline": true + }, + { + "name": "VBAU Architektur AG, Adliswil/ZH | InnovEnergy (2019-00008)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "c8df84d37593", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163784, + "lastPowerUpOrRestart": 1649248516, + "machineSerialNumber": "HQ18513GKK1", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/41336", + "accessLevel": 1, + "syscreated": 1565164304, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.194", + "vpnName": "HQ18513GKK1", + "vpnOnline": true + }, + { + "name": "Venzi, Mettmenstetten/ZH | Hotz Technik GmbH (2021-00034)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0cb2b7cc67e9", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163796, + "lastPowerUpOrRestart": 1636482706, + "machineSerialNumber": "HQ2032ANKF3", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/102642", + "accessLevel": 1, + "syscreated": 1617694355, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.39", + "vpnName": "HQ2032ANKF3", + "vpnOnline": true + }, + { + "name": "Vitzthum, Thayngen/SH | Vivo Solar GmbH (2021-00079)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "1862e4cbde5e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163786, + "lastPowerUpOrRestart": 1647590217, + "machineSerialNumber": "HQ20466WTFX", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/115298", + "accessLevel": 1, + "syscreated": 1624609224, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.83", + "vpnName": "HQ20466WTFX", + "vpnOnline": true + }, + { + "name": "Von Allmen, Matten/BE | Elentec GmbH (2021-00022)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "4c3fd33ee7fd", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163827, + "lastPowerUpOrRestart": 1620812789, + "machineSerialNumber": "HQ1930WMDZE", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/95736", + "accessLevel": 1, + "syscreated": 1613464765, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.214", + "vpnName": "HQ1930WMDZE", + "vpnOnline": true + }, + { + "name": "Wäger, Waldkirch/SG | Wäger (2019-00042)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "471", + "identifier": "0cae7d5487d7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.54~ie", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1608222620, + "lastPowerUpOrRestart": 1602875785, + "machineSerialNumber": "HQ19076JS77", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/42823", + "accessLevel": 1, + "syscreated": 1567167818, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.139", + "vpnName": "HQ19076JS77", + "vpnOnline": false + }, + { + "name": "Walser, Urnäsch/AR | Swiss Photovoltaik GmbH (2021-00035)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0035ff8da271", + "hasMains": false, + "hasGenerator": true, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163831, + "lastPowerUpOrRestart": 1649687541, + "machineSerialNumber": "HQ2032UAWYM", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/104768", + "accessLevel": 1, + "syscreated": 1618829320, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.219", + "vpnName": "HQ2032UAWYM", + "vpnOnline": true + }, + { + "name": "Walter, Rechberghausen/DE | Elser Elektro + Haustechnik (2021-00211)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "c0619ab01535", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163783, + "lastPowerUpOrRestart": 1650825991, + "machineSerialNumber": "HQ2114K3YTP", + "type": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/151486", + "accessLevel": 1, + "syscreated": 1643030331, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.182", + "vpnName": "HQ2114K3YTP", + "vpnOnline": true + }, + { + "name": "Walther, Schwarzenegg/BE | Thomas Walther (2022-00006)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b9d00be", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1651163839, + "lastPowerUpOrRestart": 1646931988, + "machineSerialNumber": "HQ2118M2CH9", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/156670", + "accessLevel": 1, + "syscreated": 1645169266, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.205", + "vpnName": "HQ2118M2CH9", + "vpnOnline": true + }, + { + "name": "Weibel, Henggart/ZH | Scherrer Gebäudehüllen AG (2020-00056)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "478", + "identifier": "0c1c5705d480", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163791, + "lastPowerUpOrRestart": 1644405223, + "machineSerialNumber": "HQ20021INYL", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/66036", + "accessLevel": 1, + "syscreated": 1595079375, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.191", + "vpnName": "HQ20021INYL", + "vpnOnline": true + }, + { + "name": "Weisshaupt, Neunkirch/SH | Vivo Solar GmbH (2020-00083)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c5707334d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1643896263, + "lastPowerUpOrRestart": 1633525854, + "machineSerialNumber": "HQ20249WQRE", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/71491", + "accessLevel": 1, + "syscreated": 1599665197, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.216", + "vpnName": "HQ20249WQRE", + "vpnOnline": false + }, + { + "name": "Wendland, Oberaudorf/DE | Tino Electric - Anker & Funk GbR (2021-00031)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0cb2b7b9b535", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163814, + "lastPowerUpOrRestart": 1637931577, + "machineSerialNumber": "HQ20428K13Y", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/104399", + "accessLevel": 1, + "syscreated": 1618564216, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.113", + "vpnName": "HQ20428K13Y", + "vpnOnline": true + }, + { + "name": "Werkhof Archäologie, Frauenfeld/TG | Kantonales Hochbauamt (2021-00165)", + "inverter": "Quattro 48/10000/140-2x100", + "inverterFw": "494", + "identifier": "48e7da87cfb9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163819, + "lastPowerUpOrRestart": 1651135919, + "machineSerialNumber": "HQ21393HYZF", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/158204", + "accessLevel": 1, + "syscreated": 1645800757, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.211", + "vpnName": "HQ21393HYZF", + "vpnOnline": true + }, + { + "name": "Wey, Thun/BE | Brunner + Imboden AG (2019-00062)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "f045da7674d6", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163833, + "lastPowerUpOrRestart": 1608222372, + "machineSerialNumber": "HQ1903J4VF5", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/38743", + "accessLevel": 1, + "syscreated": 1561384805, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.103", + "vpnName": "HQ1903J4VF5", + "vpnOnline": true + }, + { + "name": "Weyermann, Schwarzenburg/BE | Breu AG (2021-00023)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0035ff91feab", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163825, + "lastPowerUpOrRestart": 1636482403, + "machineSerialNumber": "HQ2032BJWTR", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/99629", + "accessLevel": 1, + "syscreated": 1615903421, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.32", + "vpnName": "HQ2032BJWTR", + "vpnOnline": true + }, + { + "name": "Wichtermann, Eschholzmatt/LU | Elentec GmbH (2021-00099)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "1862e4c0e8dd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1651163796, + "lastPowerUpOrRestart": 1636517670, + "machineSerialNumber": "HQ2046PQVU8", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/120970", + "accessLevel": 1, + "syscreated": 1627463735, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.100", + "vpnName": "HQ2046PQVU8", + "vpnOnline": true + }, + { + "name": "Wick, Nesslau/SG | InnovEnergy (2019-00058)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "477", + "identifier": "f045da767ee1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1647692403, + "lastPowerUpOrRestart": 1644209857, + "machineSerialNumber": "HQ1907VJ3X5", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/46686", + "accessLevel": 1, + "syscreated": 1572338683, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.0.102", + "vpnName": "HQ1907VJ3X5", + "vpnOnline": false + }, + { + "name": "Wicki, Merzligen/BE | eltanorm GmbH (2022-00042)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "00e93aac35bd", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163828, + "lastPowerUpOrRestart": 1647564564, + "machineSerialNumber": "HQ2139XJDP6", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/156549", + "accessLevel": 1, + "syscreated": 1645110256, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.203", + "vpnName": "HQ2139XJDP6", + "vpnOnline": true + }, + { + "name": "Wiesner, Mönchaltorf/ZH | Schibli AG (2022-00001)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "00e93aac4a4f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163801, + "lastPowerUpOrRestart": 1649062782, + "machineSerialNumber": "HQ21393TN7Z", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/158672", + "accessLevel": 1, + "syscreated": 1646065452, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.212", + "vpnName": "HQ21393TN7Z", + "vpnOnline": true + }, + { + "name": "Wiest, Unterramsern/SO | Genossenschaft Elektra (2020-00075)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "0c1c5701912e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.66~rc5", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163805, + "lastPowerUpOrRestart": 1650021419, + "machineSerialNumber": "HQ2005XYN3P", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/70218", + "accessLevel": 1, + "syscreated": 1598596065, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.209", + "vpnName": "HQ2005XYN3P", + "vpnOnline": true + }, + { + "name": "Wildberger, Neunkirch/SH | vivo solar gmbh (2021-00156)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "485", + "identifier": "0035ff6448b9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163800, + "lastPowerUpOrRestart": 1639671540, + "machineSerialNumber": "HQ20462N383", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/134049", + "accessLevel": 1, + "syscreated": 1634799316, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.138", + "vpnName": "HQ20462N383", + "vpnOnline": true + }, + { + "name": "Wintermantel, Liesberg/BL | XEEO GmbH (2021-00180)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "1862e4cbf943", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163848, + "lastPowerUpOrRestart": 1650363238, + "machineSerialNumber": "HQ21013VSTM", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/141033", + "accessLevel": 1, + "syscreated": 1637857056, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.165", + "vpnName": "HQ21013VSTM", + "vpnOnline": true + }, + { + "name": "Wirz, Binningen/BL | b+s Elektro Telematik AG (2021-00189)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "94e36dce5bc9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163840, + "lastPowerUpOrRestart": 1640130010, + "machineSerialNumber": "HQ20427EYI2", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/140683", + "accessLevel": 1, + "syscreated": 1637769202, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.162", + "vpnName": "HQ20427EYI2", + "vpnOnline": true + }, + { + "name": "Wittwer, Obergoldbach/BE | Elektro Frommherz AG (2020-00054)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "7804733ff108", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163797, + "lastPowerUpOrRestart": 1647709118, + "machineSerialNumber": "HQ1945MP1KD", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/62078", + "accessLevel": 1, + "syscreated": 1591696209, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.150", + "vpnName": "HQ1945MP1KD", + "vpnOnline": true + }, + { + "name": "Wyssbrod, Büren/BE | KWenergy GmbH (2021-00184)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "0479b7ae9c4f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163800, + "lastPowerUpOrRestart": 1642752359, + "machineSerialNumber": "HQ210179R4D", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/139352", + "accessLevel": 1, + "syscreated": 1637240451, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.158", + "vpnName": "HQ210179R4D", + "vpnOnline": true + }, + { + "name": "Xs_tief 629-4", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "494", + "identifier": "94e36dce9703", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1648798628, + "lastPowerUpOrRestart": 1648639945, + "machineSerialNumber": "HQ2028CLPYC", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/94239", + "accessLevel": 1, + "syscreated": 1612359464, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.19", + "vpnName": "HQ2028CLPYC", + "vpnOnline": false + }, + { + "name": "Xs_tief 630-2", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "481", + "identifier": "0035ff646c74", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651009969, + "lastPowerUpOrRestart": 1651009970, + "machineSerialNumber": "HQ2032N3QK8", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/94190", + "accessLevel": 1, + "syscreated": 1612347681, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.20", + "vpnName": "HQ2032N3QK8", + "vpnOnline": false + }, + { + "name": "Zbinden, Salzmatt/BE | Breu AG (2020-00015)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "474", + "identifier": "4c3fd33eec71", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163850, + "lastPowerUpOrRestart": 1648884968, + "machineSerialNumber": "HQ1930QHH53", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/59299", + "accessLevel": 1, + "syscreated": 1588657271, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.195", + "vpnName": "HQ1930QHH53", + "vpnOnline": true + }, + { + "name": "Ziegler, Märwil/TG | Gebr. Willi Elektro AG (2021-00193)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "1862e4c6fd9e", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163793, + "lastPowerUpOrRestart": 1649776446, + "machineSerialNumber": "HQ2101S5M6Z", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/143646", + "accessLevel": 1, + "syscreated": 1638972730, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.171", + "vpnName": "HQ2101S5M6Z", + "vpnOnline": true + }, + { + "name": "Zihlmann, Bünzen/AG | Immoflat GmbH (2021-00078.3)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "0479b7b2e02f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163796, + "lastPowerUpOrRestart": 1643294255, + "machineSerialNumber": "HQ2101K1CUA", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/127247", + "accessLevel": 1, + "syscreated": 1631173454, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.117", + "vpnName": "HQ2101K1CUA", + "vpnOnline": true + }, + { + "name": "Zimmermann, Trüllikon/ZH | Vivo Solar GmbH (2020-00001)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "471", + "identifier": "1cba8ca13362", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163850, + "lastPowerUpOrRestart": 1636479768, + "machineSerialNumber": "HQ19247DV3Z", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/52664", + "accessLevel": 1, + "syscreated": 1580551286, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.145", + "vpnName": "HQ19247DV3Z", + "vpnOnline": true + }, + { + "name": "Zumsteg, Magden/AG | STARK STROM GmbH (2019-00056)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "0cae7d642534", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163843, + "lastPowerUpOrRestart": 1649333954, + "machineSerialNumber": "HQ190787283", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/46748", + "accessLevel": 1, + "syscreated": 1572360463, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.247", + "vpnName": "HQ190787283", + "vpnOnline": true + }, + { + "name": "Zünd, Effretikon/ZH | NewSol AG (2019-00067)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "0cae7d54ca58", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163838, + "lastPowerUpOrRestart": 1644672972, + "machineSerialNumber": "HQ1907SDBGF", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/47738", + "accessLevel": 1, + "syscreated": 1573580385, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.101", + "vpnName": "HQ1907SDBGF", + "vpnOnline": true + }, + { + "name": "Zürcher, Münchenwiler/BE | Uniclima GmbH (2019-00047)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "459", + "identifier": "0cae7d64542c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1612357011, + "lastPowerUpOrRestart": 1612170347, + "machineSerialNumber": "HQ19072WJSI", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/43664", + "accessLevel": 1, + "syscreated": 1568281709, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.100", + "vpnName": "HQ19072WJSI", + "vpnOnline": false + }, + { + "name": "Zürcher, Wichtrach/BE | InnovEnergy (2018-00030)", + "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", + "inverterFw": "456", + "identifier": "102c6b643ccf", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1651163802, + "lastPowerUpOrRestart": 1646917047, + "machineSerialNumber": "HQ2048HB348", + "type": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/32570", + "accessLevel": 1, + "syscreated": 1551375128, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.86", + "vpnName": "HQ2048HB348", + "vpnOnline": true + }, + { + "name": "ZZX_Defekt_e415f6fc9a92", + "identifier": "e415f6fc9a92", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.60", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1632383490, + "lastPowerUpOrRestart": 1632383477, + "machineSerialNumber": "HQ2046YGGXV", + "type": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/125864", + "accessLevel": 1, + "syscreated": 1630418713, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + } +] \ No newline at end of file