@dayme/alien-utils 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.
package/dist/index.js ADDED
@@ -0,0 +1,1068 @@
1
+ var Some = class e {
2
+ _tag = "Some";
3
+ constructor(e) {
4
+ this.value = e;
5
+ }
6
+ static of(t) {
7
+ return new e(t);
8
+ }
9
+ static collect(n) {
10
+ let r = [];
11
+ for (let e of n) {
12
+ if (e.isNone()) return None.instance();
13
+ r.push(e.unwrap());
14
+ }
15
+ return new e(r);
16
+ }
17
+ static partition(e) {
18
+ let n = [], r = [];
19
+ for (let i of e) i.isSome() ? n.push(i) : r.push(None.instance());
20
+ return [n, r];
21
+ }
22
+ isSome() {
23
+ return !0;
24
+ }
25
+ isNone() {
26
+ return !1;
27
+ }
28
+ unwrap() {
29
+ return this.value;
30
+ }
31
+ unwrapOr(e) {
32
+ return this.value;
33
+ }
34
+ unwrapOrElse(e) {
35
+ return this.value;
36
+ }
37
+ map(t) {
38
+ return new e(t(this.value));
39
+ }
40
+ andThen(e) {
41
+ return e(this.value);
42
+ }
43
+ match(e) {
44
+ return e.Some(this.value);
45
+ }
46
+ or(e) {
47
+ return this;
48
+ }
49
+ orElse(e) {
50
+ return this;
51
+ }
52
+ filter(e) {
53
+ return e(this.value) ? this : None.instance();
54
+ }
55
+ toString() {
56
+ return `Some(${String(this.value)})`;
57
+ }
58
+ toJSON() {
59
+ return {
60
+ some: !0,
61
+ value: this.value
62
+ };
63
+ }
64
+ }, None = class e {
65
+ _tag = "None";
66
+ static _instance = null;
67
+ constructor() {}
68
+ static instance() {
69
+ return e._instance === null && (e._instance = new e()), e._instance;
70
+ }
71
+ static of() {
72
+ return e.instance();
73
+ }
74
+ isSome() {
75
+ return !1;
76
+ }
77
+ isNone() {
78
+ return !0;
79
+ }
80
+ unwrap() {
81
+ throw Error("Called unwrap() on None");
82
+ }
83
+ unwrapOr(e) {
84
+ return e;
85
+ }
86
+ unwrapOrElse(e) {
87
+ return e();
88
+ }
89
+ andThen(t) {
90
+ return e.instance();
91
+ }
92
+ map(t) {
93
+ return e.instance();
94
+ }
95
+ match(e) {
96
+ return e.None;
97
+ }
98
+ or(e) {
99
+ return e;
100
+ }
101
+ orElse(e) {
102
+ return e();
103
+ }
104
+ filter(t) {
105
+ return e.instance();
106
+ }
107
+ toString() {
108
+ return "None";
109
+ }
110
+ toJSON() {
111
+ return { none: !0 };
112
+ }
113
+ }, Ok = class n {
114
+ _tag = "Ok";
115
+ constructor(e) {
116
+ this.value = e;
117
+ }
118
+ static of(e) {
119
+ return new n(e);
120
+ }
121
+ static collect(e) {
122
+ let t = [];
123
+ for (let n of e) {
124
+ if (n.isErr()) return n;
125
+ t.push(n.unwrap());
126
+ }
127
+ return new n(t);
128
+ }
129
+ static partition(e) {
130
+ let t = [], n = [];
131
+ for (let r of e) r.isOk() ? t.push(r) : n.push(r);
132
+ return [t, n];
133
+ }
134
+ isOk() {
135
+ return !0;
136
+ }
137
+ isErr() {
138
+ return !1;
139
+ }
140
+ unwrap() {
141
+ return this.value;
142
+ }
143
+ unwrapErr() {
144
+ throw Error("Called unwrapErr() on Ok");
145
+ }
146
+ unwrapOr(e) {
147
+ return this.value;
148
+ }
149
+ unwrapOrElse(e) {
150
+ return this.value;
151
+ }
152
+ map(e) {
153
+ return new n(e(this.value));
154
+ }
155
+ mapErr(e) {
156
+ return new n(this.value);
157
+ }
158
+ andThen(e) {
159
+ return e(this.value);
160
+ }
161
+ match(e) {
162
+ return e.Ok(this.value);
163
+ }
164
+ inspect(e) {
165
+ return e(this.value), this;
166
+ }
167
+ inspectErr(e) {
168
+ return this;
169
+ }
170
+ expect(e) {
171
+ return this.value;
172
+ }
173
+ expectErr(e) {
174
+ throw Error(e);
175
+ }
176
+ or(e) {
177
+ return this;
178
+ }
179
+ orElse(e) {
180
+ return this;
181
+ }
182
+ ok() {
183
+ return new Some(this.value);
184
+ }
185
+ err() {
186
+ return None.instance();
187
+ }
188
+ toString() {
189
+ return `Ok(${String(this.value)})`;
190
+ }
191
+ toJSON() {
192
+ return {
193
+ ok: !0,
194
+ value: this.value
195
+ };
196
+ }
197
+ }, Err = class n {
198
+ _tag = "Err";
199
+ constructor(e) {
200
+ this.error = e;
201
+ }
202
+ static of(e) {
203
+ return new n(e);
204
+ }
205
+ isOk() {
206
+ return !1;
207
+ }
208
+ isErr() {
209
+ return !0;
210
+ }
211
+ unwrap() {
212
+ throw Error("Called unwrap() on Err");
213
+ }
214
+ unwrapErr() {
215
+ return this.error;
216
+ }
217
+ unwrapOr(e) {
218
+ return e;
219
+ }
220
+ unwrapOrElse(e) {
221
+ return e(this.error);
222
+ }
223
+ map(e) {
224
+ return new n(this.error);
225
+ }
226
+ mapErr(e) {
227
+ return new n(e(this.error));
228
+ }
229
+ andThen(e) {
230
+ return new n(this.error);
231
+ }
232
+ match(e) {
233
+ return e.Err(this.error);
234
+ }
235
+ inspect(e) {
236
+ return this;
237
+ }
238
+ inspectErr(e) {
239
+ return e(this.error), this;
240
+ }
241
+ expect(e) {
242
+ throw Error(e);
243
+ }
244
+ expectErr(e) {
245
+ return this.error;
246
+ }
247
+ or(e) {
248
+ return e;
249
+ }
250
+ orElse(e) {
251
+ return e(this.error);
252
+ }
253
+ ok() {
254
+ return None.instance();
255
+ }
256
+ err() {
257
+ return new Some(this.error);
258
+ }
259
+ toString() {
260
+ return `Err(${String(this.error)})`;
261
+ }
262
+ toJSON() {
263
+ return {
264
+ ok: !1,
265
+ error: this.error
266
+ };
267
+ }
268
+ }, IterOp = /* @__PURE__ */ function(e) {
269
+ return e[e.Map = 1] = "Map", e[e.Filter = 2] = "Filter", e[e.FlatMap = 4] = "FlatMap", e[e.Flatten = 8] = "Flatten", e[e.Take = 16] = "Take", e[e.TakeWhile = 32] = "TakeWhile", e[e.Skip = 64] = "Skip", e[e.SkipWhile = 128] = "SkipWhile", e[e.Enumerate = 256] = "Enumerate", e[e.Zip = 512] = "Zip", e[e.Chain = 1024] = "Chain", e[e.StepBy = 2048] = "StepBy", e[e.Inspect = 4096] = "Inspect", e[e.Unique = 8192] = "Unique", e[e.UniqueBy = 16384] = "UniqueBy", e;
270
+ }(IterOp || {}), Iter = class n {
271
+ source;
272
+ ops;
273
+ opsMask;
274
+ constructor(e, t = [], n = 0) {
275
+ this.source = e, this.ops = t, this.opsMask = n;
276
+ }
277
+ get isArray() {
278
+ return Array.isArray(this.source);
279
+ }
280
+ get isTypedArray() {
281
+ return this.source instanceof Int8Array || this.source instanceof Uint8Array || this.source instanceof Uint8ClampedArray || this.source instanceof Int16Array || this.source instanceof Uint16Array || this.source instanceof Int32Array || this.source instanceof Uint32Array || this.source instanceof Float32Array || this.source instanceof Float64Array;
282
+ }
283
+ static from(e) {
284
+ return new n(e);
285
+ }
286
+ static range(e, t, r = 1) {
287
+ return new n({ *[Symbol.iterator]() {
288
+ if (r > 0) for (let n = e; n < t; n += r) yield n;
289
+ else if (r < 0) for (let n = e; n > t; n += r) yield n;
290
+ } });
291
+ }
292
+ static repeat(e) {
293
+ return new n({ *[Symbol.iterator]() {
294
+ for (;;) yield e;
295
+ } });
296
+ }
297
+ static generate(e) {
298
+ return new n({ *[Symbol.iterator]() {
299
+ for (;;) yield e();
300
+ } });
301
+ }
302
+ static empty() {
303
+ return new n({ *[Symbol.iterator]() {} });
304
+ }
305
+ static once(e) {
306
+ return new n({ *[Symbol.iterator]() {
307
+ yield e;
308
+ } });
309
+ }
310
+ [Symbol.iterator]() {
311
+ return this.ops.length === 0 ? this.source[Symbol.iterator]() : this.executePipeline();
312
+ }
313
+ *executePipeline() {
314
+ let e = (this.opsMask & IterOp.Filter) !== 0, t = (this.opsMask & IterOp.Take) !== 0, n = (this.opsMask & IterOp.TakeWhile) !== 0, r = (this.opsMask & IterOp.Skip) !== 0, a = (this.opsMask & IterOp.SkipWhile) !== 0, o = (this.opsMask & IterOp.StepBy) !== 0, s = (this.opsMask & IterOp.Inspect) !== 0, c = (this.opsMask & IterOp.Unique) !== 0, l = (this.opsMask & IterOp.UniqueBy) !== 0, u = (this.opsMask & IterOp.Map) !== 0, d = (this.opsMask & IterOp.FlatMap) !== 0, f = (this.opsMask & IterOp.Flatten) !== 0;
315
+ if (u && !e && !d && !f && !c && !l) {
316
+ yield* this.executeMapOnlyPipeline();
317
+ return;
318
+ }
319
+ let p = this.source[Symbol.iterator](), m = 0, h = 0, g = null, _ = 0, v = null, y = null, b = !0, x = null, S = null, C = null, w = null;
320
+ if (t || r || o || n || a || c || l) for (let e of this.ops) e.type === "take" && typeof e.param == "number" ? g = e.param : e.type === "skip" && typeof e.param == "number" ? v = e.param : e.type === "stepBy" && typeof e.param == "number" ? y = e.param : e.type === "takeWhile" ? S = e.fn : e.type === "skipWhile" ? x = e.fn : e.type === "unique" ? C = /* @__PURE__ */ new Set() : e.type === "uniqueBy" && (C = /* @__PURE__ */ new Set(), w = e.fn);
321
+ mainLoop: for (;;) {
322
+ let e = p.next();
323
+ if (e.done) break;
324
+ let n = e.value, i = m++;
325
+ if (r && v !== null && _ < v) {
326
+ _++;
327
+ continue;
328
+ }
329
+ if (a && b && x) {
330
+ if (x(n, i)) continue;
331
+ b = !1;
332
+ }
333
+ if (!(o && y !== null && i % y !== 0)) {
334
+ for (let e = 0; e < this.ops.length; e++) {
335
+ let r = this.ops[e];
336
+ if (d && r.type === "flatMap") {
337
+ let a = r.fn(n, i);
338
+ for (let n of a) {
339
+ let r = n, a = !0;
340
+ for (let t = e + 1; t < this.ops.length; t++) {
341
+ let e = this.ops[t];
342
+ switch (e.type) {
343
+ case "map":
344
+ r = e.fn(r, i);
345
+ break;
346
+ case "filter":
347
+ if (!e.fn(r, i)) {
348
+ a = !1;
349
+ break;
350
+ }
351
+ break;
352
+ case "inspect":
353
+ e.fn(r, i);
354
+ break;
355
+ case "unique":
356
+ if (C.has(r)) {
357
+ a = !1;
358
+ break;
359
+ }
360
+ C.add(r);
361
+ break;
362
+ case "uniqueBy":
363
+ if (w) {
364
+ let e = w(r);
365
+ if (C.has(e)) {
366
+ a = !1;
367
+ break;
368
+ }
369
+ C.add(e);
370
+ }
371
+ break;
372
+ }
373
+ if (!a) break;
374
+ }
375
+ if (a) {
376
+ if (t && g !== null) {
377
+ if (h >= g) break mainLoop;
378
+ h++;
379
+ }
380
+ yield r;
381
+ }
382
+ }
383
+ continue mainLoop;
384
+ } else if (f && r.type === "flatten") {
385
+ for (let r of n) {
386
+ let n = r, a = !0;
387
+ for (let t = e + 1; t < this.ops.length; t++) {
388
+ let e = this.ops[t];
389
+ switch (e.type) {
390
+ case "map":
391
+ n = e.fn(n, i);
392
+ break;
393
+ case "filter":
394
+ if (!e.fn(n, i)) {
395
+ a = !1;
396
+ break;
397
+ }
398
+ break;
399
+ case "inspect":
400
+ e.fn(n, i);
401
+ break;
402
+ case "unique":
403
+ if (C.has(n)) {
404
+ a = !1;
405
+ break;
406
+ }
407
+ C.add(n);
408
+ break;
409
+ case "uniqueBy":
410
+ if (w) {
411
+ let e = w(n);
412
+ if (C.has(e)) {
413
+ a = !1;
414
+ break;
415
+ }
416
+ C.add(e);
417
+ }
418
+ break;
419
+ }
420
+ if (!a) break;
421
+ }
422
+ if (a) {
423
+ if (t && g !== null) {
424
+ if (h >= g) break mainLoop;
425
+ h++;
426
+ }
427
+ yield n;
428
+ }
429
+ }
430
+ continue mainLoop;
431
+ }
432
+ switch (r.type) {
433
+ case "map":
434
+ n = r.fn(n, i);
435
+ break;
436
+ case "filter":
437
+ if (!r.fn(n, i)) continue mainLoop;
438
+ break;
439
+ case "take": break;
440
+ case "takeWhile":
441
+ if (S && !S(n, i)) break mainLoop;
442
+ break;
443
+ case "skip": break;
444
+ case "skipWhile": break;
445
+ case "enumerate":
446
+ n = [i, n];
447
+ break;
448
+ case "zip": break;
449
+ case "chain": break;
450
+ case "inspect":
451
+ s && r.fn(n, i);
452
+ break;
453
+ case "unique":
454
+ if (c && C.has(n)) continue mainLoop;
455
+ c && C.add(n);
456
+ break;
457
+ case "uniqueBy":
458
+ if (l && w) {
459
+ let e = w(n);
460
+ if (C.has(e)) continue mainLoop;
461
+ C.add(e);
462
+ }
463
+ break;
464
+ }
465
+ }
466
+ if (t && g !== null) {
467
+ if (h >= g) break;
468
+ h++;
469
+ }
470
+ yield n;
471
+ }
472
+ }
473
+ }
474
+ *executeMapOnlyPipeline() {
475
+ let e = this.source[Symbol.iterator](), t = 0, n = 0, r = null, i = 0, a = null, o = null, s = !0, c = null, l = null;
476
+ for (let e of this.ops) e.type === "take" && typeof e.param == "number" ? r = e.param : e.type === "skip" && typeof e.param == "number" ? a = e.param : e.type === "stepBy" && typeof e.param == "number" ? o = e.param : e.type === "takeWhile" ? l = e.fn : e.type === "skipWhile" && (c = e.fn);
477
+ mainLoop: for (;;) {
478
+ let u = e.next();
479
+ if (u.done) break;
480
+ let d = u.value, f = t++;
481
+ if (a !== null && i < a) {
482
+ i++;
483
+ continue;
484
+ }
485
+ if (s && c) {
486
+ if (c(d, f)) continue;
487
+ s = !1;
488
+ }
489
+ if (!(o !== null && f % o !== 0)) {
490
+ for (let e of this.ops) switch (e.type) {
491
+ case "map":
492
+ d = e.fn(d, f);
493
+ break;
494
+ case "takeWhile":
495
+ if (l && !l(d, f)) break mainLoop;
496
+ break;
497
+ case "enumerate":
498
+ d = [f, d];
499
+ break;
500
+ case "inspect":
501
+ e.fn(d, f);
502
+ break;
503
+ }
504
+ if (r !== null) {
505
+ if (n >= r) break;
506
+ n++;
507
+ }
508
+ yield d;
509
+ }
510
+ }
511
+ }
512
+ map(e) {
513
+ return new n(this.source, [...this.ops, {
514
+ type: "map",
515
+ fn: e
516
+ }], this.opsMask | IterOp.Map);
517
+ }
518
+ filter(e) {
519
+ return new n(this.source, [...this.ops, {
520
+ type: "filter",
521
+ fn: e
522
+ }], this.opsMask | IterOp.Filter);
523
+ }
524
+ flatMap(e) {
525
+ return new n(this.source, [...this.ops, {
526
+ type: "flatMap",
527
+ fn: e
528
+ }], this.opsMask | IterOp.FlatMap);
529
+ }
530
+ flatten() {
531
+ return new n(this.source, [...this.ops, {
532
+ type: "flatten",
533
+ fn: () => {}
534
+ }], this.opsMask | IterOp.Flatten);
535
+ }
536
+ take(e) {
537
+ return new n(this.source, [...this.ops, {
538
+ type: "take",
539
+ fn: () => {},
540
+ param: e
541
+ }], this.opsMask | IterOp.Take);
542
+ }
543
+ takeWhile(e) {
544
+ return new n(this.source, [...this.ops, {
545
+ type: "takeWhile",
546
+ fn: e
547
+ }], this.opsMask | IterOp.TakeWhile);
548
+ }
549
+ skip(e) {
550
+ return new n(this.source, [...this.ops, {
551
+ type: "skip",
552
+ fn: () => {},
553
+ param: e
554
+ }], this.opsMask | IterOp.Skip);
555
+ }
556
+ skipWhile(e) {
557
+ return new n(this.source, [...this.ops, {
558
+ type: "skipWhile",
559
+ fn: e
560
+ }], this.opsMask | IterOp.SkipWhile);
561
+ }
562
+ enumerate() {
563
+ return new n(this.source, [...this.ops, {
564
+ type: "enumerate",
565
+ fn: () => {}
566
+ }], this.opsMask | IterOp.Enumerate);
567
+ }
568
+ zip(e) {
569
+ let t = this;
570
+ return new n({ *[Symbol.iterator]() {
571
+ let n = t[Symbol.iterator](), r = e[Symbol.iterator]();
572
+ for (;;) {
573
+ let e = n.next(), t = r.next();
574
+ if (e.done || t.done) break;
575
+ yield [e.value, t.value];
576
+ }
577
+ } });
578
+ }
579
+ chain(e) {
580
+ let t = this;
581
+ return new n({ *[Symbol.iterator]() {
582
+ yield* t, yield* e;
583
+ } });
584
+ }
585
+ stepBy(e) {
586
+ if (e <= 0) throw Error("step must be positive");
587
+ return new n(this.source, [...this.ops, {
588
+ type: "stepBy",
589
+ fn: () => {},
590
+ param: e
591
+ }], this.opsMask | IterOp.StepBy);
592
+ }
593
+ inspect(e) {
594
+ return new n(this.source, [...this.ops, {
595
+ type: "inspect",
596
+ fn: e
597
+ }], this.opsMask | IterOp.Inspect);
598
+ }
599
+ unique() {
600
+ return new n(this.source, [...this.ops, {
601
+ type: "unique",
602
+ fn: () => {}
603
+ }], this.opsMask | IterOp.Unique);
604
+ }
605
+ uniqueBy(e) {
606
+ return new n(this.source, [...this.ops, {
607
+ type: "uniqueBy",
608
+ fn: e
609
+ }], this.opsMask | IterOp.UniqueBy);
610
+ }
611
+ collect() {
612
+ if (this.ops.length === 0 && this.isArray) return this.source.slice();
613
+ if (this.isTypedArray && (this.opsMask & IterOp.Map) !== 0 && (this.opsMask & ~IterOp.Map & ~IterOp.Take & ~IterOp.Skip & ~IterOp.StepBy & ~IterOp.TakeWhile & ~IterOp.SkipWhile) === 0) return this.collectTypedArrayMapOnly();
614
+ let e = null;
615
+ for (let t of this.ops) if (t.type === "take" && typeof t.param == "number") {
616
+ e = t.param;
617
+ break;
618
+ }
619
+ let t = [];
620
+ e !== null && e > 0 && (t.length = e);
621
+ let n = 0;
622
+ for (let r of this) e !== null && n < e ? t[n++] = r : t.push(r);
623
+ return e !== null && n < e && (t.length = n), t;
624
+ }
625
+ collectTypedArrayMapOnly() {
626
+ let e = this.source, t = e.length, n = 0, r = null, i = 0, a = null, o = null, s = 0;
627
+ for (let e of this.ops) e.type === "take" && typeof e.param == "number" ? r = e.param : e.type === "skip" && typeof e.param == "number" ? a = e.param : e.type === "stepBy" && typeof e.param == "number" && (o = e.param);
628
+ let c = [], l = 0;
629
+ for (; l < t; l++) {
630
+ if (a !== null && i < a) {
631
+ i++;
632
+ continue;
633
+ }
634
+ if (o !== null && s++ % o !== 0) continue;
635
+ if (r !== null && n >= r) break;
636
+ let t = e[l];
637
+ for (let e of this.ops) if (e.type === "map") {
638
+ let n = e.fn;
639
+ t = n(t, l);
640
+ }
641
+ c[n++] = t;
642
+ }
643
+ return c;
644
+ }
645
+ fold(e, t) {
646
+ if (this.ops.length === 0 && this.isArray) {
647
+ let n = this.source, r = n.length, i = e;
648
+ for (let e = 0; e < r; e++) i = t(i, n[e], e);
649
+ return i;
650
+ }
651
+ let n = e, r = 0;
652
+ for (let e of this) n = t(n, e, r++);
653
+ return n;
654
+ }
655
+ foldRight(e, t) {
656
+ let n = this.collect(), r = e;
657
+ for (let e = n.length - 1; e >= 0; e--) r = t(r, n[e], e);
658
+ return r;
659
+ }
660
+ reduce(n) {
661
+ if (this.ops.length === 0 && this.isArray) {
662
+ let r = this.source, i = r.length;
663
+ if (i === 0) return None.instance();
664
+ let a = r[0];
665
+ for (let e = 1; e < i; e++) a = n(a, r[e], e);
666
+ return new Some(a);
667
+ }
668
+ let r = this[Symbol.iterator](), i = r.next();
669
+ if (i.done) return None.instance();
670
+ let a = i.value, o = 1;
671
+ for (;;) {
672
+ let e = r.next();
673
+ if (e.done) break;
674
+ a = n(a, e.value, o++);
675
+ }
676
+ return new Some(a);
677
+ }
678
+ forEach(e) {
679
+ if (this.ops.length === 0 && this.isArray) {
680
+ let t = this.source, n = t.length;
681
+ for (let r = 0; r < n; r++) e(t[r], r);
682
+ return;
683
+ }
684
+ let t = 0;
685
+ for (let n of this) e(n, t++);
686
+ }
687
+ count() {
688
+ if (this.ops.length === 0 && this.isArray) return this.source.length;
689
+ let e = 0;
690
+ for (let t of this) e++;
691
+ return e;
692
+ }
693
+ find(n) {
694
+ if (this.ops.length === 0 && this.isArray) {
695
+ let r = this.source, i = r.length;
696
+ for (let t = 0; t < i; t++) if (n(r[t], t)) return new Some(r[t]);
697
+ return None.instance();
698
+ }
699
+ let r = 0;
700
+ for (let t of this) if (n(t, r++)) return new Some(t);
701
+ return None.instance();
702
+ }
703
+ findJS(e) {
704
+ let t = this.find(e);
705
+ return t.isSome() ? t.unwrap() : void 0;
706
+ }
707
+ position(n) {
708
+ if (this.ops.length === 0 && this.isArray) {
709
+ let r = this.source, i = r.length;
710
+ for (let t = 0; t < i; t++) if (n(r[t], t)) return new Some(t);
711
+ return None.instance();
712
+ }
713
+ let r = 0;
714
+ for (let t of this) {
715
+ if (n(t, r)) return new Some(r);
716
+ r++;
717
+ }
718
+ return None.instance();
719
+ }
720
+ findIndex(e) {
721
+ let t = this.position(e);
722
+ return t.isSome() ? t.unwrap() : -1;
723
+ }
724
+ all(e) {
725
+ if (this.ops.length === 0 && this.isArray) {
726
+ let t = this.source, n = t.length;
727
+ for (let r = 0; r < n; r++) if (!e(t[r], r)) return !1;
728
+ return !0;
729
+ }
730
+ let t = 0;
731
+ for (let n of this) if (!e(n, t++)) return !1;
732
+ return !0;
733
+ }
734
+ everyJS(e) {
735
+ return this.all(e);
736
+ }
737
+ any(e) {
738
+ if (this.ops.length === 0 && this.isArray) {
739
+ let t = this.source, n = t.length;
740
+ for (let r = 0; r < n; r++) if (e(t[r], r)) return !0;
741
+ return !1;
742
+ }
743
+ let t = 0;
744
+ for (let n of this) if (e(n, t++)) return !0;
745
+ return !1;
746
+ }
747
+ someJS(e) {
748
+ return this.any(e);
749
+ }
750
+ partition(e) {
751
+ let t = [], n = [], r = 0;
752
+ for (let i of this) e(i, r++) ? t.push(i) : n.push(i);
753
+ return [t, n];
754
+ }
755
+ first() {
756
+ if (this.ops.length === 0 && this.isArray) {
757
+ let n = this.source;
758
+ return n.length > 0 ? new Some(n[0]) : None.instance();
759
+ }
760
+ for (let t of this) return new Some(t);
761
+ return None.instance();
762
+ }
763
+ last() {
764
+ if (this.ops.length === 0 && this.isArray) {
765
+ let n = this.source, r = n.length;
766
+ return r > 0 ? new Some(n[r - 1]) : None.instance();
767
+ }
768
+ let n = None.instance();
769
+ for (let t of this) n = new Some(t);
770
+ return n;
771
+ }
772
+ nth(n) {
773
+ if (this.ops.length === 0 && this.isArray) {
774
+ let r = this.source;
775
+ return n >= 0 && n < r.length ? new Some(r[n]) : None.instance();
776
+ }
777
+ let r = 0;
778
+ for (let t of this) {
779
+ if (r === n) return new Some(t);
780
+ r++;
781
+ }
782
+ return None.instance();
783
+ }
784
+ includes(e, t) {
785
+ let n = 0;
786
+ for (let r of this) {
787
+ if (t !== void 0 && n < t) {
788
+ n++;
789
+ continue;
790
+ }
791
+ if (r === e) return !0;
792
+ n++;
793
+ }
794
+ return !1;
795
+ }
796
+ max() {
797
+ let n = None.instance();
798
+ for (let t of this) (n.isNone() || t > n.unwrap()) && (n = new Some(t));
799
+ return n;
800
+ }
801
+ min() {
802
+ let n = None.instance();
803
+ for (let t of this) (n.isNone() || t < n.unwrap()) && (n = new Some(t));
804
+ return n;
805
+ }
806
+ maxBy(n) {
807
+ let r = None.instance();
808
+ for (let t of this) {
809
+ let i = n(t);
810
+ if (r.isNone()) r = new Some([t, i]);
811
+ else {
812
+ let [, n] = r.unwrap();
813
+ i > n && (r = new Some([t, i]));
814
+ }
815
+ }
816
+ return r.map(([e]) => e);
817
+ }
818
+ minBy(n) {
819
+ let r = None.instance();
820
+ for (let t of this) {
821
+ let i = n(t);
822
+ if (r.isNone()) r = new Some([t, i]);
823
+ else {
824
+ let [, n] = r.unwrap();
825
+ i < n && (r = new Some([t, i]));
826
+ }
827
+ }
828
+ return r.map(([e]) => e);
829
+ }
830
+ sum() {
831
+ if (this.ops.length === 0 && this.isArray) {
832
+ let e = this.source, t = e.length, n = 0;
833
+ for (let r = 0; r < t; r++) n += e[r];
834
+ return n;
835
+ }
836
+ return this.fold(0, (e, t) => e + t);
837
+ }
838
+ product() {
839
+ return this.fold(1, (e, t) => e * t);
840
+ }
841
+ join(e = "") {
842
+ return this.collect().join(e);
843
+ }
844
+ toSet() {
845
+ return new Set(this);
846
+ }
847
+ toMap() {
848
+ return new Map(this);
849
+ }
850
+ groupBy(e) {
851
+ let t = /* @__PURE__ */ new Map();
852
+ for (let n of this) {
853
+ let r = e(n), i = t.get(r);
854
+ i ? i.push(n) : t.set(r, [n]);
855
+ }
856
+ return t;
857
+ }
858
+ sort(e) {
859
+ return new n(this.collect().sort(e));
860
+ }
861
+ sortBy(e) {
862
+ return new n(this.collect().sort((t, n) => {
863
+ let r = e(t), i = e(n);
864
+ return r < i ? -1 : r > i ? 1 : 0;
865
+ }));
866
+ }
867
+ reverse() {
868
+ return new n(this.collect().reverse());
869
+ }
870
+ };
871
+ function match(e) {
872
+ return function(t) {
873
+ let n = String(t);
874
+ return n in e ? e[n](t) : e._(t);
875
+ };
876
+ }
877
+ function dispatch() {
878
+ let e = [], t = null;
879
+ function n(n) {
880
+ for (let { guard: t, handler: r } of e) if (t(n)) return r(n);
881
+ if (t) return t(n);
882
+ throw Error(`No handler registered for value: ${n}`);
883
+ }
884
+ return n.on = function(t, r) {
885
+ return e.push({
886
+ guard: t,
887
+ handler: r
888
+ }), n;
889
+ }, n.default = function(e) {
890
+ return t = e, n;
891
+ }, n;
892
+ }
893
+ const isNumber = (e) => typeof e == "number", isString = (e) => typeof e == "string", isArray = (e) => Array.isArray(e), isBoolean = (e) => typeof e == "boolean", isNull = (e) => e === null, isUndefined = (e) => e === void 0, isObject = (e) => typeof e == "object" && !!e && !Array.isArray(e), isFunction = (e) => typeof e == "function";
894
+ var Bimap = class e {
895
+ _forward;
896
+ _reverse;
897
+ constructor() {
898
+ this._forward = /* @__PURE__ */ new Map(), this._reverse = /* @__PURE__ */ new Map();
899
+ }
900
+ static from(t) {
901
+ let n = new e();
902
+ for (let [e, r] of t) n.set(e, r);
903
+ return n;
904
+ }
905
+ static of(...t) {
906
+ let n = new e();
907
+ for (let [e, r] of t) n.set(e, r);
908
+ return n;
909
+ }
910
+ set(e, t) {
911
+ let n = this._forward.get(e);
912
+ n !== void 0 && this._reverse.delete(n);
913
+ let r = this._reverse.get(t);
914
+ return r !== void 0 && this._forward.delete(r), this._forward.set(e, t), this._reverse.set(t, e), this;
915
+ }
916
+ get(e) {
917
+ return this._forward.get(e);
918
+ }
919
+ getReverse(e) {
920
+ return this._reverse.get(e);
921
+ }
922
+ has(e) {
923
+ return this._forward.has(e);
924
+ }
925
+ hasValue(e) {
926
+ return this._reverse.has(e);
927
+ }
928
+ delete(e) {
929
+ let t = this._forward.get(e);
930
+ return t === void 0 ? !1 : (this._forward.delete(e), this._reverse.delete(t), !0);
931
+ }
932
+ deleteValue(e) {
933
+ let t = this._reverse.get(e);
934
+ return t === void 0 ? !1 : (this._reverse.delete(e), this._forward.delete(t), !0);
935
+ }
936
+ clear() {
937
+ this._forward.clear(), this._reverse.clear();
938
+ }
939
+ get size() {
940
+ return this._forward.size;
941
+ }
942
+ keys() {
943
+ return Array.from(this._forward.keys());
944
+ }
945
+ values() {
946
+ return Array.from(this._forward.values());
947
+ }
948
+ entries() {
949
+ return Array.from(this._forward.entries());
950
+ }
951
+ reverseEntries() {
952
+ return Array.from(this._reverse.entries());
953
+ }
954
+ forEach(e) {
955
+ this._forward.forEach((t, n) => {
956
+ e(t, n, this);
957
+ });
958
+ }
959
+ forEachReverse(e) {
960
+ this._reverse.forEach((t, n) => {
961
+ e(t, n, this);
962
+ });
963
+ }
964
+ clone() {
965
+ let t = new e();
966
+ return this._forward.forEach((e, n) => {
967
+ t.set(n, e);
968
+ }), t;
969
+ }
970
+ toString() {
971
+ return `Bimap { ${this.entries().map(([e, t]) => `${String(e)} => ${String(t)}`).join(", ")} }`;
972
+ }
973
+ toJSON() {
974
+ return {
975
+ forward: this.entries(),
976
+ reverse: this.reverseEntries()
977
+ };
978
+ }
979
+ }, Stack = class n {
980
+ items = [];
981
+ push(e) {
982
+ return this.items.push(e), this;
983
+ }
984
+ pop() {
985
+ return this.isEmpty() ? None.instance() : new Some(this.items.pop());
986
+ }
987
+ peek() {
988
+ return this.isEmpty() ? None.instance() : new Some(this.items[this.items.length - 1]);
989
+ }
990
+ get size() {
991
+ return this.items.length;
992
+ }
993
+ isEmpty() {
994
+ return this.items.length === 0;
995
+ }
996
+ clear() {
997
+ this.items = [];
998
+ }
999
+ [Symbol.iterator]() {
1000
+ let e = this.items.length - 1;
1001
+ return { next: () => e < 0 ? {
1002
+ value: void 0,
1003
+ done: !0
1004
+ } : {
1005
+ value: this.items[e--],
1006
+ done: !1
1007
+ } };
1008
+ }
1009
+ static from(e) {
1010
+ let t = new n();
1011
+ for (let n of e) t.push(n);
1012
+ return t;
1013
+ }
1014
+ }, Queue = class n {
1015
+ buffer;
1016
+ head = 0;
1017
+ tail = 0;
1018
+ count = 0;
1019
+ constructor(e = 16) {
1020
+ if (e < 1) throw Error("Initial capacity must be at least 1");
1021
+ this.buffer = Array.from({ length: e });
1022
+ }
1023
+ enqueue(e) {
1024
+ this.count === this.buffer.length && this.resize(), this.buffer[this.tail] = e, this.tail = (this.tail + 1) % this.buffer.length, this.count++;
1025
+ }
1026
+ dequeue() {
1027
+ if (this.isEmpty()) return None.instance();
1028
+ let n = this.buffer[this.head];
1029
+ return this.buffer[this.head] = void 0, this.head = (this.head + 1) % this.buffer.length, this.count--, new Some(n);
1030
+ }
1031
+ peek() {
1032
+ return this.isEmpty() ? None.instance() : new Some(this.buffer[this.head]);
1033
+ }
1034
+ get size() {
1035
+ return this.count;
1036
+ }
1037
+ isEmpty() {
1038
+ return this.count === 0;
1039
+ }
1040
+ clear() {
1041
+ this.buffer.fill(void 0), this.head = 0, this.tail = 0, this.count = 0;
1042
+ }
1043
+ resize() {
1044
+ let e = Array.from({ length: this.buffer.length * 2 });
1045
+ for (let t = 0; t < this.count; t++) e[t] = this.buffer[(this.head + t) % this.buffer.length];
1046
+ this.buffer = e, this.head = 0, this.tail = this.count;
1047
+ }
1048
+ [Symbol.iterator]() {
1049
+ let e = 0;
1050
+ return { next: () => {
1051
+ if (e >= this.count) return {
1052
+ value: void 0,
1053
+ done: !0
1054
+ };
1055
+ let t = this.buffer[(this.head + e) % this.buffer.length];
1056
+ return e++, {
1057
+ value: t,
1058
+ done: !1
1059
+ };
1060
+ } };
1061
+ }
1062
+ static from(e) {
1063
+ let t = new n();
1064
+ for (let n of e) t.enqueue(n);
1065
+ return t;
1066
+ }
1067
+ };
1068
+ export { Bimap, Err, Iter, None, Ok, Queue, Some, Stack, dispatch, isArray, isBoolean, isFunction, isNull, isNumber, isObject, isString, isUndefined, match };