@anil-labs/collection-js 0.1.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.
Files changed (64) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +251 -0
  3. package/dist/index.es.js +3211 -0
  4. package/dist/index.umd.cjs +8 -0
  5. package/dist/src/async/AsyncCollection.d.ts +57 -0
  6. package/dist/src/async/concurrent.d.ts +6 -0
  7. package/dist/src/async/index.d.ts +3 -0
  8. package/dist/src/collection/Collection.d.ts +274 -0
  9. package/dist/src/collection/HigherOrderProxy.d.ts +19 -0
  10. package/dist/src/collection/LazyCollection.d.ts +173 -0
  11. package/dist/src/collection/index.d.ts +5 -0
  12. package/dist/src/contracts/Arrayable.d.ts +4 -0
  13. package/dist/src/contracts/Enumerable.d.ts +17 -0
  14. package/dist/src/contracts/Jsonable.d.ts +3 -0
  15. package/dist/src/contracts/Macroable.d.ts +6 -0
  16. package/dist/src/contracts/index.d.ts +5 -0
  17. package/dist/src/exceptions/CollectionException.d.ts +3 -0
  18. package/dist/src/exceptions/ItemNotFoundException.d.ts +4 -0
  19. package/dist/src/exceptions/MultipleItemsFoundException.d.ts +5 -0
  20. package/dist/src/exceptions/UnexpectedValueException.d.ts +4 -0
  21. package/dist/src/exceptions/index.d.ts +4 -0
  22. package/dist/src/helpers/collect.d.ts +3 -0
  23. package/dist/src/helpers/index.d.ts +2 -0
  24. package/dist/src/helpers/lazy.d.ts +3 -0
  25. package/dist/src/index.d.ts +31 -0
  26. package/dist/src/io/csv.d.ts +30 -0
  27. package/dist/src/io/index.d.ts +5 -0
  28. package/dist/src/io/jsonl.d.ts +9 -0
  29. package/dist/src/io/streams.d.ts +27 -0
  30. package/dist/src/macros/Macroable.d.ts +20 -0
  31. package/dist/src/macros/index.d.ts +1 -0
  32. package/dist/src/operations/accessors.d.ts +19 -0
  33. package/dist/src/operations/aggregations.d.ts +9 -0
  34. package/dist/src/operations/chunking.d.ts +13 -0
  35. package/dist/src/operations/combine.d.ts +4 -0
  36. package/dist/src/operations/compare.d.ts +29 -0
  37. package/dist/src/operations/conditionals.d.ts +7 -0
  38. package/dist/src/operations/filters.d.ts +27 -0
  39. package/dist/src/operations/grouping.d.ts +5 -0
  40. package/dist/src/operations/index.d.ts +22 -0
  41. package/dist/src/operations/itertools.d.ts +37 -0
  42. package/dist/src/operations/joins.d.ts +17 -0
  43. package/dist/src/operations/mutations.d.ts +40 -0
  44. package/dist/src/operations/objectOps.d.ts +10 -0
  45. package/dist/src/operations/random.d.ts +2 -0
  46. package/dist/src/operations/reducers.d.ts +9 -0
  47. package/dist/src/operations/sequence.d.ts +4 -0
  48. package/dist/src/operations/setOps.d.ts +14 -0
  49. package/dist/src/operations/sliceOps.d.ts +8 -0
  50. package/dist/src/operations/sorting.d.ts +11 -0
  51. package/dist/src/operations/stats.d.ts +30 -0
  52. package/dist/src/operations/strings.d.ts +2 -0
  53. package/dist/src/operations/transformations.d.ts +9 -0
  54. package/dist/src/operations/uniqueness.d.ts +3 -0
  55. package/dist/src/support/arrayWrap.d.ts +6 -0
  56. package/dist/src/support/dataGet.d.ts +8 -0
  57. package/dist/src/support/deepClone.d.ts +1 -0
  58. package/dist/src/support/deepEqual.d.ts +11 -0
  59. package/dist/src/support/index.d.ts +8 -0
  60. package/dist/src/support/isObject.d.ts +4 -0
  61. package/dist/src/support/operatorForWhere.d.ts +4 -0
  62. package/dist/src/support/types.d.ts +15 -0
  63. package/dist/src/support/valueRetriever.d.ts +7 -0
  64. package/package.json +93 -0
