typetify 1.0.0 → 2.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 (47) hide show
  1. package/dist/chunk-7G4ZSMQX.js +470 -0
  2. package/dist/chunk-7G4ZSMQX.js.map +1 -0
  3. package/dist/chunk-CWHYQWNU.mjs +224 -0
  4. package/dist/chunk-CWHYQWNU.mjs.map +1 -0
  5. package/dist/{chunk-JAOGY4JO.mjs → chunk-FEX5C4OH.mjs} +2 -2
  6. package/dist/chunk-FEX5C4OH.mjs.map +1 -0
  7. package/dist/chunk-FN553YPU.js +441 -0
  8. package/dist/chunk-FN553YPU.js.map +1 -0
  9. package/dist/chunk-FT2EK4AM.mjs +420 -0
  10. package/dist/chunk-FT2EK4AM.mjs.map +1 -0
  11. package/dist/chunk-N6IUADIP.mjs +414 -0
  12. package/dist/chunk-N6IUADIP.mjs.map +1 -0
  13. package/dist/chunk-OKB3MS5F.js +547 -0
  14. package/dist/chunk-OKB3MS5F.js.map +1 -0
  15. package/dist/chunk-POD52NJ3.mjs +526 -0
  16. package/dist/chunk-POD52NJ3.mjs.map +1 -0
  17. package/dist/{chunk-SIA5BSVY.js → chunk-S535LAXW.js} +2 -2
  18. package/dist/chunk-S535LAXW.js.map +1 -0
  19. package/dist/chunk-X55EORNF.js +259 -0
  20. package/dist/chunk-X55EORNF.js.map +1 -0
  21. package/dist/index.d.mts +995 -28
  22. package/dist/index.d.ts +995 -28
  23. package/dist/index.js +869 -23
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.mjs +838 -17
  26. package/dist/index.mjs.map +1 -1
  27. package/dist/iterator/index.js +77 -514
  28. package/dist/iterator/index.js.map +1 -1
  29. package/dist/iterator/index.mjs +1 -499
  30. package/dist/iterator/index.mjs.map +1 -1
  31. package/dist/logic/index.js +193 -408
  32. package/dist/logic/index.js.map +1 -1
  33. package/dist/logic/index.mjs +1 -364
  34. package/dist/logic/index.mjs.map +1 -1
  35. package/dist/narrowing/index.js +133 -212
  36. package/dist/narrowing/index.js.map +1 -1
  37. package/dist/narrowing/index.mjs +1 -183
  38. package/dist/narrowing/index.mjs.map +1 -1
  39. package/dist/schema/index.js +102 -402
  40. package/dist/schema/index.js.map +1 -1
  41. package/dist/schema/index.mjs +2 -381
  42. package/dist/schema/index.mjs.map +1 -1
  43. package/dist/typed/index.js +47 -47
  44. package/dist/typed/index.mjs +1 -1
  45. package/package.json +1 -1
  46. package/dist/chunk-JAOGY4JO.mjs.map +0 -1
  47. package/dist/chunk-SIA5BSVY.js.map +0 -1
