@jin-qu/jinqu 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1532 @@
1
+ "use strict";
2
+ var __generator = (this && this.__generator) || function (thisArg, body) {
3
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
4
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
5
+ function verb(n) { return function (v) { return step([n, v]); }; }
6
+ function step(op) {
7
+ if (f) throw new TypeError("Generator is already executing.");
8
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
9
+ 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;
10
+ if (y = 0, t) op = [op[0] & 2, t.value];
11
+ switch (op[0]) {
12
+ case 0: case 1: t = op; break;
13
+ case 4: _.label++; return { value: op[1], done: false };
14
+ case 5: _.label++; y = op[1]; op = [0]; continue;
15
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
16
+ default:
17
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
18
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
19
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
20
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
21
+ if (t[2]) _.ops.pop();
22
+ _.trys.pop(); continue;
23
+ }
24
+ op = body.call(thisArg, _);
25
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
26
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
27
+ }
28
+ };
29
+ var __values = (this && this.__values) || function(o) {
30
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
31
+ if (m) return m.call(o);
32
+ if (o && typeof o.length === "number") return {
33
+ next: function () {
34
+ if (o && i >= o.length) o = void 0;
35
+ return { value: o && o[i++], done: !o };
36
+ }
37
+ };
38
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
39
+ };
40
+ var __read = (this && this.__read) || function (o, n) {
41
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
42
+ if (!m) return o;
43
+ var i = m.call(o), r, ar = [], e;
44
+ try {
45
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
46
+ }
47
+ catch (error) { e = { error: error }; }
48
+ finally {
49
+ try {
50
+ if (r && !r.done && (m = i["return"])) m.call(i);
51
+ }
52
+ finally { if (e) throw e.error; }
53
+ }
54
+ return ar;
55
+ };
56
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
57
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
58
+ if (ar || !(i in from)) {
59
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
60
+ ar[i] = from[i];
61
+ }
62
+ }
63
+ return to.concat(ar || Array.prototype.slice.call(from));
64
+ };
65
+ Object.defineProperty(exports, "__esModule", { value: true });
66
+ exports.ArrayQueryProvider = void 0;
67
+ var class_transformer_1 = require("class-transformer");
68
+ var query_1 = require("./query");
69
+ var query_part_1 = require("./query-part");
70
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
71
+ var deepEqual = require("deep-equal");
72
+ var primitives = [Number, Boolean, String];
73
+ var orderFuncs = [query_part_1.QueryFunc.orderBy, query_part_1.QueryFunc.orderByDescending, query_part_1.QueryFunc.thenBy, query_part_1.QueryFunc.thenByDescending];
74
+ var descFuncs = [query_part_1.QueryFunc.orderByDescending, query_part_1.QueryFunc.thenByDescending];
75
+ var executors = [
76
+ query_part_1.QueryFunc.aggregate,
77
+ query_part_1.QueryFunc.all,
78
+ query_part_1.QueryFunc.any,
79
+ query_part_1.QueryFunc.average,
80
+ query_part_1.QueryFunc.contains,
81
+ query_part_1.QueryFunc.elementAt,
82
+ query_part_1.QueryFunc.elementAtOrDefault,
83
+ query_part_1.QueryFunc.first,
84
+ query_part_1.QueryFunc.firstOrDefault,
85
+ query_part_1.QueryFunc.last,
86
+ query_part_1.QueryFunc.lastOrDefault,
87
+ query_part_1.QueryFunc.max,
88
+ query_part_1.QueryFunc.min,
89
+ query_part_1.QueryFunc.sequenceEqual,
90
+ query_part_1.QueryFunc.single,
91
+ query_part_1.QueryFunc.singleOrDefault,
92
+ query_part_1.QueryFunc.sum,
93
+ query_part_1.QueryFunc.toArray,
94
+ ];
95
+ var countModifiers = [
96
+ query_part_1.QueryFunc.concat,
97
+ query_part_1.QueryFunc.distinct,
98
+ query_part_1.QueryFunc.except,
99
+ query_part_1.QueryFunc.groupBy,
100
+ query_part_1.QueryFunc.groupJoin,
101
+ query_part_1.QueryFunc.intersect,
102
+ query_part_1.QueryFunc.join,
103
+ query_part_1.QueryFunc.ofGuardedType,
104
+ query_part_1.QueryFunc.ofType,
105
+ query_part_1.QueryFunc.skipWhile,
106
+ query_part_1.QueryFunc.takeWhile,
107
+ query_part_1.QueryFunc.union,
108
+ query_part_1.QueryFunc.where,
109
+ query_part_1.QueryFunc.zip,
110
+ ];
111
+ var ArrayQueryProvider = /** @class */ (function () {
112
+ function ArrayQueryProvider(items) {
113
+ this.items = items;
114
+ if (!items)
115
+ throw new TypeError("Cannot query null array.");
116
+ }
117
+ ArrayQueryProvider.prototype.createQuery = function (parts, ctor) {
118
+ var query = new query_1.Query(this, parts);
119
+ return ctor ? query.cast(ctor) : query;
120
+ };
121
+ ArrayQueryProvider.prototype.execute = function (parts) {
122
+ var e_1, _a, _b;
123
+ if (!parts || !parts.length)
124
+ return this.items;
125
+ var ctor = null;
126
+ var value = this.items instanceof Array ? this.items[Symbol.iterator]() : this.items;
127
+ var inlineCountEnabled;
128
+ var orderParts = [];
129
+ var inlineCount = null;
130
+ try {
131
+ for (var parts_1 = __values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {
132
+ var p = parts_1_1.value;
133
+ if (p.type === query_part_1.QueryFunc.inlineCount) {
134
+ inlineCountEnabled = true;
135
+ continue;
136
+ }
137
+ else if (orderFuncs.indexOf(p.type) !== -1) {
138
+ // accumulate consecutive sorting
139
+ orderParts.push(p);
140
+ continue;
141
+ }
142
+ else if (p.type === query_part_1.QueryFunc.skip || p.type === query_part_1.QueryFunc.take || executors.indexOf(p.type) !== -1) {
143
+ if (inlineCountEnabled && inlineCount == null) {
144
+ _b = __read(getCount(value), 2), inlineCount = _b[0], value = _b[1];
145
+ }
146
+ }
147
+ else if (p.type === query_part_1.QueryFunc.cast) {
148
+ ctor = p.args[0].literal;
149
+ }
150
+ else if (countModifiers.indexOf(p.type) !== -1) {
151
+ inlineCount = null;
152
+ }
153
+ // if it is not an order, apply previous sorting
154
+ if (orderParts.length) {
155
+ value = this.multiOrderBy(value, orderParts);
156
+ }
157
+ // clear sorting
158
+ orderParts = [];
159
+ value = this.handlePart(value, p);
160
+ }
161
+ }
162
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
163
+ finally {
164
+ try {
165
+ if (parts_1_1 && !parts_1_1.done && (_a = parts_1.return)) _a.call(parts_1);
166
+ }
167
+ finally { if (e_1) throw e_1.error; }
168
+ }
169
+ // handle remaining sorting. necessary when last query part is an order
170
+ if (orderParts.length) {
171
+ value = this.multiOrderBy(value, orderParts);
172
+ }
173
+ value = (ctor ? (0, class_transformer_1.plainToClass)(ctor, value) : value);
174
+ if (inlineCountEnabled) {
175
+ value = { value: value, inlineCount: inlineCount };
176
+ }
177
+ return value;
178
+ };
179
+ ArrayQueryProvider.prototype.executeAsync = function (parts) {
180
+ var _this = this;
181
+ return new Promise(function (resolve, reject) {
182
+ try {
183
+ resolve(_this.execute(parts));
184
+ }
185
+ catch (e) {
186
+ reject(e);
187
+ }
188
+ });
189
+ };
190
+ ArrayQueryProvider.prototype.handlePart = function (items, part) {
191
+ var f = funcs[part.type];
192
+ if (!f)
193
+ throw new Error("Unknown query part type ".concat(part.type, "."));
194
+ return f.call.apply(f, __spreadArray([null, items], __read(part.args), false));
195
+ };
196
+ ArrayQueryProvider.prototype.multiOrderBy = function (items, keySelectors) {
197
+ var arr = Array.from(items).sort(function (i1, i2) {
198
+ var e_2, _a;
199
+ try {
200
+ for (var keySelectors_1 = __values(keySelectors), keySelectors_1_1 = keySelectors_1.next(); !keySelectors_1_1.done; keySelectors_1_1 = keySelectors_1.next()) {
201
+ var s = keySelectors_1_1.value;
202
+ var desc = descFuncs.indexOf(s.type) !== -1 ? 1 : -1;
203
+ var sel = s.args[0];
204
+ var v1 = sel.func(i1);
205
+ var v2 = sel.func(i2);
206
+ if (v1 < v2)
207
+ return desc;
208
+ if (v1 > v2)
209
+ return -1 * desc;
210
+ }
211
+ }
212
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
213
+ finally {
214
+ try {
215
+ if (keySelectors_1_1 && !keySelectors_1_1.done && (_a = keySelectors_1.return)) _a.call(keySelectors_1);
216
+ }
217
+ finally { if (e_2) throw e_2.error; }
218
+ }
219
+ });
220
+ return arr[Symbol.iterator]();
221
+ };
222
+ return ArrayQueryProvider;
223
+ }());
224
+ exports.ArrayQueryProvider = ArrayQueryProvider;
225
+ var funcs = {
226
+ aggregate: function (items, func, seed) {
227
+ var e_3, _a;
228
+ var s = seed.literal || 0;
229
+ try {
230
+ for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
231
+ var i = items_1_1.value;
232
+ s = func.func(s, i);
233
+ }
234
+ }
235
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
236
+ finally {
237
+ try {
238
+ if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
239
+ }
240
+ finally { if (e_3) throw e_3.error; }
241
+ }
242
+ return s;
243
+ },
244
+ all: function (items, predicate) {
245
+ var e_4, _a;
246
+ try {
247
+ for (var items_2 = __values(items), items_2_1 = items_2.next(); !items_2_1.done; items_2_1 = items_2.next()) {
248
+ var i = items_2_1.value;
249
+ if (!predicate.func(i))
250
+ return false;
251
+ }
252
+ }
253
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
254
+ finally {
255
+ try {
256
+ if (items_2_1 && !items_2_1.done && (_a = items_2.return)) _a.call(items_2);
257
+ }
258
+ finally { if (e_4) throw e_4.error; }
259
+ }
260
+ return true;
261
+ },
262
+ any: function (items, predicate) {
263
+ var e_5, _a;
264
+ try {
265
+ for (var items_3 = __values(items), items_3_1 = items_3.next(); !items_3_1.done; items_3_1 = items_3.next()) {
266
+ var i = items_3_1.value;
267
+ if (!predicate.func || predicate.func(i))
268
+ return true;
269
+ }
270
+ }
271
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
272
+ finally {
273
+ try {
274
+ if (items_3_1 && !items_3_1.done && (_a = items_3.return)) _a.call(items_3);
275
+ }
276
+ finally { if (e_5) throw e_5.error; }
277
+ }
278
+ return false;
279
+ },
280
+ average: function (items, selector) {
281
+ var e_6, _a;
282
+ var sum = 0;
283
+ var c = 0;
284
+ try {
285
+ for (var items_4 = __values(items), items_4_1 = items_4.next(); !items_4_1.done; items_4_1 = items_4.next()) {
286
+ var i = items_4_1.value;
287
+ var curr = selector.func ? selector.func(i) : i;
288
+ sum += curr;
289
+ c++;
290
+ }
291
+ }
292
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
293
+ finally {
294
+ try {
295
+ if (items_4_1 && !items_4_1.done && (_a = items_4.return)) _a.call(items_4);
296
+ }
297
+ finally { if (e_6) throw e_6.error; }
298
+ }
299
+ return c === 0 ? 0 : sum / c;
300
+ },
301
+ cast: function (items, ctor) {
302
+ var items_5, items_5_1, i, v, e_7_1;
303
+ var e_7, _a;
304
+ return __generator(this, function (_b) {
305
+ switch (_b.label) {
306
+ case 0:
307
+ _b.trys.push([0, 9, 10, 11]);
308
+ items_5 = __values(items), items_5_1 = items_5.next();
309
+ _b.label = 1;
310
+ case 1:
311
+ if (!!items_5_1.done) return [3 /*break*/, 8];
312
+ i = items_5_1.value;
313
+ if (!(i == null)) return [3 /*break*/, 3];
314
+ return [4 /*yield*/, i];
315
+ case 2:
316
+ _b.sent();
317
+ return [3 /*break*/, 7];
318
+ case 3:
319
+ if (!(i !== Object(i))) return [3 /*break*/, 5];
320
+ v = ctor.literal(i);
321
+ if (v == null || (ctor.literal === Number && isNaN(v)))
322
+ throw new Error("Unable to cast ".concat(i));
323
+ return [4 /*yield*/, v];
324
+ case 4:
325
+ _b.sent();
326
+ return [3 /*break*/, 7];
327
+ case 5:
328
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
329
+ if (i.constructor !== Object && !(i instanceof ctor.literal))
330
+ throw new Error("Unable to cast ".concat(i));
331
+ return [4 /*yield*/, i];
332
+ case 6:
333
+ _b.sent();
334
+ _b.label = 7;
335
+ case 7:
336
+ items_5_1 = items_5.next();
337
+ return [3 /*break*/, 1];
338
+ case 8: return [3 /*break*/, 11];
339
+ case 9:
340
+ e_7_1 = _b.sent();
341
+ e_7 = { error: e_7_1 };
342
+ return [3 /*break*/, 11];
343
+ case 10:
344
+ try {
345
+ if (items_5_1 && !items_5_1.done && (_a = items_5.return)) _a.call(items_5);
346
+ }
347
+ finally { if (e_7) throw e_7.error; }
348
+ return [7 /*endfinally*/];
349
+ case 11: return [2 /*return*/];
350
+ }
351
+ });
352
+ },
353
+ concat: function (items, other) {
354
+ var os, items_6, items_6_1, i, e_8_1, os_1, os_1_1, o, e_9_1;
355
+ var e_8, _a, e_9, _b;
356
+ return __generator(this, function (_c) {
357
+ switch (_c.label) {
358
+ case 0:
359
+ os = getArray(other);
360
+ _c.label = 1;
361
+ case 1:
362
+ _c.trys.push([1, 6, 7, 8]);
363
+ items_6 = __values(items), items_6_1 = items_6.next();
364
+ _c.label = 2;
365
+ case 2:
366
+ if (!!items_6_1.done) return [3 /*break*/, 5];
367
+ i = items_6_1.value;
368
+ return [4 /*yield*/, i];
369
+ case 3:
370
+ _c.sent();
371
+ _c.label = 4;
372
+ case 4:
373
+ items_6_1 = items_6.next();
374
+ return [3 /*break*/, 2];
375
+ case 5: return [3 /*break*/, 8];
376
+ case 6:
377
+ e_8_1 = _c.sent();
378
+ e_8 = { error: e_8_1 };
379
+ return [3 /*break*/, 8];
380
+ case 7:
381
+ try {
382
+ if (items_6_1 && !items_6_1.done && (_a = items_6.return)) _a.call(items_6);
383
+ }
384
+ finally { if (e_8) throw e_8.error; }
385
+ return [7 /*endfinally*/];
386
+ case 8:
387
+ _c.trys.push([8, 13, 14, 15]);
388
+ os_1 = __values(os), os_1_1 = os_1.next();
389
+ _c.label = 9;
390
+ case 9:
391
+ if (!!os_1_1.done) return [3 /*break*/, 12];
392
+ o = os_1_1.value;
393
+ return [4 /*yield*/, o];
394
+ case 10:
395
+ _c.sent();
396
+ _c.label = 11;
397
+ case 11:
398
+ os_1_1 = os_1.next();
399
+ return [3 /*break*/, 9];
400
+ case 12: return [3 /*break*/, 15];
401
+ case 13:
402
+ e_9_1 = _c.sent();
403
+ e_9 = { error: e_9_1 };
404
+ return [3 /*break*/, 15];
405
+ case 14:
406
+ try {
407
+ if (os_1_1 && !os_1_1.done && (_b = os_1.return)) _b.call(os_1);
408
+ }
409
+ finally { if (e_9) throw e_9.error; }
410
+ return [7 /*endfinally*/];
411
+ case 15: return [2 /*return*/];
412
+ }
413
+ });
414
+ },
415
+ contains: function (items, item, comparer) {
416
+ var e_10, _a;
417
+ try {
418
+ for (var items_7 = __values(items), items_7_1 = items_7.next(); !items_7_1.done; items_7_1 = items_7.next()) {
419
+ var i = items_7_1.value;
420
+ if (comparer.func ? comparer.func(i, item.literal) : i === item.literal)
421
+ return true;
422
+ }
423
+ }
424
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
425
+ finally {
426
+ try {
427
+ if (items_7_1 && !items_7_1.done && (_a = items_7.return)) _a.call(items_7);
428
+ }
429
+ finally { if (e_10) throw e_10.error; }
430
+ }
431
+ return false;
432
+ },
433
+ count: function (items, predicate) {
434
+ var e_11, _a;
435
+ var c = 0;
436
+ try {
437
+ for (var items_8 = __values(items), items_8_1 = items_8.next(); !items_8_1.done; items_8_1 = items_8.next()) {
438
+ var i = items_8_1.value;
439
+ if (!predicate.func || predicate.func(i)) {
440
+ c++;
441
+ }
442
+ }
443
+ }
444
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
445
+ finally {
446
+ try {
447
+ if (items_8_1 && !items_8_1.done && (_a = items_8.return)) _a.call(items_8);
448
+ }
449
+ finally { if (e_11) throw e_11.error; }
450
+ }
451
+ return c;
452
+ },
453
+ defaultIfEmpty: function (items, defaultValue) {
454
+ var arr = Array.from(items);
455
+ if (arr.length)
456
+ return arr[Symbol.iterator]();
457
+ return defaultValue.literal != null ? [defaultValue.literal] : [];
458
+ },
459
+ distinct: function (items, comparer) {
460
+ var dist, c, _loop_1, items_9, items_9_1, i, e_12_1;
461
+ var e_12, _a;
462
+ return __generator(this, function (_b) {
463
+ switch (_b.label) {
464
+ case 0:
465
+ dist = [];
466
+ c = (comparer.func || (function (a, b) { return a === b; }));
467
+ _loop_1 = function (i) {
468
+ return __generator(this, function (_c) {
469
+ switch (_c.label) {
470
+ case 0:
471
+ if (dist.find(function (d) { return c(i, d); }))
472
+ return [2 /*return*/, "continue"];
473
+ dist.push(i);
474
+ return [4 /*yield*/, i];
475
+ case 1:
476
+ _c.sent();
477
+ return [2 /*return*/];
478
+ }
479
+ });
480
+ };
481
+ _b.label = 1;
482
+ case 1:
483
+ _b.trys.push([1, 6, 7, 8]);
484
+ items_9 = __values(items), items_9_1 = items_9.next();
485
+ _b.label = 2;
486
+ case 2:
487
+ if (!!items_9_1.done) return [3 /*break*/, 5];
488
+ i = items_9_1.value;
489
+ return [5 /*yield**/, _loop_1(i)];
490
+ case 3:
491
+ _b.sent();
492
+ _b.label = 4;
493
+ case 4:
494
+ items_9_1 = items_9.next();
495
+ return [3 /*break*/, 2];
496
+ case 5: return [3 /*break*/, 8];
497
+ case 6:
498
+ e_12_1 = _b.sent();
499
+ e_12 = { error: e_12_1 };
500
+ return [3 /*break*/, 8];
501
+ case 7:
502
+ try {
503
+ if (items_9_1 && !items_9_1.done && (_a = items_9.return)) _a.call(items_9);
504
+ }
505
+ finally { if (e_12) throw e_12.error; }
506
+ return [7 /*endfinally*/];
507
+ case 8: return [2 /*return*/];
508
+ }
509
+ });
510
+ },
511
+ elementAt: function (items, index) {
512
+ var e_13, _a;
513
+ var idx = 0;
514
+ try {
515
+ for (var items_10 = __values(items), items_10_1 = items_10.next(); !items_10_1.done; items_10_1 = items_10.next()) {
516
+ var i = items_10_1.value;
517
+ if (idx++ === index.literal)
518
+ return i;
519
+ }
520
+ }
521
+ catch (e_13_1) { e_13 = { error: e_13_1 }; }
522
+ finally {
523
+ try {
524
+ if (items_10_1 && !items_10_1.done && (_a = items_10.return)) _a.call(items_10);
525
+ }
526
+ finally { if (e_13) throw e_13.error; }
527
+ }
528
+ throw new Error("Index was outside the bounds of the array.");
529
+ },
530
+ elementAtOrDefault: function (items, index) {
531
+ var e_14, _a;
532
+ var idx = 0;
533
+ try {
534
+ for (var items_11 = __values(items), items_11_1 = items_11.next(); !items_11_1.done; items_11_1 = items_11.next()) {
535
+ var i = items_11_1.value;
536
+ if (idx++ === index.literal)
537
+ return i;
538
+ }
539
+ }
540
+ catch (e_14_1) { e_14 = { error: e_14_1 }; }
541
+ finally {
542
+ try {
543
+ if (items_11_1 && !items_11_1.done && (_a = items_11.return)) _a.call(items_11);
544
+ }
545
+ finally { if (e_14) throw e_14.error; }
546
+ }
547
+ return null;
548
+ },
549
+ except: function (items, other, comparer) {
550
+ var dist, c, _loop_2, items_12, items_12_1, i, e_15_1;
551
+ var e_15, _a;
552
+ return __generator(this, function (_b) {
553
+ switch (_b.label) {
554
+ case 0:
555
+ dist = [];
556
+ c = (comparer.func || (function (a, b) { return a === b; }));
557
+ _loop_2 = function (i) {
558
+ return __generator(this, function (_c) {
559
+ switch (_c.label) {
560
+ case 0:
561
+ if (dist.find(function (d) { return c(i, d); }) || other.literal["find"](function (d) { return c(i, d); }))
562
+ return [2 /*return*/, "continue"];
563
+ dist.push(i);
564
+ return [4 /*yield*/, i];
565
+ case 1:
566
+ _c.sent();
567
+ return [2 /*return*/];
568
+ }
569
+ });
570
+ };
571
+ _b.label = 1;
572
+ case 1:
573
+ _b.trys.push([1, 6, 7, 8]);
574
+ items_12 = __values(items), items_12_1 = items_12.next();
575
+ _b.label = 2;
576
+ case 2:
577
+ if (!!items_12_1.done) return [3 /*break*/, 5];
578
+ i = items_12_1.value;
579
+ return [5 /*yield**/, _loop_2(i)];
580
+ case 3:
581
+ _b.sent();
582
+ _b.label = 4;
583
+ case 4:
584
+ items_12_1 = items_12.next();
585
+ return [3 /*break*/, 2];
586
+ case 5: return [3 /*break*/, 8];
587
+ case 6:
588
+ e_15_1 = _b.sent();
589
+ e_15 = { error: e_15_1 };
590
+ return [3 /*break*/, 8];
591
+ case 7:
592
+ try {
593
+ if (items_12_1 && !items_12_1.done && (_a = items_12.return)) _a.call(items_12);
594
+ }
595
+ finally { if (e_15) throw e_15.error; }
596
+ return [7 /*endfinally*/];
597
+ case 8: return [2 /*return*/];
598
+ }
599
+ });
600
+ },
601
+ first: function (items, predicate) {
602
+ var _a = __read(getFirst(items, predicate), 2), found = _a[0], item = _a[1];
603
+ if (!found)
604
+ throw new Error("Sequence contains no matching element");
605
+ return item;
606
+ },
607
+ firstOrDefault: function (items, predicate) {
608
+ return getFirst(items, predicate)[1];
609
+ },
610
+ groupBy: function (items, keySelector, elementSelector) {
611
+ var groups, _loop_3, items_13, items_13_1, i, groups_1, groups_1_1, g, e_16_1;
612
+ var e_17, _a, e_16, _b;
613
+ return __generator(this, function (_c) {
614
+ switch (_c.label) {
615
+ case 0:
616
+ groups = [];
617
+ _loop_3 = function (i) {
618
+ var key = keySelector.func(i);
619
+ var a = groups.find(function (g) { return deepEqual(g.key, key); });
620
+ if (!a) {
621
+ var group = [i];
622
+ groups.push({ key: key, group: group });
623
+ }
624
+ else {
625
+ a.group.push(i);
626
+ }
627
+ };
628
+ try {
629
+ for (items_13 = __values(items), items_13_1 = items_13.next(); !items_13_1.done; items_13_1 = items_13.next()) {
630
+ i = items_13_1.value;
631
+ _loop_3(i);
632
+ }
633
+ }
634
+ catch (e_17_1) { e_17 = { error: e_17_1 }; }
635
+ finally {
636
+ try {
637
+ if (items_13_1 && !items_13_1.done && (_a = items_13.return)) _a.call(items_13);
638
+ }
639
+ finally { if (e_17) throw e_17.error; }
640
+ }
641
+ _c.label = 1;
642
+ case 1:
643
+ _c.trys.push([1, 8, 9, 10]);
644
+ groups_1 = __values(groups), groups_1_1 = groups_1.next();
645
+ _c.label = 2;
646
+ case 2:
647
+ if (!!groups_1_1.done) return [3 /*break*/, 7];
648
+ g = groups_1_1.value;
649
+ if (!elementSelector.func) return [3 /*break*/, 4];
650
+ return [4 /*yield*/, elementSelector.func(g.key, g.group)];
651
+ case 3:
652
+ _c.sent();
653
+ return [3 /*break*/, 6];
654
+ case 4:
655
+ g.group["key"] = g.key;
656
+ return [4 /*yield*/, g.group];
657
+ case 5:
658
+ _c.sent();
659
+ _c.label = 6;
660
+ case 6:
661
+ groups_1_1 = groups_1.next();
662
+ return [3 /*break*/, 2];
663
+ case 7: return [3 /*break*/, 10];
664
+ case 8:
665
+ e_16_1 = _c.sent();
666
+ e_16 = { error: e_16_1 };
667
+ return [3 /*break*/, 10];
668
+ case 9:
669
+ try {
670
+ if (groups_1_1 && !groups_1_1.done && (_b = groups_1.return)) _b.call(groups_1);
671
+ }
672
+ finally { if (e_16) throw e_16.error; }
673
+ return [7 /*endfinally*/];
674
+ case 10: return [2 /*return*/];
675
+ }
676
+ });
677
+ },
678
+ groupJoin: function (items, other, thisKey, otherKey, selector) {
679
+ var os, _loop_4, items_14, items_14_1, i, e_18_1;
680
+ var e_18, _a;
681
+ return __generator(this, function (_b) {
682
+ switch (_b.label) {
683
+ case 0:
684
+ os = getArray(other);
685
+ _loop_4 = function (i) {
686
+ var k;
687
+ return __generator(this, function (_c) {
688
+ switch (_c.label) {
689
+ case 0:
690
+ k = thisKey.func(i);
691
+ return [4 /*yield*/, selector.func(i, os.filter(function (o) { return deepEqual(otherKey.func(o), k); }))];
692
+ case 1:
693
+ _c.sent();
694
+ return [2 /*return*/];
695
+ }
696
+ });
697
+ };
698
+ _b.label = 1;
699
+ case 1:
700
+ _b.trys.push([1, 6, 7, 8]);
701
+ items_14 = __values(items), items_14_1 = items_14.next();
702
+ _b.label = 2;
703
+ case 2:
704
+ if (!!items_14_1.done) return [3 /*break*/, 5];
705
+ i = items_14_1.value;
706
+ return [5 /*yield**/, _loop_4(i)];
707
+ case 3:
708
+ _b.sent();
709
+ _b.label = 4;
710
+ case 4:
711
+ items_14_1 = items_14.next();
712
+ return [3 /*break*/, 2];
713
+ case 5: return [3 /*break*/, 8];
714
+ case 6:
715
+ e_18_1 = _b.sent();
716
+ e_18 = { error: e_18_1 };
717
+ return [3 /*break*/, 8];
718
+ case 7:
719
+ try {
720
+ if (items_14_1 && !items_14_1.done && (_a = items_14.return)) _a.call(items_14);
721
+ }
722
+ finally { if (e_18) throw e_18.error; }
723
+ return [7 /*endfinally*/];
724
+ case 8: return [2 /*return*/];
725
+ }
726
+ });
727
+ },
728
+ intersect: function (items, other, comparer) {
729
+ var dist, c, _loop_5, items_15, items_15_1, i, e_19_1;
730
+ var e_19, _a;
731
+ return __generator(this, function (_b) {
732
+ switch (_b.label) {
733
+ case 0:
734
+ dist = [];
735
+ c = (comparer.func || (function (a, b) { return a === b; }));
736
+ _loop_5 = function (i) {
737
+ return __generator(this, function (_c) {
738
+ switch (_c.label) {
739
+ case 0:
740
+ if (dist.find(function (d) { return c(i, d); }) || !other.literal["find"](function (d) { return c(i, d); }))
741
+ return [2 /*return*/, "continue"];
742
+ dist.push(i);
743
+ return [4 /*yield*/, i];
744
+ case 1:
745
+ _c.sent();
746
+ return [2 /*return*/];
747
+ }
748
+ });
749
+ };
750
+ _b.label = 1;
751
+ case 1:
752
+ _b.trys.push([1, 6, 7, 8]);
753
+ items_15 = __values(items), items_15_1 = items_15.next();
754
+ _b.label = 2;
755
+ case 2:
756
+ if (!!items_15_1.done) return [3 /*break*/, 5];
757
+ i = items_15_1.value;
758
+ return [5 /*yield**/, _loop_5(i)];
759
+ case 3:
760
+ _b.sent();
761
+ _b.label = 4;
762
+ case 4:
763
+ items_15_1 = items_15.next();
764
+ return [3 /*break*/, 2];
765
+ case 5: return [3 /*break*/, 8];
766
+ case 6:
767
+ e_19_1 = _b.sent();
768
+ e_19 = { error: e_19_1 };
769
+ return [3 /*break*/, 8];
770
+ case 7:
771
+ try {
772
+ if (items_15_1 && !items_15_1.done && (_a = items_15.return)) _a.call(items_15);
773
+ }
774
+ finally { if (e_19) throw e_19.error; }
775
+ return [7 /*endfinally*/];
776
+ case 8: return [2 /*return*/];
777
+ }
778
+ });
779
+ },
780
+ join: function (items, other, thisKey, otherKey, selector) {
781
+ var os, items_16, items_16_1, i, k, os_2, os_2_1, o, e_20_1, e_21_1;
782
+ var e_21, _a, e_20, _b;
783
+ return __generator(this, function (_c) {
784
+ switch (_c.label) {
785
+ case 0:
786
+ os = getArray(other);
787
+ _c.label = 1;
788
+ case 1:
789
+ _c.trys.push([1, 12, 13, 14]);
790
+ items_16 = __values(items), items_16_1 = items_16.next();
791
+ _c.label = 2;
792
+ case 2:
793
+ if (!!items_16_1.done) return [3 /*break*/, 11];
794
+ i = items_16_1.value;
795
+ k = thisKey.func(i);
796
+ _c.label = 3;
797
+ case 3:
798
+ _c.trys.push([3, 8, 9, 10]);
799
+ os_2 = (e_20 = void 0, __values(os)), os_2_1 = os_2.next();
800
+ _c.label = 4;
801
+ case 4:
802
+ if (!!os_2_1.done) return [3 /*break*/, 7];
803
+ o = os_2_1.value;
804
+ if (!deepEqual(otherKey.func(o), k)) return [3 /*break*/, 6];
805
+ return [4 /*yield*/, selector.func(i, o)];
806
+ case 5:
807
+ _c.sent();
808
+ _c.label = 6;
809
+ case 6:
810
+ os_2_1 = os_2.next();
811
+ return [3 /*break*/, 4];
812
+ case 7: return [3 /*break*/, 10];
813
+ case 8:
814
+ e_20_1 = _c.sent();
815
+ e_20 = { error: e_20_1 };
816
+ return [3 /*break*/, 10];
817
+ case 9:
818
+ try {
819
+ if (os_2_1 && !os_2_1.done && (_b = os_2.return)) _b.call(os_2);
820
+ }
821
+ finally { if (e_20) throw e_20.error; }
822
+ return [7 /*endfinally*/];
823
+ case 10:
824
+ items_16_1 = items_16.next();
825
+ return [3 /*break*/, 2];
826
+ case 11: return [3 /*break*/, 14];
827
+ case 12:
828
+ e_21_1 = _c.sent();
829
+ e_21 = { error: e_21_1 };
830
+ return [3 /*break*/, 14];
831
+ case 13:
832
+ try {
833
+ if (items_16_1 && !items_16_1.done && (_a = items_16.return)) _a.call(items_16);
834
+ }
835
+ finally { if (e_21) throw e_21.error; }
836
+ return [7 /*endfinally*/];
837
+ case 14: return [2 /*return*/];
838
+ }
839
+ });
840
+ },
841
+ last: function (items, predicate) {
842
+ var _a = __read(getLast(items, predicate), 2), found = _a[0], item = _a[1];
843
+ if (!found)
844
+ throw new Error("Sequence contains no matching element");
845
+ return item;
846
+ },
847
+ lastOrDefault: function (items, predicate) {
848
+ return getLast(items, predicate)[1];
849
+ },
850
+ max: function (items, selector) {
851
+ var e_22, _a;
852
+ var max;
853
+ try {
854
+ for (var items_17 = __values(items), items_17_1 = items_17.next(); !items_17_1.done; items_17_1 = items_17.next()) {
855
+ var i = items_17_1.value;
856
+ var curr = selector.func ? selector.func(i) : i;
857
+ if (max == null || curr > max) {
858
+ max = curr;
859
+ }
860
+ }
861
+ }
862
+ catch (e_22_1) { e_22 = { error: e_22_1 }; }
863
+ finally {
864
+ try {
865
+ if (items_17_1 && !items_17_1.done && (_a = items_17.return)) _a.call(items_17);
866
+ }
867
+ finally { if (e_22) throw e_22.error; }
868
+ }
869
+ return max;
870
+ },
871
+ min: function (items, selector) {
872
+ var e_23, _a;
873
+ var min;
874
+ try {
875
+ for (var items_18 = __values(items), items_18_1 = items_18.next(); !items_18_1.done; items_18_1 = items_18.next()) {
876
+ var i = items_18_1.value;
877
+ var curr = selector.func ? selector.func(i) : i;
878
+ if (min == null || curr < min) {
879
+ min = curr;
880
+ }
881
+ }
882
+ }
883
+ catch (e_23_1) { e_23 = { error: e_23_1 }; }
884
+ finally {
885
+ try {
886
+ if (items_18_1 && !items_18_1.done && (_a = items_18.return)) _a.call(items_18);
887
+ }
888
+ finally { if (e_23) throw e_23.error; }
889
+ }
890
+ return min;
891
+ },
892
+ ofGuardedType: function (items, typeGuard) {
893
+ var predicate, items_19, items_19_1, i, e_24_1;
894
+ var e_24, _a;
895
+ return __generator(this, function (_b) {
896
+ switch (_b.label) {
897
+ case 0:
898
+ predicate = typeGuard.literal;
899
+ _b.label = 1;
900
+ case 1:
901
+ _b.trys.push([1, 6, 7, 8]);
902
+ items_19 = __values(items), items_19_1 = items_19.next();
903
+ _b.label = 2;
904
+ case 2:
905
+ if (!!items_19_1.done) return [3 /*break*/, 5];
906
+ i = items_19_1.value;
907
+ if (!predicate(i)) return [3 /*break*/, 4];
908
+ return [4 /*yield*/, i];
909
+ case 3:
910
+ _b.sent();
911
+ _b.label = 4;
912
+ case 4:
913
+ items_19_1 = items_19.next();
914
+ return [3 /*break*/, 2];
915
+ case 5: return [3 /*break*/, 8];
916
+ case 6:
917
+ e_24_1 = _b.sent();
918
+ e_24 = { error: e_24_1 };
919
+ return [3 /*break*/, 8];
920
+ case 7:
921
+ try {
922
+ if (items_19_1 && !items_19_1.done && (_a = items_19.return)) _a.call(items_19);
923
+ }
924
+ finally { if (e_24) throw e_24.error; }
925
+ return [7 /*endfinally*/];
926
+ case 8: return [2 /*return*/];
927
+ }
928
+ });
929
+ },
930
+ ofType: function (items, ctor) {
931
+ var type, isPrimitive, items_20, items_20_1, i, e_25_1;
932
+ var e_25, _a;
933
+ return __generator(this, function (_b) {
934
+ switch (_b.label) {
935
+ case 0:
936
+ type = ctor.literal;
937
+ isPrimitive = primitives.indexOf(type) !== -1;
938
+ _b.label = 1;
939
+ case 1:
940
+ _b.trys.push([1, 9, 10, 11]);
941
+ items_20 = __values(items), items_20_1 = items_20.next();
942
+ _b.label = 2;
943
+ case 2:
944
+ if (!!items_20_1.done) return [3 /*break*/, 8];
945
+ i = items_20_1.value;
946
+ if (!(isPrimitive && i !== Object(i))) return [3 /*break*/, 5];
947
+ if (!(type(i) === i)) return [3 /*break*/, 4];
948
+ return [4 /*yield*/, i];
949
+ case 3:
950
+ _b.sent();
951
+ _b.label = 4;
952
+ case 4: return [3 /*break*/, 7];
953
+ case 5:
954
+ if (!(i instanceof type)) return [3 /*break*/, 7];
955
+ return [4 /*yield*/, i];
956
+ case 6:
957
+ _b.sent();
958
+ _b.label = 7;
959
+ case 7:
960
+ items_20_1 = items_20.next();
961
+ return [3 /*break*/, 2];
962
+ case 8: return [3 /*break*/, 11];
963
+ case 9:
964
+ e_25_1 = _b.sent();
965
+ e_25 = { error: e_25_1 };
966
+ return [3 /*break*/, 11];
967
+ case 10:
968
+ try {
969
+ if (items_20_1 && !items_20_1.done && (_a = items_20.return)) _a.call(items_20);
970
+ }
971
+ finally { if (e_25) throw e_25.error; }
972
+ return [7 /*endfinally*/];
973
+ case 11: return [2 /*return*/];
974
+ }
975
+ });
976
+ },
977
+ // eslint-disable-next-line require-yield
978
+ reverse: function (items) {
979
+ var arr, items_21, items_21_1, i;
980
+ var e_26, _a;
981
+ return __generator(this, function (_b) {
982
+ arr = [];
983
+ try {
984
+ for (items_21 = __values(items), items_21_1 = items_21.next(); !items_21_1.done; items_21_1 = items_21.next()) {
985
+ i = items_21_1.value;
986
+ arr.splice(0, 0, i);
987
+ }
988
+ }
989
+ catch (e_26_1) { e_26 = { error: e_26_1 }; }
990
+ finally {
991
+ try {
992
+ if (items_21_1 && !items_21_1.done && (_a = items_21.return)) _a.call(items_21);
993
+ }
994
+ finally { if (e_26) throw e_26.error; }
995
+ }
996
+ return [2 /*return*/, arr];
997
+ });
998
+ },
999
+ select: function (items, selector) {
1000
+ var items_22, items_22_1, i, e_27_1;
1001
+ var e_27, _a;
1002
+ return __generator(this, function (_b) {
1003
+ switch (_b.label) {
1004
+ case 0:
1005
+ _b.trys.push([0, 5, 6, 7]);
1006
+ items_22 = __values(items), items_22_1 = items_22.next();
1007
+ _b.label = 1;
1008
+ case 1:
1009
+ if (!!items_22_1.done) return [3 /*break*/, 4];
1010
+ i = items_22_1.value;
1011
+ return [4 /*yield*/, selector.func(i)];
1012
+ case 2:
1013
+ _b.sent();
1014
+ _b.label = 3;
1015
+ case 3:
1016
+ items_22_1 = items_22.next();
1017
+ return [3 /*break*/, 1];
1018
+ case 4: return [3 /*break*/, 7];
1019
+ case 5:
1020
+ e_27_1 = _b.sent();
1021
+ e_27 = { error: e_27_1 };
1022
+ return [3 /*break*/, 7];
1023
+ case 6:
1024
+ try {
1025
+ if (items_22_1 && !items_22_1.done && (_a = items_22.return)) _a.call(items_22);
1026
+ }
1027
+ finally { if (e_27) throw e_27.error; }
1028
+ return [7 /*endfinally*/];
1029
+ case 7: return [2 /*return*/];
1030
+ }
1031
+ });
1032
+ },
1033
+ selectMany: function (items, selector) {
1034
+ var items_23, items_23_1, i, _a, _b, ii, e_28_1, e_29_1;
1035
+ var e_29, _c, e_28, _d;
1036
+ return __generator(this, function (_e) {
1037
+ switch (_e.label) {
1038
+ case 0:
1039
+ _e.trys.push([0, 11, 12, 13]);
1040
+ items_23 = __values(items), items_23_1 = items_23.next();
1041
+ _e.label = 1;
1042
+ case 1:
1043
+ if (!!items_23_1.done) return [3 /*break*/, 10];
1044
+ i = items_23_1.value;
1045
+ _e.label = 2;
1046
+ case 2:
1047
+ _e.trys.push([2, 7, 8, 9]);
1048
+ _a = (e_28 = void 0, __values(selector.func(i))), _b = _a.next();
1049
+ _e.label = 3;
1050
+ case 3:
1051
+ if (!!_b.done) return [3 /*break*/, 6];
1052
+ ii = _b.value;
1053
+ return [4 /*yield*/, ii];
1054
+ case 4:
1055
+ _e.sent();
1056
+ _e.label = 5;
1057
+ case 5:
1058
+ _b = _a.next();
1059
+ return [3 /*break*/, 3];
1060
+ case 6: return [3 /*break*/, 9];
1061
+ case 7:
1062
+ e_28_1 = _e.sent();
1063
+ e_28 = { error: e_28_1 };
1064
+ return [3 /*break*/, 9];
1065
+ case 8:
1066
+ try {
1067
+ if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
1068
+ }
1069
+ finally { if (e_28) throw e_28.error; }
1070
+ return [7 /*endfinally*/];
1071
+ case 9:
1072
+ items_23_1 = items_23.next();
1073
+ return [3 /*break*/, 1];
1074
+ case 10: return [3 /*break*/, 13];
1075
+ case 11:
1076
+ e_29_1 = _e.sent();
1077
+ e_29 = { error: e_29_1 };
1078
+ return [3 /*break*/, 13];
1079
+ case 12:
1080
+ try {
1081
+ if (items_23_1 && !items_23_1.done && (_c = items_23.return)) _c.call(items_23);
1082
+ }
1083
+ finally { if (e_29) throw e_29.error; }
1084
+ return [7 /*endfinally*/];
1085
+ case 13: return [2 /*return*/];
1086
+ }
1087
+ });
1088
+ },
1089
+ sequenceEqual: function (items, other, comparer) {
1090
+ var e_30, _a;
1091
+ var os = getArray(other);
1092
+ var idx = 0;
1093
+ var c = (comparer.func || (function (a, b) { return a === b; }));
1094
+ try {
1095
+ for (var items_24 = __values(items), items_24_1 = items_24.next(); !items_24_1.done; items_24_1 = items_24.next()) {
1096
+ var i = items_24_1.value;
1097
+ if (idx >= os.length || !c(i, os[idx++]))
1098
+ return false;
1099
+ }
1100
+ }
1101
+ catch (e_30_1) { e_30 = { error: e_30_1 }; }
1102
+ finally {
1103
+ try {
1104
+ if (items_24_1 && !items_24_1.done && (_a = items_24.return)) _a.call(items_24);
1105
+ }
1106
+ finally { if (e_30) throw e_30.error; }
1107
+ }
1108
+ return idx === os.length;
1109
+ },
1110
+ single: function (items, predicate) {
1111
+ var _a = __read(getSingle(items, predicate), 2), found = _a[0], item = _a[1];
1112
+ if (!found)
1113
+ throw new Error("Sequence contains no matching element");
1114
+ return item;
1115
+ },
1116
+ singleOrDefault: function (items, predicate) {
1117
+ return getSingle(items, predicate)[1];
1118
+ },
1119
+ skip: function (items, count) {
1120
+ var i, items_25, items_25_1, item, e_31_1;
1121
+ var e_31, _a;
1122
+ return __generator(this, function (_b) {
1123
+ switch (_b.label) {
1124
+ case 0:
1125
+ i = 0;
1126
+ _b.label = 1;
1127
+ case 1:
1128
+ _b.trys.push([1, 6, 7, 8]);
1129
+ items_25 = __values(items), items_25_1 = items_25.next();
1130
+ _b.label = 2;
1131
+ case 2:
1132
+ if (!!items_25_1.done) return [3 /*break*/, 5];
1133
+ item = items_25_1.value;
1134
+ if (!(++i > count.literal)) return [3 /*break*/, 4];
1135
+ return [4 /*yield*/, item];
1136
+ case 3:
1137
+ _b.sent();
1138
+ _b.label = 4;
1139
+ case 4:
1140
+ items_25_1 = items_25.next();
1141
+ return [3 /*break*/, 2];
1142
+ case 5: return [3 /*break*/, 8];
1143
+ case 6:
1144
+ e_31_1 = _b.sent();
1145
+ e_31 = { error: e_31_1 };
1146
+ return [3 /*break*/, 8];
1147
+ case 7:
1148
+ try {
1149
+ if (items_25_1 && !items_25_1.done && (_a = items_25.return)) _a.call(items_25);
1150
+ }
1151
+ finally { if (e_31) throw e_31.error; }
1152
+ return [7 /*endfinally*/];
1153
+ case 8: return [2 /*return*/];
1154
+ }
1155
+ });
1156
+ },
1157
+ skipWhile: function (items, predicate) {
1158
+ var yielding, items_26, items_26_1, i, e_32_1;
1159
+ var e_32, _a;
1160
+ return __generator(this, function (_b) {
1161
+ switch (_b.label) {
1162
+ case 0:
1163
+ yielding = false;
1164
+ _b.label = 1;
1165
+ case 1:
1166
+ _b.trys.push([1, 6, 7, 8]);
1167
+ items_26 = __values(items), items_26_1 = items_26.next();
1168
+ _b.label = 2;
1169
+ case 2:
1170
+ if (!!items_26_1.done) return [3 /*break*/, 5];
1171
+ i = items_26_1.value;
1172
+ if (!yielding && !predicate.func(i)) {
1173
+ yielding = true;
1174
+ }
1175
+ if (!yielding) return [3 /*break*/, 4];
1176
+ return [4 /*yield*/, i];
1177
+ case 3:
1178
+ _b.sent();
1179
+ _b.label = 4;
1180
+ case 4:
1181
+ items_26_1 = items_26.next();
1182
+ return [3 /*break*/, 2];
1183
+ case 5: return [3 /*break*/, 8];
1184
+ case 6:
1185
+ e_32_1 = _b.sent();
1186
+ e_32 = { error: e_32_1 };
1187
+ return [3 /*break*/, 8];
1188
+ case 7:
1189
+ try {
1190
+ if (items_26_1 && !items_26_1.done && (_a = items_26.return)) _a.call(items_26);
1191
+ }
1192
+ finally { if (e_32) throw e_32.error; }
1193
+ return [7 /*endfinally*/];
1194
+ case 8: return [2 /*return*/];
1195
+ }
1196
+ });
1197
+ },
1198
+ sum: function (items, selector) {
1199
+ var e_33, _a;
1200
+ var sum = 0;
1201
+ try {
1202
+ for (var items_27 = __values(items), items_27_1 = items_27.next(); !items_27_1.done; items_27_1 = items_27.next()) {
1203
+ var i = items_27_1.value;
1204
+ var curr = selector.func ? selector.func(i) : i;
1205
+ sum += curr;
1206
+ }
1207
+ }
1208
+ catch (e_33_1) { e_33 = { error: e_33_1 }; }
1209
+ finally {
1210
+ try {
1211
+ if (items_27_1 && !items_27_1.done && (_a = items_27.return)) _a.call(items_27);
1212
+ }
1213
+ finally { if (e_33) throw e_33.error; }
1214
+ }
1215
+ return sum;
1216
+ },
1217
+ take: function (items, count) {
1218
+ var i, items_28, items_28_1, item, e_34_1;
1219
+ var e_34, _a;
1220
+ return __generator(this, function (_b) {
1221
+ switch (_b.label) {
1222
+ case 0:
1223
+ i = 0;
1224
+ _b.label = 1;
1225
+ case 1:
1226
+ _b.trys.push([1, 7, 8, 9]);
1227
+ items_28 = __values(items), items_28_1 = items_28.next();
1228
+ _b.label = 2;
1229
+ case 2:
1230
+ if (!!items_28_1.done) return [3 /*break*/, 6];
1231
+ item = items_28_1.value;
1232
+ if (!(++i <= count.literal)) return [3 /*break*/, 4];
1233
+ return [4 /*yield*/, item];
1234
+ case 3:
1235
+ _b.sent();
1236
+ return [3 /*break*/, 5];
1237
+ case 4: return [3 /*break*/, 6];
1238
+ case 5:
1239
+ items_28_1 = items_28.next();
1240
+ return [3 /*break*/, 2];
1241
+ case 6: return [3 /*break*/, 9];
1242
+ case 7:
1243
+ e_34_1 = _b.sent();
1244
+ e_34 = { error: e_34_1 };
1245
+ return [3 /*break*/, 9];
1246
+ case 8:
1247
+ try {
1248
+ if (items_28_1 && !items_28_1.done && (_a = items_28.return)) _a.call(items_28);
1249
+ }
1250
+ finally { if (e_34) throw e_34.error; }
1251
+ return [7 /*endfinally*/];
1252
+ case 9: return [2 /*return*/];
1253
+ }
1254
+ });
1255
+ },
1256
+ takeWhile: function (items, predicate) {
1257
+ var items_29, items_29_1, i, e_35_1;
1258
+ var e_35, _a;
1259
+ return __generator(this, function (_b) {
1260
+ switch (_b.label) {
1261
+ case 0:
1262
+ _b.trys.push([0, 6, 7, 8]);
1263
+ items_29 = __values(items), items_29_1 = items_29.next();
1264
+ _b.label = 1;
1265
+ case 1:
1266
+ if (!!items_29_1.done) return [3 /*break*/, 5];
1267
+ i = items_29_1.value;
1268
+ if (!predicate.func(i)) return [3 /*break*/, 3];
1269
+ return [4 /*yield*/, i];
1270
+ case 2:
1271
+ _b.sent();
1272
+ return [3 /*break*/, 4];
1273
+ case 3: return [3 /*break*/, 5];
1274
+ case 4:
1275
+ items_29_1 = items_29.next();
1276
+ return [3 /*break*/, 1];
1277
+ case 5: return [3 /*break*/, 8];
1278
+ case 6:
1279
+ e_35_1 = _b.sent();
1280
+ e_35 = { error: e_35_1 };
1281
+ return [3 /*break*/, 8];
1282
+ case 7:
1283
+ try {
1284
+ if (items_29_1 && !items_29_1.done && (_a = items_29.return)) _a.call(items_29);
1285
+ }
1286
+ finally { if (e_35) throw e_35.error; }
1287
+ return [7 /*endfinally*/];
1288
+ case 8: return [2 /*return*/];
1289
+ }
1290
+ });
1291
+ },
1292
+ union: function (items, other, comparer) {
1293
+ var dist, c, _loop_6, items_30, items_30_1, i, e_36_1, os, _loop_7, os_3, os_3_1, o, e_37_1;
1294
+ var e_36, _a, e_37, _b;
1295
+ return __generator(this, function (_c) {
1296
+ switch (_c.label) {
1297
+ case 0:
1298
+ dist = [];
1299
+ c = (comparer.func || (function (a, b) { return a === b; }));
1300
+ _loop_6 = function (i) {
1301
+ return __generator(this, function (_d) {
1302
+ switch (_d.label) {
1303
+ case 0:
1304
+ if (!!dist.find(function (d) { return c(i, d); })) return [3 /*break*/, 2];
1305
+ dist.push(i);
1306
+ return [4 /*yield*/, i];
1307
+ case 1:
1308
+ _d.sent();
1309
+ _d.label = 2;
1310
+ case 2: return [2 /*return*/];
1311
+ }
1312
+ });
1313
+ };
1314
+ _c.label = 1;
1315
+ case 1:
1316
+ _c.trys.push([1, 6, 7, 8]);
1317
+ items_30 = __values(items), items_30_1 = items_30.next();
1318
+ _c.label = 2;
1319
+ case 2:
1320
+ if (!!items_30_1.done) return [3 /*break*/, 5];
1321
+ i = items_30_1.value;
1322
+ return [5 /*yield**/, _loop_6(i)];
1323
+ case 3:
1324
+ _c.sent();
1325
+ _c.label = 4;
1326
+ case 4:
1327
+ items_30_1 = items_30.next();
1328
+ return [3 /*break*/, 2];
1329
+ case 5: return [3 /*break*/, 8];
1330
+ case 6:
1331
+ e_36_1 = _c.sent();
1332
+ e_36 = { error: e_36_1 };
1333
+ return [3 /*break*/, 8];
1334
+ case 7:
1335
+ try {
1336
+ if (items_30_1 && !items_30_1.done && (_a = items_30.return)) _a.call(items_30);
1337
+ }
1338
+ finally { if (e_36) throw e_36.error; }
1339
+ return [7 /*endfinally*/];
1340
+ case 8:
1341
+ os = getArray(other);
1342
+ _loop_7 = function (o) {
1343
+ return __generator(this, function (_e) {
1344
+ switch (_e.label) {
1345
+ case 0:
1346
+ if (!!dist.find(function (d) { return c(o, d); })) return [3 /*break*/, 2];
1347
+ dist.push(o);
1348
+ return [4 /*yield*/, o];
1349
+ case 1:
1350
+ _e.sent();
1351
+ _e.label = 2;
1352
+ case 2: return [2 /*return*/];
1353
+ }
1354
+ });
1355
+ };
1356
+ _c.label = 9;
1357
+ case 9:
1358
+ _c.trys.push([9, 14, 15, 16]);
1359
+ os_3 = __values(os), os_3_1 = os_3.next();
1360
+ _c.label = 10;
1361
+ case 10:
1362
+ if (!!os_3_1.done) return [3 /*break*/, 13];
1363
+ o = os_3_1.value;
1364
+ return [5 /*yield**/, _loop_7(o)];
1365
+ case 11:
1366
+ _c.sent();
1367
+ _c.label = 12;
1368
+ case 12:
1369
+ os_3_1 = os_3.next();
1370
+ return [3 /*break*/, 10];
1371
+ case 13: return [3 /*break*/, 16];
1372
+ case 14:
1373
+ e_37_1 = _c.sent();
1374
+ e_37 = { error: e_37_1 };
1375
+ return [3 /*break*/, 16];
1376
+ case 15:
1377
+ try {
1378
+ if (os_3_1 && !os_3_1.done && (_b = os_3.return)) _b.call(os_3);
1379
+ }
1380
+ finally { if (e_37) throw e_37.error; }
1381
+ return [7 /*endfinally*/];
1382
+ case 16: return [2 /*return*/];
1383
+ }
1384
+ });
1385
+ },
1386
+ where: function (items, predicate) {
1387
+ var items_31, items_31_1, i, e_38_1;
1388
+ var e_38, _a;
1389
+ return __generator(this, function (_b) {
1390
+ switch (_b.label) {
1391
+ case 0:
1392
+ _b.trys.push([0, 5, 6, 7]);
1393
+ items_31 = __values(items), items_31_1 = items_31.next();
1394
+ _b.label = 1;
1395
+ case 1:
1396
+ if (!!items_31_1.done) return [3 /*break*/, 4];
1397
+ i = items_31_1.value;
1398
+ if (!predicate.func(i)) return [3 /*break*/, 3];
1399
+ return [4 /*yield*/, i];
1400
+ case 2:
1401
+ _b.sent();
1402
+ _b.label = 3;
1403
+ case 3:
1404
+ items_31_1 = items_31.next();
1405
+ return [3 /*break*/, 1];
1406
+ case 4: return [3 /*break*/, 7];
1407
+ case 5:
1408
+ e_38_1 = _b.sent();
1409
+ e_38 = { error: e_38_1 };
1410
+ return [3 /*break*/, 7];
1411
+ case 6:
1412
+ try {
1413
+ if (items_31_1 && !items_31_1.done && (_a = items_31.return)) _a.call(items_31);
1414
+ }
1415
+ finally { if (e_38) throw e_38.error; }
1416
+ return [7 /*endfinally*/];
1417
+ case 7: return [2 /*return*/];
1418
+ }
1419
+ });
1420
+ },
1421
+ zip: function (items, other, selector) {
1422
+ var os, idx, items_32, items_32_1, i, e_39_1;
1423
+ var e_39, _a;
1424
+ return __generator(this, function (_b) {
1425
+ switch (_b.label) {
1426
+ case 0:
1427
+ os = getArray(other);
1428
+ idx = 0;
1429
+ _b.label = 1;
1430
+ case 1:
1431
+ _b.trys.push([1, 6, 7, 8]);
1432
+ items_32 = __values(items), items_32_1 = items_32.next();
1433
+ _b.label = 2;
1434
+ case 2:
1435
+ if (!!items_32_1.done) return [3 /*break*/, 5];
1436
+ i = items_32_1.value;
1437
+ if (idx >= os.length)
1438
+ return [2 /*return*/];
1439
+ return [4 /*yield*/, selector.func(i, os[idx++])];
1440
+ case 3:
1441
+ _b.sent();
1442
+ _b.label = 4;
1443
+ case 4:
1444
+ items_32_1 = items_32.next();
1445
+ return [3 /*break*/, 2];
1446
+ case 5: return [3 /*break*/, 8];
1447
+ case 6:
1448
+ e_39_1 = _b.sent();
1449
+ e_39 = { error: e_39_1 };
1450
+ return [3 /*break*/, 8];
1451
+ case 7:
1452
+ try {
1453
+ if (items_32_1 && !items_32_1.done && (_a = items_32.return)) _a.call(items_32);
1454
+ }
1455
+ finally { if (e_39) throw e_39.error; }
1456
+ return [7 /*endfinally*/];
1457
+ case 8: return [2 /*return*/];
1458
+ }
1459
+ });
1460
+ },
1461
+ toArray: function (items) {
1462
+ return Array.from(items);
1463
+ },
1464
+ };
1465
+ function getArray(arg) {
1466
+ return arg.literal;
1467
+ }
1468
+ function getFirst(items, predicate) {
1469
+ var e_40, _a;
1470
+ try {
1471
+ for (var items_33 = __values(items), items_33_1 = items_33.next(); !items_33_1.done; items_33_1 = items_33.next()) {
1472
+ var i = items_33_1.value;
1473
+ if (!predicate.func || predicate.func(i))
1474
+ return [true, i];
1475
+ }
1476
+ }
1477
+ catch (e_40_1) { e_40 = { error: e_40_1 }; }
1478
+ finally {
1479
+ try {
1480
+ if (items_33_1 && !items_33_1.done && (_a = items_33.return)) _a.call(items_33);
1481
+ }
1482
+ finally { if (e_40) throw e_40.error; }
1483
+ }
1484
+ return [false, null];
1485
+ }
1486
+ function getLast(items, predicate) {
1487
+ var e_41, _a;
1488
+ var last;
1489
+ try {
1490
+ for (var items_34 = __values(items), items_34_1 = items_34.next(); !items_34_1.done; items_34_1 = items_34.next()) {
1491
+ var i = items_34_1.value;
1492
+ if (!predicate.func || predicate.func(i)) {
1493
+ last = [true, i];
1494
+ }
1495
+ }
1496
+ }
1497
+ catch (e_41_1) { e_41 = { error: e_41_1 }; }
1498
+ finally {
1499
+ try {
1500
+ if (items_34_1 && !items_34_1.done && (_a = items_34.return)) _a.call(items_34);
1501
+ }
1502
+ finally { if (e_41) throw e_41.error; }
1503
+ }
1504
+ return last ? last : [false, null];
1505
+ }
1506
+ function getSingle(items, predicate) {
1507
+ var e_42, _a;
1508
+ var matches = [];
1509
+ try {
1510
+ for (var items_35 = __values(items), items_35_1 = items_35.next(); !items_35_1.done; items_35_1 = items_35.next()) {
1511
+ var item = items_35_1.value;
1512
+ if (predicate.func && !predicate.func(item))
1513
+ continue;
1514
+ if (matches.length > 0)
1515
+ throw new Error("Sequence contains more than one matching element");
1516
+ matches.push(item);
1517
+ }
1518
+ }
1519
+ catch (e_42_1) { e_42 = { error: e_42_1 }; }
1520
+ finally {
1521
+ try {
1522
+ if (items_35_1 && !items_35_1.done && (_a = items_35.return)) _a.call(items_35);
1523
+ }
1524
+ finally { if (e_42) throw e_42.error; }
1525
+ }
1526
+ return matches.length ? [true, matches[0]] : [false, null];
1527
+ }
1528
+ function getCount(it) {
1529
+ var arr = Array.from(it);
1530
+ return [arr.length, arr[Symbol.iterator]()];
1531
+ }
1532
+ //# sourceMappingURL=array-query-provider.js.map