@@ -0,0 +1,3211 @@
1
+ //#region \0rolldown/runtime.js
2
+ var e = Object.defineProperty, t = (t, n) => {
3
+ let r = {};
4
+ for (var i in t) e(r, i, {
5
+ get: t[i],
6
+ enumerable: !0
7
+ });
8
+ return n || e(r, Symbol.toStringTag, { value: "Module" }), r;
9
+ }, n = class extends Error {
10
+ constructor(e) {
11
+ super(e), this.name = "CollectionException", Object.setPrototypeOf(this, new.target.prototype);
12
+ }
13
+ }, r = class extends n {
14
+ constructor(e = "Item not found.") {
15
+ super(e), this.name = "ItemNotFoundException", Object.setPrototypeOf(this, new.target.prototype);
16
+ }
17
+ }, i = class extends n {
18
+ constructor(e = "Unexpected value encountered.") {
19
+ super(e), this.name = "UnexpectedValueException", Object.setPrototypeOf(this, new.target.prototype);
20
+ }
21
+ }, a = /* @__PURE__ */ new WeakMap();
22
+ function o(e) {
23
+ let t = a.get(e);
24
+ return t || (t = /* @__PURE__ */ new Map(), a.set(e, t)), t;
25
+ }
26
+ function s(e, t) {
27
+ let n = e;
28
+ for (; n;) {
29
+ let e = a.get(n)?.get(t);
30
+ if (e) return e;
31
+ n = Object.getPrototypeOf(n);
32
+ }
33
+ }
34
+ function c(e, t, n) {
35
+ o(e).set(t, n), Object.defineProperty(e.prototype, t, {
36
+ value: function(...e) {
37
+ return n.call(this, ...e);
38
+ },
39
+ configurable: !0,
40
+ writable: !0,
41
+ enumerable: !1
42
+ });
43
+ }
44
+ function l(e, t) {
45
+ return s(e, t) !== void 0;
46
+ }
47
+ function u(e, t) {
48
+ return s(e, t);
49
+ }
50
+ function d(e) {
51
+ let t = a.get(e);
52
+ if (t) {
53
+ for (let n of t.keys()) delete e.prototype[n];
54
+ t.clear();
55
+ }
56
+ }
57
+ function f(e) {
58
+ let t = e;
59
+ t.macro = (t, n) => c(e, t, n), t.hasMacro = (t) => l(e, t), t.flushMacros = () => d(e);
60
+ }
61
+ //#endregion
62
+ //#region src/exceptions/MultipleItemsFoundException.ts
63
+ var p = class extends n {
64
+ count;
65
+ constructor(e = 0, t) {
66
+ super(t ?? `${e} items were found.`), this.name = "MultipleItemsFoundException", this.count = e, Object.setPrototypeOf(this, new.target.prototype);
67
+ }
68
+ };
69
+ //#endregion
70
+ //#region src/support/isObject.ts
71
+ function m(e) {
72
+ if (typeof e != "object" || !e || Array.isArray(e)) return !1;
73
+ let t = Object.getPrototypeOf(e);
74
+ return t === Object.prototype || t === null;
75
+ }
76
+ function h(e) {
77
+ return typeof e == "object" && !!e;
78
+ }
79
+ function ee(e) {
80
+ return typeof e == "function";
81
+ }
82
+ //#endregion
83
+ //#region src/support/dataGet.ts
84
+ function g(e, t, n) {
85
+ if (e == null) return n;
86
+ let r = Array.isArray(t) ? [...t] : String(t).split("."), i = e;
87
+ for (let e = 0; e < r.length; e++) {
88
+ let t = r[e];
89
+ if (t === "*") {
90
+ if (!Array.isArray(i)) return n;
91
+ let t = r.slice(e + 1), a = [];
92
+ for (let e of i) {
93
+ let n = t.length === 0 ? e : g(e, t, void 0);
94
+ Array.isArray(n) ? a.push(...n) : a.push(n);
95
+ }
96
+ return a;
97
+ }
98
+ if (i == null) return n;
99
+ if (Array.isArray(i)) {
100
+ let e = Number(t);
101
+ if (Number.isInteger(e) && e >= 0 && e < i.length) {
102
+ i = i[e];
103
+ continue;
104
+ }
105
+ return n;
106
+ }
107
+ if (h(i) && t in i) {
108
+ i = i[t];
109
+ continue;
110
+ }
111
+ return n;
112
+ }
113
+ return i;
114
+ }
115
+ function te(e, t, n) {
116
+ let r = t.split("."), i = e;
117
+ for (let e = 0; e < r.length - 1; e++) {
118
+ let t = r[e];
119
+ h(i[t]) || (i[t] = {}), i = i[t];
120
+ }
121
+ return i[r[r.length - 1]] = n, e;
122
+ }
123
+ //#endregion
124
+ //#region src/support/deepEqual.ts
125
+ function _(e, t) {
126
+ if (Object.is(e, t)) return !0;
127
+ if (!h(e) || !h(t)) return !1;
128
+ if (e instanceof Date || t instanceof Date) return e instanceof Date && t instanceof Date && e.getTime() === t.getTime();
129
+ if (e instanceof RegExp || t instanceof RegExp) return e instanceof RegExp && t instanceof RegExp && e.source === t.source && e.flags === t.flags;
130
+ let n = Array.isArray(e), r = Array.isArray(t);
131
+ if (n !== r) return !1;
132
+ if (n && r) {
133
+ if (e.length !== t.length) return !1;
134
+ for (let n = 0; n < e.length; n++) if (!_(e[n], t[n])) return !1;
135
+ return !0;
136
+ }
137
+ let i = Object.keys(e), a = Object.keys(t);
138
+ if (i.length !== a.length) return !1;
139
+ for (let n of i) if (!Object.prototype.hasOwnProperty.call(t, n) || !_(e[n], t[n])) return !1;
140
+ return !0;
141
+ }
142
+ function v(e, t) {
143
+ return e === t ? !0 : e == null || t == null ? e == t : typeof e == typeof t ? _(e, t) : (typeof e == "string" || typeof e == "number" || typeof e == "boolean") && (typeof t == "string" || typeof t == "number" || typeof t == "boolean") ? e == t : !1;
144
+ }
145
+ //#endregion
146
+ //#region src/support/operatorForWhere.ts
147
+ function y(e, t, n) {
148
+ switch (t) {
149
+ case "=":
150
+ case "==": return v(e, n);
151
+ case "===": return e === n || _(e, n);
152
+ case "!=":
153
+ case "<>": return !v(e, n);
154
+ case "!==": return e !== n && !_(e, n);
155
+ case "<": return e < n;
156
+ case "<=": return e <= n;
157
+ case ">": return e > n;
158
+ case ">=": return e >= n;
159
+ default: throw Error(`Unsupported operator: ${String(t)}`);
160
+ }
161
+ }
162
+ function b(e) {
163
+ return e === "=" || e === "==" || e === "===" || e === "!=" || e === "!==" || e === "<>" || e === "<" || e === "<=" || e === ">" || e === ">=";
164
+ }
165
+ //#endregion
166
+ //#region src/operations/accessors.ts
167
+ function x(e, t) {
168
+ if (t === void 0) return e.length > 0 ? e[0] : void 0;
169
+ for (let n = 0; n < e.length; n++) if (t(e[n], n)) return e[n];
170
+ }
171
+ function ne(e, t) {
172
+ let n = x(e, t);
173
+ if (n === void 0) throw new r();
174
+ return n;
175
+ }
176
+ function S(e, t, n) {
177
+ return n <= 1 ? {
178
+ truthy: !0,
179
+ operator: "=",
180
+ value: void 0
181
+ } : n >= 3 && b(e) ? {
182
+ truthy: !1,
183
+ operator: e,
184
+ value: t
185
+ } : {
186
+ truthy: !1,
187
+ operator: "=",
188
+ value: e
189
+ };
190
+ }
191
+ function re(e, t, n) {
192
+ return n.truthy ? e.find((e) => !!g(e, String(t))) : e.find((e) => y(g(e, String(t)), n.operator, n.value));
193
+ }
194
+ function ie(e, t) {
195
+ if (t === void 0) return e.length > 0 ? e[e.length - 1] : void 0;
196
+ for (let n = e.length - 1; n >= 0; n--) if (t(e[n], n)) return e[n];
197
+ }
198
+ function ae(e, t, n) {
199
+ return t < 0 && Math.abs(t) <= e.length ? e[e.length + t] : t >= 0 && t < e.length ? e[t] : n;
200
+ }
201
+ function oe(e, t) {
202
+ if (e.length !== 0) return g(e[0], t);
203
+ }
204
+ function se(e, t, n) {
205
+ let i;
206
+ if (t === void 0) i = () => !0;
207
+ else if (typeof t == "function") i = t;
208
+ else {
209
+ let e = String(t);
210
+ i = (t) => v(g(t, e), n);
211
+ }
212
+ let a = [];
213
+ for (let t = 0; t < e.length; t++) if (i(e[t], t) && a.push(e[t]), a.length > 1) throw new p(a.length);
214
+ if (a.length === 0) throw new r();
215
+ return a[0];
216
+ }
217
+ function ce(e, t, n) {
218
+ return typeof t == "function" ? e.findIndex(t) : n ? e.findIndex((e) => e === t) : e.findIndex((e) => v(e, t));
219
+ }
220
+ function le(e, t, n = !1) {
221
+ let r = ce(e, t, n);
222
+ if (!(r === -1 || r === e.length - 1)) return e[r + 1];
223
+ }
224
+ function ue(e, t, n = !1) {
225
+ let r = ce(e, t, n);
226
+ if (!(r <= 0)) return e[r - 1];
227
+ }
228
+ function de(e, t) {
229
+ return t.every((t) => e.some((e) => h(e) && Object.prototype.hasOwnProperty.call(e, String(t))));
230
+ }
231
+ function fe(e, t) {
232
+ return t.some((t) => e.some((e) => h(e) && Object.prototype.hasOwnProperty.call(e, String(t))));
233
+ }
234
+ //#endregion
235
+ //#region src/support/valueRetriever.ts
236
+ function C(e) {
237
+ if (e === void 0) return (e) => e;
238
+ if (typeof e == "function") return e;
239
+ let t = String(e);
240
+ return t.includes(".") || t.includes("*") ? (e) => g(e, t) : (e) => {
241
+ if (typeof e == "object" && e) return e[t];
242
+ };
243
+ }
244
+ //#endregion
245
+ //#region src/operations/aggregations.ts
246
+ function pe(e) {
247
+ if (typeof e == "number") return e;
248
+ if (typeof e == "string") {
249
+ let t = Number(e);
250
+ return Number.isNaN(t) ? 0 : t;
251
+ }
252
+ return typeof e == "boolean" ? +!!e : 0;
253
+ }
254
+ function me(e, t) {
255
+ if (typeof e == "number" && typeof t == "number") return e - t;
256
+ if (e instanceof Date && t instanceof Date) return e.getTime() - t.getTime();
257
+ if (typeof e == "bigint" && typeof t == "bigint" || typeof e == "string" && typeof t == "string") return e < t ? -1 : +(e > t);
258
+ let n = Number(e), r = Number(t);
259
+ if (!Number.isNaN(n) && !Number.isNaN(r)) return n - r;
260
+ let i = String(e), a = String(t);
261
+ return i < a ? -1 : +(i > a);
262
+ }
263
+ function w(e, t) {
264
+ let n = C(t), r = 0;
265
+ for (let t = 0; t < e.length; t++) r += pe(n(e[t], t));
266
+ return r;
267
+ }
268
+ function T(e, t) {
269
+ return e.length === 0 ? 0 : w(e, t) / e.length;
270
+ }
271
+ function E(e, t) {
272
+ let n = C(t), r, i = !1;
273
+ for (let t = 0; t < e.length; t++) {
274
+ let a = n(e[t], t);
275
+ a != null && (!i || me(a, r) > 0) && (r = a, i = !0);
276
+ }
277
+ return r;
278
+ }
279
+ function D(e, t) {
280
+ let n = C(t), r, i = !1;
281
+ for (let t = 0; t < e.length; t++) {
282
+ let a = n(e[t], t);
283
+ a != null && (!i || me(a, r) < 0) && (r = a, i = !0);
284
+ }
285
+ return r;
286
+ }
287
+ function he(e, t) {
288
+ if (e.length === 0) return;
289
+ let n = C(t), r = e.map((e, t) => pe(n(e, t))).sort((e, t) => e - t), i = Math.floor(r.length / 2);
290
+ return r.length % 2 == 0 ? (r[i - 1] + r[i]) / 2 : r[i];
291
+ }
292
+ function ge(e, t) {
293
+ if (e.length === 0) return;
294
+ let n = C(t), r = /* @__PURE__ */ new Map(), i = 0;
295
+ for (let t = 0; t < e.length; t++) {
296
+ let a = n(e[t], t), o = (r.get(a) ?? 0) + 1;
297
+ r.set(a, o), o > i && (i = o);
298
+ }
299
+ let a = [];
300
+ for (let [e, t] of r) t === i && a.push(e);
301
+ return a;
302
+ }
303
+ function _e(e, t, n = 2) {
304
+ if (e.length === 0) return 0;
305
+ let r = 0;
306
+ for (let n = 0; n < e.length; n++) t(e[n], n) && r++;
307
+ let i = 10 ** n;
308
+ return Math.round(r / e.length * 100 * i) / i;
309
+ }
310
+ function ve(e, t) {
311
+ let n = C(t), r = /* @__PURE__ */ new Map();
312
+ for (let t = 0; t < e.length; t++) {
313
+ let i = n(e[t], t);
314
+ r.set(i, (r.get(i) ?? 0) + 1);
315
+ }
316
+ return r;
317
+ }
318
+ //#endregion
319
+ //#region src/operations/chunking.ts
320
+ function ye(e, t) {
321
+ if (t <= 0) return [];
322
+ let n = [];
323
+ for (let r = 0; r < e.length; r += t) n.push(e.slice(r, r + t));
324
+ return n;
325
+ }
326
+ function be(e, t) {
327
+ if (e.length === 0) return [];
328
+ let n = [], r = [e[0]];
329
+ for (let i = 1; i < e.length; i++) t(e[i], i, r) ? r.push(e[i]) : (n.push(r), r = [e[i]]);
330
+ return n.push(r), n;
331
+ }
332
+ function xe(e, t, n = 1) {
333
+ if (t <= 0 || n <= 0) return [];
334
+ let r = [];
335
+ for (let i = 0; i + t <= e.length; i += n) r.push(e.slice(i, i + t));
336
+ return r;
337
+ }
338
+ function Se(e, t) {
339
+ if (t <= 0 || e.length === 0) return [];
340
+ let n = [], r = Math.floor(e.length / t), i = e.length % t, a = 0;
341
+ for (let o = 0; o < t; o++) {
342
+ let t = +(i > 0);
343
+ n.push(e.slice(a, a + r + t)), a += r + t, i > 0 && i--;
344
+ }
345
+ return n.filter((e) => e.length > 0);
346
+ }
347
+ function Ce(e, t) {
348
+ if (t <= 0 || e.length === 0) return [];
349
+ let n = Math.ceil(e.length / t), r = [];
350
+ for (let t = 0; t < e.length; t += n) r.push(e.slice(t, t + n));
351
+ return r;
352
+ }
353
+ function O(e, t) {
354
+ let n = [], r = [];
355
+ for (let i = 0; i < e.length; i++) t(e[i], i) ? n.push(e[i]) : r.push(e[i]);
356
+ return [n, r];
357
+ }
358
+ function we(e, t, n) {
359
+ if (t < 1 || n <= 0) return [];
360
+ let r = (t - 1) * n;
361
+ return e.slice(r, r + n);
362
+ }
363
+ function Te(e, t, n = 0) {
364
+ if (t <= 0) return [];
365
+ let r = [];
366
+ for (let i = n; i < e.length; i += t) r.push(e[i]);
367
+ return r;
368
+ }
369
+ //#endregion
370
+ //#region src/operations/compare.ts
371
+ function Ee(e, t) {
372
+ if (!h(e)) return !1;
373
+ let n = e;
374
+ for (let e of Object.keys(t)) if (!v(n[e], t[e])) return !1;
375
+ return !0;
376
+ }
377
+ function k(e, t, n = !1) {
378
+ switch (t.kind) {
379
+ case "predicate":
380
+ for (let n = 0; n < e.length; n++) if (t.predicate(e[n], n)) return !0;
381
+ return !1;
382
+ case "keyValue": return e.some((e) => {
383
+ let r = g(e, t.key);
384
+ return n ? r === t.value || _(r, t.value) : v(r, t.value);
385
+ });
386
+ case "shape": return e.some((e) => Ee(e, t.shape));
387
+ case "value": return e.some((e) => n ? e === t.value : v(e, t.value));
388
+ }
389
+ }
390
+ function De(e, t, n = !1) {
391
+ return !k(e, t, n);
392
+ }
393
+ function A(e, t, n) {
394
+ return typeof e == "function" ? {
395
+ kind: "predicate",
396
+ predicate: e
397
+ } : n && (typeof e == "string" || typeof e == "number" || typeof e == "symbol") ? {
398
+ kind: "keyValue",
399
+ key: String(e),
400
+ value: t
401
+ } : h(e) && !Array.isArray(e) ? {
402
+ kind: "shape",
403
+ shape: e
404
+ } : {
405
+ kind: "value",
406
+ value: e
407
+ };
408
+ }
409
+ function Oe(e, t) {
410
+ for (let n = 0; n < e.length; n++) if (!t(e[n], n)) return !1;
411
+ return !0;
412
+ }
413
+ function ke(e, t) {
414
+ for (let n = 0; n < e.length; n++) if (t(e[n], n)) return !0;
415
+ return !1;
416
+ }
417
+ function Ae(e, t, n = !1) {
418
+ if (typeof t == "function") {
419
+ let n = e.findIndex(t);
420
+ return n === -1 ? !1 : n;
421
+ }
422
+ let r = e.findIndex((e) => n ? e === t : v(e, t));
423
+ return r === -1 ? !1 : r;
424
+ }
425
+ //#endregion
426
+ //#region src/operations/combine.ts
427
+ function je(e, t) {
428
+ let n = {}, r = Math.min(e.length, t.length);
429
+ for (let i = 0; i < r; i++) n[e[i]] = t[i];
430
+ return n;
431
+ }
432
+ function Me(e, t) {
433
+ let n = [];
434
+ for (let r = 0; r < e.length; r++) n.push([e[r], t[r]]);
435
+ return n;
436
+ }
437
+ function Ne(...e) {
438
+ if (e.length === 0) return [];
439
+ let t = Math.min(...e.map((e) => e.length)), n = [];
440
+ for (let r = 0; r < t; r++) n.push(e.map((e) => e[r]));
441
+ return n;
442
+ }
443
+ //#endregion
444
+ //#region src/operations/conditionals.ts
445
+ function Pe(e, t) {
446
+ return typeof t == "function" ? !!t(e) : !!t;
447
+ }
448
+ function j(e, t, n, r) {
449
+ let i = Pe(e, t), a = i ? n : r;
450
+ if (!a) return e;
451
+ let o = a(e, i);
452
+ return o === void 0 ? e : o;
453
+ }
454
+ //#endregion
455
+ //#region src/operations/filters.ts
456
+ function Fe(e, t) {
457
+ return t === void 0 ? e.filter((e) => !!e) : e.filter((e, n) => t(e, n));
458
+ }
459
+ function Ie(e, t) {
460
+ return e.filter((e, n) => !t(e, n));
461
+ }
462
+ function M(e, t) {
463
+ return e.length <= 1 ? {
464
+ truthy: !0,
465
+ operator: "=",
466
+ value: void 0,
467
+ strict: t
468
+ } : e.length >= 3 && b(e[1]) ? {
469
+ truthy: !1,
470
+ operator: e[1],
471
+ value: e[2],
472
+ strict: t
473
+ } : {
474
+ truthy: !1,
475
+ operator: t ? "===" : "=",
476
+ value: e[1],
477
+ strict: t
478
+ };
479
+ }
480
+ function Le(e, t, n) {
481
+ return n.truthy ? e.filter((e) => !!g(e, t)) : e.filter((e) => y(g(e, t), n.operator, n.value));
482
+ }
483
+ function Re(e, t, n, r = !1) {
484
+ return e.filter((e) => {
485
+ let i = g(e, t);
486
+ return n.some((e) => r ? e === i || _(e, i) : v(e, i));
487
+ });
488
+ }
489
+ function N(e, t, n, r = !1) {
490
+ return e.filter((e) => {
491
+ let i = g(e, t);
492
+ return !n.some((e) => r ? e === i || _(e, i) : v(e, i));
493
+ });
494
+ }
495
+ function ze(e, t, n) {
496
+ let [r, i] = n;
497
+ return e.filter((e) => {
498
+ let n = g(e, t);
499
+ return n >= r && n <= i;
500
+ });
501
+ }
502
+ function Be(e, t, n) {
503
+ let [r, i] = n;
504
+ return e.filter((e) => {
505
+ let n = g(e, t);
506
+ return n < r || n > i;
507
+ });
508
+ }
509
+ function Ve(e, t) {
510
+ return e.filter((e) => g(e, t) == null);
511
+ }
512
+ function He(e, t) {
513
+ return e.filter((e) => g(e, t) != null);
514
+ }
515
+ function Ue(e, t) {
516
+ let n = t;
517
+ return e.filter((e) => e instanceof n);
518
+ }
519
+ function P(e, t = !1) {
520
+ let n = "";
521
+ for (let t of e) t === "%" ? n += ".*" : t === "_" ? n += "." : n += t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
522
+ return RegExp(`^${n}$`, t ? "" : "i");
523
+ }
524
+ function F(e, t, n, r = !1, i = !1) {
525
+ let a = P(n, r);
526
+ return e.filter((e) => {
527
+ let n = g(e, t), r = n != null && a.test(String(n));
528
+ return i ? !r : r;
529
+ });
530
+ }
531
+ //#endregion
532
+ //#region src/operations/grouping.ts
533
+ function I(e, t) {
534
+ let n = C(t), r = {};
535
+ for (let t = 0; t < e.length; t++) {
536
+ let i = e[t], a = n(i, t), o = Array.isArray(a) ? a : [a];
537
+ for (let e of o) r[e] === void 0 && (r[e] = []), r[e].push(i);
538
+ }
539
+ return r;
540
+ }
541
+ function L(e, t) {
542
+ if (t.length === 0) return e;
543
+ let [n, ...r] = t, i = I(e, n);
544
+ if (r.length === 0) return i;
545
+ let a = {};
546
+ for (let e of Object.keys(i)) a[e] = L(i[e], r);
547
+ return a;
548
+ }
549
+ function R(e, t) {
550
+ let n = C(t), r = {};
551
+ for (let t = 0; t < e.length; t++) r[n(e[t], t)] = e[t];
552
+ return r;
553
+ }
554
+ //#endregion
555
+ //#region src/operations/itertools.ts
556
+ function We(e, t, n) {
557
+ let r = [], i = n;
558
+ for (let n = 0; n < e.length; n++) i = t(i, e[n], n), r.push(i);
559
+ return r;
560
+ }
561
+ function Ge(e) {
562
+ if (e.length < 2) return [];
563
+ let t = [];
564
+ for (let n = 0; n < e.length - 1; n++) t.push([e[n], e[n + 1]]);
565
+ return t;
566
+ }
567
+ function Ke(e, t = 0) {
568
+ return e.map((e, n) => [t + n, e]);
569
+ }
570
+ function* qe(e, t = Infinity) {
571
+ if (e.length !== 0) for (let n = 0; n < t; n++) for (let t of e) yield t;
572
+ }
573
+ function Je(...e) {
574
+ if (e.length === 0) return [];
575
+ let t = Math.min(...e.map((e) => e.length)), n = [];
576
+ for (let r = 0; r < t; r++) for (let t of e) n.push(t[r]);
577
+ return n;
578
+ }
579
+ function Ye(e, t) {
580
+ let n = e[Symbol.iterator](), r = Array.from({ length: t }, () => []), i = !1;
581
+ function* a(e) {
582
+ for (;;) {
583
+ if (r[e].length > 0) {
584
+ yield r[e].shift();
585
+ continue;
586
+ }
587
+ if (i) return;
588
+ let a = n.next();
589
+ if (a.done) {
590
+ i = !0;
591
+ return;
592
+ }
593
+ for (let n = 0; n < t; n++) n !== e && r[n].push(a.value);
594
+ yield a.value;
595
+ }
596
+ }
597
+ return r.map((e, t) => a(t));
598
+ }
599
+ function* Xe(e, t) {
600
+ let n = e.length, r = t === void 0 ? n : t;
601
+ if (r > n) return;
602
+ let i = Array.from({ length: n }, (e, t) => t), a = Array.from({ length: r }, (e, t) => n - t);
603
+ for (yield i.slice(0, r).map((t) => e[t]); n > 0;) {
604
+ let t = !0;
605
+ for (let o = r - 1; o >= 0; o--) if (--a[o], a[o] === 0) {
606
+ let e = i.splice(o, 1)[0];
607
+ i.push(e), a[o] = n - o;
608
+ } else {
609
+ let n = a[o];
610
+ [i[o], i[i.length - n]] = [i[i.length - n], i[o]], yield i.slice(0, r).map((t) => e[t]), t = !1;
611
+ break;
612
+ }
613
+ if (t) return;
614
+ }
615
+ }
616
+ function* z(e, t) {
617
+ let n = e.length;
618
+ if (t > n || t < 0) return;
619
+ let r = Array.from({ length: t }, (e, t) => t);
620
+ for (yield r.map((t) => e[t]);;) {
621
+ let i = t - 1;
622
+ for (; i >= 0 && r[i] === i + n - t;) i--;
623
+ if (i < 0) return;
624
+ r[i] += 1;
625
+ for (let e = i + 1; e < t; e++) r[e] = r[e - 1] + 1;
626
+ yield r.map((t) => e[t]);
627
+ }
628
+ }
629
+ function* Ze(e) {
630
+ for (let t = 0; t <= e.length; t++) yield* z(e, t);
631
+ }
632
+ //#endregion
633
+ //#region src/operations/joins.ts
634
+ function B(e, t) {
635
+ let n = C(t), r = /* @__PURE__ */ new Map();
636
+ for (let t = 0; t < e.length; t++) {
637
+ let i = n(e[t], t), a = r.get(i);
638
+ a ? a.push(e[t]) : r.set(i, [e[t]]);
639
+ }
640
+ return r;
641
+ }
642
+ function Qe(e, t, n, r, i) {
643
+ let a = B(t, r), o = C(n), s = [];
644
+ for (let t = 0; t < e.length; t++) {
645
+ let n = o(e[t], t), r = a.get(n);
646
+ if (r) for (let n of r) s.push(i ? i(e[t], n) : [e[t], n]);
647
+ }
648
+ return s;
649
+ }
650
+ function $e(e, t, n, r, i) {
651
+ let a = B(t, r), o = C(n), s = [];
652
+ for (let t = 0; t < e.length; t++) {
653
+ let n = o(e[t], t), r = a.get(n);
654
+ if (r && r.length > 0) for (let n of r) s.push(i ? i(e[t], n) : [e[t], n]);
655
+ else s.push(i ? i(e[t], void 0) : [e[t], void 0]);
656
+ }
657
+ return s;
658
+ }
659
+ function et(e, t, n, r, i) {
660
+ let a = B(e, n), o = C(r), s = [];
661
+ for (let e = 0; e < t.length; e++) {
662
+ let n = o(t[e], e), r = a.get(n);
663
+ if (r && r.length > 0) for (let n of r) s.push(i ? i(n, t[e]) : [n, t[e]]);
664
+ else s.push(i ? i(void 0, t[e]) : [void 0, t[e]]);
665
+ }
666
+ return s;
667
+ }
668
+ function tt(e, t, n, r, i) {
669
+ let a = B(t, r), o = C(n), s = /* @__PURE__ */ new Set(), c = [];
670
+ for (let t = 0; t < e.length; t++) {
671
+ let n = o(e[t], t), r = a.get(n);
672
+ if (r && r.length > 0) {
673
+ s.add(n);
674
+ for (let n of r) c.push(i ? i(e[t], n) : [e[t], n]);
675
+ } else c.push(i ? i(e[t], void 0) : [e[t], void 0]);
676
+ }
677
+ for (let [e, t] of a) if (!s.has(e)) for (let e of t) c.push(i ? i(void 0, e) : [void 0, e]);
678
+ return c;
679
+ }
680
+ //#endregion
681
+ //#region src/operations/mutations.ts
682
+ function nt(e, t) {
683
+ return [...e, ...t];
684
+ }
685
+ function rt(e, t) {
686
+ return [t, ...e];
687
+ }
688
+ function it(e, t) {
689
+ return [...e, ...t];
690
+ }
691
+ function at(e, t = 1) {
692
+ if (t <= 0 || e.length === 0) return {
693
+ remaining: [...e],
694
+ removed: []
695
+ };
696
+ let n = Math.max(0, e.length - t);
697
+ return {
698
+ remaining: e.slice(0, n),
699
+ removed: e.slice(n).reverse()
700
+ };
701
+ }
702
+ function ot(e, t = 1) {
703
+ if (t <= 0 || e.length === 0) return {
704
+ remaining: [...e],
705
+ removed: []
706
+ };
707
+ let n = Math.min(e.length, t);
708
+ return {
709
+ remaining: e.slice(n),
710
+ removed: e.slice(0, n)
711
+ };
712
+ }
713
+ function st(e, t, n, r = []) {
714
+ let i = [...e];
715
+ return {
716
+ remaining: i,
717
+ removed: n === void 0 ? i.splice(t) : i.splice(t, n, ...r)
718
+ };
719
+ }
720
+ function ct(e, t) {
721
+ let n = e.indexOf(t);
722
+ if (n === -1) return {
723
+ remaining: [...e],
724
+ removed: void 0
725
+ };
726
+ let r = [...e], [i] = r.splice(n, 1);
727
+ return {
728
+ remaining: r,
729
+ removed: i
730
+ };
731
+ }
732
+ function lt(e, t) {
733
+ let n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
734
+ for (let e of t) typeof e == "number" ? n.add(e) : r.add(e);
735
+ let i = e.filter((e, t) => !n.has(t));
736
+ return r.size > 0 && (i = i.map((e) => {
737
+ if (!m(e)) return e;
738
+ let t = {};
739
+ for (let [n, i] of Object.entries(e)) r.has(n) || (t[n] = i);
740
+ return t;
741
+ })), i;
742
+ }
743
+ function ut(e, t, n) {
744
+ return e.map((e) => ({
745
+ ...e,
746
+ [t]: n
747
+ }));
748
+ }
749
+ function dt(e, ...t) {
750
+ let n = (e, t) => {
751
+ if (Array.isArray(e) && Array.isArray(t)) return [...e, ...t];
752
+ if (m(e) && m(t)) {
753
+ let r = { ...e };
754
+ for (let [e, i] of Object.entries(t)) r[e] = e in r ? n(r[e], i) : i;
755
+ return r;
756
+ }
757
+ return e !== void 0 && t !== void 0 ? [e, t] : t ?? e;
758
+ }, r = [...e];
759
+ for (let e of t) {
760
+ let t = Math.max(r.length, e.length), i = [];
761
+ for (let a = 0; a < t; a++) a >= r.length ? i.push(e[a]) : a >= e.length ? i.push(r[a]) : i.push(n(r[a], e[a]));
762
+ r = i;
763
+ }
764
+ return r;
765
+ }
766
+ function V(e, t) {
767
+ return e.length === 1 && t.length === 1 && m(e[0]) && m(t[0]) ? [{
768
+ ...e[0],
769
+ ...t[0]
770
+ }] : [...e, ...t];
771
+ }
772
+ //#endregion
773
+ //#region src/support/deepClone.ts
774
+ function H(e) {
775
+ if (typeof e != "object" || !e) return e;
776
+ if (e instanceof Date) return new Date(e.getTime());
777
+ if (e instanceof RegExp) return new RegExp(e.source, e.flags);
778
+ if (Array.isArray(e)) return e.map(H);
779
+ if (m(e)) {
780
+ let t = {};
781
+ for (let n of Object.keys(e)) t[n] = H(e[n]);
782
+ return t;
783
+ }
784
+ return e;
785
+ }
786
+ //#endregion
787
+ //#region src/operations/objectOps.ts
788
+ function ft(e, t, n) {
789
+ if (n === void 0) return e.map((e) => g(e, t));
790
+ let r = {};
791
+ for (let i of e) {
792
+ let e = g(i, n);
793
+ r[String(e)] = g(i, t);
794
+ }
795
+ return r;
796
+ }
797
+ function pt(e, t) {
798
+ let n = new Set(t.map(String));
799
+ return e.map((e) => {
800
+ if (!h(e)) return {};
801
+ let t = {};
802
+ for (let r of n) r in e && (t[r] = e[r]);
803
+ return t;
804
+ });
805
+ }
806
+ function mt(e, t) {
807
+ let n = new Set(t.map(String));
808
+ return e.map((e) => {
809
+ if (!h(e)) return e;
810
+ let t = {};
811
+ for (let [r, i] of Object.entries(e)) n.has(r) || (t[r] = i);
812
+ return t;
813
+ });
814
+ }
815
+ function ht(e, t) {
816
+ let n = Array.isArray(t) ? t : [t];
817
+ return e.map((e) => {
818
+ let t = {};
819
+ for (let r of n) t[r] = e[r];
820
+ return t;
821
+ });
822
+ }
823
+ function gt(e) {
824
+ let t = {};
825
+ for (let n = 0; n < e.length; n++) t[String(e[n])] = n;
826
+ return t;
827
+ }
828
+ function _t(e) {
829
+ if (e.length === 0) return [];
830
+ if (e.every((e) => m(e))) {
831
+ let t = /* @__PURE__ */ new Set();
832
+ for (let n of e) for (let e of Object.keys(n)) t.add(e);
833
+ return [...t];
834
+ }
835
+ return e.map((e, t) => String(t));
836
+ }
837
+ function vt(e) {
838
+ if (e.length === 0) return {};
839
+ let t = {}, n = (e, r) => {
840
+ if (m(e)) {
841
+ let i = Object.entries(e);
842
+ if (i.length === 0) {
843
+ r !== "" && (t[r] = e);
844
+ return;
845
+ }
846
+ for (let [e, t] of i) n(t, r === "" ? e : `${r}.${e}`);
847
+ } else if (Array.isArray(e)) {
848
+ if (e.length === 0) {
849
+ r !== "" && (t[r] = e);
850
+ return;
851
+ }
852
+ for (let t = 0; t < e.length; t++) n(e[t], r === "" ? String(t) : `${r}.${t}`);
853
+ } else r !== "" && (t[r] = e);
854
+ };
855
+ return e.length === 1 && m(e[0]) ? n(e[0], "") : n(e, ""), t;
856
+ }
857
+ function yt(e) {
858
+ let t = e.length === 1 && m(e[0]) ? e[0] : e.reduce((e, t, n) => {
859
+ if (m(t)) for (let [n, r] of Object.entries(t)) e[n] = r;
860
+ else e[String(n)] = t;
861
+ return e;
862
+ }, {}), n = {};
863
+ for (let [e, r] of Object.entries(t)) te(n, e, r);
864
+ return n;
865
+ }
866
+ function bt(e, t) {
867
+ let n = [...e];
868
+ for (let [e, r] of Object.entries(t)) {
869
+ let t = Number(e);
870
+ Number.isInteger(t) && t >= 0 && (n[t] = r);
871
+ }
872
+ return n;
873
+ }
874
+ function xt(e, t) {
875
+ let n = (e, t) => {
876
+ if (Array.isArray(e) && Array.isArray(t)) {
877
+ let r = [...e];
878
+ for (let e = 0; e < t.length; e++) r[e] = n(r[e], t[e]);
879
+ return r;
880
+ }
881
+ if (m(e) && m(t)) {
882
+ let r = { ...e };
883
+ for (let [i, a] of Object.entries(t)) r[i] = n(e[i], a);
884
+ return r;
885
+ }
886
+ return t === void 0 ? e : t;
887
+ };
888
+ return n(H([...e]), [...t]);
889
+ }
890
+ //#endregion
891
+ //#region src/operations/sorting.ts
892
+ var St = (e, t) => e === t ? 0 : e == null ? 1 : t == null ? -1 : typeof e == "number" && typeof t == "number" ? e - t : String(e).localeCompare(String(t));
893
+ function Ct(e, t = St) {
894
+ return [...e].sort(t);
895
+ }
896
+ function wt(e) {
897
+ return [...e].sort((e, t) => -St(e, t));
898
+ }
899
+ function U(e, t, n = !1) {
900
+ let r = (Array.isArray(t) && !Tt(t) ? t : [t]).map((e) => Et(e, n));
901
+ return [...e].sort((e, t) => {
902
+ for (let n of r) {
903
+ let r = n(e, t);
904
+ if (r !== 0) return r;
905
+ }
906
+ return 0;
907
+ });
908
+ }
909
+ function Tt(e) {
910
+ return Array.isArray(e) && e.length === 2 && (e[1] === "asc" || e[1] === "desc");
911
+ }
912
+ function Et(e, t) {
913
+ if (typeof e == "function" && e.length === 2) return e;
914
+ if (Tt(e)) {
915
+ let [t, n] = e;
916
+ return Dt(t, n === "desc");
917
+ }
918
+ return Dt(e, t);
919
+ }
920
+ function Dt(e, t) {
921
+ let n = C(e);
922
+ return (e, r) => {
923
+ let i = St(n(e, 0), n(r, 0));
924
+ return t ? -i : i;
925
+ };
926
+ }
927
+ function Ot(e, t) {
928
+ return U(e, t, !0);
929
+ }
930
+ function W(e, t = !1) {
931
+ return e.map((e) => {
932
+ if (typeof e != "object" || !e) return e;
933
+ let n = Object.keys(e).sort();
934
+ t && n.reverse();
935
+ let r = {};
936
+ for (let t of n) r[t] = e[t];
937
+ return r;
938
+ });
939
+ }
940
+ function kt(e, t) {
941
+ return e.map((e) => {
942
+ if (typeof e != "object" || !e) return e;
943
+ let n = Object.keys(e).sort(t), r = {};
944
+ for (let t of n) r[t] = e[t];
945
+ return r;
946
+ });
947
+ }
948
+ function G(e, t = Math.random) {
949
+ let n = [...e];
950
+ for (let e = n.length - 1; e > 0; e--) {
951
+ let r = Math.floor(t() * (e + 1));
952
+ [n[e], n[r]] = [n[r], n[e]];
953
+ }
954
+ return n;
955
+ }
956
+ function At(e) {
957
+ return [...e].reverse();
958
+ }
959
+ //#endregion
960
+ //#region src/operations/random.ts
961
+ function K(e, t = Math.random) {
962
+ if (e.length !== 0) return e[Math.floor(t() * e.length)];
963
+ }
964
+ function jt(e, t, r = Math.random) {
965
+ if (t > e.length) throw new n(`You requested ${t} items, but the collection only contains ${e.length} items.`);
966
+ return t <= 0 ? [] : G(e, r).slice(0, t);
967
+ }
968
+ //#endregion
969
+ //#region src/operations/reducers.ts
970
+ function Mt(e, t, n) {
971
+ let r = n;
972
+ for (let n = 0; n < e.length; n++) r = t(r, e[n], n);
973
+ return r;
974
+ }
975
+ function Nt(e, t, ...n) {
976
+ let r = n;
977
+ for (let n = 0; n < e.length; n++) r = t(...r, e[n], n);
978
+ return r;
979
+ }
980
+ //#endregion
981
+ //#region src/operations/sequence.ts
982
+ function Pt(e, t, n = 1) {
983
+ if (n === 0) throw RangeError("range step must not be zero");
984
+ let r = n > 0, i = [];
985
+ if (r) for (let r = e; r <= t; r += n) i.push(r);
986
+ else for (let r = e; r >= t; r += n) i.push(r);
987
+ return i;
988
+ }
989
+ function Ft(e, t) {
990
+ let n = Array(e);
991
+ for (let r = 0; r < e; r++) n[r] = t(r + 1);
992
+ return n;
993
+ }
994
+ function It(e, t) {
995
+ if (t <= 0) return [];
996
+ let n = [];
997
+ for (let r = 0; r < t; r++) n.push(...e);
998
+ return n;
999
+ }
1000
+ function Lt(e, t, n) {
1001
+ let r = Math.abs(t);
1002
+ if (e.length >= r) return [...e];
1003
+ let i = Array(r - e.length).fill(n);
1004
+ return t < 0 ? [...i, ...e] : [...e, ...i];
1005
+ }
1006
+ //#endregion
1007
+ //#region src/operations/setOps.ts
1008
+ function Rt(e, t) {
1009
+ return e.filter((e) => !t.some((t) => v(e, t)));
1010
+ }
1011
+ function zt(e, t) {
1012
+ if (e.length === 0) return [];
1013
+ let n = t[0] && h(t[0]) ? Object.entries(t[0]) : [];
1014
+ return e.filter((e) => h(e) ? Object.entries(e).some(([e, t]) => {
1015
+ let r = n.find(([t]) => t === e);
1016
+ return !r || !v(r[1], t);
1017
+ }) : !0);
1018
+ }
1019
+ function Bt(e, t, n) {
1020
+ return e.filter((e) => !t.some((t) => n(e, t) === 0));
1021
+ }
1022
+ function Vt(e, t) {
1023
+ let n = new Set(t.map(String));
1024
+ return e.map((e) => {
1025
+ if (!h(e)) return e;
1026
+ let t = {};
1027
+ for (let [r, i] of Object.entries(e)) n.has(r) || (t[r] = i);
1028
+ return t;
1029
+ });
1030
+ }
1031
+ function Ht(e, t) {
1032
+ return e.filter((e) => t.some((t) => v(e, t)));
1033
+ }
1034
+ function Ut(e, t, n) {
1035
+ return e.filter((e) => t.some((t) => n(e, t) === 0));
1036
+ }
1037
+ function Wt(e, t) {
1038
+ if (e.length === 0) return [];
1039
+ let n = t[0] && h(t[0]) ? t[0] : {};
1040
+ return e.map((e) => {
1041
+ if (!h(e)) return e;
1042
+ let t = {};
1043
+ for (let [r, i] of Object.entries(e)) Object.prototype.hasOwnProperty.call(n, r) && v(n[r], i) && (t[r] = i);
1044
+ return t;
1045
+ });
1046
+ }
1047
+ function Gt(e, t, n) {
1048
+ return e.length === 0 ? [] : e.map((e) => {
1049
+ if (!h(e)) return e;
1050
+ let r = e, i = {};
1051
+ for (let [e, a] of Object.entries(r)) Object.entries(t).find(([t, r]) => n(t, e) === 0 && n(String(r), String(a)) === 0) && (i[e] = a);
1052
+ return i;
1053
+ });
1054
+ }
1055
+ function Kt(e, t) {
1056
+ let n = new Set(t.map(String));
1057
+ return e.map((e) => {
1058
+ if (!h(e)) return e;
1059
+ let t = {};
1060
+ for (let [r, i] of Object.entries(e)) n.has(r) && (t[r] = i);
1061
+ return t;
1062
+ });
1063
+ }
1064
+ function qt(e, t) {
1065
+ let n = [...e];
1066
+ for (let e of t) n.some((t) => v(t, e)) || n.push(e);
1067
+ return n;
1068
+ }
1069
+ function Jt(e, t) {
1070
+ if (e.length === 0) return [...t];
1071
+ let n = { ...e[0] };
1072
+ for (let e of t) if (h(e)) for (let [t, r] of Object.entries(e)) t in n || (n[t] = r);
1073
+ return [n];
1074
+ }
1075
+ function Yt(...e) {
1076
+ return e.length === 0 ? [] : e.reduce((e, t) => {
1077
+ let n = [];
1078
+ for (let r of e) for (let e of t) n.push([...r, e]);
1079
+ return n;
1080
+ }, [[]]);
1081
+ }
1082
+ function Xt(e, t, n = !1) {
1083
+ let r = [], i = /* @__PURE__ */ new Map();
1084
+ for (let a = 0; a < e.length; a++) {
1085
+ let o = t ? t(e[a]) : e[a];
1086
+ (n ? r.some((e) => e === o || _(e, o)) : r.some((e) => v(e, o))) ? i.set(a, e[a]) : r.push(o);
1087
+ }
1088
+ return i;
1089
+ }
1090
+ //#endregion
1091
+ //#region src/operations/sliceOps.ts
1092
+ function Zt(e, t) {
1093
+ return t < 0 ? e.slice(t) : e.slice(0, t);
1094
+ }
1095
+ function Qt(e, t) {
1096
+ let n = typeof t == "function" ? e.findIndex(t) : e.findIndex((e) => v(e, t));
1097
+ return n === -1 ? [...e] : e.slice(0, n);
1098
+ }
1099
+ function $t(e, t) {
1100
+ let n = e.findIndex((e, n) => !t(e, n));
1101
+ return n === -1 ? [...e] : e.slice(0, n);
1102
+ }
1103
+ function en(e, t) {
1104
+ return e.slice(t);
1105
+ }
1106
+ function tn(e, t) {
1107
+ let n = typeof t == "function" ? e.findIndex(t) : e.findIndex((e) => v(e, t));
1108
+ return n === -1 ? [] : e.slice(n);
1109
+ }
1110
+ function nn(e, t) {
1111
+ let n = e.findIndex((e, n) => !t(e, n));
1112
+ return n === -1 ? [] : e.slice(n);
1113
+ }
1114
+ function rn(e, t, n) {
1115
+ return n === void 0 ? e.slice(t) : n < 0 ? e.slice(t, e.length + n) : e.slice(t, t + n);
1116
+ }
1117
+ //#endregion
1118
+ //#region src/operations/stats.ts
1119
+ function q(e, t) {
1120
+ let n = C(t), r = [];
1121
+ for (let t = 0; t < e.length; t++) {
1122
+ let i = n(e[t], t), a = typeof i == "number" ? i : Number(i);
1123
+ Number.isFinite(a) && r.push(a);
1124
+ }
1125
+ return r;
1126
+ }
1127
+ function an(e, t) {
1128
+ let n = q(e, t);
1129
+ if (n.length === 0) return;
1130
+ let r = n.reduce((e, t) => e + t, 0) / n.length, i = 0;
1131
+ for (let e of n) i += (e - r) ** 2;
1132
+ return i / n.length;
1133
+ }
1134
+ function on(e, t) {
1135
+ let n = q(e, t);
1136
+ if (n.length < 2) return;
1137
+ let r = n.reduce((e, t) => e + t, 0) / n.length, i = 0;
1138
+ for (let e of n) i += (e - r) ** 2;
1139
+ return i / (n.length - 1);
1140
+ }
1141
+ function sn(e, t) {
1142
+ let n = an(e, t);
1143
+ return n === void 0 ? void 0 : Math.sqrt(n);
1144
+ }
1145
+ function cn(e, t) {
1146
+ let n = on(e, t);
1147
+ return n === void 0 ? void 0 : Math.sqrt(n);
1148
+ }
1149
+ function ln(e, t, n) {
1150
+ if (t < 0 || t > 1) throw RangeError(`quantile q must be in [0,1] (got ${t})`);
1151
+ let r = q(e, n).sort((e, t) => e - t);
1152
+ if (r.length === 0) return;
1153
+ if (r.length === 1) return r[0];
1154
+ let i = t * (r.length - 1), a = Math.floor(i), o = Math.ceil(i);
1155
+ return a === o ? r[a] : r[a] + (r[o] - r[a]) * (i - a);
1156
+ }
1157
+ function un(e, t, n) {
1158
+ return ln(e, t / 100, n);
1159
+ }
1160
+ function dn(e, t, n = {}) {
1161
+ if (t <= 0 || !Number.isInteger(t)) throw RangeError(`bins must be a positive integer (got ${t})`);
1162
+ let r = q(e, n.by);
1163
+ if (r.length === 0) return [];
1164
+ let [i, a] = n.range ?? [Math.min(...r), Math.max(...r)];
1165
+ if (i === a) return [{
1166
+ from: i,
1167
+ to: a,
1168
+ count: r.length
1169
+ }];
1170
+ let o = (a - i) / t, s = Array.from({ length: t }, (e, t) => ({
1171
+ from: i + t * o,
1172
+ to: i + (t + 1) * o,
1173
+ count: 0
1174
+ }));
1175
+ for (let e of r) {
1176
+ if (e < i || e > a) continue;
1177
+ let n = e === a ? t - 1 : Math.floor((e - i) / o);
1178
+ s[n].count++;
1179
+ }
1180
+ return s;
1181
+ }
1182
+ function fn(e, t, n) {
1183
+ if (e.length < 2) return;
1184
+ let r = q(e, t), i = q(e, n), a = Math.min(r.length, i.length);
1185
+ if (a < 2) return;
1186
+ let o = 0, s = 0;
1187
+ for (let e = 0; e < a; e++) o += r[e], s += i[e];
1188
+ let c = o / a, l = s / a, u = 0, d = 0, f = 0;
1189
+ for (let e = 0; e < a; e++) {
1190
+ let t = r[e] - c, n = i[e] - l;
1191
+ u += t * n, d += t * t, f += n * n;
1192
+ }
1193
+ let p = Math.sqrt(d * f);
1194
+ return p === 0 ? void 0 : u / p;
1195
+ }
1196
+ //#endregion
1197
+ //#region src/operations/strings.ts
1198
+ function J(e, t, n, r) {
1199
+ if (typeof t == "function") {
1200
+ let r = n ?? "";
1201
+ return e.map((e, n) => t(e, n)).join(r);
1202
+ }
1203
+ return r === void 0 ? e.map((e) => String(e ?? "")).join(t) : e.map((e) => String(g(e, r) ?? "")).join(t);
1204
+ }
1205
+ function pn(e, t, n) {
1206
+ let r = e.map((e) => String(e ?? ""));
1207
+ return n === void 0 || r.length <= 1 ? r.join(t) : `${r.slice(0, -1).join(t)}${n}${r[r.length - 1]}`;
1208
+ }
1209
+ //#endregion
1210
+ //#region src/operations/transformations.ts
1211
+ function mn(e, t) {
1212
+ let n = Array(e.length);
1213
+ for (let r = 0; r < e.length; r++) n[r] = t(e[r], r);
1214
+ return n;
1215
+ }
1216
+ function hn(e, t) {
1217
+ return e.map((e) => new t(e));
1218
+ }
1219
+ function gn(e, t) {
1220
+ return e.map((e) => t(...e));
1221
+ }
1222
+ function _n(e, t) {
1223
+ let n = {};
1224
+ for (let r = 0; r < e.length; r++) {
1225
+ let [i, a] = t(e[r], r);
1226
+ n[i] === void 0 && (n[i] = []), n[i].push(a);
1227
+ }
1228
+ return n;
1229
+ }
1230
+ function vn(e, t) {
1231
+ let n = {};
1232
+ for (let r = 0; r < e.length; r++) {
1233
+ let [i, a] = t(e[r], r);
1234
+ n[i] = a;
1235
+ }
1236
+ return n;
1237
+ }
1238
+ function yn(e, t) {
1239
+ let n = [];
1240
+ for (let r = 0; r < e.length; r++) {
1241
+ let i = t(e[r], r);
1242
+ Array.isArray(i) ? n.push(...i) : n.push(i);
1243
+ }
1244
+ return n;
1245
+ }
1246
+ function bn(e, t = Infinity) {
1247
+ let n = [], r = (e, t) => {
1248
+ for (let i of e) Array.isArray(i) && t > 0 ? r(i, t - 1) : typeof i == "object" && i && Object.getPrototypeOf(i) === Object.prototype && t > 0 ? r(Object.values(i), t - 1) : n.push(i);
1249
+ };
1250
+ return r(e, t), n;
1251
+ }
1252
+ function xn(e) {
1253
+ let t = [];
1254
+ for (let n of e) Array.isArray(n) ? t.push(...n) : t.push(n);
1255
+ return t;
1256
+ }
1257
+ //#endregion
1258
+ //#region src/operations/uniqueness.ts
1259
+ function Y(e, t, n = !1) {
1260
+ let r = t === void 0 ? (e) => e : C(t), i = [], a = [];
1261
+ for (let t = 0; t < e.length; t++) {
1262
+ let o = r(e[t], t);
1263
+ (n ? i.some((e) => e === o || _(e, o)) : i.some((e) => v(e, o))) || (i.push(o), a.push(e[t]));
1264
+ }
1265
+ return a;
1266
+ }
1267
+ function Sn(e, t) {
1268
+ return Y(e, t, !0);
1269
+ }
1270
+ //#endregion
1271
+ //#region src/operations/index.ts
1272
+ var Cn = /* @__PURE__ */ t({
1273
+ afterOf: () => le,
1274
+ averageOf: () => T,
1275
+ beforeOf: () => ue,
1276
+ buildFirstWhereSpec: () => S,
1277
+ buildWhereSpec: () => M,
1278
+ chunkOf: () => ye,
1279
+ chunkWhileOf: () => be,
1280
+ collapseOf: () => xn,
1281
+ combinationsOf: () => z,
1282
+ combineOf: () => je,
1283
+ concatOf: () => it,
1284
+ containsOf: () => k,
1285
+ correlationOf: () => fn,
1286
+ countByOf: () => ve,
1287
+ crossJoinOf: () => Yt,
1288
+ cycleOf: () => qe,
1289
+ diffAssocOf: () => zt,
1290
+ diffAssocUsingOf: () => Bt,
1291
+ diffKeysOf: () => Vt,
1292
+ diffOf: () => Rt,
1293
+ doesntContainOf: () => De,
1294
+ dotOf: () => vt,
1295
+ duplicatesOf: () => Xt,
1296
+ enumerateOf: () => Ke,
1297
+ everyOf: () => Oe,
1298
+ exceptOf: () => mt,
1299
+ filterOf: () => Fe,
1300
+ firstOf: () => x,
1301
+ firstOrFailOf: () => ne,
1302
+ firstWhereOf: () => re,
1303
+ flatMapOf: () => yn,
1304
+ flattenOf: () => bn,
1305
+ flipOf: () => gt,
1306
+ forPageOf: () => we,
1307
+ forgetOf: () => lt,
1308
+ getAt: () => ae,
1309
+ groupByManyOf: () => L,
1310
+ groupByOf: () => I,
1311
+ hasAnyKey: () => fe,
1312
+ hasKey: () => de,
1313
+ histogramOf: () => dn,
1314
+ implodeOf: () => J,
1315
+ interleaveOf: () => Je,
1316
+ intersectAssocOf: () => Wt,
1317
+ intersectAssocUsingOf: () => Gt,
1318
+ intersectByKeysOf: () => Kt,
1319
+ intersectOf: () => Ht,
1320
+ intersectUsingOf: () => Ut,
1321
+ joinOf: () => pn,
1322
+ joinOnOf: () => Qe,
1323
+ keyByOf: () => R,
1324
+ keysOf: () => _t,
1325
+ lastOf: () => ie,
1326
+ leftJoinOf: () => $e,
1327
+ likeToRegExp: () => P,
1328
+ mapIntoOf: () => hn,
1329
+ mapOf: () => mn,
1330
+ mapSpreadOf: () => gn,
1331
+ mapToGroupsOf: () => _n,
1332
+ mapWithKeysOf: () => vn,
1333
+ maxOf: () => E,
1334
+ medianOf: () => he,
1335
+ mergeOf: () => V,
1336
+ mergeRecursiveOf: () => dt,
1337
+ minOf: () => D,
1338
+ modeOf: () => ge,
1339
+ multiplyOf: () => It,
1340
+ nthOf: () => Te,
1341
+ onlyOf: () => pt,
1342
+ outerJoinOf: () => tt,
1343
+ padOf: () => Lt,
1344
+ pairwiseOf: () => Ge,
1345
+ partitionOf: () => O,
1346
+ percentageOf: () => _e,
1347
+ percentileOf: () => un,
1348
+ permutationsOf: () => Xe,
1349
+ pluckOf: () => ft,
1350
+ popOf: () => at,
1351
+ powerSetOf: () => Ze,
1352
+ prependOf: () => rt,
1353
+ pullOf: () => ct,
1354
+ pushOf: () => nt,
1355
+ putOf: () => ut,
1356
+ quantileOf: () => ln,
1357
+ randomMany: () => jt,
1358
+ randomOne: () => K,
1359
+ rangeOf: () => Pt,
1360
+ reduceOf: () => Mt,
1361
+ reduceSpreadOf: () => Nt,
1362
+ rejectOf: () => Ie,
1363
+ replaceRecursiveOf: () => xt,
1364
+ replaceShallow: () => bt,
1365
+ resolveCondition: () => Pe,
1366
+ resolveContainsSpec: () => A,
1367
+ reverseOf: () => At,
1368
+ rightJoinOf: () => et,
1369
+ sampleStddevOf: () => cn,
1370
+ sampleVarianceOf: () => on,
1371
+ scanOf: () => We,
1372
+ searchOf: () => Ae,
1373
+ selectOf: () => ht,
1374
+ shiftOf: () => ot,
1375
+ shuffleOf: () => G,
1376
+ skipOf: () => en,
1377
+ skipUntilOf: () => tn,
1378
+ skipWhileOf: () => nn,
1379
+ sliceOf: () => rn,
1380
+ slidingOf: () => xe,
1381
+ soleOf: () => se,
1382
+ someOf: () => ke,
1383
+ sortByDescOf: () => Ot,
1384
+ sortByOf: () => U,
1385
+ sortDescOf: () => wt,
1386
+ sortKeysOf: () => W,
1387
+ sortKeysUsingOf: () => kt,
1388
+ sortOf: () => Ct,
1389
+ spliceOf: () => st,
1390
+ splitInOf: () => Ce,
1391
+ splitOf: () => Se,
1392
+ stddevOf: () => sn,
1393
+ sumOf: () => w,
1394
+ takeOf: () => Zt,
1395
+ takeUntilOf: () => Qt,
1396
+ takeWhileOf: () => $t,
1397
+ teeOf: () => Ye,
1398
+ timesOf: () => Ft,
1399
+ undotOf: () => yt,
1400
+ unionObjectsOf: () => Jt,
1401
+ unionOf: () => qt,
1402
+ uniqueOf: () => Y,
1403
+ uniqueStrictOf: () => Sn,
1404
+ valueOfFirst: () => oe,
1405
+ varianceOf: () => an,
1406
+ whenOf: () => j,
1407
+ whereBetweenOf: () => ze,
1408
+ whereInOf: () => Re,
1409
+ whereInstanceOfOf: () => Ue,
1410
+ whereLikeOf: () => F,
1411
+ whereNotBetweenOf: () => Be,
1412
+ whereNotInOf: () => N,
1413
+ whereNotNullOf: () => He,
1414
+ whereNullOf: () => Ve,
1415
+ whereOf: () => Le,
1416
+ zipManyOf: () => Ne,
1417
+ zipOf: () => Me
1418
+ });
1419
+ //#endregion
1420
+ //#region src/contracts/Arrayable.ts
1421
+ function wn(e) {
1422
+ return typeof e == "object" && !!e && typeof e.toArray == "function";
1423
+ }
1424
+ //#endregion
1425
+ //#region src/support/arrayWrap.ts
1426
+ function Tn(e) {
1427
+ return Array.isArray(e) ? e : wn(e) ? e.toArray() : typeof e == "object" && e && Symbol.iterator in e || typeof e == "object" && e && "length" in e ? Array.from(e) : [e];
1428
+ }
1429
+ function En(e) {
1430
+ return e == null ? [] : Array.isArray(e) ? e : [e];
1431
+ }
1432
+ function Dn(e) {
1433
+ return Array.isArray(e) ? e : Array.from(e);
1434
+ }
1435
+ //#endregion
1436
+ //#region src/collection/Collection.ts
1437
+ function X(e) {
1438
+ let t = function(t) {
1439
+ return typeof t == "function" || typeof t == "string" ? e(t) : e();
1440
+ };
1441
+ return new Proxy(t, {
1442
+ get(n, r) {
1443
+ return typeof r == "symbol" ? t[r] : e((e) => g(e, r));
1444
+ },
1445
+ apply(t, n, r) {
1446
+ let i = r[0];
1447
+ return typeof i == "function" || typeof i == "string" ? e(i) : e();
1448
+ }
1449
+ });
1450
+ }
1451
+ var Z = class e {
1452
+ items;
1453
+ constructor(e = []) {
1454
+ this.items = e == null ? [] : Dn(Tn(e));
1455
+ }
1456
+ [Symbol.iterator]() {
1457
+ return this.items[Symbol.iterator]();
1458
+ }
1459
+ get [Symbol.toStringTag]() {
1460
+ return "Collection";
1461
+ }
1462
+ get length() {
1463
+ return this.items.length;
1464
+ }
1465
+ static make(t = []) {
1466
+ return new e(t);
1467
+ }
1468
+ static fromJson(t) {
1469
+ return new e(En(JSON.parse(t)));
1470
+ }
1471
+ static times(t, n) {
1472
+ return new e(Ft(t, n));
1473
+ }
1474
+ static range(t, n, r = 1) {
1475
+ return new e(Pt(t, n, r));
1476
+ }
1477
+ static wrap(t) {
1478
+ return t instanceof e ? new e(t.toArray()) : new e(En(t));
1479
+ }
1480
+ static unwrap(t) {
1481
+ return t instanceof e ? t.toArray() : t;
1482
+ }
1483
+ static empty() {
1484
+ return new e([]);
1485
+ }
1486
+ static fromEntries(t) {
1487
+ return new e([Object.fromEntries(t)]);
1488
+ }
1489
+ static fromMap(t) {
1490
+ return new e([...t.entries()]);
1491
+ }
1492
+ static fromSet(t) {
1493
+ return new e([...t]);
1494
+ }
1495
+ get sum() {
1496
+ let e = this.items;
1497
+ return X((t) => w(e, t));
1498
+ }
1499
+ get average() {
1500
+ let e = this.items;
1501
+ return X((t) => T(e, t));
1502
+ }
1503
+ get avg() {
1504
+ return this.average;
1505
+ }
1506
+ get max() {
1507
+ let e = this.items;
1508
+ return X((t) => E(e, t));
1509
+ }
1510
+ get min() {
1511
+ let e = this.items;
1512
+ return X((t) => D(e, t));
1513
+ }
1514
+ all() {
1515
+ return this.items;
1516
+ }
1517
+ first(e) {
1518
+ return x(this.items, e);
1519
+ }
1520
+ firstOrFail(e) {
1521
+ return ne(this.items, e);
1522
+ }
1523
+ firstWhere(e, ...t) {
1524
+ let n = S(t[0], t[1], t.length + 1);
1525
+ return re(this.items, e, n);
1526
+ }
1527
+ last(e) {
1528
+ return ie(this.items, e);
1529
+ }
1530
+ get(e, t) {
1531
+ let n = ae(this.items, e);
1532
+ if (n !== void 0) return n;
1533
+ if (t !== void 0) return typeof t == "function" ? t() : t;
1534
+ }
1535
+ value(e) {
1536
+ return oe(this.items, e);
1537
+ }
1538
+ sole(e, t) {
1539
+ return se(this.items, e, t);
1540
+ }
1541
+ after(e, t = !1) {
1542
+ return le(this.items, e, t);
1543
+ }
1544
+ before(e, t = !1) {
1545
+ return ue(this.items, e, t);
1546
+ }
1547
+ random(t) {
1548
+ if (t === void 0) return K(this.items);
1549
+ let n = typeof t == "function" ? t(this) : t;
1550
+ return new e(jt(this.items, n));
1551
+ }
1552
+ contains(e, ...t) {
1553
+ let n = A(e, t[0], t.length >= 1);
1554
+ return k(this.items, n, !1);
1555
+ }
1556
+ containsStrict(e, ...t) {
1557
+ let n = A(e, t[0], t.length >= 1);
1558
+ return k(this.items, n, !0);
1559
+ }
1560
+ doesntContain(e, ...t) {
1561
+ return !this.contains(e, ...t);
1562
+ }
1563
+ doesntContainStrict(e, ...t) {
1564
+ return !this.containsStrict(e, ...t);
1565
+ }
1566
+ containsOneItem(e) {
1567
+ return this.hasSole(e);
1568
+ }
1569
+ every(e) {
1570
+ return Oe(this.items, e);
1571
+ }
1572
+ some(e) {
1573
+ return ke(this.items, e);
1574
+ }
1575
+ search(e, t = !1) {
1576
+ return Ae(this.items, e, t);
1577
+ }
1578
+ has(e) {
1579
+ return de(this.items, Array.isArray(e) ? e : [e]);
1580
+ }
1581
+ hasAny(e) {
1582
+ return fe(this.items, e);
1583
+ }
1584
+ hasMany(e) {
1585
+ return e ? this.items.filter((t, n) => e(t, n)).length > 1 : this.items.length > 1;
1586
+ }
1587
+ hasSole(e) {
1588
+ return e ? this.items.filter((t, n) => e(t, n)).length === 1 : this.items.length === 1;
1589
+ }
1590
+ isEmpty() {
1591
+ return this.items.length === 0;
1592
+ }
1593
+ isNotEmpty() {
1594
+ return this.items.length > 0;
1595
+ }
1596
+ count() {
1597
+ return this.items.length;
1598
+ }
1599
+ countBy(e) {
1600
+ let t = ve(this.items, e), n = {};
1601
+ for (let [e, r] of t) n[String(e)] = r;
1602
+ return n;
1603
+ }
1604
+ filter(t) {
1605
+ return new e(Fe(this.items, t));
1606
+ }
1607
+ reject(t) {
1608
+ return new e(Ie(this.items, t));
1609
+ }
1610
+ where(t, ...n) {
1611
+ let r = M([t, ...n], !1);
1612
+ return new e(Le(this.items, t, r));
1613
+ }
1614
+ whereStrict(t, n) {
1615
+ let r = M([t, n], !0);
1616
+ return new e(Le(this.items, t, r));
1617
+ }
1618
+ whereIn(t, n) {
1619
+ return new e(Re(this.items, t, n, !1));
1620
+ }
1621
+ whereInStrict(t, n) {
1622
+ return new e(Re(this.items, t, n, !0));
1623
+ }
1624
+ whereNotIn(t, n) {
1625
+ return new e(N(this.items, t, n, !1));
1626
+ }
1627
+ whereNotInStrict(t, n) {
1628
+ return new e(N(this.items, t, n, !0));
1629
+ }
1630
+ whereBetween(t, n) {
1631
+ return new e(ze(this.items, t, n));
1632
+ }
1633
+ whereNotBetween(t, n) {
1634
+ return new e(Be(this.items, t, n));
1635
+ }
1636
+ whereNull(t) {
1637
+ return new e(Ve(this.items, t));
1638
+ }
1639
+ whereNotNull(t) {
1640
+ return new e(He(this.items, t));
1641
+ }
1642
+ whereLike(t, n, r = !1) {
1643
+ return new e(F(this.items, t, n, r, !1));
1644
+ }
1645
+ whereNotLike(t, n, r = !1) {
1646
+ return new e(F(this.items, t, n, r, !0));
1647
+ }
1648
+ compact() {
1649
+ return new e(this.items.filter((e) => e != null));
1650
+ }
1651
+ whereInstanceOf(t) {
1652
+ return new e(Ue(this.items, t));
1653
+ }
1654
+ map(t) {
1655
+ return new e(mn(this.items, t));
1656
+ }
1657
+ mapInto(t) {
1658
+ return new e(hn(this.items, t));
1659
+ }
1660
+ mapSpread(t) {
1661
+ return new e(gn(this.items, t));
1662
+ }
1663
+ mapToGroups(e) {
1664
+ return _n(this.items, e);
1665
+ }
1666
+ mapWithKeys(e) {
1667
+ return vn(this.items, e);
1668
+ }
1669
+ flatMap(t) {
1670
+ return new e(yn(this.items, t));
1671
+ }
1672
+ flatten(t = Infinity) {
1673
+ return new e(bn(this.items, t));
1674
+ }
1675
+ collapse() {
1676
+ return new e(xn(this.items));
1677
+ }
1678
+ collapseWithKeys() {
1679
+ if (this.items.length === 0) return new e([]);
1680
+ let t = {};
1681
+ for (let n of this.items) if (!(typeof n != "object" || !n)) for (let [r, i] of Object.entries(n)) t[r] = i instanceof e ? i.toArray() : i;
1682
+ return new e([t]);
1683
+ }
1684
+ flip() {
1685
+ return new e([gt(this.items)]);
1686
+ }
1687
+ pluck(t, n) {
1688
+ let r = ft(this.items, t, n);
1689
+ return Array.isArray(r) ? new e(r) : r;
1690
+ }
1691
+ transform(e) {
1692
+ return this.items = mn(this.items, e), this;
1693
+ }
1694
+ replace(t) {
1695
+ return new e(bt(this.items, t));
1696
+ }
1697
+ replaceRecursive(t) {
1698
+ return new e(xt(this.items, t));
1699
+ }
1700
+ sort(t) {
1701
+ return new e(Ct(this.items, t));
1702
+ }
1703
+ sortDesc() {
1704
+ return new e(wt(this.items));
1705
+ }
1706
+ sortBy(t) {
1707
+ return new e(U(this.items, t));
1708
+ }
1709
+ sortByDesc(t) {
1710
+ return new e(Ot(this.items, t));
1711
+ }
1712
+ sortKeys() {
1713
+ return new e(W(this.items));
1714
+ }
1715
+ sortKeysDesc() {
1716
+ return new e(W(this.items, !0));
1717
+ }
1718
+ sortKeysUsing(t) {
1719
+ return new e(kt(this.items, t));
1720
+ }
1721
+ reverse() {
1722
+ return new e(At(this.items));
1723
+ }
1724
+ shuffle(t) {
1725
+ return new e(G(this.items, t));
1726
+ }
1727
+ sumBy(e) {
1728
+ return w(this.items, e);
1729
+ }
1730
+ averageBy(e) {
1731
+ return T(this.items, e);
1732
+ }
1733
+ avgBy(e) {
1734
+ return T(this.items, e);
1735
+ }
1736
+ maxBy(e) {
1737
+ return E(this.items, e);
1738
+ }
1739
+ minBy(e) {
1740
+ return D(this.items, e);
1741
+ }
1742
+ median(e) {
1743
+ return he(this.items, e);
1744
+ }
1745
+ mode(e) {
1746
+ return ge(this.items, e);
1747
+ }
1748
+ percentage(e, t = 2) {
1749
+ return _e(this.items, e, t);
1750
+ }
1751
+ chunk(t) {
1752
+ return new e(ye(this.items, t).map((t) => new e(t)));
1753
+ }
1754
+ chunkWhile(t) {
1755
+ return new e(be(this.items, t).map((t) => new e(t)));
1756
+ }
1757
+ sliding(t, n = 1) {
1758
+ return new e(xe(this.items, t, n).map((t) => new e(t)));
1759
+ }
1760
+ split(t) {
1761
+ return new e(Se(this.items, t).map((t) => new e(t)));
1762
+ }
1763
+ splitIn(t) {
1764
+ return new e(Ce(this.items, t).map((t) => new e(t)));
1765
+ }
1766
+ partition(t) {
1767
+ let [n, r] = O(this.items, t);
1768
+ return [new e(n), new e(r)];
1769
+ }
1770
+ forPage(t, n) {
1771
+ return new e(we(this.items, t, n));
1772
+ }
1773
+ nth(t, n = 0) {
1774
+ return new e(Te(this.items, t, n));
1775
+ }
1776
+ groupBy(e) {
1777
+ return I(this.items, e);
1778
+ }
1779
+ groupByMany(e) {
1780
+ return L(this.items, e);
1781
+ }
1782
+ keyBy(e) {
1783
+ return R(this.items, e);
1784
+ }
1785
+ take(t) {
1786
+ return new e(Zt(this.items, t));
1787
+ }
1788
+ takeUntil(t) {
1789
+ return new e(Qt(this.items, t));
1790
+ }
1791
+ takeWhile(t) {
1792
+ return new e($t(this.items, t));
1793
+ }
1794
+ skip(t) {
1795
+ return new e(en(this.items, t));
1796
+ }
1797
+ skipUntil(t) {
1798
+ return new e(tn(this.items, t));
1799
+ }
1800
+ skipWhile(t) {
1801
+ return new e(nn(this.items, t));
1802
+ }
1803
+ slice(t, n) {
1804
+ return new e(rn(this.items, t, n));
1805
+ }
1806
+ push(...e) {
1807
+ return this.items.push(...e), this;
1808
+ }
1809
+ prepend(e) {
1810
+ return this.items.unshift(e), this;
1811
+ }
1812
+ pop(t) {
1813
+ if (t === void 0) return this.items.pop();
1814
+ let { remaining: n, removed: r } = at(this.items, t);
1815
+ return this.items = n, new e(r);
1816
+ }
1817
+ shift(t) {
1818
+ if (t === void 0) return this.items.shift();
1819
+ let { remaining: n, removed: r } = ot(this.items, t);
1820
+ return this.items = n, new e(r);
1821
+ }
1822
+ pull(e) {
1823
+ let { remaining: t, removed: n } = ct(this.items, e);
1824
+ return this.items = t, n;
1825
+ }
1826
+ forget(e) {
1827
+ let t = Array.isArray(e) ? e : [e];
1828
+ return this.items = lt(this.items, t), this;
1829
+ }
1830
+ splice(t, n, ...r) {
1831
+ let { remaining: i, removed: a } = st(this.items, t, n, r);
1832
+ return this.items = i, new e(a);
1833
+ }
1834
+ put(t, n) {
1835
+ let r = this.items;
1836
+ return new e(ut(r, t, n));
1837
+ }
1838
+ concat(t) {
1839
+ let n = t instanceof e ? t.toArray() : t;
1840
+ return new e(it(this.items, n));
1841
+ }
1842
+ merge(...t) {
1843
+ let n = [...this.items];
1844
+ for (let r of t) {
1845
+ let t = r instanceof e ? r.toArray() : r;
1846
+ n = V(n, t);
1847
+ }
1848
+ return new e(n);
1849
+ }
1850
+ mergeRecursive(...t) {
1851
+ let n = t.map((t) => t instanceof e ? t.toArray() : t);
1852
+ return new e(dt(this.items, ...n));
1853
+ }
1854
+ union(t) {
1855
+ let n = t instanceof e ? t.toArray() : t;
1856
+ return new e(qt(this.items, n));
1857
+ }
1858
+ diff(t) {
1859
+ return new e(Rt(this.items, t instanceof e ? t.toArray() : t));
1860
+ }
1861
+ diffAssoc(t) {
1862
+ return new e(zt(this.items, t instanceof e ? t.toArray() : t));
1863
+ }
1864
+ diffAssocUsing(t, n) {
1865
+ return new e(Bt(this.items, t instanceof e ? t.toArray() : t, n));
1866
+ }
1867
+ diffKeys(t) {
1868
+ return new e(Vt(this.items, t));
1869
+ }
1870
+ intersect(t) {
1871
+ return new e(Ht(this.items, t instanceof e ? t.toArray() : t));
1872
+ }
1873
+ intersectUsing(t, n) {
1874
+ return new e(Ut(this.items, t instanceof e ? t.toArray() : t, n));
1875
+ }
1876
+ intersectAssoc(t) {
1877
+ return new e(Wt(this.items, t instanceof e ? t.toArray() : t));
1878
+ }
1879
+ intersectAssocUsing(t, n) {
1880
+ return new e(Gt(this.items, t, n));
1881
+ }
1882
+ intersectByKeys(t) {
1883
+ return new e(Kt(this.items, t));
1884
+ }
1885
+ crossJoin(...t) {
1886
+ return new e(Yt(this.items.slice(), ...t.map((e) => [...e])));
1887
+ }
1888
+ unique(t) {
1889
+ return new e(Y(this.items, t, !1));
1890
+ }
1891
+ uniqueStrict(t) {
1892
+ return new e(Sn(this.items, t));
1893
+ }
1894
+ duplicates(e) {
1895
+ let t = e === void 0 ? void 0 : C(e), n = Xt(this.items, t ? (e) => t(e, 0) : void 0, !1), r = {};
1896
+ for (let [e, t] of n) r[e] = t;
1897
+ return r;
1898
+ }
1899
+ duplicatesStrict(e) {
1900
+ let t = e === void 0 ? void 0 : C(e), n = Xt(this.items, t ? (e) => t(e, 0) : void 0, !0), r = {};
1901
+ for (let [e, t] of n) r[e] = t;
1902
+ return r;
1903
+ }
1904
+ keys() {
1905
+ return new e(_t(this.items));
1906
+ }
1907
+ values() {
1908
+ return new e([...this.items]);
1909
+ }
1910
+ only(t) {
1911
+ return new e(pt(this.items, t));
1912
+ }
1913
+ except(t) {
1914
+ return new e(mt(this.items, t));
1915
+ }
1916
+ select(t) {
1917
+ return new e(ht(this.items, t));
1918
+ }
1919
+ dot() {
1920
+ return vt(this.items);
1921
+ }
1922
+ undot() {
1923
+ return new e([yt(this.items)]);
1924
+ }
1925
+ each(e) {
1926
+ for (let t = 0; t < this.items.length && e(this.items[t], t) !== !1; t++);
1927
+ return this;
1928
+ }
1929
+ eachSpread(e) {
1930
+ for (let t = 0; t < this.items.length && e(...this.items[t]) !== !1; t++);
1931
+ return this;
1932
+ }
1933
+ tapEach(e) {
1934
+ return this.items.forEach(e), this;
1935
+ }
1936
+ reduce(e, t) {
1937
+ if (t === void 0) {
1938
+ if (this.items.length === 0) throw TypeError("Reduce of empty collection with no initial value");
1939
+ let t = this.items[0];
1940
+ for (let n = 1; n < this.items.length; n++) t = e(t, this.items[n], n);
1941
+ return t;
1942
+ }
1943
+ return Mt(this.items, e, t);
1944
+ }
1945
+ reduceSpread(e, ...t) {
1946
+ return Nt(this.items, e, ...t);
1947
+ }
1948
+ pipe(e) {
1949
+ return e(this);
1950
+ }
1951
+ pipeInto(e) {
1952
+ return new e(this);
1953
+ }
1954
+ pipeThrough(e) {
1955
+ return e.reduce((e, t) => t(e), this);
1956
+ }
1957
+ tap(e) {
1958
+ return e(this), this;
1959
+ }
1960
+ implode(e, t) {
1961
+ return typeof e == "function" ? J(this.items, e, t ?? "") : J(this.items, e, void 0, t);
1962
+ }
1963
+ join(e, t) {
1964
+ return pn(this.items, e, t);
1965
+ }
1966
+ when(e, t, n) {
1967
+ return j(this, e, t, n);
1968
+ }
1969
+ unless(e, t, n) {
1970
+ let r = typeof e == "function" ? (t) => !e(t) : !e;
1971
+ return j(this, r, t, n);
1972
+ }
1973
+ whenEmpty(e, t) {
1974
+ return this.when(this.isEmpty(), e, t);
1975
+ }
1976
+ whenNotEmpty(e, t) {
1977
+ return this.when(this.isNotEmpty(), e, t);
1978
+ }
1979
+ unlessEmpty(e) {
1980
+ return this.whenNotEmpty(e);
1981
+ }
1982
+ unlessNotEmpty(e) {
1983
+ return this.whenEmpty(e);
1984
+ }
1985
+ ensure(...e) {
1986
+ let t = (e) => e.name ?? "object";
1987
+ for (let n of this.items) if (!e.some((e) => typeof e == "string" ? typeof n === e || e === "array" && Array.isArray(n) : n instanceof e)) throw new i(`Collection should only include "${e.map((e) => typeof e == "string" ? e : t(e)).join("|")}" items, but ${typeof n} found.`);
1988
+ return this;
1989
+ }
1990
+ pad(t, n) {
1991
+ return new e(Lt(this.items, t, n));
1992
+ }
1993
+ multiply(t) {
1994
+ return new e(It(this.items, t));
1995
+ }
1996
+ repeat(e) {
1997
+ return this.multiply(e);
1998
+ }
1999
+ times(e) {
2000
+ return this.multiply(e);
2001
+ }
2002
+ combine(t) {
2003
+ let n = t instanceof e ? t.toArray() : t;
2004
+ return je(this.items.map(String), n);
2005
+ }
2006
+ zip(t) {
2007
+ let n = t instanceof e ? t.toArray() : t;
2008
+ return new e(Me(this.items, n));
2009
+ }
2010
+ wrap() {
2011
+ return new e([this.items]);
2012
+ }
2013
+ unwrap() {
2014
+ return this.items.length === 1 ? this.items[0] : [...this.items];
2015
+ }
2016
+ range(t, n, r = 1) {
2017
+ return e.range(t, n, r);
2018
+ }
2019
+ toArray() {
2020
+ return [...this.items];
2021
+ }
2022
+ toJson() {
2023
+ return JSON.stringify(this.items);
2024
+ }
2025
+ toPrettyJson(e = 2) {
2026
+ return JSON.stringify(this.items, null, e);
2027
+ }
2028
+ toMap(e, t) {
2029
+ let n = /* @__PURE__ */ new Map();
2030
+ for (let r = 0; r < this.items.length; r++) n.set(e(this.items[r], r), t(this.items[r], r));
2031
+ return n;
2032
+ }
2033
+ toSet() {
2034
+ return new Set(this.items);
2035
+ }
2036
+ toJSON() {
2037
+ return this.items;
2038
+ }
2039
+ toString() {
2040
+ return this.toJson();
2041
+ }
2042
+ valueOf() {
2043
+ return this.items;
2044
+ }
2045
+ [Symbol.toPrimitive](e) {
2046
+ return e === "number" ? this.items.length : e === "string" ? this.toJson() : this.items;
2047
+ }
2048
+ collect() {
2049
+ return new e([...this.items]);
2050
+ }
2051
+ clone() {
2052
+ return new e(H(this.items));
2053
+ }
2054
+ lazy() {
2055
+ if (On === null) throw Error("LazyCollection not registered yet — internal wiring error.");
2056
+ return new On(this.items);
2057
+ }
2058
+ dump() {
2059
+ return console.log(this.items), this;
2060
+ }
2061
+ dd() {
2062
+ throw this.dump(), new r("Dump-and-die: Collection inspection terminated.");
2063
+ }
2064
+ variance(e) {
2065
+ return an(this.items, e);
2066
+ }
2067
+ sampleVariance(e) {
2068
+ return on(this.items, e);
2069
+ }
2070
+ stddev(e) {
2071
+ return sn(this.items, e);
2072
+ }
2073
+ sampleStddev(e) {
2074
+ return cn(this.items, e);
2075
+ }
2076
+ quantile(e, t) {
2077
+ return ln(this.items, e, t);
2078
+ }
2079
+ percentileAt(e, t) {
2080
+ return un(this.items, e, t);
2081
+ }
2082
+ histogram(e, t) {
2083
+ return dn(this.items, e, t);
2084
+ }
2085
+ correlation(e, t) {
2086
+ return fn(this.items, e, t);
2087
+ }
2088
+ joinOn(t, n, r, i) {
2089
+ let a = t instanceof e ? t.toArray() : t;
2090
+ return new e(Qe(this.items, a, n, r, i));
2091
+ }
2092
+ leftJoin(t, n, r, i) {
2093
+ let a = t instanceof e ? t.toArray() : t;
2094
+ return new e($e(this.items, a, n, r, i));
2095
+ }
2096
+ rightJoin(t, n, r, i) {
2097
+ let a = t instanceof e ? t.toArray() : t;
2098
+ return new e(et(this.items, a, n, r, i));
2099
+ }
2100
+ outerJoin(t, n, r, i) {
2101
+ let a = t instanceof e ? t.toArray() : t;
2102
+ return new e(tt(this.items, a, n, r, i));
2103
+ }
2104
+ scan(t, n) {
2105
+ return new e(We(this.items, t, n));
2106
+ }
2107
+ pairwise() {
2108
+ return new e(Ge(this.items));
2109
+ }
2110
+ enumerate(t = 0) {
2111
+ return new e(Ke(this.items, t));
2112
+ }
2113
+ cycle(t = Infinity) {
2114
+ if (t === Infinity) throw Error("cycle(Infinity) on Collection materialises — use lazy().cycle() for infinite cycles");
2115
+ return new e([...qe(this.items, t)]);
2116
+ }
2117
+ interleave(...t) {
2118
+ return new e(Je(this.items.slice(), ...t.map((t) => t instanceof e ? t.toArray() : [...t])));
2119
+ }
2120
+ permutations(t) {
2121
+ return new e([...Xe(this.items, t)]);
2122
+ }
2123
+ combinations(t) {
2124
+ return new e([...z(this.items, t)]);
2125
+ }
2126
+ powerSet() {
2127
+ return new e([...Ze(this.items)]);
2128
+ }
2129
+ static macro = () => {
2130
+ throw Error("Collection.macro is not yet wired — internal initialisation error.");
2131
+ };
2132
+ static hasMacro = () => !1;
2133
+ static flushMacros = () => void 0;
2134
+ };
2135
+ f(Z);
2136
+ var On = null;
2137
+ function kn(e) {
2138
+ On = e;
2139
+ }
2140
+ //#endregion
2141
+ //#region src/helpers/collect.ts
2142
+ function An(e = []) {
2143
+ return new Z(e);
2144
+ }
2145
+ //#endregion
2146
+ //#region src/collection/LazyCollection.ts
2147
+ function jn(e) {
2148
+ if (typeof e == "function") return e;
2149
+ if (Array.isArray(e) || e instanceof Set || e instanceof Map) return () => e;
2150
+ let t = Array.from(e);
2151
+ return () => t;
2152
+ }
2153
+ var Q = class e {
2154
+ source;
2155
+ constructor(e = []) {
2156
+ this.source = jn(e);
2157
+ }
2158
+ [Symbol.iterator]() {
2159
+ return this.source()[Symbol.iterator]();
2160
+ }
2161
+ get [Symbol.toStringTag]() {
2162
+ return "LazyCollection";
2163
+ }
2164
+ static make(t = []) {
2165
+ return new e(t);
2166
+ }
2167
+ static empty() {
2168
+ return new e([]);
2169
+ }
2170
+ static range(t, n, r = 1) {
2171
+ return new e(function* () {
2172
+ if (r === 0) throw RangeError("range step must not be zero");
2173
+ if (r > 0) for (let e = t; e <= n; e += r) yield e;
2174
+ else for (let e = t; e >= n; e += r) yield e;
2175
+ });
2176
+ }
2177
+ static times(t, n) {
2178
+ return new e(function* () {
2179
+ for (let e = 1; e <= t; e++) yield n(e);
2180
+ });
2181
+ }
2182
+ static wrap(t) {
2183
+ return t instanceof e ? t : t == null ? e.empty() : typeof t == "object" && t && Symbol.iterator in t ? new e(t) : new e([t]);
2184
+ }
2185
+ static unwrap(t) {
2186
+ return t instanceof e ? t.toArray() : t;
2187
+ }
2188
+ all() {
2189
+ return [...this.source()];
2190
+ }
2191
+ toArray() {
2192
+ return this.all();
2193
+ }
2194
+ toJson() {
2195
+ return JSON.stringify(this.all());
2196
+ }
2197
+ toJSON() {
2198
+ return this.all();
2199
+ }
2200
+ toMap(e, t) {
2201
+ let n = /* @__PURE__ */ new Map(), r = 0;
2202
+ for (let i of this.source()) n.set(e(i, r), t(i, r)), r++;
2203
+ return n;
2204
+ }
2205
+ toSet() {
2206
+ return new Set(this.source());
2207
+ }
2208
+ collect() {
2209
+ return new Z(this.all());
2210
+ }
2211
+ count() {
2212
+ let e = 0, t = this.source()[Symbol.iterator]();
2213
+ for (let n = t.next(); !n.done; n = t.next()) e++;
2214
+ return e;
2215
+ }
2216
+ isEmpty() {
2217
+ return this.source()[Symbol.iterator]().next().done === !0;
2218
+ }
2219
+ isNotEmpty() {
2220
+ return !this.isEmpty();
2221
+ }
2222
+ countBy(e) {
2223
+ let t = C(e), n = {}, r = 0;
2224
+ for (let e of this.source()) {
2225
+ let i = String(t(e, r));
2226
+ n[i] = (n[i] ?? 0) + 1, r++;
2227
+ }
2228
+ return n;
2229
+ }
2230
+ first(e) {
2231
+ let t = 0;
2232
+ for (let n of this.source()) {
2233
+ if (e === void 0 || e(n, t)) return n;
2234
+ t++;
2235
+ }
2236
+ }
2237
+ firstOrFail(e) {
2238
+ let t = this.first(e);
2239
+ if (t === void 0) throw new r();
2240
+ return t;
2241
+ }
2242
+ firstWhere(e, ...t) {
2243
+ let n = S(t[0], t[1], t.length + 1);
2244
+ for (let t of this.source()) {
2245
+ let r = g(t, e);
2246
+ if (n.truthy ? r : y(r, n.operator, n.value)) return t;
2247
+ }
2248
+ }
2249
+ last(e) {
2250
+ let t, n = 0;
2251
+ for (let r of this.source()) (e === void 0 || e(r, n)) && (t = r), n++;
2252
+ return t;
2253
+ }
2254
+ sole(e, t) {
2255
+ return se(this.all(), e, t);
2256
+ }
2257
+ random() {
2258
+ return K(this.all());
2259
+ }
2260
+ contains(e, ...t) {
2261
+ let n = A(e, t[0], t.length >= 1);
2262
+ return k(this.all(), n, !1);
2263
+ }
2264
+ containsStrict(e, ...t) {
2265
+ let n = A(e, t[0], t.length >= 1);
2266
+ return k(this.all(), n, !0);
2267
+ }
2268
+ doesntContain(e, ...t) {
2269
+ return !this.contains(e, ...t);
2270
+ }
2271
+ every(e) {
2272
+ let t = 0;
2273
+ for (let n of this.source()) {
2274
+ if (!e(n, t)) return !1;
2275
+ t++;
2276
+ }
2277
+ return !0;
2278
+ }
2279
+ some(e) {
2280
+ let t = 0;
2281
+ for (let n of this.source()) {
2282
+ if (e(n, t)) return !0;
2283
+ t++;
2284
+ }
2285
+ return !1;
2286
+ }
2287
+ search(e, t = !1) {
2288
+ return Ae(this.all(), e, t);
2289
+ }
2290
+ has(e) {
2291
+ return de(this.all(), Array.isArray(e) ? e : [e]);
2292
+ }
2293
+ sum(e) {
2294
+ return w(this.all(), e);
2295
+ }
2296
+ average(e) {
2297
+ return T(this.all(), e);
2298
+ }
2299
+ avg(e) {
2300
+ return T(this.all(), e);
2301
+ }
2302
+ max(e) {
2303
+ return E(this.all(), e);
2304
+ }
2305
+ min(e) {
2306
+ return D(this.all(), e);
2307
+ }
2308
+ median(e) {
2309
+ return he(this.all(), e);
2310
+ }
2311
+ mode(e) {
2312
+ return ge(this.all(), e);
2313
+ }
2314
+ percentage(e, t = 2) {
2315
+ return _e(this.all(), e, t);
2316
+ }
2317
+ filter(t) {
2318
+ let n = this.source;
2319
+ return new e(function* () {
2320
+ let e = 0;
2321
+ for (let r of n()) (t === void 0 ? r : t(r, e)) && (yield r), e++;
2322
+ });
2323
+ }
2324
+ reject(e) {
2325
+ return this.filter((t, n) => !e(t, n));
2326
+ }
2327
+ where(e, ...t) {
2328
+ let n = M([e, ...t], !1);
2329
+ return this.filter((t) => n.truthy ? !!g(t, e) : y(g(t, e), n.operator, n.value));
2330
+ }
2331
+ whereStrict(e, t) {
2332
+ let n = M([e, t], !0);
2333
+ return this.filter((t) => y(g(t, e), n.operator, n.value));
2334
+ }
2335
+ whereIn(e, t) {
2336
+ return this.whereInFilter(e, t, !1, !1);
2337
+ }
2338
+ whereInStrict(e, t) {
2339
+ return this.whereInFilter(e, t, !0, !1);
2340
+ }
2341
+ whereNotIn(e, t) {
2342
+ return this.whereInFilter(e, t, !1, !0);
2343
+ }
2344
+ whereNotInStrict(e, t) {
2345
+ return this.whereInFilter(e, t, !0, !0);
2346
+ }
2347
+ whereInFilter(e, t, n, r) {
2348
+ return this.filter((i) => {
2349
+ let a = g(i, e), o = t.some((e) => n ? e === a || _(e, a) : v(e, a));
2350
+ return r ? !o : o;
2351
+ });
2352
+ }
2353
+ whereBetween(e, t) {
2354
+ return this.filter((n) => {
2355
+ let r = g(n, e);
2356
+ return r >= t[0] && r <= t[1];
2357
+ });
2358
+ }
2359
+ whereNotBetween(e, t) {
2360
+ return this.filter((n) => {
2361
+ let r = g(n, e);
2362
+ return r < t[0] || r > t[1];
2363
+ });
2364
+ }
2365
+ whereNull(e) {
2366
+ return this.filter((t) => g(t, e) == null);
2367
+ }
2368
+ whereNotNull(e) {
2369
+ return this.filter((t) => g(t, e) != null);
2370
+ }
2371
+ whereLike(e, t, n = !1) {
2372
+ let r = P(t, n);
2373
+ return this.filter((t) => {
2374
+ let n = g(t, e);
2375
+ return n != null && r.test(String(n));
2376
+ });
2377
+ }
2378
+ whereNotLike(e, t, n = !1) {
2379
+ let r = P(t, n);
2380
+ return this.filter((t) => {
2381
+ let n = g(t, e);
2382
+ return !(n != null && r.test(String(n)));
2383
+ });
2384
+ }
2385
+ whereInstanceOf(t) {
2386
+ let n = t, r = this.source;
2387
+ return new e(function* () {
2388
+ for (let e of r()) e instanceof n && (yield e);
2389
+ });
2390
+ }
2391
+ map(t) {
2392
+ let n = this.source;
2393
+ return new e(function* () {
2394
+ let e = 0;
2395
+ for (let r of n()) yield t(r, e), e++;
2396
+ });
2397
+ }
2398
+ mapInto(e) {
2399
+ return this.map((t) => new e(t));
2400
+ }
2401
+ mapSpread(e) {
2402
+ return this.map((t) => e(...t));
2403
+ }
2404
+ mapWithKeys(e) {
2405
+ return vn(this.all(), e);
2406
+ }
2407
+ mapToGroups(e) {
2408
+ return _n(this.all(), e);
2409
+ }
2410
+ flatMap(t) {
2411
+ let n = this.source;
2412
+ return new e(function* () {
2413
+ let e = 0;
2414
+ for (let r of n()) {
2415
+ let n = t(r, e);
2416
+ Array.isArray(n) ? yield* n : yield n, e++;
2417
+ }
2418
+ });
2419
+ }
2420
+ flatten(t = Infinity) {
2421
+ let n = this.source;
2422
+ function* r(e, t) {
2423
+ for (let n of e) Array.isArray(n) && t > 0 ? yield* r(n, t - 1) : m(n) && t > 0 ? yield* r(Object.values(n), t - 1) : yield n;
2424
+ }
2425
+ return new e(() => r(n(), t));
2426
+ }
2427
+ collapse() {
2428
+ let t = this.source;
2429
+ return new e(function* () {
2430
+ for (let e of t()) Array.isArray(e) ? yield* e : yield e;
2431
+ });
2432
+ }
2433
+ pluck(t, n) {
2434
+ if (n === void 0) {
2435
+ let n = this.source;
2436
+ return new e(function* () {
2437
+ for (let e of n()) yield g(e, t);
2438
+ });
2439
+ }
2440
+ let r = {};
2441
+ for (let e of this.source()) r[String(g(e, n))] = g(e, t);
2442
+ return r;
2443
+ }
2444
+ take(t) {
2445
+ if (t < 0) return new e(this.all().slice(t));
2446
+ let n = this.source;
2447
+ return new e(function* () {
2448
+ if (t <= 0) return;
2449
+ let e = n()[Symbol.iterator](), r = 0;
2450
+ for (; r < t;) {
2451
+ let t = e.next();
2452
+ if (t.done) return;
2453
+ yield t.value, r++;
2454
+ }
2455
+ });
2456
+ }
2457
+ takeUntil(t) {
2458
+ let n = this.source, r = typeof t == "function";
2459
+ return new e(function* () {
2460
+ let e = 0;
2461
+ for (let i of n()) {
2462
+ if (r ? t(i, e) : v(i, t)) return;
2463
+ yield i, e++;
2464
+ }
2465
+ });
2466
+ }
2467
+ takeWhile(t) {
2468
+ let n = this.source;
2469
+ return new e(function* () {
2470
+ let e = 0;
2471
+ for (let r of n()) {
2472
+ if (!t(r, e)) return;
2473
+ yield r, e++;
2474
+ }
2475
+ });
2476
+ }
2477
+ skip(t) {
2478
+ let n = this.source;
2479
+ return new e(function* () {
2480
+ let e = 0;
2481
+ for (let r of n()) e >= t && (yield r), e++;
2482
+ });
2483
+ }
2484
+ skipUntil(t) {
2485
+ let n = this.source, r = typeof t == "function";
2486
+ return new e(function* () {
2487
+ let e = !1, i = 0;
2488
+ for (let a of n()) {
2489
+ if (!e) if (r ? t(a, i) : v(a, t)) e = !0;
2490
+ else {
2491
+ i++;
2492
+ continue;
2493
+ }
2494
+ yield a, i++;
2495
+ }
2496
+ });
2497
+ }
2498
+ skipWhile(t) {
2499
+ let n = this.source;
2500
+ return new e(function* () {
2501
+ let e = !1, r = 0;
2502
+ for (let i of n()) {
2503
+ if (!e && t(i, r)) {
2504
+ r++;
2505
+ continue;
2506
+ }
2507
+ e = !0, yield i, r++;
2508
+ }
2509
+ });
2510
+ }
2511
+ slice(t, n) {
2512
+ return t < 0 || n !== void 0 && n < 0 ? new e(rn(this.all(), t, n)) : this.skip(t).take(n === void 0 ? Infinity : n);
2513
+ }
2514
+ forPage(e, t) {
2515
+ return this.skip((e - 1) * t).take(t);
2516
+ }
2517
+ nth(t, n = 0) {
2518
+ let r = this.source;
2519
+ return new e(function* () {
2520
+ let e = 0;
2521
+ for (let i of r()) e >= n && (e - n) % t === 0 && (yield i), e++;
2522
+ });
2523
+ }
2524
+ chunk(t) {
2525
+ let n = this.source;
2526
+ return new e(function* () {
2527
+ let r = [];
2528
+ for (let i of n()) r.push(i), r.length === t && (yield new e([...r]), r = []);
2529
+ r.length > 0 && (yield new e(r));
2530
+ });
2531
+ }
2532
+ chunkWhile(t) {
2533
+ return new e(be(this.all(), t).map((t) => new e(t)));
2534
+ }
2535
+ partition(t) {
2536
+ let [n, r] = O(this.all(), t);
2537
+ return [new e(n), new e(r)];
2538
+ }
2539
+ groupBy(e) {
2540
+ return I(this.all(), e);
2541
+ }
2542
+ keyBy(e) {
2543
+ return R(this.all(), e);
2544
+ }
2545
+ split(t) {
2546
+ return new e(Se(this.all(), t).map((t) => new e(t)));
2547
+ }
2548
+ splitIn(t) {
2549
+ return new e(Ce(this.all(), t).map((t) => new e(t)));
2550
+ }
2551
+ sort(t) {
2552
+ return new e(Ct(this.all(), t));
2553
+ }
2554
+ sortDesc() {
2555
+ return new e(wt(this.all()));
2556
+ }
2557
+ sortBy(t) {
2558
+ return new e(U(this.all(), t));
2559
+ }
2560
+ sortByDesc(t) {
2561
+ return new e(Ot(this.all(), t));
2562
+ }
2563
+ sortKeys() {
2564
+ return new e(W(this.all()));
2565
+ }
2566
+ sortKeysDesc() {
2567
+ return new e(W(this.all(), !0));
2568
+ }
2569
+ reverse() {
2570
+ return new e(At(this.all()));
2571
+ }
2572
+ shuffle(t) {
2573
+ return new e(G(this.all(), t));
2574
+ }
2575
+ values() {
2576
+ return new e(this.all());
2577
+ }
2578
+ keys() {
2579
+ return new e(_t(this.all()));
2580
+ }
2581
+ diff(t) {
2582
+ return new e(Rt(this.all(), this.materialise(t)));
2583
+ }
2584
+ diffAssoc(t) {
2585
+ return new e(zt(this.all(), this.materialise(t)));
2586
+ }
2587
+ diffKeys(t) {
2588
+ return new e(Vt(this.all(), t));
2589
+ }
2590
+ intersect(t) {
2591
+ return new e(Ht(this.all(), this.materialise(t)));
2592
+ }
2593
+ intersectAssoc(t) {
2594
+ return new e(Wt(this.all(), this.materialise(t)));
2595
+ }
2596
+ intersectByKeys(t) {
2597
+ return new e(Kt(this.all(), t));
2598
+ }
2599
+ union(t) {
2600
+ return new e(qt(this.all(), this.materialise(t)));
2601
+ }
2602
+ crossJoin(...t) {
2603
+ return new e(Yt(this.all(), ...t));
2604
+ }
2605
+ unique(t) {
2606
+ return new e(Y(this.all(), t, !1));
2607
+ }
2608
+ uniqueStrict(t) {
2609
+ return new e(Sn(this.all(), t));
2610
+ }
2611
+ duplicates(e) {
2612
+ return new Z(this.all()).duplicates(e);
2613
+ }
2614
+ duplicatesStrict(e) {
2615
+ return new Z(this.all()).duplicatesStrict(e);
2616
+ }
2617
+ only(t) {
2618
+ return new e(pt(this.all(), t));
2619
+ }
2620
+ except(t) {
2621
+ return new e(mt(this.all(), t));
2622
+ }
2623
+ flip() {
2624
+ return new e([gt(this.all())]);
2625
+ }
2626
+ pad(t, n) {
2627
+ return new e(Lt(this.all(), t, n));
2628
+ }
2629
+ multiply(t) {
2630
+ return new e(It(this.all(), t));
2631
+ }
2632
+ combine(e) {
2633
+ let t = this.materialise(e);
2634
+ return je(this.all().map(String), t);
2635
+ }
2636
+ zip(t) {
2637
+ return new e(Me(this.all(), this.materialise(t)));
2638
+ }
2639
+ concat(t) {
2640
+ let n = this.materialise(t), r = this.source;
2641
+ return new e(function* () {
2642
+ for (let e of r()) yield e;
2643
+ for (let e of n) yield e;
2644
+ });
2645
+ }
2646
+ merge(...t) {
2647
+ let n = [...this.all()];
2648
+ for (let e of t) n = V(n, this.materialise(e));
2649
+ return new e(n);
2650
+ }
2651
+ each(e) {
2652
+ let t = 0;
2653
+ for (let n of this.source()) {
2654
+ if (e(n, t) === !1) break;
2655
+ t++;
2656
+ }
2657
+ return this;
2658
+ }
2659
+ tapEach(t) {
2660
+ let n = this.source;
2661
+ return new e(function* () {
2662
+ let e = 0;
2663
+ for (let r of n()) t(r, e), yield r, e++;
2664
+ });
2665
+ }
2666
+ reduce(e, t) {
2667
+ return Mt(this.all(), e, t);
2668
+ }
2669
+ pipe(e) {
2670
+ return e(this);
2671
+ }
2672
+ pipeInto(e) {
2673
+ return new e(this);
2674
+ }
2675
+ pipeThrough(e) {
2676
+ return e.reduce((e, t) => t(e), this);
2677
+ }
2678
+ tap(e) {
2679
+ return e(this), this;
2680
+ }
2681
+ implode(e, t) {
2682
+ return typeof e == "function" ? J(this.all(), e, t ?? "") : J(this.all(), e, void 0, t);
2683
+ }
2684
+ join(e, t) {
2685
+ return pn(this.all(), e, t);
2686
+ }
2687
+ when(e, t, n) {
2688
+ return j(this, e, t, n);
2689
+ }
2690
+ unless(e, t, n) {
2691
+ let r = typeof e == "function" ? (t) => !e(t) : !e;
2692
+ return j(this, r, t, n);
2693
+ }
2694
+ whenEmpty(e, t) {
2695
+ return this.when(this.isEmpty(), e, t);
2696
+ }
2697
+ whenNotEmpty(e, t) {
2698
+ return this.when(this.isNotEmpty(), e, t);
2699
+ }
2700
+ unlessEmpty(e) {
2701
+ return this.whenNotEmpty(e);
2702
+ }
2703
+ unlessNotEmpty(e) {
2704
+ return this.whenEmpty(e);
2705
+ }
2706
+ takeUntilTimeout(t) {
2707
+ let n = t instanceof Date ? t.getTime() : t, r = this.source;
2708
+ return new e(function* () {
2709
+ for (let e of r()) {
2710
+ if (Date.now() >= n) return;
2711
+ yield e;
2712
+ }
2713
+ });
2714
+ }
2715
+ throttle(e) {
2716
+ let t = this.source, n = Math.max(0, e * 1e3);
2717
+ return { [Symbol.asyncIterator]() {
2718
+ let e = t()[Symbol.iterator](), r = !0;
2719
+ return { async next() {
2720
+ return r || await new Promise((e) => setTimeout(e, n)), r = !1, e.next();
2721
+ } };
2722
+ } };
2723
+ }
2724
+ remember() {
2725
+ let t = [], n = this.source()[Symbol.iterator](), r = !1;
2726
+ return new e(function* () {
2727
+ let e = 0;
2728
+ for (;;) {
2729
+ if (e < t.length) {
2730
+ yield t[e], e++;
2731
+ continue;
2732
+ }
2733
+ if (r) return;
2734
+ let i = n.next();
2735
+ if (i.done) {
2736
+ r = !0;
2737
+ return;
2738
+ }
2739
+ t.push(i.value), yield i.value, e++;
2740
+ }
2741
+ });
2742
+ }
2743
+ withHeartbeat(t, n) {
2744
+ let r = this.source;
2745
+ return new e(function* () {
2746
+ let e = Date.now();
2747
+ for (let i of r()) {
2748
+ let r = Date.now();
2749
+ r - e >= t && (n(), e = r), yield i;
2750
+ }
2751
+ });
2752
+ }
2753
+ static macro = () => {
2754
+ throw Error("LazyCollection.macro is not yet wired — internal initialisation error.");
2755
+ };
2756
+ static hasMacro = () => !1;
2757
+ static flushMacros = () => void 0;
2758
+ materialise(t) {
2759
+ return t instanceof e ? t.all() : t instanceof Z ? t.toArray() : [...t];
2760
+ }
2761
+ };
2762
+ f(Q), kn(Q);
2763
+ //#endregion
2764
+ //#region src/async/concurrent.ts
2765
+ async function Mn(e, t, n) {
2766
+ if (t <= 0 || !Number.isFinite(t)) throw RangeError(`concurrency must be a positive finite number (got ${t})`);
2767
+ let r = Nn(e) ? e[Symbol.asyncIterator]() : Pn(e), i = [], a = /* @__PURE__ */ new Set(), o = 0, s, c = !1, l = async () => {
2768
+ if (c || s !== void 0) return;
2769
+ let e = await r.next();
2770
+ if (e.done) {
2771
+ c = !0;
2772
+ return;
2773
+ }
2774
+ let t = o++, l = Promise.resolve(n(e.value, t)).then((e) => {
2775
+ i[t] = e;
2776
+ }).catch((e) => {
2777
+ s === void 0 && (s = e);
2778
+ }).finally(() => {
2779
+ a.delete(l);
2780
+ });
2781
+ a.add(l);
2782
+ };
2783
+ for (; a.size < t && !c && s === void 0;) await l();
2784
+ for (; a.size > 0 && (await Promise.race(a), s === void 0);) for (; a.size < t && !c;) await l();
2785
+ if (await Promise.allSettled(a), s !== void 0) throw s;
2786
+ return i;
2787
+ }
2788
+ function Nn(e) {
2789
+ return typeof e == "object" && !!e && Symbol.asyncIterator in e;
2790
+ }
2791
+ async function* Pn(e) {
2792
+ for (let t of e) yield t;
2793
+ }
2794
+ //#endregion
2795
+ //#region src/async/AsyncCollection.ts
2796
+ function Fn(e) {
2797
+ return typeof e == "function" ? () => In(e()) : () => In(e);
2798
+ }
2799
+ function In(e) {
2800
+ return Symbol.asyncIterator in e ? e : (async function* () {
2801
+ for (let t of e) yield t;
2802
+ })();
2803
+ }
2804
+ var Ln = class e {
2805
+ source;
2806
+ constructor(e = []) {
2807
+ this.source = Fn(e);
2808
+ }
2809
+ [Symbol.asyncIterator]() {
2810
+ return this.source()[Symbol.asyncIterator]();
2811
+ }
2812
+ static from(t) {
2813
+ return new e(t);
2814
+ }
2815
+ static fromAsyncIterable(t) {
2816
+ return new e(t);
2817
+ }
2818
+ static range(t, n, r = 1) {
2819
+ if (r === 0) throw RangeError("range step must not be zero");
2820
+ return new e(async function* () {
2821
+ if (r > 0) for (let e = t; e <= n; e += r) yield e;
2822
+ else for (let e = t; e >= n; e += r) yield e;
2823
+ });
2824
+ }
2825
+ static empty() {
2826
+ return new e([]);
2827
+ }
2828
+ async toArray() {
2829
+ let e = [];
2830
+ for await (let t of this.source()) e.push(t);
2831
+ return e;
2832
+ }
2833
+ async collect() {
2834
+ return new Z(await this.toArray());
2835
+ }
2836
+ async toJson() {
2837
+ return JSON.stringify(await this.toArray());
2838
+ }
2839
+ async count() {
2840
+ let e = 0, t = this.source()[Symbol.asyncIterator]();
2841
+ for (let n = await t.next(); !n.done; n = await t.next()) e++;
2842
+ return e;
2843
+ }
2844
+ async first(e) {
2845
+ let t = 0;
2846
+ for await (let n of this.source()) {
2847
+ if (e === void 0 || await e(n, t)) return n;
2848
+ t++;
2849
+ }
2850
+ }
2851
+ async last(e) {
2852
+ let t, n = 0;
2853
+ for await (let r of this.source()) (e === void 0 || await e(r, n)) && (t = r), n++;
2854
+ return t;
2855
+ }
2856
+ async every(e) {
2857
+ let t = 0;
2858
+ for await (let n of this.source()) {
2859
+ if (!await e(n, t)) return !1;
2860
+ t++;
2861
+ }
2862
+ return !0;
2863
+ }
2864
+ async some(e) {
2865
+ let t = 0;
2866
+ for await (let n of this.source()) {
2867
+ if (await e(n, t)) return !0;
2868
+ t++;
2869
+ }
2870
+ return !1;
2871
+ }
2872
+ async reduce(e, t) {
2873
+ let n = t, r = 0;
2874
+ for await (let t of this.source()) n = await e(n, t, r), r++;
2875
+ return n;
2876
+ }
2877
+ async forEach(e) {
2878
+ let t = 0;
2879
+ for await (let n of this.source()) await e(n, t), t++;
2880
+ }
2881
+ async eachAsync(e, t = {}) {
2882
+ let n = t.concurrency ?? 1;
2883
+ await Mn(this.source(), n, async (t, n) => {
2884
+ await e(t, n);
2885
+ });
2886
+ }
2887
+ map(t) {
2888
+ let n = this.source;
2889
+ return new e(async function* () {
2890
+ let e = 0;
2891
+ for await (let r of n()) yield await t(r, e), e++;
2892
+ });
2893
+ }
2894
+ mapAsync(t, n = {}) {
2895
+ let r = n.concurrency ?? 4, i = this.source;
2896
+ return new e(async function* () {
2897
+ let e = i()[Symbol.asyncIterator](), n = /* @__PURE__ */ new Map(), a = 0, o = 0, s = !1, c = async () => {
2898
+ if (s) return;
2899
+ let r = await e.next();
2900
+ if (r.done) {
2901
+ s = !0;
2902
+ return;
2903
+ }
2904
+ let i = a++;
2905
+ n.set(i, Promise.resolve(t(r.value, i)).then((e) => ({
2906
+ index: i,
2907
+ value: e
2908
+ })));
2909
+ };
2910
+ for (; n.size < r && !s;) await c();
2911
+ for (; n.size > 0;) {
2912
+ let e = n.get(o);
2913
+ if (e) {
2914
+ let { value: t } = await e;
2915
+ n.delete(o), yield t, o++, s || await c();
2916
+ } else await Promise.race(n.values());
2917
+ }
2918
+ });
2919
+ }
2920
+ filter(t) {
2921
+ let n = this.source;
2922
+ return new e(async function* () {
2923
+ let e = 0;
2924
+ for await (let r of n()) await t(r, e) && (yield r), e++;
2925
+ });
2926
+ }
2927
+ filterAsync(e, t = {}) {
2928
+ return this.mapAsync(async (t, n) => ({
2929
+ item: t,
2930
+ keep: await e(t, n)
2931
+ }), t).filter((e) => e.keep).map((e) => e.item);
2932
+ }
2933
+ flatMap(t) {
2934
+ let n = this.source;
2935
+ return new e(async function* () {
2936
+ let e = 0;
2937
+ for await (let r of n()) {
2938
+ let n = await t(r, e);
2939
+ if (Symbol.asyncIterator in n) for await (let e of n) yield e;
2940
+ else for (let e of n) yield e;
2941
+ e++;
2942
+ }
2943
+ });
2944
+ }
2945
+ take(t) {
2946
+ let n = this.source;
2947
+ return new e(async function* () {
2948
+ if (t <= 0) return;
2949
+ let e = 0;
2950
+ for await (let r of n()) {
2951
+ if (e >= t) return;
2952
+ yield r, e++;
2953
+ }
2954
+ });
2955
+ }
2956
+ skip(t) {
2957
+ let n = this.source;
2958
+ return new e(async function* () {
2959
+ let e = 0;
2960
+ for await (let r of n()) e >= t && (yield r), e++;
2961
+ });
2962
+ }
2963
+ takeWhile(t) {
2964
+ let n = this.source;
2965
+ return new e(async function* () {
2966
+ let e = 0;
2967
+ for await (let r of n()) {
2968
+ if (!await t(r, e)) return;
2969
+ yield r, e++;
2970
+ }
2971
+ });
2972
+ }
2973
+ skipWhile(t) {
2974
+ let n = this.source;
2975
+ return new e(async function* () {
2976
+ let e = !1, r = 0;
2977
+ for await (let i of n()) {
2978
+ if (!e && await t(i, r)) {
2979
+ r++;
2980
+ continue;
2981
+ }
2982
+ e = !0, yield i, r++;
2983
+ }
2984
+ });
2985
+ }
2986
+ chunk(t) {
2987
+ if (t <= 0) throw RangeError("chunk size must be positive");
2988
+ let n = this.source;
2989
+ return new e(async function* () {
2990
+ let e = [];
2991
+ for await (let r of n()) e.push(r), e.length === t && (yield e, e = []);
2992
+ e.length > 0 && (yield e);
2993
+ });
2994
+ }
2995
+ tap(t) {
2996
+ let n = this.source;
2997
+ return new e(async function* () {
2998
+ let e = 0;
2999
+ for await (let r of n()) await t(r, e), yield r, e++;
3000
+ });
3001
+ }
3002
+ };
3003
+ //#endregion
3004
+ //#region src/helpers/lazy.ts
3005
+ function Rn(e = []) {
3006
+ return new Q(e);
3007
+ }
3008
+ //#endregion
3009
+ //#region src/io/csv.ts
3010
+ function zn(e, t = {}) {
3011
+ let n = t.delimiter ?? ",", r = t.quote ?? "\"", i = r.length > 0, a = [], o = [], s = "", c = !1, l = 0;
3012
+ for (; l < e.length;) {
3013
+ let t = e[l];
3014
+ if (c) {
3015
+ if (i && t === r) {
3016
+ if (e[l + 1] === r) {
3017
+ s += r, l += 2;
3018
+ continue;
3019
+ }
3020
+ c = !1, l++;
3021
+ continue;
3022
+ }
3023
+ s += t, l++;
3024
+ continue;
3025
+ }
3026
+ if (i && t === r && s === "") {
3027
+ c = !0, l++;
3028
+ continue;
3029
+ }
3030
+ if (t === n) {
3031
+ o.push(s), s = "", l++;
3032
+ continue;
3033
+ }
3034
+ if (t === "\r") {
3035
+ e[l + 1] === "\n" && l++, o.push(s), a.push(o), o = [], s = "", l++;
3036
+ continue;
3037
+ }
3038
+ if (t === "\n") {
3039
+ o.push(s), a.push(o), o = [], s = "", l++;
3040
+ continue;
3041
+ }
3042
+ s += t, l++;
3043
+ }
3044
+ if ((s !== "" || o.length > 0) && (o.push(s), a.push(o)), !t.header) return a;
3045
+ if (a.length === 0) return [];
3046
+ let [u, ...d] = a;
3047
+ return d.map((e) => {
3048
+ let n = {};
3049
+ for (let r = 0; r < u.length; r++) n[u[r]] = t.raw ? e[r] ?? "" : Bn(e[r] ?? "");
3050
+ return n;
3051
+ });
3052
+ }
3053
+ function Bn(e) {
3054
+ if (e === "") return "";
3055
+ if (e === "true") return !0;
3056
+ if (e === "false") return !1;
3057
+ if (e === "null") return null;
3058
+ if (/^-?\d+(\.\d+)?$/.test(e)) {
3059
+ let t = Number(e);
3060
+ if (Number.isFinite(t)) return t;
3061
+ }
3062
+ return e;
3063
+ }
3064
+ function Vn(e, t = {}) {
3065
+ let n = t.delimiter ?? ",", r = t.eol ?? "\n";
3066
+ if (e.length === 0) return "";
3067
+ let i = !Array.isArray(e[0]), a = [];
3068
+ if (i) {
3069
+ let r = e, i = t.columns ?? Hn(r);
3070
+ t.header !== !1 && a.push(i.map((e) => $(e, n)).join(n));
3071
+ for (let e of r) a.push(i.map((t) => $(Un(e[t]), n)).join(n));
3072
+ } else {
3073
+ let r = e;
3074
+ t.columns && t.header !== !1 && a.push(t.columns.map((e) => $(e, n)).join(n));
3075
+ for (let e of r) a.push(e.map((e) => $(Un(e), n)).join(n));
3076
+ }
3077
+ return a.join(r);
3078
+ }
3079
+ function Hn(e) {
3080
+ let t = /* @__PURE__ */ new Set();
3081
+ for (let n of e) for (let e of Object.keys(n)) t.add(e);
3082
+ return [...t];
3083
+ }
3084
+ function Un(e) {
3085
+ return e == null ? "" : typeof e == "string" ? e : typeof e == "number" || typeof e == "boolean" ? String(e) : JSON.stringify(e);
3086
+ }
3087
+ function $(e, t) {
3088
+ return e.includes(t) || e.includes("\"") || e.includes("\n") || e.includes("\r") ? `"${e.replace(/"/g, "\"\"")}"` : e;
3089
+ }
3090
+ //#endregion
3091
+ //#region src/io/jsonl.ts
3092
+ function Wn(e) {
3093
+ let t = [], n = e.split(/\r?\n/);
3094
+ for (let e = 0; e < n.length; e++) {
3095
+ let r = n[e];
3096
+ if (r.trim() !== "") try {
3097
+ t.push(JSON.parse(r));
3098
+ } catch (t) {
3099
+ throw SyntaxError(`parseJsonl: invalid JSON on line ${e + 1}: ${t.message}`, { cause: t });
3100
+ }
3101
+ }
3102
+ return t;
3103
+ }
3104
+ function Gn(e, t = "\n") {
3105
+ return e.map((e) => JSON.stringify(e)).join(t);
3106
+ }
3107
+ async function* Kn(e) {
3108
+ let t = "", n = 0;
3109
+ for await (let r of e) {
3110
+ t += r;
3111
+ let e;
3112
+ for (; (e = t.indexOf("\n")) >= 0;) {
3113
+ n++;
3114
+ let r = t.slice(0, e).replace(/\r$/, "");
3115
+ if (t = t.slice(e + 1), r.trim() !== "") try {
3116
+ yield JSON.parse(r);
3117
+ } catch (e) {
3118
+ throw SyntaxError(`parseJsonlStream: invalid JSON on line ${n}: ${e.message}`, { cause: e });
3119
+ }
3120
+ }
3121
+ }
3122
+ if (t.trim() !== "") {
3123
+ n++;
3124
+ try {
3125
+ yield JSON.parse(t);
3126
+ } catch (e) {
3127
+ throw SyntaxError(`parseJsonlStream: invalid JSON on line ${n}: ${e.message}`, { cause: e });
3128
+ }
3129
+ }
3130
+ }
3131
+ //#endregion
3132
+ //#region src/io/streams.ts
3133
+ function qn(e, t = {}) {
3134
+ let n = t.decodeAs === !1 ? null : t.decodeAs ?? "utf-8", r = n ? new TextDecoder(n) : null;
3135
+ return new Ln(async function* () {
3136
+ for await (let t of e) typeof t == "string" ? yield t : r ? yield r.decode(t, { stream: !0 }) : yield String(t);
3137
+ if (r) {
3138
+ let e = r.decode();
3139
+ e.length > 0 && (yield e);
3140
+ }
3141
+ });
3142
+ }
3143
+ function Jn(e) {
3144
+ return new Ln(async function* () {
3145
+ let t = "", n = new TextDecoder("utf-8");
3146
+ for await (let r of e) {
3147
+ t += typeof r == "string" ? r : n.decode(r, { stream: !0 });
3148
+ let e;
3149
+ for (; (e = t.indexOf("\n")) >= 0;) yield t.slice(0, e).replace(/\r$/, ""), t = t.slice(e + 1);
3150
+ }
3151
+ let r = t + n.decode();
3152
+ r.length > 0 && (yield r);
3153
+ });
3154
+ }
3155
+ //#endregion
3156
+ //#region src/collection/HigherOrderProxy.ts
3157
+ var Yn = [
3158
+ "average",
3159
+ "avg",
3160
+ "contains",
3161
+ "doesntContain",
3162
+ "each",
3163
+ "every",
3164
+ "filter",
3165
+ "first",
3166
+ "flatMap",
3167
+ "groupBy",
3168
+ "keyBy",
3169
+ "map",
3170
+ "max",
3171
+ "min",
3172
+ "partition",
3173
+ "reject",
3174
+ "skipUntil",
3175
+ "skipWhile",
3176
+ "some",
3177
+ "sortBy",
3178
+ "sortByDesc",
3179
+ "sum",
3180
+ "takeUntil",
3181
+ "takeWhile",
3182
+ "unique"
3183
+ ];
3184
+ function Xn(e, t) {
3185
+ let n = e[t];
3186
+ if (typeof n != "function") throw TypeError(`Higher-order proxy: method "${t}" not found on host.`);
3187
+ let r = n;
3188
+ return new Proxy({}, { get(t, n) {
3189
+ let i = (e) => {
3190
+ if (e == null) return;
3191
+ let t = e[n];
3192
+ return typeof t == "function" ? t.bind(e) : typeof n == "string" ? g(e, n) : t;
3193
+ };
3194
+ return new Proxy(i, {
3195
+ apply(t, n, a) {
3196
+ return r.call(e, (e) => {
3197
+ let t = i(e);
3198
+ return typeof t == "function" ? t(...a) : t;
3199
+ });
3200
+ },
3201
+ get(t, n) {
3202
+ return r.call(e, i);
3203
+ }
3204
+ });
3205
+ } });
3206
+ }
3207
+ //#endregion
3208
+ //#region src/index.ts
3209
+ var Zn = An;
3210
+ //#endregion
3211
+ export { Ln as AsyncCollection, Z as Collection, n as CollectionException, Yn as HIGHER_ORDER_TARGETS, r as ItemNotFoundException, Q as LazyCollection, p as MultipleItemsFoundException, i as UnexpectedValueException, f as applyMacroable, An as collect, Xn as createHigherOrderProxy, g as dataGet, te as dataSet, H as deepClone, _ as deepEqual, Zn as default, d as flushMacros, qn as fromReadable, u as getMacro, l as hasMacro, wn as isArrayable, ee as isFunction, h as isObjectLike, b as isOperator, m as isPlainObject, Rn as lazy, Jn as lines, v as looseEqual, Mn as mapWithConcurrency, Cn as operations, y as operatorForWhere, zn as parseCsv, Wn as parseJsonl, Kn as parseJsonlStream, c as registerMacro, Vn as toCsv, Gn as toJsonl, C as valueRetriever };