@@ -0,0 +1,526 @@
1
+ import { __export } from './chunk-J5LGTIGS.mjs';
2
+
3
+ // src/iterator/index.ts
4
+ var iterator_exports = {};
5
+ __export(iterator_exports, {
6
+ createIterator: () => createIterator,
7
+ cycle: () => cycle,
8
+ enumerate: () => enumerate,
9
+ fromAsync: () => fromAsync,
10
+ iterEvery: () => every,
11
+ iterFind: () => find,
12
+ iterForEach: () => forEach,
13
+ iterReduce: () => reduce,
14
+ iterSome: () => some,
15
+ lazyChunk: () => chunk,
16
+ lazyFilter: () => filter,
17
+ lazyFlatten: () => flatten,
18
+ lazyMap: () => map,
19
+ lazyRange: () => range,
20
+ lazySkip: () => skip,
21
+ lazyTake: () => take,
22
+ lazyZip: () => zip,
23
+ repeat: () => repeat,
24
+ toArray: () => toArray
25
+ });
26
+
27
+ // src/iterator/createIterator.ts
28
+ function createIterator(source) {
29
+ const getIterator = () => {
30
+ if (typeof source === "function") {
31
+ return source();
32
+ }
33
+ return source[Symbol.iterator]();
34
+ };
35
+ return {
36
+ [Symbol.iterator]() {
37
+ return getIterator();
38
+ },
39
+ map(fn) {
40
+ const self = this;
41
+ return createIterator(function* () {
42
+ let index = 0;
43
+ for (const value of self) {
44
+ yield fn(value, index++);
45
+ }
46
+ });
47
+ },
48
+ filter(predicate) {
49
+ const self = this;
50
+ return createIterator(function* () {
51
+ let index = 0;
52
+ for (const value of self) {
53
+ if (predicate(value, index++)) {
54
+ yield value;
55
+ }
56
+ }
57
+ });
58
+ },
59
+ take(n) {
60
+ const self = this;
61
+ return createIterator(function* () {
62
+ let count = 0;
63
+ for (const value of self) {
64
+ if (count >= n) break;
65
+ yield value;
66
+ count++;
67
+ }
68
+ });
69
+ },
70
+ skip(n) {
71
+ const self = this;
72
+ return createIterator(function* () {
73
+ let count = 0;
74
+ for (const value of self) {
75
+ if (count >= n) {
76
+ yield value;
77
+ }
78
+ count++;
79
+ }
80
+ });
81
+ },
82
+ takeWhile(predicate) {
83
+ const self = this;
84
+ return createIterator(function* () {
85
+ for (const value of self) {
86
+ if (!predicate(value)) break;
87
+ yield value;
88
+ }
89
+ });
90
+ },
91
+ skipWhile(predicate) {
92
+ const self = this;
93
+ return createIterator(function* () {
94
+ let skipping = true;
95
+ for (const value of self) {
96
+ if (skipping && predicate(value)) continue;
97
+ skipping = false;
98
+ yield value;
99
+ }
100
+ });
101
+ },
102
+ flatMap(fn) {
103
+ const self = this;
104
+ return createIterator(function* () {
105
+ for (const value of self) {
106
+ yield* fn(value);
107
+ }
108
+ });
109
+ },
110
+ flatten() {
111
+ const self = this;
112
+ return createIterator(function* () {
113
+ for (const value of self) {
114
+ yield* value;
115
+ }
116
+ });
117
+ },
118
+ chunk(size) {
119
+ const self = this;
120
+ return createIterator(function* () {
121
+ let chunk2 = [];
122
+ for (const value of self) {
123
+ chunk2.push(value);
124
+ if (chunk2.length === size) {
125
+ yield chunk2;
126
+ chunk2 = [];
127
+ }
128
+ }
129
+ if (chunk2.length > 0) {
130
+ yield chunk2;
131
+ }
132
+ });
133
+ },
134
+ enumerate() {
135
+ const self = this;
136
+ return createIterator(function* () {
137
+ let index = 0;
138
+ for (const value of self) {
139
+ yield [index++, value];
140
+ }
141
+ });
142
+ },
143
+ zip(other) {
144
+ const self = this;
145
+ return createIterator(function* () {
146
+ const iter1 = self[Symbol.iterator]();
147
+ const iter2 = other[Symbol.iterator]();
148
+ while (true) {
149
+ const r1 = iter1.next();
150
+ const r2 = iter2.next();
151
+ if (r1.done || r2.done) break;
152
+ yield [r1.value, r2.value];
153
+ }
154
+ });
155
+ },
156
+ concat(...others) {
157
+ const self = this;
158
+ return createIterator(function* () {
159
+ yield* self;
160
+ for (const other of others) {
161
+ yield* other;
162
+ }
163
+ });
164
+ },
165
+ unique(keyFn) {
166
+ const self = this;
167
+ return createIterator(function* () {
168
+ const seen = /* @__PURE__ */ new Set();
169
+ for (const value of self) {
170
+ const key = keyFn ? keyFn(value) : value;
171
+ if (!seen.has(key)) {
172
+ seen.add(key);
173
+ yield value;
174
+ }
175
+ }
176
+ });
177
+ },
178
+ toArray() {
179
+ return [...this];
180
+ },
181
+ reduce(fn, initial) {
182
+ let acc = initial;
183
+ for (const value of this) {
184
+ acc = fn(acc, value);
185
+ }
186
+ return acc;
187
+ },
188
+ forEach(fn) {
189
+ let index = 0;
190
+ for (const value of this) {
191
+ fn(value, index++);
192
+ }
193
+ },
194
+ find(predicate) {
195
+ for (const value of this) {
196
+ if (predicate(value)) return value;
197
+ }
198
+ return void 0;
199
+ },
200
+ some(predicate) {
201
+ for (const value of this) {
202
+ if (predicate(value)) return true;
203
+ }
204
+ return false;
205
+ },
206
+ every(predicate) {
207
+ for (const value of this) {
208
+ if (!predicate(value)) return false;
209
+ }
210
+ return true;
211
+ },
212
+ first() {
213
+ for (const value of this) {
214
+ return value;
215
+ }
216
+ return void 0;
217
+ },
218
+ last() {
219
+ let last;
220
+ for (const value of this) {
221
+ last = value;
222
+ }
223
+ return last;
224
+ },
225
+ count() {
226
+ let count = 0;
227
+ for (const _ of this) {
228
+ count++;
229
+ }
230
+ return count;
231
+ },
232
+ collect(collector) {
233
+ return collector(this);
234
+ }
235
+ };
236
+ }
237
+
238
+ // src/iterator/range.ts
239
+ function range(start, end, step = 1) {
240
+ return createIterator(function* () {
241
+ if (step > 0) {
242
+ for (let i = start; i < end; i += step) {
243
+ yield i;
244
+ }
245
+ } else if (step < 0) {
246
+ for (let i = start; i > end; i += step) {
247
+ yield i;
248
+ }
249
+ }
250
+ });
251
+ }
252
+
253
+ // src/iterator/map.ts
254
+ function map(source, fn) {
255
+ return createIterator(function* () {
256
+ let index = 0;
257
+ for (const value of source) {
258
+ yield fn(value, index++);
259
+ }
260
+ });
261
+ }
262
+
263
+ // src/iterator/filter.ts
264
+ function filter(source, predicate) {
265
+ return createIterator(function* () {
266
+ let index = 0;
267
+ for (const value of source) {
268
+ if (predicate(value, index++)) {
269
+ yield value;
270
+ }
271
+ }
272
+ });
273
+ }
274
+
275
+ // src/iterator/take.ts
276
+ function take(source, n) {
277
+ return createIterator(function* () {
278
+ let count = 0;
279
+ for (const value of source) {
280
+ if (count >= n) break;
281
+ yield value;
282
+ count++;
283
+ }
284
+ });
285
+ }
286
+
287
+ // src/iterator/skip.ts
288
+ function skip(source, n) {
289
+ return createIterator(function* () {
290
+ let count = 0;
291
+ for (const value of source) {
292
+ if (count >= n) {
293
+ yield value;
294
+ }
295
+ count++;
296
+ }
297
+ });
298
+ }
299
+
300
+ // src/iterator/chunk.ts
301
+ function chunk(source, size) {
302
+ return createIterator(function* () {
303
+ let chunk2 = [];
304
+ for (const value of source) {
305
+ chunk2.push(value);
306
+ if (chunk2.length === size) {
307
+ yield chunk2;
308
+ chunk2 = [];
309
+ }
310
+ }
311
+ if (chunk2.length > 0) {
312
+ yield chunk2;
313
+ }
314
+ });
315
+ }
316
+
317
+ // src/iterator/flatten.ts
318
+ function flatten(source) {
319
+ return createIterator(function* () {
320
+ for (const inner of source) {
321
+ yield* inner;
322
+ }
323
+ });
324
+ }
325
+
326
+ // src/iterator/zip.ts
327
+ function zip(source1, source2) {
328
+ return createIterator(function* () {
329
+ const iter1 = source1[Symbol.iterator]();
330
+ const iter2 = source2[Symbol.iterator]();
331
+ while (true) {
332
+ const r1 = iter1.next();
333
+ const r2 = iter2.next();
334
+ if (r1.done || r2.done) break;
335
+ yield [r1.value, r2.value];
336
+ }
337
+ });
338
+ }
339
+
340
+ // src/iterator/enumerate.ts
341
+ function enumerate(source) {
342
+ return createIterator(function* () {
343
+ let index = 0;
344
+ for (const value of source) {
345
+ yield [index++, value];
346
+ }
347
+ });
348
+ }
349
+
350
+ // src/iterator/cycle.ts
351
+ function cycle(source) {
352
+ return createIterator(function* () {
353
+ const cached = [];
354
+ for (const value of source) {
355
+ cached.push(value);
356
+ yield value;
357
+ }
358
+ if (cached.length === 0) return;
359
+ while (true) {
360
+ for (const value of cached) {
361
+ yield value;
362
+ }
363
+ }
364
+ });
365
+ }
366
+
367
+ // src/iterator/repeat.ts
368
+ function repeat(value, n) {
369
+ return createIterator(function* () {
370
+ if (n === void 0) {
371
+ while (true) {
372
+ yield value;
373
+ }
374
+ } else {
375
+ for (let i = 0; i < n; i++) {
376
+ yield value;
377
+ }
378
+ }
379
+ });
380
+ }
381
+
382
+ // src/iterator/fromAsync.ts
383
+ function fromAsync(source) {
384
+ const getIterator = () => {
385
+ if (typeof source === "function") {
386
+ return source();
387
+ }
388
+ return source[Symbol.asyncIterator]();
389
+ };
390
+ return {
391
+ [Symbol.asyncIterator]() {
392
+ return getIterator();
393
+ },
394
+ map(fn) {
395
+ const self = this;
396
+ return fromAsync(async function* () {
397
+ let index = 0;
398
+ for await (const value of self) {
399
+ yield await fn(value, index++);
400
+ }
401
+ });
402
+ },
403
+ filter(predicate) {
404
+ const self = this;
405
+ return fromAsync(async function* () {
406
+ for await (const value of self) {
407
+ if (await predicate(value)) {
408
+ yield value;
409
+ }
410
+ }
411
+ });
412
+ },
413
+ take(n) {
414
+ const self = this;
415
+ return fromAsync(async function* () {
416
+ let count = 0;
417
+ for await (const value of self) {
418
+ if (count >= n) break;
419
+ yield value;
420
+ count++;
421
+ }
422
+ });
423
+ },
424
+ skip(n) {
425
+ const self = this;
426
+ return fromAsync(async function* () {
427
+ let count = 0;
428
+ for await (const value of self) {
429
+ if (count >= n) {
430
+ yield value;
431
+ }
432
+ count++;
433
+ }
434
+ });
435
+ },
436
+ async toArray() {
437
+ const result = [];
438
+ for await (const value of this) {
439
+ result.push(value);
440
+ }
441
+ return result;
442
+ },
443
+ async reduce(fn, initial) {
444
+ let acc = initial;
445
+ for await (const value of this) {
446
+ acc = await fn(acc, value);
447
+ }
448
+ return acc;
449
+ },
450
+ async forEach(fn) {
451
+ let index = 0;
452
+ for await (const value of this) {
453
+ await fn(value, index++);
454
+ }
455
+ },
456
+ async find(predicate) {
457
+ for await (const value of this) {
458
+ if (await predicate(value)) return value;
459
+ }
460
+ return void 0;
461
+ },
462
+ async first() {
463
+ for await (const value of this) {
464
+ return value;
465
+ }
466
+ return void 0;
467
+ },
468
+ async count() {
469
+ let count = 0;
470
+ for await (const _ of this) {
471
+ count++;
472
+ }
473
+ return count;
474
+ }
475
+ };
476
+ }
477
+
478
+ // src/iterator/toArray.ts
479
+ function toArray(source) {
480
+ return [...source];
481
+ }
482
+
483
+ // src/iterator/reduce.ts
484
+ function reduce(source, fn, initial) {
485
+ let acc = initial;
486
+ for (const value of source) {
487
+ acc = fn(acc, value);
488
+ }
489
+ return acc;
490
+ }
491
+
492
+ // src/iterator/forEach.ts
493
+ function forEach(source, fn) {
494
+ let index = 0;
495
+ for (const value of source) {
496
+ fn(value, index++);
497
+ }
498
+ }
499
+
500
+ // src/iterator/find.ts
501
+ function find(source, predicate) {
502
+ for (const value of source) {
503
+ if (predicate(value)) return value;
504
+ }
505
+ return void 0;
506
+ }
507
+
508
+ // src/iterator/some.ts
509
+ function some(source, predicate) {
510
+ for (const value of source) {
511
+ if (predicate(value)) return true;
512
+ }
513
+ return false;
514
+ }
515
+
516
+ // src/iterator/every.ts
517
+ function every(source, predicate) {
518
+ for (const value of source) {
519
+ if (!predicate(value)) return false;
520
+ }
521
+ return true;
522
+ }
523
+
524
+ export { chunk, createIterator, cycle, enumerate, every, filter, find, flatten, forEach, fromAsync, iterator_exports, map, range, reduce, repeat, skip, some, take, toArray, zip };
525
+ //# sourceMappingURL=chunk-POD52NJ3.mjs.map
526
+ //# sourceMappingURL=chunk-POD52NJ3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/iterator/index.ts","../src/iterator/createIterator.ts","../src/iterator/range.ts","../src/iterator/map.ts","../src/iterator/filter.ts","../src/iterator/take.ts","../src/iterator/skip.ts","../src/iterator/chunk.ts","../src/iterator/flatten.ts","../src/iterator/zip.ts","../src/iterator/enumerate.ts","../src/iterator/cycle.ts","../src/iterator/repeat.ts","../src/iterator/fromAsync.ts","../src/iterator/toArray.ts","../src/iterator/reduce.ts","../src/iterator/forEach.ts","../src/iterator/find.ts","../src/iterator/some.ts","../src/iterator/every.ts"],"names":["chunk"],"mappings":";;;AAAA,IAAA,gBAAA,GAAA;AAAA,QAAA,CAAA,gBAAA,EAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,SAAA,EAAA,MAAA,KAAA;AAAA,EAAA,QAAA,EAAA,MAAA,IAAA;AAAA,EAAA,WAAA,EAAA,MAAA,OAAA;AAAA,EAAA,UAAA,EAAA,MAAA,MAAA;AAAA,EAAA,QAAA,EAAA,MAAA,IAAA;AAAA,EAAA,SAAA,EAAA,MAAA,KAAA;AAAA,EAAA,UAAA,EAAA,MAAA,MAAA;AAAA,EAAA,WAAA,EAAA,MAAA,OAAA;AAAA,EAAA,OAAA,EAAA,MAAA,GAAA;AAAA,EAAA,SAAA,EAAA,MAAA,KAAA;AAAA,EAAA,QAAA,EAAA,MAAA,IAAA;AAAA,EAAA,QAAA,EAAA,MAAA,IAAA;AAAA,EAAA,OAAA,EAAA,MAAA,GAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,OAAA,EAAA,MAAA;AAAA,CAAA,CAAA;;;ACYO,SAAS,eACd,MAAA,EACiB;AACjB,EAAA,MAAM,cAAc,MAAmB;AACrC,IAAA,IAAI,OAAO,WAAW,UAAA,EAAY;AAChC,MAAA,OAAO,MAAA,EAAO;AAAA,IAChB;AACA,IAAA,OAAO,MAAA,CAAO,MAAA,CAAO,QAAQ,CAAA,EAAE;AAAA,EACjC,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,CAAC,MAAA,CAAO,QAAQ,CAAA,GAAiB;AAC/B,MAAA,OAAO,WAAA,EAAY;AAAA,IACrB,CAAA;AAAA,IAEA,IAAO,EAAA,EAAqD;AAC1D,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,QAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,UAAA,MAAM,EAAA,CAAG,OAAO,KAAA,EAAO,CAAA;AAAA,QACzB;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,OAAO,SAAA,EAAkE;AACvE,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,QAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,UAAA,IAAI,SAAA,CAAU,KAAA,EAAO,KAAA,EAAO,CAAA,EAAG;AAC7B,YAAA,MAAM,KAAA;AAAA,UACR;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,KAAK,CAAA,EAA4B;AAC/B,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,QAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,UAAA,IAAI,SAAS,CAAA,EAAG;AAChB,UAAA,MAAM,KAAA;AACN,UAAA,KAAA,EAAA;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,KAAK,CAAA,EAA4B;AAC/B,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,QAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,UAAA,IAAI,SAAS,CAAA,EAAG;AACd,YAAA,MAAM,KAAA;AAAA,UACR;AACA,UAAA,KAAA,EAAA;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,UAAU,SAAA,EAAmD;AAC3D,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,UAAA,IAAI,CAAC,SAAA,CAAU,KAAK,CAAA,EAAG;AACvB,UAAA,MAAM,KAAA;AAAA,QACR;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,UAAU,SAAA,EAAmD;AAC3D,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,IAAI,QAAA,GAAW,IAAA;AACf,QAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,UAAA,IAAI,QAAA,IAAY,SAAA,CAAU,KAAK,CAAA,EAAG;AAClC,UAAA,QAAA,GAAW,KAAA;AACX,UAAA,MAAM,KAAA;AAAA,QACR;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,QAAW,EAAA,EAAgD;AACzD,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,UAAA,OAAO,GAAG,KAAK,CAAA;AAAA,QACjB;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,OAAA,GAA6D;AAC3D,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,UAAA,OAAO,KAAA;AAAA,QACT;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,IAAA,EAAiC;AACrC,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,IAAIA,SAAa,EAAC;AAClB,QAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,UAAAA,MAAAA,CAAM,KAAK,KAAK,CAAA;AAChB,UAAA,IAAIA,MAAAA,CAAM,WAAW,IAAA,EAAM;AACzB,YAAA,MAAMA,MAAAA;AACN,YAAAA,SAAQ,EAAC;AAAA,UACX;AAAA,QACF;AACA,QAAA,IAAIA,MAAAA,CAAM,SAAS,CAAA,EAAG;AACpB,UAAA,MAAMA,MAAAA;AAAA,QACR;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,SAAA,GAAuC;AACrC,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,QAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,UAAA,MAAM,CAAC,SAAS,KAAK,CAAA;AAAA,QACvB;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,IAAO,KAAA,EAA0C;AAC/C,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,MAAA,CAAO,QAAQ,CAAA,EAAE;AACpC,QAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,MAAA,CAAO,QAAQ,CAAA,EAAE;AACrC,QAAA,OAAO,IAAA,EAAM;AACX,UAAA,MAAM,EAAA,GAAK,MAAM,IAAA,EAAK;AACtB,UAAA,MAAM,EAAA,GAAK,MAAM,IAAA,EAAK;AACtB,UAAA,IAAI,EAAA,CAAG,IAAA,IAAQ,EAAA,CAAG,IAAA,EAAM;AACxB,UAAA,MAAM,CAAC,EAAA,CAAG,KAAA,EAAO,EAAA,CAAG,KAAK,CAAA;AAAA,QAC3B;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,UAAU,MAAA,EAAwC;AAChD,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,OAAO,IAAA;AACP,QAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,UAAA,OAAO,KAAA;AAAA,QACT;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,OAAO,KAAA,EAAgD;AACrD,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,eAAe,aAAa;AACjC,QAAA,MAAM,IAAA,uBAAW,GAAA,EAAa;AAC9B,QAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,UAAA,MAAM,GAAA,GAAM,KAAA,GAAQ,KAAA,CAAM,KAAK,CAAA,GAAI,KAAA;AACnC,UAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,GAAG,CAAA,EAAG;AAClB,YAAA,IAAA,CAAK,IAAI,GAAG,CAAA;AACZ,YAAA,MAAM,KAAA;AAAA,UACR;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,OAAA,GAAe;AACb,MAAA,OAAO,CAAC,GAAG,IAAI,CAAA;AAAA,IACjB,CAAA;AAAA,IAEA,MAAA,CAAU,IAA6B,OAAA,EAAe;AACpD,MAAA,IAAI,GAAA,GAAM,OAAA;AACV,MAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,QAAA,GAAA,GAAM,EAAA,CAAG,KAAK,KAAK,CAAA;AAAA,MACrB;AACA,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AAAA,IAEA,QAAQ,EAAA,EAA6C;AACnD,MAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,MAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,QAAA,EAAA,CAAG,OAAO,KAAA,EAAO,CAAA;AAAA,MACnB;AAAA,IACF,CAAA;AAAA,IAEA,KAAK,SAAA,EAAiD;AACpD,MAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,QAAA,IAAI,SAAA,CAAU,KAAK,CAAA,EAAG,OAAO,KAAA;AAAA,MAC/B;AACA,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAAA,IAEA,KAAK,SAAA,EAA2C;AAC9C,MAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,QAAA,IAAI,SAAA,CAAU,KAAK,CAAA,EAAG,OAAO,IAAA;AAAA,MAC/B;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAA;AAAA,IAEA,MAAM,SAAA,EAA2C;AAC/C,MAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,QAAA,IAAI,CAAC,SAAA,CAAU,KAAK,CAAA,EAAG,OAAO,KAAA;AAAA,MAChC;AACA,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IAEA,KAAA,GAAuB;AACrB,MAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,QAAA,OAAO,KAAA;AAAA,MACT;AACA,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAAA,IAEA,IAAA,GAAsB;AACpB,MAAA,IAAI,IAAA;AACJ,MAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,QAAA,IAAA,GAAO,KAAA;AAAA,MACT;AACA,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IAEA,KAAA,GAAgB;AACd,MAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,MAAA,KAAA,MAAW,KAAK,IAAA,EAAM;AACpB,QAAA,KAAA,EAAA;AAAA,MACF;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAA;AAAA,IAEA,QAAW,SAAA,EAAgD;AACzD,MAAA,OAAO,UAAU,IAAI,CAAA;AAAA,IACvB;AAAA,GACF;AACF;;;AC5OO,SAAS,KAAA,CACd,KAAA,EACA,GAAA,EACA,IAAA,GAAe,CAAA,EACO;AACtB,EAAA,OAAO,eAAe,aAAa;AACjC,IAAA,IAAI,OAAO,CAAA,EAAG;AACZ,MAAA,KAAA,IAAS,CAAA,GAAI,KAAA,EAAO,CAAA,GAAI,GAAA,EAAK,KAAK,IAAA,EAAM;AACtC,QAAA,MAAM,CAAA;AAAA,MACR;AAAA,IACF,CAAA,MAAA,IAAW,OAAO,CAAA,EAAG;AACnB,MAAA,KAAA,IAAS,CAAA,GAAI,KAAA,EAAO,CAAA,GAAI,GAAA,EAAK,KAAK,IAAA,EAAM;AACtC,QAAA,MAAM,CAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACH;;;AClBO,SAAS,GAAA,CACd,QACA,EAAA,EACiB;AACjB,EAAA,OAAO,eAAe,aAAa;AACjC,IAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,IAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,MAAA,MAAM,EAAA,CAAG,OAAO,KAAA,EAAO,CAAA;AAAA,IACzB;AAAA,EACF,CAAC,CAAA;AACH;;;ACVO,SAAS,MAAA,CACd,QACA,SAAA,EACiB;AACjB,EAAA,OAAO,eAAe,aAAa;AACjC,IAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,IAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,MAAA,IAAI,SAAA,CAAU,KAAA,EAAO,KAAA,EAAO,CAAA,EAAG;AAC7B,QAAA,MAAM,KAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACH;;;ACZO,SAAS,IAAA,CAAQ,QAAqB,CAAA,EAA4B;AACvE,EAAA,OAAO,eAAe,aAAa;AACjC,IAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,IAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,MAAA,IAAI,SAAS,CAAA,EAAG;AAChB,MAAA,MAAM,KAAA;AACN,MAAA,KAAA,EAAA;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACH;;;ACTO,SAAS,IAAA,CAAQ,QAAqB,CAAA,EAA4B;AACvE,EAAA,OAAO,eAAe,aAAa;AACjC,IAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,IAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,MAAA,IAAI,SAAS,CAAA,EAAG;AACd,QAAA,MAAM,KAAA;AAAA,MACR;AACA,MAAA,KAAA,EAAA;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACH;;;ACVO,SAAS,KAAA,CAAS,QAAqB,IAAA,EAAiC;AAC7E,EAAA,OAAO,eAAe,aAAa;AACjC,IAAA,IAAIA,SAAa,EAAC;AAClB,IAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,MAAAA,MAAAA,CAAM,KAAK,KAAK,CAAA;AAChB,MAAA,IAAIA,MAAAA,CAAM,WAAW,IAAA,EAAM;AACzB,QAAA,MAAMA,MAAAA;AACN,QAAAA,SAAQ,EAAC;AAAA,MACX;AAAA,IACF;AACA,IAAA,IAAIA,MAAAA,CAAM,SAAS,CAAA,EAAG;AACpB,MAAA,MAAMA,MAAAA;AAAA,IACR;AAAA,EACF,CAAC,CAAA;AACH;;;ACdO,SAAS,QAAW,MAAA,EAAgD;AACzE,EAAA,OAAO,eAAe,aAAa;AACjC,IAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,EACF,CAAC,CAAA;AACH;;;ACNO,SAAS,GAAA,CACd,SACA,OAAA,EACsB;AACtB,EAAA,OAAO,eAAe,aAAa;AACjC,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,MAAA,CAAO,QAAQ,CAAA,EAAE;AACvC,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,MAAA,CAAO,QAAQ,CAAA,EAAE;AACvC,IAAA,OAAO,IAAA,EAAM;AACX,MAAA,MAAM,EAAA,GAAK,MAAM,IAAA,EAAK;AACtB,MAAA,MAAM,EAAA,GAAK,MAAM,IAAA,EAAK;AACtB,MAAA,IAAI,EAAA,CAAG,IAAA,IAAQ,EAAA,CAAG,IAAA,EAAM;AACxB,MAAA,MAAM,CAAC,EAAA,CAAG,KAAA,EAAO,EAAA,CAAG,KAAK,CAAA;AAAA,IAC3B;AAAA,EACF,CAAC,CAAA;AACH;;;ACdO,SAAS,UAAa,MAAA,EAAgD;AAC3E,EAAA,OAAO,eAAe,aAAa;AACjC,IAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,IAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,MAAA,MAAM,CAAC,SAAS,KAAK,CAAA;AAAA,IACvB;AAAA,EACF,CAAC,CAAA;AACH;;;ACNO,SAAS,MAAS,MAAA,EAAsC;AAC7D,EAAA,OAAO,eAAe,aAAa;AACjC,IAAA,MAAM,SAAc,EAAC;AACrB,IAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,MAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AACjB,MAAA,MAAM,KAAA;AAAA,IACR;AACA,IAAA,IAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AACzB,IAAA,OAAO,IAAA,EAAM;AACX,MAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,QAAA,MAAM,KAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACH;;;ACdO,SAAS,MAAA,CAAU,OAAU,CAAA,EAA6B;AAC/D,EAAA,OAAO,eAAe,aAAa;AACjC,IAAA,IAAI,MAAM,MAAA,EAAW;AACnB,MAAA,OAAO,IAAA,EAAM;AACX,QAAA,MAAM,KAAA;AAAA,MACR;AAAA,IACF,CAAA,MAAO;AACL,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,QAAA,MAAM,KAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACH;;;ACRO,SAAS,UACd,MAAA,EACsB;AACtB,EAAA,MAAM,cAAc,MAAwB;AAC1C,IAAA,IAAI,OAAO,WAAW,UAAA,EAAY;AAChC,MAAA,OAAO,MAAA,EAAO;AAAA,IAChB;AACA,IAAA,OAAO,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,EAAE;AAAA,EACtC,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,CAAC,MAAA,CAAO,aAAa,CAAA,GAAsB;AACzC,MAAA,OAAO,WAAA,EAAY;AAAA,IACrB,CAAA;AAAA,IAEA,IAAO,EAAA,EAAuE;AAC5E,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,UAAU,mBAAmB;AAClC,QAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,QAAA,WAAA,MAAiB,SAAS,IAAA,EAAM;AAC9B,UAAA,MAAM,MAAM,EAAA,CAAG,KAAA,EAAO,KAAA,EAAO,CAAA;AAAA,QAC/B;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,OAAO,SAAA,EAA2E;AAChF,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,UAAU,mBAAmB;AAClC,QAAA,WAAA,MAAiB,SAAS,IAAA,EAAM;AAC9B,UAAA,IAAI,MAAM,SAAA,CAAU,KAAK,CAAA,EAAG;AAC1B,YAAA,MAAM,KAAA;AAAA,UACR;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,KAAK,CAAA,EAAiC;AACpC,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,UAAU,mBAAmB;AAClC,QAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,QAAA,WAAA,MAAiB,SAAS,IAAA,EAAM;AAC9B,UAAA,IAAI,SAAS,CAAA,EAAG;AAChB,UAAA,MAAM,KAAA;AACN,UAAA,KAAA,EAAA;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,KAAK,CAAA,EAAiC;AACpC,MAAA,MAAM,IAAA,GAAO,IAAA;AACb,MAAA,OAAO,UAAU,mBAAmB;AAClC,QAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,QAAA,WAAA,MAAiB,SAAS,IAAA,EAAM;AAC9B,UAAA,IAAI,SAAS,CAAA,EAAG;AACd,YAAA,MAAM,KAAA;AAAA,UACR;AACA,UAAA,KAAA,EAAA;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,OAAA,GAAwB;AAC5B,MAAA,MAAM,SAAc,EAAC;AACrB,MAAA,WAAA,MAAiB,SAAS,IAAA,EAAM;AAC9B,QAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AAAA,MACnB;AACA,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAAA,IAEA,MAAM,MAAA,CAAU,EAAA,EAA0C,OAAA,EAAwB;AAChF,MAAA,IAAI,GAAA,GAAM,OAAA;AACV,MAAA,WAAA,MAAiB,SAAS,IAAA,EAAM;AAC9B,QAAA,GAAA,GAAM,MAAM,EAAA,CAAG,GAAA,EAAK,KAAK,CAAA;AAAA,MAC3B;AACA,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AAAA,IAEA,MAAM,QAAQ,EAAA,EAAsE;AAClF,MAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,MAAA,WAAA,MAAiB,SAAS,IAAA,EAAM;AAC9B,QAAA,MAAM,EAAA,CAAG,OAAO,KAAA,EAAO,CAAA;AAAA,MACzB;AAAA,IACF,CAAA;AAAA,IAEA,MAAM,KAAK,SAAA,EAA6E;AACtF,MAAA,WAAA,MAAiB,SAAS,IAAA,EAAM;AAC9B,QAAA,IAAI,MAAM,SAAA,CAAU,KAAK,CAAA,EAAG,OAAO,KAAA;AAAA,MACrC;AACA,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAAA,IAEA,MAAM,KAAA,GAAgC;AACpC,MAAA,WAAA,MAAiB,SAAS,IAAA,EAAM;AAC9B,QAAA,OAAO,KAAA;AAAA,MACT;AACA,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAAA,IAEA,MAAM,KAAA,GAAyB;AAC7B,MAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,MAAA,WAAA,MAAiB,KAAK,IAAA,EAAM;AAC1B,QAAA,KAAA,EAAA;AAAA,MACF;AACA,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,GACF;AACF;;;ACjHO,SAAS,QAAW,MAAA,EAA0B;AACnD,EAAA,OAAO,CAAC,GAAG,MAAM,CAAA;AACnB;;;ACFO,SAAS,MAAA,CACd,MAAA,EACA,EAAA,EACA,OAAA,EACG;AACH,EAAA,IAAI,GAAA,GAAM,OAAA;AACV,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,GAAA,GAAM,EAAA,CAAG,KAAK,KAAK,CAAA;AAAA,EACrB;AACA,EAAA,OAAO,GAAA;AACT;;;ACVO,SAAS,OAAA,CACd,QACA,EAAA,EACM;AACN,EAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,EAAA,CAAG,OAAO,KAAA,EAAO,CAAA;AAAA,EACnB;AACF;;;ACRO,SAAS,IAAA,CACd,QACA,SAAA,EACe;AACf,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,IAAI,SAAA,CAAU,KAAK,CAAA,EAAG,OAAO,KAAA;AAAA,EAC/B;AACA,EAAA,OAAO,MAAA;AACT;;;ACPO,SAAS,IAAA,CACd,QACA,SAAA,EACS;AACT,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,IAAI,SAAA,CAAU,KAAK,CAAA,EAAG,OAAO,IAAA;AAAA,EAC/B;AACA,EAAA,OAAO,KAAA;AACT;;;ACRO,SAAS,KAAA,CACd,QACA,SAAA,EACS;AACT,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,IAAI,CAAC,SAAA,CAAU,KAAK,CAAA,EAAG,OAAO,KAAA;AAAA,EAChC;AACA,EAAA,OAAO,IAAA;AACT","file":"chunk-POD52NJ3.mjs","sourcesContent":["/**\n * Iterator and Generator utilities for lazy evaluation and streaming data.\n */\n\nexport { createIterator, type LazyIterator } from './createIterator.js'\nexport { range as lazyRange } from './range.js'\nexport { map as lazyMap } from './map.js'\nexport { filter as lazyFilter } from './filter.js'\nexport { take as lazyTake } from './take.js'\nexport { skip as lazySkip } from './skip.js'\nexport { chunk as lazyChunk } from './chunk.js'\nexport { flatten as lazyFlatten } from './flatten.js'\nexport { zip as lazyZip } from './zip.js'\nexport { enumerate } from './enumerate.js'\nexport { cycle } from './cycle.js'\nexport { repeat } from './repeat.js'\nexport { fromAsync } from './fromAsync.js'\nexport { toArray } from './toArray.js'\nexport { reduce as iterReduce } from './reduce.js'\nexport { forEach as iterForEach } from './forEach.js'\nexport { find as iterFind } from './find.js'\nexport { some as iterSome } from './some.js'\nexport { every as iterEvery } from './every.js'\n","/**\n * Creates a lazy iterator with chainable operations.\n * Operations are only executed when the iterator is consumed.\n *\n * @example\n * const result = createIterator([1, 2, 3, 4, 5])\n * .map(x => x * 2)\n * .filter(x => x > 4)\n * .take(2)\n * .toArray()\n * // [6, 8]\n */\nexport function createIterator<T>(\n source: Iterable<T> | (() => Generator<T>)\n): LazyIterator<T> {\n const getIterator = (): Iterator<T> => {\n if (typeof source === 'function') {\n return source()\n }\n return source[Symbol.iterator]()\n }\n\n return {\n [Symbol.iterator](): Iterator<T> {\n return getIterator()\n },\n\n map<U>(fn: (value: T, index: number) => U): LazyIterator<U> {\n const self = this\n return createIterator(function* () {\n let index = 0\n for (const value of self) {\n yield fn(value, index++)\n }\n })\n },\n\n filter(predicate: (value: T, index: number) => boolean): LazyIterator<T> {\n const self = this\n return createIterator(function* () {\n let index = 0\n for (const value of self) {\n if (predicate(value, index++)) {\n yield value\n }\n }\n })\n },\n\n take(n: number): LazyIterator<T> {\n const self = this\n return createIterator(function* () {\n let count = 0\n for (const value of self) {\n if (count >= n) break\n yield value\n count++\n }\n })\n },\n\n skip(n: number): LazyIterator<T> {\n const self = this\n return createIterator(function* () {\n let count = 0\n for (const value of self) {\n if (count >= n) {\n yield value\n }\n count++\n }\n })\n },\n\n takeWhile(predicate: (value: T) => boolean): LazyIterator<T> {\n const self = this\n return createIterator(function* () {\n for (const value of self) {\n if (!predicate(value)) break\n yield value\n }\n })\n },\n\n skipWhile(predicate: (value: T) => boolean): LazyIterator<T> {\n const self = this\n return createIterator(function* () {\n let skipping = true\n for (const value of self) {\n if (skipping && predicate(value)) continue\n skipping = false\n yield value\n }\n })\n },\n\n flatMap<U>(fn: (value: T) => Iterable<U>): LazyIterator<U> {\n const self = this\n return createIterator(function* () {\n for (const value of self) {\n yield* fn(value)\n }\n })\n },\n\n flatten<U>(this: LazyIterator<Iterable<U>>): LazyIterator<U> {\n const self = this\n return createIterator(function* () {\n for (const value of self) {\n yield* value\n }\n })\n },\n\n chunk(size: number): LazyIterator<T[]> {\n const self = this\n return createIterator(function* () {\n let chunk: T[] = []\n for (const value of self) {\n chunk.push(value)\n if (chunk.length === size) {\n yield chunk\n chunk = []\n }\n }\n if (chunk.length > 0) {\n yield chunk\n }\n })\n },\n\n enumerate(): LazyIterator<[number, T]> {\n const self = this\n return createIterator(function* () {\n let index = 0\n for (const value of self) {\n yield [index++, value] as [number, T]\n }\n })\n },\n\n zip<U>(other: Iterable<U>): LazyIterator<[T, U]> {\n const self = this\n return createIterator(function* () {\n const iter1 = self[Symbol.iterator]()\n const iter2 = other[Symbol.iterator]()\n while (true) {\n const r1 = iter1.next()\n const r2 = iter2.next()\n if (r1.done || r2.done) break\n yield [r1.value, r2.value] as [T, U]\n }\n })\n },\n\n concat(...others: Iterable<T>[]): LazyIterator<T> {\n const self = this\n return createIterator(function* () {\n yield* self\n for (const other of others) {\n yield* other\n }\n })\n },\n\n unique(keyFn?: (value: T) => unknown): LazyIterator<T> {\n const self = this\n return createIterator(function* () {\n const seen = new Set<unknown>()\n for (const value of self) {\n const key = keyFn ? keyFn(value) : value\n if (!seen.has(key)) {\n seen.add(key)\n yield value\n }\n }\n })\n },\n\n toArray(): T[] {\n return [...this]\n },\n\n reduce<U>(fn: (acc: U, value: T) => U, initial: U): U {\n let acc = initial\n for (const value of this) {\n acc = fn(acc, value)\n }\n return acc\n },\n\n forEach(fn: (value: T, index: number) => void): void {\n let index = 0\n for (const value of this) {\n fn(value, index++)\n }\n },\n\n find(predicate: (value: T) => boolean): T | undefined {\n for (const value of this) {\n if (predicate(value)) return value\n }\n return undefined\n },\n\n some(predicate: (value: T) => boolean): boolean {\n for (const value of this) {\n if (predicate(value)) return true\n }\n return false\n },\n\n every(predicate: (value: T) => boolean): boolean {\n for (const value of this) {\n if (!predicate(value)) return false\n }\n return true\n },\n\n first(): T | undefined {\n for (const value of this) {\n return value\n }\n return undefined\n },\n\n last(): T | undefined {\n let last: T | undefined\n for (const value of this) {\n last = value\n }\n return last\n },\n\n count(): number {\n let count = 0\n for (const _ of this) {\n count++\n }\n return count\n },\n\n collect<U>(collector: (iterator: LazyIterator<T>) => U): U {\n return collector(this)\n },\n }\n}\n\nexport interface LazyIterator<T> extends Iterable<T> {\n map<U>(fn: (value: T, index: number) => U): LazyIterator<U>\n filter(predicate: (value: T, index: number) => boolean): LazyIterator<T>\n take(n: number): LazyIterator<T>\n skip(n: number): LazyIterator<T>\n takeWhile(predicate: (value: T) => boolean): LazyIterator<T>\n skipWhile(predicate: (value: T) => boolean): LazyIterator<T>\n flatMap<U>(fn: (value: T) => Iterable<U>): LazyIterator<U>\n flatten<U>(this: LazyIterator<Iterable<U>>): LazyIterator<U>\n chunk(size: number): LazyIterator<T[]>\n enumerate(): LazyIterator<[number, T]>\n zip<U>(other: Iterable<U>): LazyIterator<[T, U]>\n concat(...others: Iterable<T>[]): LazyIterator<T>\n unique(keyFn?: (value: T) => unknown): LazyIterator<T>\n toArray(): T[]\n reduce<U>(fn: (acc: U, value: T) => U, initial: U): U\n forEach(fn: (value: T, index: number) => void): void\n find(predicate: (value: T) => boolean): T | undefined\n some(predicate: (value: T) => boolean): boolean\n every(predicate: (value: T) => boolean): boolean\n first(): T | undefined\n last(): T | undefined\n count(): number\n collect<U>(collector: (iterator: LazyIterator<T>) => U): U\n}\n","import { createIterator, type LazyIterator } from './createIterator.js'\n\n/**\n * Creates a lazy range iterator.\n *\n * @example\n * range(0, 10).toArray() // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n * range(0, 10, 2).toArray() // [0, 2, 4, 6, 8]\n * range(10, 0, -1).toArray() // [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]\n */\nexport function range(\n start: number,\n end: number,\n step: number = 1\n): LazyIterator<number> {\n return createIterator(function* () {\n if (step > 0) {\n for (let i = start; i < end; i += step) {\n yield i\n }\n } else if (step < 0) {\n for (let i = start; i > end; i += step) {\n yield i\n }\n }\n })\n}\n","import { createIterator, type LazyIterator } from './createIterator.js'\n\n/**\n * Creates a lazy map iterator.\n *\n * @example\n * map([1, 2, 3], x => x * 2).toArray() // [2, 4, 6]\n */\nexport function map<T, U>(\n source: Iterable<T>,\n fn: (value: T, index: number) => U\n): LazyIterator<U> {\n return createIterator(function* () {\n let index = 0\n for (const value of source) {\n yield fn(value, index++)\n }\n })\n}\n","import { createIterator, type LazyIterator } from './createIterator.js'\n\n/**\n * Creates a lazy filter iterator.\n *\n * @example\n * filter([1, 2, 3, 4], x => x % 2 === 0).toArray() // [2, 4]\n */\nexport function filter<T>(\n source: Iterable<T>,\n predicate: (value: T, index: number) => boolean\n): LazyIterator<T> {\n return createIterator(function* () {\n let index = 0\n for (const value of source) {\n if (predicate(value, index++)) {\n yield value\n }\n }\n })\n}\n","import { createIterator, type LazyIterator } from './createIterator.js'\n\n/**\n * Creates a lazy iterator that takes the first n elements.\n *\n * @example\n * take([1, 2, 3, 4, 5], 3).toArray() // [1, 2, 3]\n */\nexport function take<T>(source: Iterable<T>, n: number): LazyIterator<T> {\n return createIterator(function* () {\n let count = 0\n for (const value of source) {\n if (count >= n) break\n yield value\n count++\n }\n })\n}\n","import { createIterator, type LazyIterator } from './createIterator.js'\n\n/**\n * Creates a lazy iterator that skips the first n elements.\n *\n * @example\n * skip([1, 2, 3, 4, 5], 2).toArray() // [3, 4, 5]\n */\nexport function skip<T>(source: Iterable<T>, n: number): LazyIterator<T> {\n return createIterator(function* () {\n let count = 0\n for (const value of source) {\n if (count >= n) {\n yield value\n }\n count++\n }\n })\n}\n","import { createIterator, type LazyIterator } from './createIterator.js'\n\n/**\n * Creates a lazy iterator that chunks elements.\n *\n * @example\n * chunk([1, 2, 3, 4, 5], 2).toArray() // [[1, 2], [3, 4], [5]]\n */\nexport function chunk<T>(source: Iterable<T>, size: number): LazyIterator<T[]> {\n return createIterator(function* () {\n let chunk: T[] = []\n for (const value of source) {\n chunk.push(value)\n if (chunk.length === size) {\n yield chunk\n chunk = []\n }\n }\n if (chunk.length > 0) {\n yield chunk\n }\n })\n}\n","import { createIterator, type LazyIterator } from './createIterator.js'\n\n/**\n * Creates a lazy iterator that flattens nested iterables.\n *\n * @example\n * flatten([[1, 2], [3, 4]]).toArray() // [1, 2, 3, 4]\n */\nexport function flatten<T>(source: Iterable<Iterable<T>>): LazyIterator<T> {\n return createIterator(function* () {\n for (const inner of source) {\n yield* inner\n }\n })\n}\n","import { createIterator, type LazyIterator } from './createIterator.js'\n\n/**\n * Creates a lazy iterator that zips two iterables together.\n *\n * @example\n * zip([1, 2, 3], ['a', 'b', 'c']).toArray() // [[1, 'a'], [2, 'b'], [3, 'c']]\n */\nexport function zip<T, U>(\n source1: Iterable<T>,\n source2: Iterable<U>\n): LazyIterator<[T, U]> {\n return createIterator(function* () {\n const iter1 = source1[Symbol.iterator]()\n const iter2 = source2[Symbol.iterator]()\n while (true) {\n const r1 = iter1.next()\n const r2 = iter2.next()\n if (r1.done || r2.done) break\n yield [r1.value, r2.value] as [T, U]\n }\n })\n}\n","import { createIterator, type LazyIterator } from './createIterator.js'\n\n/**\n * Creates a lazy iterator that yields [index, value] pairs.\n *\n * @example\n * enumerate(['a', 'b', 'c']).toArray() // [[0, 'a'], [1, 'b'], [2, 'c']]\n */\nexport function enumerate<T>(source: Iterable<T>): LazyIterator<[number, T]> {\n return createIterator(function* () {\n let index = 0\n for (const value of source) {\n yield [index++, value] as [number, T]\n }\n })\n}\n","import { createIterator, type LazyIterator } from './createIterator.js'\n\n/**\n * Creates an infinite iterator that cycles through the source.\n * WARNING: This creates an infinite iterator. Use with take() or similar.\n *\n * @example\n * cycle([1, 2, 3]).take(7).toArray() // [1, 2, 3, 1, 2, 3, 1]\n */\nexport function cycle<T>(source: Iterable<T>): LazyIterator<T> {\n return createIterator(function* () {\n const cached: T[] = []\n for (const value of source) {\n cached.push(value)\n yield value\n }\n if (cached.length === 0) return\n while (true) {\n for (const value of cached) {\n yield value\n }\n }\n })\n}\n","import { createIterator, type LazyIterator } from './createIterator.js'\n\n/**\n * Creates an iterator that repeats a value n times (or infinitely if n is not provided).\n *\n * @example\n * repeat('x', 3).toArray() // ['x', 'x', 'x']\n * repeat(0).take(5).toArray() // [0, 0, 0, 0, 0]\n */\nexport function repeat<T>(value: T, n?: number): LazyIterator<T> {\n return createIterator(function* () {\n if (n === undefined) {\n while (true) {\n yield value\n }\n } else {\n for (let i = 0; i < n; i++) {\n yield value\n }\n }\n })\n}\n","/**\n * Creates an async iterator from an async iterable or async generator.\n *\n * @example\n * const iter = fromAsync(async function* () {\n * yield 1\n * yield 2\n * yield 3\n * })\n * for await (const value of iter) {\n * console.log(value)\n * }\n */\nexport function fromAsync<T>(\n source: AsyncIterable<T> | (() => AsyncGenerator<T>)\n): AsyncLazyIterator<T> {\n const getIterator = (): AsyncIterator<T> => {\n if (typeof source === 'function') {\n return source()\n }\n return source[Symbol.asyncIterator]()\n }\n\n return {\n [Symbol.asyncIterator](): AsyncIterator<T> {\n return getIterator()\n },\n\n map<U>(fn: (value: T, index: number) => U | Promise<U>): AsyncLazyIterator<U> {\n const self = this\n return fromAsync(async function* () {\n let index = 0\n for await (const value of self) {\n yield await fn(value, index++)\n }\n })\n },\n\n filter(predicate: (value: T) => boolean | Promise<boolean>): AsyncLazyIterator<T> {\n const self = this\n return fromAsync(async function* () {\n for await (const value of self) {\n if (await predicate(value)) {\n yield value\n }\n }\n })\n },\n\n take(n: number): AsyncLazyIterator<T> {\n const self = this\n return fromAsync(async function* () {\n let count = 0\n for await (const value of self) {\n if (count >= n) break\n yield value\n count++\n }\n })\n },\n\n skip(n: number): AsyncLazyIterator<T> {\n const self = this\n return fromAsync(async function* () {\n let count = 0\n for await (const value of self) {\n if (count >= n) {\n yield value\n }\n count++\n }\n })\n },\n\n async toArray(): Promise<T[]> {\n const result: T[] = []\n for await (const value of this) {\n result.push(value)\n }\n return result\n },\n\n async reduce<U>(fn: (acc: U, value: T) => U | Promise<U>, initial: U): Promise<U> {\n let acc = initial\n for await (const value of this) {\n acc = await fn(acc, value)\n }\n return acc\n },\n\n async forEach(fn: (value: T, index: number) => void | Promise<void>): Promise<void> {\n let index = 0\n for await (const value of this) {\n await fn(value, index++)\n }\n },\n\n async find(predicate: (value: T) => boolean | Promise<boolean>): Promise<T | undefined> {\n for await (const value of this) {\n if (await predicate(value)) return value\n }\n return undefined\n },\n\n async first(): Promise<T | undefined> {\n for await (const value of this) {\n return value\n }\n return undefined\n },\n\n async count(): Promise<number> {\n let count = 0\n for await (const _ of this) {\n count++\n }\n return count\n },\n }\n}\n\nexport interface AsyncLazyIterator<T> extends AsyncIterable<T> {\n map<U>(fn: (value: T, index: number) => U | Promise<U>): AsyncLazyIterator<U>\n filter(predicate: (value: T) => boolean | Promise<boolean>): AsyncLazyIterator<T>\n take(n: number): AsyncLazyIterator<T>\n skip(n: number): AsyncLazyIterator<T>\n toArray(): Promise<T[]>\n reduce<U>(fn: (acc: U, value: T) => U | Promise<U>, initial: U): Promise<U>\n forEach(fn: (value: T, index: number) => void | Promise<void>): Promise<void>\n find(predicate: (value: T) => boolean | Promise<boolean>): Promise<T | undefined>\n first(): Promise<T | undefined>\n count(): Promise<number>\n}\n","/**\n * Converts an iterable to an array.\n *\n * @example\n * toArray(new Set([1, 2, 3])) // [1, 2, 3]\n */\nexport function toArray<T>(source: Iterable<T>): T[] {\n return [...source]\n}\n","/**\n * Reduces an iterable to a single value.\n *\n * @example\n * reduce([1, 2, 3, 4], (acc, val) => acc + val, 0) // 10\n */\nexport function reduce<T, U>(\n source: Iterable<T>,\n fn: (acc: U, value: T) => U,\n initial: U\n): U {\n let acc = initial\n for (const value of source) {\n acc = fn(acc, value)\n }\n return acc\n}\n","/**\n * Iterates over an iterable and calls a function for each element.\n *\n * @example\n * forEach([1, 2, 3], console.log)\n */\nexport function forEach<T>(\n source: Iterable<T>,\n fn: (value: T, index: number) => void\n): void {\n let index = 0\n for (const value of source) {\n fn(value, index++)\n }\n}\n","/**\n * Finds the first element in an iterable that matches the predicate.\n *\n * @example\n * find([1, 2, 3, 4], x => x > 2) // 3\n */\nexport function find<T>(\n source: Iterable<T>,\n predicate: (value: T) => boolean\n): T | undefined {\n for (const value of source) {\n if (predicate(value)) return value\n }\n return undefined\n}\n","/**\n * Returns true if any element in the iterable matches the predicate.\n *\n * @example\n * some([1, 2, 3], x => x > 2) // true\n * some([1, 2, 3], x => x > 5) // false\n */\nexport function some<T>(\n source: Iterable<T>,\n predicate: (value: T) => boolean\n): boolean {\n for (const value of source) {\n if (predicate(value)) return true\n }\n return false\n}\n","/**\n * Returns true if all elements in the iterable match the predicate.\n *\n * @example\n * every([1, 2, 3], x => x > 0) // true\n * every([1, 2, 3], x => x > 2) // false\n */\nexport function every<T>(\n source: Iterable<T>,\n predicate: (value: T) => boolean\n): boolean {\n for (const value of source) {\n if (!predicate(value)) return false\n }\n return true\n}\n"]}
@@ -1050,5 +1050,5 @@ exports.showType = showType;
1050
1050
  exports.t = t;
1051
1051
  exports.undoable = undoable;
1052
1052
  exports.v = v;
1053
- //# sourceMappingURL=chunk-SIA5BSVY.js.map
1054
- //# sourceMappingURL=chunk-SIA5BSVY.js.map
1053
+ //# sourceMappingURL=chunk-S535LAXW.js.map
1054
+ //# sourceMappingURL=chunk-S535LAXW.js.map