@byloth/core 2.0.0-rc.1 → 2.0.0-rc.10

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 (43) hide show
  1. package/dist/core.js +1379 -894
  2. package/dist/core.js.map +1 -1
  3. package/dist/core.umd.cjs +3 -3
  4. package/dist/core.umd.cjs.map +1 -1
  5. package/package.json +8 -10
  6. package/src/helpers.ts +7 -0
  7. package/src/index.ts +19 -14
  8. package/src/models/aggregators/aggregated-async-iterator.ts +129 -81
  9. package/src/models/aggregators/aggregated-iterator.ts +128 -82
  10. package/src/models/aggregators/index.ts +1 -3
  11. package/src/models/aggregators/reduced-iterator.ts +118 -30
  12. package/src/models/aggregators/types.ts +15 -10
  13. package/src/models/callbacks/callable-object.ts +23 -0
  14. package/src/models/callbacks/index.ts +5 -0
  15. package/src/models/callbacks/publisher.ts +45 -0
  16. package/src/models/callbacks/switchable-callback.ts +108 -0
  17. package/src/models/callbacks/types.ts +1 -0
  18. package/src/models/exceptions/core.ts +3 -3
  19. package/src/models/exceptions/index.ts +13 -13
  20. package/src/models/game-loop.ts +9 -9
  21. package/src/models/index.ts +3 -6
  22. package/src/models/iterators/smart-async-iterator.ts +109 -23
  23. package/src/models/iterators/smart-iterator.ts +105 -12
  24. package/src/models/iterators/types.ts +17 -7
  25. package/src/models/json/json-storage.ts +2 -3
  26. package/src/models/json/types.ts +3 -1
  27. package/src/models/promises/deferred-promise.ts +1 -1
  28. package/src/models/promises/index.ts +3 -1
  29. package/src/models/promises/long-running-task.ts +294 -0
  30. package/src/models/promises/smart-promise.ts +6 -1
  31. package/src/models/promises/thenable.ts +97 -0
  32. package/src/models/promises/timed-promise.ts +1 -1
  33. package/src/models/promises/types.ts +2 -0
  34. package/src/models/timers/clock.ts +29 -7
  35. package/src/models/timers/countdown.ts +56 -20
  36. package/src/models/types.ts +12 -10
  37. package/src/utils/async.ts +9 -4
  38. package/src/utils/date.ts +3 -0
  39. package/src/utils/index.ts +1 -1
  40. package/src/utils/random.ts +4 -3
  41. package/src/models/aggregators/aggregator.ts +0 -46
  42. package/src/models/aggregators/async-aggregator.ts +0 -56
  43. package/src/models/publisher.ts +0 -39
package/dist/core.js CHANGED
@@ -1,464 +1,415 @@
1
- var j = Object.defineProperty;
2
- var D = (s, e, t) => e in s ? j(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
3
- var u = (s, e, t) => D(s, typeof e != "symbol" ? e + "" : e, t);
4
- const E = typeof window < "u" && typeof window.document < "u";
5
- var S;
6
- const J = typeof process < "u" && ((S = process.versions) == null ? void 0 : S.node);
7
- var k;
8
- const W = typeof self == "object" && ((k = self.constructor) == null ? void 0 : k.name) === "DedicatedWorkerGlobalScope";
9
- class h extends Error {
1
+ var Ne = Object.defineProperty;
2
+ var Ye = (i, t, e) => t in i ? Ne(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e;
3
+ var a = (i, t, e) => Ye(i, typeof t != "symbol" ? t + "" : t, e);
4
+ const Oe = typeof window < "u" && typeof window.document < "u";
5
+ var O;
6
+ const Qe = typeof process < "u" && ((O = process.versions) == null ? void 0 : O.node);
7
+ var A;
8
+ const Xe = typeof self == "object" && ((A = self.constructor) == null ? void 0 : A.name) === "DedicatedWorkerGlobalScope";
9
+ var $, q;
10
+ class f extends (q = Error, $ = Symbol.toStringTag, q) {
11
+ constructor(e, n, s = "Exception") {
12
+ super(e);
13
+ a(this, $, "Exception");
14
+ this.cause = n, this.name = s, n && (n instanceof Error ? this.stack += `
15
+
16
+ Caused by ${n.stack}` : this.stack += `
17
+
18
+ Caused by ${n}`);
19
+ }
10
20
  static FromUnknown(e) {
11
- if (e instanceof h)
21
+ if (e instanceof f)
12
22
  return e;
13
23
  if (e instanceof Error) {
14
- const t = new h(e.message);
15
- return t.stack = e.stack, t.name = e.name, t;
24
+ const n = new f(e.message);
25
+ return n.stack = e.stack, n.name = e.name, n;
16
26
  }
17
- return new h(`${e}`);
18
- }
19
- constructor(e, t, n = "Exception") {
20
- super(e), this.cause = t, this.name = n, t && (t instanceof Error ? this.stack += `
21
-
22
- Caused by ${t.stack}` : this.stack += `
23
-
24
- Caused by ${t}`);
25
- }
26
- get [Symbol.toStringTag]() {
27
- return "Exception";
27
+ return new f(`${e}`);
28
28
  }
29
29
  }
30
- class g extends h {
31
- constructor(e, t, n = "FatalErrorException") {
32
- e === void 0 && (e = "The program has encountered an unrecoverable error and cannot continue as expected. Please, try again later. If the problem persists, contact the support team."), super(e, t, n);
33
- }
34
- get [Symbol.toStringTag]() {
35
- return "FatalErrorException";
30
+ var N, Y;
31
+ class k extends (Y = f, N = Symbol.toStringTag, Y) {
32
+ constructor(e, n, s = "FatalErrorException") {
33
+ e === void 0 && (e = "The program has encountered an unrecoverable error and cannot continue as expected. Please, try again later. If the problem persists, contact the support team.");
34
+ super(e, n, s);
35
+ a(this, N, "FatalErrorException");
36
36
  }
37
37
  }
38
- class Y extends g {
39
- constructor(e, t, n = "NotImplementedException") {
40
- e === void 0 && (e = "This feature is not implemented yet. Please, try again later."), super(e, t, n);
41
- }
42
- get [Symbol.toStringTag]() {
43
- return "NotImplementedException";
38
+ var z, J;
39
+ class ze extends (J = k, z = Symbol.toStringTag, J) {
40
+ constructor(e, n, s = "NotImplementedException") {
41
+ e === void 0 && (e = "This feature is not implemented yet. Please, try again later.");
42
+ super(e, n, s);
43
+ a(this, z, "NotImplementedException");
44
44
  }
45
45
  }
46
- class T extends h {
47
- constructor(e, t, n = "FileException") {
48
- super(e, t, n);
49
- }
50
- get [Symbol.toStringTag]() {
51
- return "FileException";
46
+ var V, W;
47
+ class Ae extends (W = f, V = Symbol.toStringTag, W) {
48
+ constructor(e, n, s = "FileException") {
49
+ super(e, n, s);
50
+ a(this, V, "FileException");
52
51
  }
53
52
  }
54
- class z extends T {
55
- constructor(e, t, n = "FileExistsException") {
56
- super(e, t, n);
57
- }
58
- get [Symbol.toStringTag]() {
59
- return "FileExistsException";
53
+ var B, G;
54
+ class Ze extends (G = Ae, B = Symbol.toStringTag, G) {
55
+ constructor(e, n, s = "FileExistsException") {
56
+ super(e, n, s);
57
+ a(this, B, "FileExistsException");
60
58
  }
61
59
  }
62
- class V extends T {
63
- constructor(e, t, n = "FileNotFoundException") {
64
- super(e, t, n);
65
- }
66
- get [Symbol.toStringTag]() {
67
- return "FileNotFoundException";
60
+ var K, L;
61
+ class Ue extends (L = Ae, K = Symbol.toStringTag, L) {
62
+ constructor(e, n, s = "FileNotFoundException") {
63
+ super(e, n, s);
64
+ a(this, K, "FileNotFoundException");
68
65
  }
69
66
  }
70
- class B extends h {
71
- constructor(e, t, n = "KeyException") {
72
- super(e, t, n);
73
- }
74
- get [Symbol.toStringTag]() {
75
- return "KeyException";
67
+ var H, Q;
68
+ class x extends (Q = f, H = Symbol.toStringTag, Q) {
69
+ constructor(e, n, s = "KeyException") {
70
+ super(e, n, s);
71
+ a(this, H, "KeyException");
76
72
  }
77
73
  }
78
- class K extends h {
79
- constructor(e, t, n = "NetworkException") {
80
- super(e, t, n);
81
- }
82
- get [Symbol.toStringTag]() {
83
- return "NetworkException";
74
+ var X, Z;
75
+ class et extends (Z = f, X = Symbol.toStringTag, Z) {
76
+ constructor(e, n, s = "NetworkException") {
77
+ super(e, n, s);
78
+ a(this, X, "NetworkException");
84
79
  }
85
80
  }
86
- class G extends h {
87
- constructor(e, t, n = "PermissionException") {
88
- super(e, t, n);
89
- }
90
- get [Symbol.toStringTag]() {
91
- return "PermissionException";
81
+ var U, ee;
82
+ class tt extends (ee = f, U = Symbol.toStringTag, ee) {
83
+ constructor(e, n, s = "PermissionException") {
84
+ super(e, n, s);
85
+ a(this, U, "PermissionException");
92
86
  }
93
87
  }
94
- class q extends h {
95
- constructor(e, t, n = "ReferenceException") {
96
- super(e, t, n);
97
- }
98
- get [Symbol.toStringTag]() {
99
- return "ReferenceException";
88
+ var te, ne;
89
+ class Je extends (ne = f, te = Symbol.toStringTag, ne) {
90
+ constructor(e, n, s = "ReferenceException") {
91
+ super(e, n, s);
92
+ a(this, te, "ReferenceException");
100
93
  }
101
94
  }
102
- class m extends h {
103
- constructor(e, t, n = "RuntimeException") {
104
- super(e, t, n);
105
- }
106
- get [Symbol.toStringTag]() {
107
- return "RuntimeException";
95
+ var se, re;
96
+ class m extends (re = f, se = Symbol.toStringTag, re) {
97
+ constructor(e, n, s = "RuntimeException") {
98
+ super(e, n, s);
99
+ a(this, se, "RuntimeException");
108
100
  }
109
101
  }
110
- class A extends m {
111
- constructor(e, t, n = "EnvironmentException") {
112
- super(e, t, n);
113
- }
114
- get [Symbol.toStringTag]() {
115
- return "EnvironmentException";
102
+ var ie, oe;
103
+ class Ve extends (oe = m, ie = Symbol.toStringTag, oe) {
104
+ constructor(e, n, s = "EnvironmentException") {
105
+ super(e, n, s);
106
+ a(this, ie, "EnvironmentException");
116
107
  }
117
108
  }
118
- class C extends h {
119
- constructor(e, t, n = "TimeoutException") {
120
- super(e, t, n);
121
- }
122
- get [Symbol.toStringTag]() {
123
- return "TimeoutException";
109
+ var ae, le;
110
+ class We extends (le = f, ae = Symbol.toStringTag, le) {
111
+ constructor(e, n, s = "TimeoutException") {
112
+ super(e, n, s);
113
+ a(this, ae, "TimeoutException");
124
114
  }
125
115
  }
126
- class H extends h {
127
- constructor(e, t, n = "TypeException") {
128
- super(e, t, n);
129
- }
130
- get [Symbol.toStringTag]() {
131
- return "TypeException";
116
+ var ue, ce;
117
+ class nt extends (ce = f, ue = Symbol.toStringTag, ce) {
118
+ constructor(e, n, s = "TypeException") {
119
+ super(e, n, s);
120
+ a(this, ue, "TypeException");
132
121
  }
133
122
  }
134
- class f extends h {
135
- constructor(e, t, n = "ValueException") {
136
- super(e, t, n);
137
- }
138
- get [Symbol.toStringTag]() {
139
- return "ValueException";
123
+ var he, fe;
124
+ class p extends (fe = f, he = Symbol.toStringTag, fe) {
125
+ constructor(e, n, s = "ValueException") {
126
+ super(e, n, s);
127
+ a(this, he, "ValueException");
140
128
  }
141
129
  }
142
- class M extends f {
143
- constructor(e, t, n = "RangeException") {
144
- super(e, t, n);
145
- }
146
- get [Symbol.toStringTag]() {
147
- return "RangeException";
130
+ var de, me;
131
+ class $e extends (me = p, de = Symbol.toStringTag, me) {
132
+ constructor(e, n, s = "RangeException") {
133
+ super(e, n, s);
134
+ a(this, de, "RangeException");
148
135
  }
149
136
  }
150
- class a {
151
- constructor(e) {
152
- u(this, "_iterator");
153
- u(this, "return");
154
- u(this, "throw");
155
- e instanceof Function ? this._iterator = e() : Symbol.iterator in e ? this._iterator = e[Symbol.iterator]() : this._iterator = e, this._iterator.return && (this.return = (t) => this._iterator.return(t)), this._iterator.throw && (this.throw = (t) => this._iterator.throw(t));
156
- }
157
- every(e) {
158
- let t = 0;
137
+ var _e;
138
+ class c {
139
+ constructor(t) {
140
+ a(this, "_iterator");
141
+ a(this, "return");
142
+ a(this, "throw");
143
+ a(this, _e, "SmartIterator");
144
+ t instanceof Function ? this._iterator = t() : Symbol.iterator in t ? this._iterator = t[Symbol.iterator]() : this._iterator = t, this._iterator.return && (this.return = (e) => this._iterator.return(e)), this._iterator.throw && (this.throw = (e) => this._iterator.throw(e));
145
+ }
146
+ every(t) {
147
+ let e = 0;
159
148
  for (; ; ) {
160
149
  const n = this._iterator.next();
161
150
  if (n.done)
162
151
  return !0;
163
- if (!e(n.value, t))
152
+ if (!t(n.value, e))
164
153
  return !1;
165
- t += 1;
154
+ e += 1;
166
155
  }
167
156
  }
168
- some(e) {
169
- let t = 0;
157
+ some(t) {
158
+ let e = 0;
170
159
  for (; ; ) {
171
160
  const n = this._iterator.next();
172
161
  if (n.done)
173
162
  return !1;
174
- if (e(n.value, t))
163
+ if (t(n.value, e))
175
164
  return !0;
176
- t += 1;
165
+ e += 1;
177
166
  }
178
167
  }
179
- filter(e) {
180
- const t = this._iterator;
181
- return new a(function* () {
168
+ filter(t) {
169
+ const e = this._iterator;
170
+ return new c(function* () {
182
171
  let n = 0;
183
172
  for (; ; ) {
184
- const r = t.next();
185
- if (r.done)
186
- return r.value;
187
- e(r.value, n) && (yield r.value), n += 1;
173
+ const s = e.next();
174
+ if (s.done)
175
+ return s.value;
176
+ t(s.value, n) && (yield s.value), n += 1;
188
177
  }
189
178
  });
190
179
  }
191
- map(e) {
192
- const t = this._iterator;
193
- return new a(function* () {
180
+ map(t) {
181
+ const e = this._iterator;
182
+ return new c(function* () {
194
183
  let n = 0;
195
184
  for (; ; ) {
196
- const r = t.next();
197
- if (r.done)
198
- return r.value;
199
- yield e(r.value, n), n += 1;
185
+ const s = e.next();
186
+ if (s.done)
187
+ return s.value;
188
+ yield t(s.value, n), n += 1;
200
189
  }
201
190
  });
202
191
  }
203
- reduce(e, t) {
204
- let n = 0, r = t;
205
- if (r === void 0) {
206
- const i = this._iterator.next();
207
- if (i.done)
208
- throw new f("Cannot reduce an empty iterator without an initial value.");
209
- r = i.value, n += 1;
192
+ reduce(t, e) {
193
+ let n = 0, s = e;
194
+ if (s === void 0) {
195
+ const r = this._iterator.next();
196
+ if (r.done)
197
+ throw new p("Cannot reduce an empty iterator without an initial value.");
198
+ s = r.value, n += 1;
210
199
  }
211
200
  for (; ; ) {
212
- const i = this._iterator.next();
213
- if (i.done)
214
- return r;
215
- r = e(r, i.value, n), n += 1;
201
+ const r = this._iterator.next();
202
+ if (r.done)
203
+ return s;
204
+ s = t(s, r.value, n), n += 1;
216
205
  }
217
206
  }
218
- enumerate() {
219
- return this.map((e, t) => [t, e]);
220
- }
221
- unique() {
207
+ flatMap(t) {
222
208
  const e = this._iterator;
223
- return new a(function* () {
224
- const t = /* @__PURE__ */ new Set();
209
+ return new c(function* () {
210
+ let n = 0;
225
211
  for (; ; ) {
226
- const n = e.next();
227
- if (n.done)
228
- return n.value;
229
- t.has(n.value) || (t.add(n.value), yield n.value);
212
+ const s = e.next();
213
+ if (s.done)
214
+ return s.value;
215
+ const r = t(s.value, n);
216
+ for (const o of r)
217
+ yield o;
218
+ n += 1;
230
219
  }
231
220
  });
232
221
  }
233
- count() {
234
- let e = 0;
235
- for (; ; ) {
236
- if (this._iterator.next().done)
237
- return e;
238
- e += 1;
239
- }
240
- }
241
- forEach(e) {
242
- let t = 0;
243
- for (; ; ) {
244
- const n = this._iterator.next();
245
- if (n.done)
246
- return;
247
- e(n.value, t), t += 1;
248
- }
249
- }
250
- next(...e) {
251
- return this._iterator.next(...e);
252
- }
253
- toArray() {
254
- return Array.from(this);
255
- }
256
- get [Symbol.toStringTag]() {
257
- return "SmartIterator";
258
- }
259
- [Symbol.iterator]() {
260
- return this;
261
- }
262
- }
263
- class d {
264
- constructor(e) {
265
- u(this, "_iterator");
266
- u(this, "return");
267
- u(this, "throw");
268
- if (e instanceof Function) {
269
- const t = e();
270
- Symbol.asyncIterator in t ? this._iterator = t : this._iterator = async function* () {
271
- let n = [];
272
- for (; ; ) {
273
- const r = t.next(...n);
274
- if (r.done)
275
- return r.value;
276
- n = [yield r.value];
277
- }
278
- }();
279
- } else if (Symbol.asyncIterator in e)
280
- this._iterator = e[Symbol.asyncIterator]();
281
- else if (Symbol.iterator in e) {
282
- const t = e[Symbol.iterator]();
283
- this._iterator = async function* () {
284
- for (; ; ) {
285
- const n = t.next();
286
- if (n.done)
287
- return n.value;
288
- yield n.value;
289
- }
290
- }();
291
- } else
292
- this._iterator = async function* () {
293
- let t = [];
294
- for (; ; ) {
295
- const n = await e.next(...t);
296
- if (n.done)
297
- return n.value;
298
- t = [yield n.value];
299
- }
300
- }();
301
- this._iterator.return && (this.return = (t) => this._iterator.return(t)), this._iterator.throw && (this.throw = (t) => this._iterator.throw(t));
302
- }
303
- async every(e) {
304
- let t = 0;
305
- for (; ; ) {
306
- const n = await this._iterator.next();
307
- if (n.done)
308
- return !0;
309
- if (!e(n.value, t))
310
- return !1;
311
- t += 1;
312
- }
313
- }
314
- async some(e) {
315
- let t = 0;
316
- for (; ; ) {
317
- const n = await this._iterator.next();
318
- if (n.done)
319
- return !1;
320
- if (e(n.value, t))
321
- return !0;
322
- t += 1;
323
- }
324
- }
325
- filter(e) {
326
- const t = this._iterator;
327
- return new d(async function* () {
222
+ drop(t) {
223
+ const e = this._iterator;
224
+ return new c(function* () {
328
225
  let n = 0;
226
+ for (; n < t; ) {
227
+ if (e.next().done)
228
+ return;
229
+ n += 1;
230
+ }
329
231
  for (; ; ) {
330
- const r = await t.next();
331
- if (r.done)
332
- return r.value;
333
- e(r.value, n) && (yield r.value), n += 1;
232
+ const s = e.next();
233
+ if (s.done)
234
+ return s.value;
235
+ yield s.value;
334
236
  }
335
237
  });
336
238
  }
337
- map(e) {
338
- const t = this._iterator;
339
- return new d(async function* () {
239
+ take(t) {
240
+ const e = this._iterator;
241
+ return new c(function* () {
340
242
  let n = 0;
341
- for (; ; ) {
342
- const r = await t.next();
343
- if (r.done)
344
- return r.value;
345
- yield e(r.value, n), n += 1;
243
+ for (; n < t; ) {
244
+ const s = e.next();
245
+ if (s.done)
246
+ return s.value;
247
+ yield s.value, n += 1;
346
248
  }
347
249
  });
348
250
  }
349
- async reduce(e, t) {
350
- let n = 0, r = t;
351
- if (r === void 0) {
352
- const i = await this._iterator.next();
353
- if (i.done)
354
- throw new f("Cannot reduce an empty iterator without an initial value.");
355
- r = i.value, n += 1;
356
- }
251
+ find(t) {
252
+ let e = 0;
357
253
  for (; ; ) {
358
- const i = await this._iterator.next();
359
- if (i.done)
360
- return r;
361
- r = await e(r, i.value, n), n += 1;
254
+ const n = this._iterator.next();
255
+ if (n.done)
256
+ return;
257
+ if (t(n.value, e))
258
+ return n.value;
259
+ e += 1;
362
260
  }
363
261
  }
364
262
  enumerate() {
365
- return this.map((e, t) => [t, e]);
263
+ return this.map((t, e) => [e, t]);
366
264
  }
367
265
  unique() {
368
- const e = this._iterator;
369
- return new d(async function* () {
370
- const t = /* @__PURE__ */ new Set();
266
+ const t = this._iterator;
267
+ return new c(function* () {
268
+ const e = /* @__PURE__ */ new Set();
371
269
  for (; ; ) {
372
- const n = await e.next();
270
+ const n = t.next();
373
271
  if (n.done)
374
272
  return n.value;
375
- t.has(n.value) || (t.add(n.value), yield n.value);
273
+ e.has(n.value) || (e.add(n.value), yield n.value);
376
274
  }
377
275
  });
378
276
  }
379
- async count() {
380
- let e = 0;
277
+ count() {
278
+ let t = 0;
381
279
  for (; ; ) {
382
- if ((await this._iterator.next()).done)
383
- return e;
384
- e += 1;
280
+ if (this._iterator.next().done)
281
+ return t;
282
+ t += 1;
385
283
  }
386
284
  }
387
- async forEach(e) {
388
- let t = 0;
285
+ forEach(t) {
286
+ let e = 0;
389
287
  for (; ; ) {
390
- const n = await this._iterator.next();
288
+ const n = this._iterator.next();
391
289
  if (n.done)
392
290
  return;
393
- await e(n.value, t), t += 1;
291
+ t(n.value, e), e += 1;
394
292
  }
395
293
  }
396
- next(...e) {
397
- return this._iterator.next(...e);
294
+ next(...t) {
295
+ return this._iterator.next(...t);
398
296
  }
399
- async toArray() {
400
- const e = [];
401
- for (; ; ) {
402
- const t = await this._iterator.next();
403
- if (t.done)
404
- return e;
405
- e.push(t.value);
406
- }
297
+ groupBy(t) {
298
+ return new S(this.map((e, n) => [t(e, n), e]));
407
299
  }
408
- get [Symbol.toStringTag]() {
409
- return "SmartAsyncIterator";
300
+ toArray() {
301
+ return Array.from(this);
410
302
  }
411
- [Symbol.asyncIterator]() {
303
+ [(_e = Symbol.toStringTag, Symbol.iterator)]() {
412
304
  return this;
413
305
  }
414
306
  }
415
- class l {
416
- constructor(e) {
417
- u(this, "_elements");
418
- this._elements = new a(e);
307
+ var we;
308
+ we = Symbol.toStringTag;
309
+ const b = class b {
310
+ constructor(t) {
311
+ a(this, "_elements");
312
+ a(this, we, "ReducedIterator");
313
+ this._elements = new c(t);
314
+ }
315
+ every(t) {
316
+ for (const [e, [n, s]] of this._elements.enumerate())
317
+ if (!t(n, s, e))
318
+ return !1;
319
+ return !0;
419
320
  }
420
- filter(e) {
421
- const t = this._elements;
422
- return new l(function* () {
423
- for (const [n, [r, i]] of t.enumerate())
424
- e(r, i, n) && (yield [r, i]);
321
+ some(t) {
322
+ for (const [e, [n, s]] of this._elements.enumerate())
323
+ if (t(n, s, e))
324
+ return !0;
325
+ return !1;
326
+ }
327
+ filter(t) {
328
+ const e = this._elements.enumerate();
329
+ return new b(function* () {
330
+ for (const [n, [s, r]] of e)
331
+ t(s, r, n) && (yield [s, r]);
425
332
  });
426
333
  }
427
- map(e) {
428
- const t = this._elements;
429
- return new l(function* () {
430
- for (const [n, [r, i]] of t.enumerate())
431
- yield [r, e(r, i, n)];
334
+ map(t) {
335
+ const e = this._elements.enumerate();
336
+ return new b(function* () {
337
+ for (const [n, [s, r]] of e)
338
+ yield [s, t(s, r, n)];
432
339
  });
433
340
  }
434
- reduce(e, t) {
435
- let n = 0, r;
436
- if (t !== void 0)
437
- r = t;
438
- else {
439
- const i = this._elements.next();
440
- if (i.done)
441
- throw new f("Cannot reduce an empty iterator without an initial value.");
442
- n += 1, r = i.value[1];
341
+ reduce(t, e) {
342
+ let n = 0, s = e;
343
+ if (s === void 0) {
344
+ const r = this._elements.next();
345
+ if (r.done)
346
+ throw new p("Cannot reduce an empty iterator without an initial value.");
347
+ s = r.value[1], n += 1;
443
348
  }
444
- for (const [i, o] of this._elements)
445
- r = e(i, r, o, n), n += 1;
446
- return r;
349
+ for (const [r, o] of this._elements)
350
+ s = t(r, s, o, n), n += 1;
351
+ return s;
352
+ }
353
+ flatMap(t) {
354
+ const e = this._elements.enumerate();
355
+ return new S(function* () {
356
+ for (const [n, [s, r]] of e)
357
+ for (const o of t(s, r, n))
358
+ yield [s, o];
359
+ });
360
+ }
361
+ drop(t) {
362
+ const e = this._elements.enumerate();
363
+ return new b(function* () {
364
+ for (const [n, [s, r]] of e)
365
+ n >= t && (yield [s, r]);
366
+ });
367
+ }
368
+ take(t) {
369
+ const e = this._elements.enumerate();
370
+ return new b(function* () {
371
+ for (const [n, [s, r]] of e) {
372
+ if (n >= t)
373
+ break;
374
+ yield [s, r];
375
+ }
376
+ });
377
+ }
378
+ enumerate() {
379
+ return this.map((t, e, n) => [n, e]);
380
+ }
381
+ unique() {
382
+ const t = this._elements;
383
+ return new b(function* () {
384
+ const e = /* @__PURE__ */ new Set();
385
+ for (const [n, s] of t)
386
+ e.has(s) || (e.add(s), yield [n, s]);
387
+ });
388
+ }
389
+ count() {
390
+ let t = 0;
391
+ for (const e of this._elements)
392
+ t += 1;
393
+ return t;
394
+ }
395
+ forEach(t) {
396
+ for (const [e, [n, s]] of this._elements.enumerate())
397
+ t(n, s, e);
447
398
  }
448
399
  keys() {
449
- const e = this._elements;
450
- return new a(function* () {
451
- for (const [t] of e)
452
- yield t;
400
+ const t = this._elements;
401
+ return new c(function* () {
402
+ for (const [e] of t)
403
+ yield e;
453
404
  });
454
405
  }
455
406
  items() {
456
407
  return this._elements;
457
408
  }
458
409
  values() {
459
- const e = this._elements;
460
- return new a(function* () {
461
- for (const [t, n] of e)
410
+ const t = this._elements;
411
+ return new c(function* () {
412
+ for (const [e, n] of t)
462
413
  yield n;
463
414
  });
464
415
  }
@@ -471,374 +422,683 @@ class l {
471
422
  toObject() {
472
423
  return Object.fromEntries(this.items());
473
424
  }
474
- get [Symbol.toStringTag]() {
475
- return "ReducedIterator";
476
- }
477
- }
478
- class w {
479
- constructor(e) {
480
- u(this, "_elements");
481
- this._elements = new a(e);
482
- }
483
- every(e) {
484
- const t = /* @__PURE__ */ new Map();
485
- for (const [n, r] of this._elements) {
486
- const [i, o] = t.get(n) ?? [0, !0];
487
- o && t.set(n, [i + 1, e(n, r, i)]);
425
+ };
426
+ let d = b;
427
+ var pe;
428
+ pe = Symbol.toStringTag;
429
+ const y = class y {
430
+ constructor(t) {
431
+ a(this, "_elements");
432
+ a(this, pe, "AggregatedAsyncIterator");
433
+ this._elements = new w(t);
434
+ }
435
+ async every(t) {
436
+ const e = /* @__PURE__ */ new Map();
437
+ for await (const [n, s] of this._elements) {
438
+ const [r, o] = e.get(n) ?? [0, !0];
439
+ o && e.set(n, [r + 1, await t(n, s, r)]);
488
440
  }
489
- return new l(function* () {
490
- for (const [n, [r, i]] of t)
491
- yield [n, i];
441
+ return new d(function* () {
442
+ for (const [n, [s, r]] of e)
443
+ yield [n, r];
492
444
  });
493
445
  }
494
- some(e) {
495
- const t = /* @__PURE__ */ new Map();
496
- for (const [n, r] of this._elements) {
497
- const [i, o] = t.get(n) ?? [0, !1];
498
- o || t.set(n, [i + 1, e(n, r, i)]);
446
+ async some(t) {
447
+ const e = /* @__PURE__ */ new Map();
448
+ for await (const [n, s] of this._elements) {
449
+ const [r, o] = e.get(n) ?? [0, !1];
450
+ o || e.set(n, [r + 1, await t(n, s, r)]);
499
451
  }
500
- return new l(function* () {
501
- for (const [n, [r, i]] of t)
502
- yield [n, i];
452
+ return new d(function* () {
453
+ for (const [n, [s, r]] of e)
454
+ yield [n, r];
503
455
  });
504
456
  }
505
- filter(e) {
506
- const t = this._elements;
507
- return new w(function* () {
457
+ filter(t) {
458
+ const e = this._elements;
459
+ return new y(async function* () {
508
460
  const n = /* @__PURE__ */ new Map();
509
- for (const [r, i] of t) {
510
- const o = n.get(r) ?? 0;
511
- n.set(r, o + 1), e(r, i, o) && (yield [r, i]);
461
+ for await (const [s, r] of e) {
462
+ const o = n.get(s) ?? 0;
463
+ await t(s, r, o) && (yield [s, r]), n.set(s, o + 1);
512
464
  }
513
465
  });
514
466
  }
515
- map(e) {
516
- const t = this._elements;
517
- return new w(function* () {
467
+ map(t) {
468
+ const e = this._elements;
469
+ return new y(async function* () {
518
470
  const n = /* @__PURE__ */ new Map();
519
- for (const [r, i] of t) {
520
- const o = n.get(r) ?? 0;
521
- n.set(r, o + 1), yield [r, e(r, i, o)];
471
+ for await (const [s, r] of e) {
472
+ const o = n.get(s) ?? 0;
473
+ yield [s, await t(s, r, o)], n.set(s, o + 1);
522
474
  }
523
475
  });
524
476
  }
525
- reduce(e, t) {
477
+ async reduce(t, e) {
526
478
  const n = /* @__PURE__ */ new Map();
527
- for (const [r, i] of this._elements) {
528
- let o, c;
529
- if (n.has(r))
530
- [o, c] = n.get(r), o += 1;
531
- else if (t !== void 0)
532
- o = 0, c = t(r);
479
+ for await (const [s, r] of this._elements) {
480
+ let o, l;
481
+ if (n.has(s))
482
+ [o, l] = n.get(s);
483
+ else if (e !== void 0)
484
+ o = 0, l = await e(s);
533
485
  else {
534
- n.set(r, [0, i]);
486
+ n.set(s, [0, r]);
535
487
  continue;
536
488
  }
537
- c = e(r, c, i, o), n.set(r, [o, c]);
489
+ n.set(s, [o + 1, await t(s, l, r, o)]);
538
490
  }
539
- return new l(function* () {
540
- for (const [r, [i, o]] of n)
541
- yield [r, o];
491
+ return new d(function* () {
492
+ for (const [s, [r, o]] of n)
493
+ yield [s, o];
542
494
  });
543
495
  }
544
- unique() {
496
+ flatMap(t) {
545
497
  const e = this._elements;
546
- return new w(function* () {
547
- const t = /* @__PURE__ */ new Map();
548
- for (const [n, r] of e) {
549
- const i = t.get(n) ?? /* @__PURE__ */ new Set();
550
- i.has(r) || (i.add(r), t.set(n, i), yield [n, r]);
498
+ return new y(async function* () {
499
+ const n = /* @__PURE__ */ new Map();
500
+ for await (const [s, r] of e) {
501
+ const o = n.get(s) ?? 0, l = await t(s, r, o);
502
+ for await (const u of l)
503
+ yield [s, u];
504
+ n.set(s, o + 1);
551
505
  }
552
506
  });
553
507
  }
554
- count() {
508
+ drop(t) {
509
+ const e = this._elements;
510
+ return new y(async function* () {
511
+ const n = /* @__PURE__ */ new Map();
512
+ for await (const [s, r] of e) {
513
+ const o = n.get(s) ?? 0;
514
+ if (o < t) {
515
+ n.set(s, o + 1);
516
+ continue;
517
+ }
518
+ yield [s, r];
519
+ }
520
+ });
521
+ }
522
+ take(t) {
523
+ const e = this._elements;
524
+ return new y(async function* () {
525
+ const n = /* @__PURE__ */ new Map();
526
+ for await (const [s, r] of e) {
527
+ const o = n.get(s) ?? 0;
528
+ o >= t || (yield [s, r], n.set(s, o + 1));
529
+ }
530
+ });
531
+ }
532
+ async find(t) {
555
533
  const e = /* @__PURE__ */ new Map();
556
- for (const [t] of this._elements) {
557
- const n = e.get(t) ?? 0;
558
- e.set(t, n + 1);
534
+ for await (const [n, s] of this._elements) {
535
+ let [r, o] = e.get(n) ?? [0, void 0];
536
+ o === void 0 && (await t(n, s, r) && (o = s), e.set(n, [r + 1, o]));
559
537
  }
560
- return new l(function* () {
561
- for (const [t, n] of e)
562
- yield [t, n];
538
+ return new d(function* () {
539
+ for (const [n, [s, r]] of e)
540
+ yield [n, r];
563
541
  });
564
542
  }
565
- first() {
566
- const e = /* @__PURE__ */ new Map();
567
- for (const [t, n] of this._elements)
568
- e.has(t) || e.set(t, n);
569
- return new l(function* () {
570
- for (const [t, n] of e)
571
- yield [t, n];
543
+ unique() {
544
+ const t = this._elements;
545
+ return new y(async function* () {
546
+ const e = /* @__PURE__ */ new Map();
547
+ for await (const [n, s] of t) {
548
+ const r = e.get(n) ?? /* @__PURE__ */ new Set();
549
+ r.has(s) || (r.add(s), e.set(n, r), yield [n, s]);
550
+ }
572
551
  });
573
552
  }
574
- last() {
575
- const e = /* @__PURE__ */ new Map();
576
- for (const [t, n] of this._elements)
577
- e.set(t, n);
578
- return new l(function* () {
579
- for (const [t, n] of e)
580
- yield [t, n];
553
+ async count() {
554
+ const t = /* @__PURE__ */ new Map();
555
+ for await (const [e] of this._elements) {
556
+ const n = t.get(e) ?? 0;
557
+ t.set(e, n + 1);
558
+ }
559
+ return new d(function* () {
560
+ for (const [e, n] of t)
561
+ yield [e, n];
581
562
  });
582
563
  }
564
+ async forEach(t) {
565
+ const e = /* @__PURE__ */ new Map();
566
+ for await (const [n, s] of this._elements) {
567
+ const r = e.get(n) ?? 0;
568
+ t(n, s, r), e.set(n, r + 1);
569
+ }
570
+ }
583
571
  keys() {
584
- const e = this._elements;
585
- return new a(function* () {
586
- const t = /* @__PURE__ */ new Set();
587
- for (const [n] of e)
588
- t.has(n) || (t.add(n), yield n);
572
+ const t = this._elements;
573
+ return new w(async function* () {
574
+ const e = /* @__PURE__ */ new Set();
575
+ for await (const [n] of t)
576
+ e.has(n) || (e.add(n), yield n);
589
577
  });
590
578
  }
591
579
  items() {
592
580
  return this._elements;
593
581
  }
594
582
  values() {
595
- const e = this._elements;
596
- return new a(function* () {
597
- for (const [t, n] of e)
583
+ const t = this._elements;
584
+ return new w(async function* () {
585
+ for await (const [e, n] of t)
598
586
  yield n;
599
587
  });
600
588
  }
601
- toArray() {
602
- return Array.from(this.toMap().values());
589
+ async toArray() {
590
+ const t = await this.toMap();
591
+ return Array.from(t.values());
603
592
  }
604
- toMap() {
605
- const e = /* @__PURE__ */ new Map();
606
- for (const [t, n] of this._elements) {
607
- const r = e.get(t) ?? [];
608
- r.push(n), e.set(t, r);
593
+ async toMap() {
594
+ const t = /* @__PURE__ */ new Map();
595
+ for await (const [e, n] of this._elements) {
596
+ const s = t.get(e) ?? [];
597
+ s.push(n), t.set(e, s);
609
598
  }
610
- return e;
599
+ return t;
611
600
  }
612
- toObject() {
613
- const e = {};
614
- for (const [t, n] of this._elements) {
615
- const r = e[t] ?? [];
616
- r.push(n), e[t] = r;
601
+ async toObject() {
602
+ const t = {};
603
+ for await (const [e, n] of this._elements) {
604
+ const s = t[e] ?? [];
605
+ s.push(n), t[e] = s;
617
606
  }
618
- return e;
607
+ return t;
619
608
  }
620
- get [Symbol.toStringTag]() {
621
- return "AggregatedIterator";
609
+ };
610
+ let E = y;
611
+ var ye;
612
+ class w {
613
+ constructor(t) {
614
+ a(this, "_iterator");
615
+ a(this, "return");
616
+ a(this, "throw");
617
+ a(this, ye, "SmartAsyncIterator");
618
+ if (t instanceof Function) {
619
+ const e = t();
620
+ Symbol.asyncIterator in e ? this._iterator = e : this._iterator = async function* () {
621
+ let n = [];
622
+ for (; ; ) {
623
+ const s = e.next(...n);
624
+ if (s.done)
625
+ return s.value;
626
+ n = [yield s.value];
627
+ }
628
+ }();
629
+ } else if (Symbol.asyncIterator in t)
630
+ this._iterator = t[Symbol.asyncIterator]();
631
+ else if (Symbol.iterator in t) {
632
+ const e = t[Symbol.iterator]();
633
+ this._iterator = async function* () {
634
+ for (; ; ) {
635
+ const n = e.next();
636
+ if (n.done)
637
+ return n.value;
638
+ yield n.value;
639
+ }
640
+ }();
641
+ } else
642
+ this._iterator = async function* () {
643
+ let e = [];
644
+ for (; ; ) {
645
+ const n = await t.next(...e);
646
+ if (n.done)
647
+ return n.value;
648
+ e = [yield n.value];
649
+ }
650
+ }();
651
+ this._iterator.return && (this.return = (e) => this._iterator.return(e)), this._iterator.throw && (this.throw = (e) => this._iterator.throw(e));
622
652
  }
623
- }
624
- class _ {
625
- constructor(e) {
626
- u(this, "_elements");
627
- this._elements = new a(e);
653
+ async every(t) {
654
+ let e = 0;
655
+ for (; ; ) {
656
+ const n = await this._iterator.next();
657
+ if (n.done)
658
+ return !0;
659
+ if (!await t(n.value, e))
660
+ return !1;
661
+ e += 1;
662
+ }
663
+ }
664
+ async some(t) {
665
+ let e = 0;
666
+ for (; ; ) {
667
+ const n = await this._iterator.next();
668
+ if (n.done)
669
+ return !1;
670
+ if (await t(n.value, e))
671
+ return !0;
672
+ e += 1;
673
+ }
628
674
  }
629
- filter(e) {
630
- return new _(this._elements.filter(e));
675
+ filter(t) {
676
+ const e = this._iterator;
677
+ return new w(async function* () {
678
+ let n = 0;
679
+ for (; ; ) {
680
+ const s = await e.next();
681
+ if (s.done)
682
+ return s.value;
683
+ await t(s.value, n) && (yield s.value), n += 1;
684
+ }
685
+ });
631
686
  }
632
- map(e) {
633
- return new _(this._elements.map(e));
687
+ map(t) {
688
+ const e = this._iterator;
689
+ return new w(async function* () {
690
+ let n = 0;
691
+ for (; ; ) {
692
+ const s = await e.next();
693
+ if (s.done)
694
+ return s.value;
695
+ yield await t(s.value, n), n += 1;
696
+ }
697
+ });
698
+ }
699
+ async reduce(t, e) {
700
+ let n = 0, s = e;
701
+ if (s === void 0) {
702
+ const r = await this._iterator.next();
703
+ if (r.done)
704
+ throw new p("Cannot reduce an empty iterator without an initial value.");
705
+ s = r.value, n += 1;
706
+ }
707
+ for (; ; ) {
708
+ const r = await this._iterator.next();
709
+ if (r.done)
710
+ return s;
711
+ s = await t(s, r.value, n), n += 1;
712
+ }
713
+ }
714
+ flatMap(t) {
715
+ const e = this._iterator;
716
+ return new w(async function* () {
717
+ let n = 0;
718
+ for (; ; ) {
719
+ const s = await e.next();
720
+ if (s.done)
721
+ return s.value;
722
+ const r = await t(s.value, n);
723
+ for await (const o of r)
724
+ yield o;
725
+ n += 1;
726
+ }
727
+ });
728
+ }
729
+ drop(t) {
730
+ const e = this._iterator;
731
+ return new w(async function* () {
732
+ let n = 0;
733
+ for (; n < t; ) {
734
+ if ((await e.next()).done)
735
+ return;
736
+ n += 1;
737
+ }
738
+ for (; ; ) {
739
+ const s = await e.next();
740
+ if (s.done)
741
+ return s.value;
742
+ yield s.value;
743
+ }
744
+ });
745
+ }
746
+ take(t) {
747
+ const e = this._iterator;
748
+ return new w(async function* () {
749
+ let n = 0;
750
+ for (; n < t; ) {
751
+ const s = await e.next();
752
+ if (s.done)
753
+ return s.value;
754
+ yield s.value, n += 1;
755
+ }
756
+ });
757
+ }
758
+ async find(t) {
759
+ let e = 0;
760
+ for (; ; ) {
761
+ const n = await this._iterator.next();
762
+ if (n.done)
763
+ return;
764
+ if (await t(n.value, e))
765
+ return n.value;
766
+ e += 1;
767
+ }
768
+ }
769
+ enumerate() {
770
+ return this.map((t, e) => [e, t]);
634
771
  }
635
772
  unique() {
636
- return new _(this._elements.unique());
773
+ const t = this._iterator;
774
+ return new w(async function* () {
775
+ const e = /* @__PURE__ */ new Set();
776
+ for (; ; ) {
777
+ const n = await t.next();
778
+ if (n.done)
779
+ return n.value;
780
+ e.has(n.value) || (e.add(n.value), yield n.value);
781
+ }
782
+ });
637
783
  }
638
- groupBy(e) {
639
- return new w(this._elements.map((t, n) => [e(t, n), t]));
784
+ async count() {
785
+ let t = 0;
786
+ for (; ; ) {
787
+ if ((await this._iterator.next()).done)
788
+ return t;
789
+ t += 1;
790
+ }
640
791
  }
641
- get [Symbol.toStringTag]() {
642
- return "Aggregator";
792
+ async forEach(t) {
793
+ let e = 0;
794
+ for (; ; ) {
795
+ const n = await this._iterator.next();
796
+ if (n.done)
797
+ return;
798
+ await t(n.value, e), e += 1;
799
+ }
643
800
  }
644
- }
645
- class y {
646
- constructor(e) {
647
- u(this, "_elements");
648
- this._elements = new d(e);
801
+ next(...t) {
802
+ return this._iterator.next(...t);
649
803
  }
650
- async every(e) {
651
- const t = /* @__PURE__ */ new Map();
652
- for await (const [n, r] of this._elements) {
653
- const [i, o] = t.get(n) ?? [0, !0];
654
- o && t.set(n, [i + 1, await e(n, r, i)]);
804
+ groupBy(t) {
805
+ return new E(this.map(async (e, n) => [await t(e, n), e]));
806
+ }
807
+ toArray() {
808
+ return Array.fromAsync(this);
809
+ }
810
+ [(ye = Symbol.toStringTag, Symbol.asyncIterator)]() {
811
+ return this;
812
+ }
813
+ }
814
+ var ge;
815
+ ge = Symbol.toStringTag;
816
+ const g = class g {
817
+ constructor(t) {
818
+ a(this, "_elements");
819
+ a(this, ge, "AggregatedIterator");
820
+ this._elements = new c(t);
821
+ }
822
+ every(t) {
823
+ const e = /* @__PURE__ */ new Map();
824
+ for (const [n, s] of this._elements) {
825
+ const [r, o] = e.get(n) ?? [0, !0];
826
+ o && e.set(n, [r + 1, t(n, s, r)]);
655
827
  }
656
- return new l(function* () {
657
- for (const [n, [r, i]] of t)
658
- yield [n, i];
828
+ return new d(function* () {
829
+ for (const [n, [s, r]] of e)
830
+ yield [n, r];
659
831
  });
660
832
  }
661
- async some(e) {
662
- const t = /* @__PURE__ */ new Map();
663
- for await (const [n, r] of this._elements) {
664
- const [i, o] = t.get(n) ?? [0, !1];
665
- o || t.set(n, [i + 1, await e(n, r, i)]);
833
+ some(t) {
834
+ const e = /* @__PURE__ */ new Map();
835
+ for (const [n, s] of this._elements) {
836
+ const [r, o] = e.get(n) ?? [0, !1];
837
+ o || e.set(n, [r + 1, t(n, s, r)]);
666
838
  }
667
- return new l(function* () {
668
- for (const [n, [r, i]] of t)
669
- yield [n, i];
839
+ return new d(function* () {
840
+ for (const [n, [s, r]] of e)
841
+ yield [n, r];
670
842
  });
671
843
  }
672
- filter(e) {
673
- const t = this._elements;
674
- return new y(async function* () {
844
+ filter(t) {
845
+ const e = this._elements;
846
+ return new g(function* () {
675
847
  const n = /* @__PURE__ */ new Map();
676
- for await (const [r, i] of t) {
677
- const o = n.get(r) ?? 0;
678
- n.set(r, o + 1), await e(r, i, o) && (yield [r, i]);
848
+ for (const [s, r] of e) {
849
+ const o = n.get(s) ?? 0;
850
+ t(s, r, o) && (yield [s, r]), n.set(s, o + 1);
679
851
  }
680
852
  });
681
853
  }
682
- map(e) {
683
- const t = this._elements;
684
- return new y(async function* () {
854
+ map(t) {
855
+ const e = this._elements;
856
+ return new g(function* () {
685
857
  const n = /* @__PURE__ */ new Map();
686
- for await (const [r, i] of t) {
687
- const o = n.get(r) ?? 0;
688
- n.set(r, o + 1), yield [r, await e(r, i, o)];
858
+ for (const [s, r] of e) {
859
+ const o = n.get(s) ?? 0;
860
+ yield [s, t(s, r, o)], n.set(s, o + 1);
689
861
  }
690
862
  });
691
863
  }
692
- async reduce(e, t) {
864
+ reduce(t, e) {
693
865
  const n = /* @__PURE__ */ new Map();
694
- for await (const [r, i] of this._elements) {
695
- let o, c;
696
- if (n.has(r))
697
- [o, c] = n.get(r), o += 1;
698
- else if (t !== void 0)
699
- o = 0, c = await t(r);
866
+ for (const [s, r] of this._elements) {
867
+ let o, l;
868
+ if (n.has(s))
869
+ [o, l] = n.get(s);
870
+ else if (e !== void 0)
871
+ o = 0, l = e(s);
700
872
  else {
701
- n.set(r, [0, i]);
873
+ n.set(s, [0, r]);
702
874
  continue;
703
875
  }
704
- c = await e(r, c, i, o), n.set(r, [o, c]);
876
+ n.set(s, [o + 1, t(s, l, r, o)]);
705
877
  }
706
- return new l(function* () {
707
- for (const [r, [i, o]] of n)
708
- yield [r, o];
878
+ return new d(function* () {
879
+ for (const [s, [r, o]] of n)
880
+ yield [s, o];
709
881
  });
710
882
  }
711
- unique() {
883
+ flatMap(t) {
712
884
  const e = this._elements;
713
- return new y(async function* () {
714
- const t = /* @__PURE__ */ new Map();
715
- for await (const [n, r] of e) {
716
- const i = t.get(n) ?? /* @__PURE__ */ new Set();
717
- i.has(r) || (i.add(r), t.set(n, i), yield [n, r]);
885
+ return new g(function* () {
886
+ const n = /* @__PURE__ */ new Map();
887
+ for (const [s, r] of e) {
888
+ const o = n.get(s) ?? 0, l = t(s, r, o);
889
+ for (const u of l)
890
+ yield [s, u];
891
+ n.set(s, o + 1);
718
892
  }
719
893
  });
720
894
  }
721
- async count() {
895
+ drop(t) {
896
+ const e = this._elements;
897
+ return new g(function* () {
898
+ const n = /* @__PURE__ */ new Map();
899
+ for (const [s, r] of e) {
900
+ const o = n.get(s) ?? 0;
901
+ if (o < t) {
902
+ n.set(s, o + 1);
903
+ continue;
904
+ }
905
+ yield [s, r];
906
+ }
907
+ });
908
+ }
909
+ take(t) {
910
+ const e = this._elements;
911
+ return new g(function* () {
912
+ const n = /* @__PURE__ */ new Map();
913
+ for (const [s, r] of e) {
914
+ const o = n.get(s) ?? 0;
915
+ o >= t || (yield [s, r], n.set(s, o + 1));
916
+ }
917
+ });
918
+ }
919
+ find(t) {
722
920
  const e = /* @__PURE__ */ new Map();
723
- for await (const [t] of this._elements) {
724
- const n = e.get(t) ?? 0;
725
- e.set(t, n + 1);
921
+ for (const [n, s] of this._elements) {
922
+ let [r, o] = e.get(n) ?? [0, void 0];
923
+ o === void 0 && (t(n, s, r) && (o = s), e.set(n, [r + 1, o]));
726
924
  }
727
- return new l(function* () {
728
- for (const [t, n] of e)
729
- yield [t, n];
925
+ return new d(function* () {
926
+ for (const [n, [s, r]] of e)
927
+ yield [n, r];
730
928
  });
731
929
  }
732
- async first() {
733
- const e = /* @__PURE__ */ new Map();
734
- for await (const [t, n] of this._elements)
735
- e.has(t) || e.set(t, n);
736
- return new l(function* () {
737
- for (const [t, n] of e)
738
- yield [t, n];
930
+ enumerate() {
931
+ return this.map((t, e, n) => [n, e]);
932
+ }
933
+ unique() {
934
+ const t = this._elements;
935
+ return new g(function* () {
936
+ const e = /* @__PURE__ */ new Map();
937
+ for (const [n, s] of t) {
938
+ const r = e.get(n) ?? /* @__PURE__ */ new Set();
939
+ r.has(s) || (r.add(s), e.set(n, r), yield [n, s]);
940
+ }
739
941
  });
740
942
  }
741
- async last() {
742
- const e = /* @__PURE__ */ new Map();
743
- for await (const [t, n] of this._elements)
744
- e.set(t, n);
745
- return new l(function* () {
746
- for (const [t, n] of e)
747
- yield [t, n];
943
+ count() {
944
+ const t = /* @__PURE__ */ new Map();
945
+ for (const [e] of this._elements) {
946
+ const n = t.get(e) ?? 0;
947
+ t.set(e, n + 1);
948
+ }
949
+ return new d(function* () {
950
+ for (const [e, n] of t)
951
+ yield [e, n];
748
952
  });
749
953
  }
954
+ forEach(t) {
955
+ const e = /* @__PURE__ */ new Map();
956
+ for (const [n, s] of this._elements) {
957
+ const r = e.get(n) ?? 0;
958
+ t(n, s, r), e.set(n, r + 1);
959
+ }
960
+ }
750
961
  keys() {
751
- const e = this._elements;
752
- return new d(async function* () {
753
- const t = /* @__PURE__ */ new Set();
754
- for await (const [n] of e)
755
- t.has(n) || (t.add(n), yield n);
962
+ const t = this._elements;
963
+ return new c(function* () {
964
+ const e = /* @__PURE__ */ new Set();
965
+ for (const [n] of t)
966
+ e.has(n) || (e.add(n), yield n);
756
967
  });
757
968
  }
758
969
  items() {
759
970
  return this._elements;
760
971
  }
761
972
  values() {
762
- const e = this._elements;
763
- return new d(async function* () {
764
- for await (const [t, n] of e)
973
+ const t = this._elements;
974
+ return new c(function* () {
975
+ for (const [e, n] of t)
765
976
  yield n;
766
977
  });
767
978
  }
768
- async toArray() {
769
- const e = await this.toMap();
770
- return Array.from(e.values());
979
+ toArray() {
980
+ const t = this.toMap();
981
+ return Array.from(t.values());
771
982
  }
772
- async toMap() {
773
- const e = /* @__PURE__ */ new Map();
774
- for await (const [t, n] of this._elements) {
775
- const r = e.get(t) ?? [];
776
- r.push(n), e.set(t, r);
983
+ toMap() {
984
+ const t = /* @__PURE__ */ new Map();
985
+ for (const [e, n] of this._elements) {
986
+ const s = t.get(e) ?? [];
987
+ s.push(n), t.set(e, s);
777
988
  }
778
- return e;
989
+ return t;
779
990
  }
780
- async toObject() {
781
- const e = {};
782
- for await (const [t, n] of this._elements) {
783
- const r = e[t] ?? [];
784
- r.push(n), e[t] = r;
991
+ toObject() {
992
+ const t = {};
993
+ for (const [e, n] of this._elements) {
994
+ const s = t[e] ?? [];
995
+ s.push(n), t[e] = s;
785
996
  }
786
- return e;
997
+ return t;
787
998
  }
788
- get [Symbol.toStringTag]() {
789
- return "AggregatedAsyncIterator";
999
+ };
1000
+ let S = g;
1001
+ const Be = Function;
1002
+ class Ge extends Be {
1003
+ constructor() {
1004
+ super("return this.invoke(...arguments);");
1005
+ const t = this.bind(this);
1006
+ return Object.setPrototypeOf(this, t), t;
790
1007
  }
791
1008
  }
792
- class p {
793
- constructor(e) {
794
- u(this, "_elements");
795
- this._elements = new d(e);
796
- }
797
- filter(e) {
798
- return new p(this._elements.filter(e));
799
- }
800
- map(e) {
801
- return new p(this._elements.map(e));
802
- }
803
- unique() {
804
- return new p(this._elements.unique());
805
- }
806
- groupBy(e) {
807
- return new y(this._elements.map(async (t, n) => [await e(t, n), t]));
1009
+ var be;
1010
+ be = Symbol.toStringTag;
1011
+ class M {
1012
+ constructor() {
1013
+ a(this, "_subscribers");
1014
+ a(this, be, "Publisher");
1015
+ this._subscribers = /* @__PURE__ */ new Map();
1016
+ }
1017
+ subscribe(t, e) {
1018
+ this._subscribers.has(t) || this._subscribers.set(t, []);
1019
+ const n = this._subscribers.get(t);
1020
+ return n.push(e), () => {
1021
+ const s = n.indexOf(e);
1022
+ if (s < 0)
1023
+ throw new Je("Unable to unsubscribe the required subscriber. The subscription was already unsubscribed.");
1024
+ n.splice(s, 1);
1025
+ };
808
1026
  }
809
- get [Symbol.toStringTag]() {
810
- return "AsyncAggregator";
1027
+ publish(t, ...e) {
1028
+ const n = this._subscribers.get(t);
1029
+ return n ? n.slice().map((s) => s(...e)) : [];
811
1030
  }
812
1031
  }
813
- var x = /* @__PURE__ */ ((s) => (s[s.Millisecond = 1] = "Millisecond", s[s.Second = 1e3] = "Second", s[s.Minute = 6e4] = "Minute", s[s.Hour = 36e5] = "Hour", s[s.Day = 864e5] = "Day", s[s.Week = 6048e5] = "Week", s[s.Month = 2592e6] = "Month", s[s.Year = 31536e6] = "Year", s))(x || {});
814
- function L(s, e, t = 864e5) {
815
- return s = new Date(s), e = new Date(e), Math.floor((e.getTime() - s.getTime()) / t);
816
- }
817
- function Q(s, e, t = 864e5) {
818
- return s = new Date(s), e = new Date(e), new a(function* () {
819
- const n = e.getTime();
820
- let r = s.getTime();
821
- for (; r < n; )
822
- yield new Date(r), r += t;
823
- });
824
- }
825
- function X(s, e = 864e5) {
826
- return s = new Date(s), new Date(Math.floor(s.getTime() / e) * e);
1032
+ class st extends Ge {
1033
+ constructor() {
1034
+ const e = () => {
1035
+ throw new ze(
1036
+ "The `SwitchableCallback` has no callback defined yet. Did you forget to call the `register` method?"
1037
+ );
1038
+ };
1039
+ super();
1040
+ a(this, "_callback");
1041
+ a(this, "_callbacks");
1042
+ a(this, "_isEnabled");
1043
+ a(this, "_key");
1044
+ a(this, "invoke");
1045
+ this._callback = e, this._callbacks = /* @__PURE__ */ new Map(), this._isEnabled = !0, this._key = "", this.invoke = (...n) => this._callback(...n);
1046
+ }
1047
+ get isEnabled() {
1048
+ return this._isEnabled;
1049
+ }
1050
+ get key() {
1051
+ return this._key;
1052
+ }
1053
+ enable() {
1054
+ if (!this._key)
1055
+ throw new x(
1056
+ "The `SwitchableCallback` has no callback defined yet. Did you forget to call the `register` method?"
1057
+ );
1058
+ if (this._isEnabled)
1059
+ throw new m("The `SwitchableCallback` is already enabled.");
1060
+ this._callback = this._callbacks.get(this._key), this._isEnabled = !0;
1061
+ }
1062
+ disable() {
1063
+ if (!this._isEnabled)
1064
+ throw new m("The `SwitchableCallback` is already disabled.");
1065
+ this._callback = () => {
1066
+ }, this._isEnabled = !1;
1067
+ }
1068
+ register(e, n) {
1069
+ if (this._callbacks.size === 0)
1070
+ this._key = e, this._callback = n;
1071
+ else if (this._callbacks.has(e))
1072
+ throw new x(`The key '${e}' has already been used for another callback.`);
1073
+ this._callbacks.set(e, n);
1074
+ }
1075
+ unregister(e) {
1076
+ if (!this._callbacks.has(e))
1077
+ throw new x(`The key '${e}' doesn't yet have any associated callback.`);
1078
+ this._callbacks.delete(e);
1079
+ }
1080
+ switch(e) {
1081
+ if (!this._callbacks.has(e))
1082
+ throw new x(`The key '${e}' doesn't yet have any associated callback.`);
1083
+ this._key = e, this._isEnabled && (this._callback = this._callbacks.get(e));
1084
+ }
827
1085
  }
828
- class R {
829
- constructor(e, t = 30) {
830
- u(this, "_handle");
831
- u(this, "_startTime");
832
- u(this, "_isRunning");
833
- u(this, "_start");
834
- u(this, "_stop");
835
- this._startTime = 0, this._isRunning = !1, E ? (this._start = () => {
836
- e(this.elapsedTime), this._handle = window.requestAnimationFrame(this._start);
1086
+ var xe;
1087
+ xe = Symbol.toStringTag;
1088
+ class qe {
1089
+ constructor(t, e = 40) {
1090
+ a(this, "_handle");
1091
+ a(this, "_startTime");
1092
+ a(this, "_isRunning");
1093
+ a(this, "_start");
1094
+ a(this, "_stop");
1095
+ a(this, xe, "GameLoop");
1096
+ this._startTime = 0, this._isRunning = !1, Oe ? (this._start = () => {
1097
+ t(this.elapsedTime), this._handle = window.requestAnimationFrame(this._start);
837
1098
  }, this._stop = () => window.cancelAnimationFrame(this._handle)) : (console.warn(
838
- `Not a browser environment detected. Using setInterval@${t}fps instead of requestAnimationFrame...`
1099
+ `Not a browser environment detected. Using setInterval@${e}ms instead of requestAnimationFrame...`
839
1100
  ), this._start = () => {
840
- const n = x.Second / t;
841
- this._handle = setInterval(() => e(this.elapsedTime), n);
1101
+ this._handle = setInterval(() => t(this.elapsedTime), e);
842
1102
  }, this._stop = () => clearInterval(this._handle));
843
1103
  }
844
1104
  get startTime() {
@@ -850,58 +1110,61 @@ class R {
850
1110
  get elapsedTime() {
851
1111
  return performance.now() - this._startTime;
852
1112
  }
853
- start(e = 0) {
1113
+ start(t = 0) {
854
1114
  if (this._isRunning)
855
1115
  throw new m("The game loop has already been started.");
856
- this._startTime = performance.now() - e, this._start(), this._isRunning = !0;
1116
+ this._startTime = performance.now() - t, this._start(), this._isRunning = !0;
857
1117
  }
858
1118
  stop() {
859
1119
  if (!this._isRunning)
860
1120
  throw new m("The game loop hadn't yet started.");
861
1121
  if (!this._handle)
862
- throw new g();
1122
+ throw new k();
863
1123
  this._stop(), this._handle = void 0, this._isRunning = !1;
864
1124
  }
865
1125
  }
866
- class Z {
867
- constructor(e = !0) {
868
- u(this, "_preferPersistence");
869
- u(this, "_volatile");
870
- u(this, "_persistent");
871
- if (this._preferPersistence = e, !E)
872
- throw new A(
1126
+ var ve;
1127
+ ve = Symbol.toStringTag;
1128
+ class rt {
1129
+ constructor(t = !0) {
1130
+ a(this, "_preferPersistence");
1131
+ a(this, "_volatile");
1132
+ a(this, "_persistent");
1133
+ a(this, ve, "JSONStorage");
1134
+ if (this._preferPersistence = t, !Oe)
1135
+ throw new Ve(
873
1136
  "The `JSONStorage` class can only be instantiated within a browser environment."
874
1137
  );
875
1138
  this._volatile = window.sessionStorage, this._persistent = window.localStorage;
876
1139
  }
877
- _get(e, t, n) {
878
- const r = e.getItem(t);
879
- if (r)
1140
+ _get(t, e, n) {
1141
+ const s = t.getItem(e);
1142
+ if (s)
880
1143
  try {
881
- return JSON.parse(r);
1144
+ return JSON.parse(s);
882
1145
  } catch {
883
1146
  console.warn(
884
- `The "${r}" value for "${t}" property cannot be parsed. Clearing the storage...`
885
- ), e.removeItem(t);
1147
+ `The "${s}" value for "${e}" property cannot be parsed. Clearing the storage...`
1148
+ ), t.removeItem(e);
886
1149
  }
887
1150
  return n;
888
1151
  }
889
- _set(e, t, n) {
890
- const r = JSON.stringify(n);
891
- r ? e.setItem(t, r) : e.removeItem(t);
1152
+ _set(t, e, n) {
1153
+ const s = JSON.stringify(n);
1154
+ s ? t.setItem(e, s) : t.removeItem(e);
892
1155
  }
893
- get(e, t, n = this._preferPersistence) {
894
- const r = n ? this._persistent : this._volatile;
895
- return this._get(r, e, t);
1156
+ get(t, e, n = this._preferPersistence) {
1157
+ const s = n ? this._persistent : this._volatile;
1158
+ return this._get(s, t, e);
896
1159
  }
897
- recall(e, t) {
898
- return this._get(this._volatile, e, t);
1160
+ recall(t, e) {
1161
+ return this._get(this._volatile, t, e);
899
1162
  }
900
- retrieve(e, t) {
901
- return this.recall(e) ?? this.read(e, t);
1163
+ retrieve(t, e) {
1164
+ return this.recall(t) ?? this.read(t, e);
902
1165
  }
903
- read(e, t) {
904
- return this._get(this._persistent, e, t);
1166
+ read(t, e) {
1167
+ return this._get(this._persistent, t, e);
905
1168
  }
906
1169
  /**
907
1170
  * Checks whether the property with the specified name exists in the corresponding storage.
@@ -911,8 +1174,8 @@ class Z {
911
1174
  *
912
1175
  * @returns `true` if the property exists, `false` otherwise.
913
1176
  */
914
- has(e, t) {
915
- return (t ? this._persistent : this._volatile).getItem(e) !== null;
1177
+ has(t, e) {
1178
+ return (e ? this._persistent : this._volatile).getItem(t) !== null;
916
1179
  }
917
1180
  /**
918
1181
  * Checks whether the property with the specified name exists in the volatile `sessionStorage`.
@@ -921,8 +1184,8 @@ class Z {
921
1184
  *
922
1185
  * @returns `true` if the property exists, `false` otherwise.
923
1186
  */
924
- knows(e) {
925
- return this._volatile.getItem(e) !== null;
1187
+ knows(t) {
1188
+ return this._volatile.getItem(t) !== null;
926
1189
  }
927
1190
  /**
928
1191
  * Checks whether the property with the specified name exists looking first in the
@@ -932,8 +1195,8 @@ class Z {
932
1195
  *
933
1196
  * @returns `true` if the property exists, `false` otherwise.
934
1197
  */
935
- find(e) {
936
- return this.knows(e) ?? this.exists(e);
1198
+ find(t) {
1199
+ return this.knows(t) ?? this.exists(t);
937
1200
  }
938
1201
  /**
939
1202
  * Checks whether the property with the specified name exists in the persistent `localStorage`.
@@ -942,8 +1205,8 @@ class Z {
942
1205
  *
943
1206
  * @returns `true` if the property exists, `false` otherwise.
944
1207
  */
945
- exists(e) {
946
- return this._persistent.getItem(e) !== null;
1208
+ exists(t) {
1209
+ return this._persistent.getItem(t) !== null;
947
1210
  }
948
1211
  /**
949
1212
  * Sets the value with the specified name in the corresponding storage.
@@ -953,9 +1216,9 @@ class Z {
953
1216
  * @param newValue The new value to set.
954
1217
  * @param persistent Whether to use the persistent `localStorage` or the volatile `sessionStorage`.
955
1218
  */
956
- set(e, t, n = this._preferPersistence) {
957
- const r = n ? this._persistent : this._volatile;
958
- this._set(r, e, t);
1219
+ set(t, e, n = this._preferPersistence) {
1220
+ const s = n ? this._persistent : this._volatile;
1221
+ this._set(s, t, e);
959
1222
  }
960
1223
  /**
961
1224
  * Sets the value with the specified name in the volatile `sessionStorage`.
@@ -964,8 +1227,8 @@ class Z {
964
1227
  * @param propertyName The name of the property to set.
965
1228
  * @param newValue The new value to set.
966
1229
  */
967
- remember(e, t) {
968
- this._set(this._volatile, e, t);
1230
+ remember(t, e) {
1231
+ this._set(this._volatile, t, e);
969
1232
  }
970
1233
  /**
971
1234
  * Sets the value with the specified name in the persistent `localStorage`.
@@ -974,48 +1237,51 @@ class Z {
974
1237
  * @param propertyName The name of the property to set.
975
1238
  * @param newValue The new value to set.
976
1239
  */
977
- write(e, t) {
978
- this._set(this._persistent, e, t);
1240
+ write(t, e) {
1241
+ this._set(this._persistent, t, e);
979
1242
  }
980
1243
  /**
981
1244
  * Removes the value with the specified name from the volatile `sessionStorage`.
982
1245
  *
983
1246
  * @param propertyName The name of the property to remove.
984
1247
  */
985
- forget(e) {
986
- this._volatile.removeItem(e);
1248
+ forget(t) {
1249
+ this._volatile.removeItem(t);
987
1250
  }
988
1251
  /**
989
1252
  * Removes the value with the specified name from the persistent `localStorage`.
990
1253
  *
991
1254
  * @param propertyName The name of the property to remove.
992
1255
  */
993
- erase(e) {
994
- this._persistent.removeItem(e);
1256
+ erase(t) {
1257
+ this._persistent.removeItem(t);
995
1258
  }
996
1259
  /**
997
1260
  * Removes the value with the specified name from all the storages.
998
1261
  *
999
1262
  * @param propertyName The name of the property to remove.
1000
1263
  */
1001
- clear(e) {
1002
- this._volatile.removeItem(e), this._persistent.removeItem(e);
1003
- }
1004
- get [Symbol.toStringTag]() {
1005
- return "JSONStorage";
1264
+ clear(t) {
1265
+ this._volatile.removeItem(t), this._persistent.removeItem(t);
1006
1266
  }
1007
1267
  }
1008
- class F {
1009
- constructor(e) {
1010
- u(this, "_isPending");
1011
- u(this, "_isFulfilled");
1012
- u(this, "_isRejected");
1013
- u(this, "_promise");
1268
+ var ke;
1269
+ ke = Symbol.toStringTag;
1270
+ const R = class R {
1271
+ constructor(t) {
1272
+ a(this, "_isPending");
1273
+ a(this, "_isFulfilled");
1274
+ a(this, "_isRejected");
1275
+ a(this, "_promise");
1276
+ a(this, ke, "SmartPromise");
1014
1277
  this._isPending = !0, this._isFulfilled = !1, this._isRejected = !1;
1015
- const t = (r) => (this._isPending = !1, this._isFulfilled = !0, r), n = (r) => {
1016
- throw this._isPending = !1, this._isRejected = !0, r;
1278
+ const e = (s) => (this._isPending = !1, this._isFulfilled = !0, s), n = (s) => {
1279
+ throw this._isPending = !1, this._isRejected = !0, s;
1017
1280
  };
1018
- this._promise = new Promise(e).then(t, n);
1281
+ this._promise = new Promise(t).then(e, n);
1282
+ }
1283
+ static FromPromise(t) {
1284
+ return new R((e, n) => t.then(e, n));
1019
1285
  }
1020
1286
  get isPending() {
1021
1287
  return this._isPending;
@@ -1026,28 +1292,28 @@ class F {
1026
1292
  get isRejected() {
1027
1293
  return this._isRejected;
1028
1294
  }
1029
- then(e, t) {
1030
- return this._promise.then(e, t);
1295
+ then(t, e) {
1296
+ return this._promise.then(t, e);
1031
1297
  }
1032
- catch(e) {
1033
- return this._promise.catch(e);
1298
+ catch(t) {
1299
+ return this._promise.catch(t);
1034
1300
  }
1035
- finally(e) {
1036
- return this._promise.finally(e);
1301
+ finally(t) {
1302
+ return this._promise.finally(t);
1037
1303
  }
1038
- get [Symbol.toStringTag]() {
1039
- return "SmartPromise";
1040
- }
1041
- }
1042
- class O extends F {
1043
- constructor(t, n) {
1044
- let r, i;
1045
- super((o, c) => {
1046
- r = o, i = c;
1304
+ };
1305
+ let T = R;
1306
+ var Se, Te;
1307
+ class Ke extends (Te = T, Se = Symbol.toStringTag, Te) {
1308
+ constructor(e, n) {
1309
+ let s, r;
1310
+ super((o, l) => {
1311
+ s = o, r = l;
1047
1312
  });
1048
- u(this, "_resolve");
1049
- u(this, "_reject");
1050
- this._promise.then(t, n), this._resolve = r, this._reject = i;
1313
+ a(this, "_resolve");
1314
+ a(this, "_reject");
1315
+ a(this, Se, "DeferredPromise");
1316
+ this._promise.then(e, n), this._resolve = s, this._reject = r;
1051
1317
  }
1052
1318
  get resolve() {
1053
1319
  return this._resolve;
@@ -1055,86 +1321,293 @@ class O extends F {
1055
1321
  get reject() {
1056
1322
  return this._reject;
1057
1323
  }
1058
- watch(t) {
1059
- return t.then(this.resolve, this.reject), this;
1060
- }
1061
- get [Symbol.toStringTag]() {
1062
- return "DeferredPromise";
1324
+ watch(e) {
1325
+ return e.then(this.resolve, this.reject), this;
1063
1326
  }
1064
1327
  }
1065
- class U extends F {
1066
- constructor(e, t) {
1067
- super((n, r) => {
1068
- const i = (v) => {
1069
- clearTimeout(b), n(v);
1070
- }, o = (v) => {
1071
- clearTimeout(b), r(v);
1072
- }, b = setTimeout(() => o(new C("The operation has timed out.")), t);
1073
- e(i, o);
1074
- });
1328
+ function it(i) {
1329
+ return new Promise((t) => setTimeout(t, i));
1330
+ }
1331
+ function ot() {
1332
+ return new Promise((i) => requestAnimationFrame(() => i()));
1333
+ }
1334
+ function v() {
1335
+ return new Promise((i) => setTimeout(i));
1336
+ }
1337
+ var Ee;
1338
+ Ee = Symbol.toStringTag;
1339
+ const P = class P {
1340
+ constructor(t, e) {
1341
+ a(this, "_startTime");
1342
+ a(this, "_estimatedTime");
1343
+ a(this, "_endTime");
1344
+ a(this, "_currentStep");
1345
+ a(this, "_percentage");
1346
+ a(this, "_isRunning");
1347
+ a(this, "_hasCompleted");
1348
+ a(this, "_hasFailed");
1349
+ a(this, "_promise");
1350
+ a(this, "_publisher");
1351
+ a(this, Ee, "LongRunningTask");
1352
+ this._startTime = 0, this._estimatedTime = 0, this._currentStep = 0, this._percentage = 0, this._isRunning = !0, this._hasCompleted = !1, this._hasFailed = !1;
1353
+ const n = (o) => (this._estimatedTime = 0, this._endTime = Date.now(), this._percentage = 100, this._isRunning = !1, this._hasCompleted = !0, o), s = (o) => {
1354
+ throw this._endTime = Date.now(), this._isRunning = !1, this._hasFailed = !0, o;
1355
+ };
1356
+ let r;
1357
+ if (e = { ...P._DefaultOptions, ...e }, e.trackProgress) {
1358
+ let o;
1359
+ this._publisher = new M(), e.totalSteps ? e.stepIncrement ? o = (l) => {
1360
+ l ? this._currentStep += l : this._currentStep += e.stepIncrement, this._percentage = this._currentStep / e.totalSteps * 100;
1361
+ const u = Date.now() - this._startTime, h = e.totalSteps - this._currentStep;
1362
+ this._estimatedTime = u / this._currentStep * h;
1363
+ } : o = (l) => {
1364
+ if (l) {
1365
+ this._currentStep += l, this._percentage = this._currentStep / e.totalSteps * 100;
1366
+ const u = Date.now() - this._startTime, h = e.totalSteps - this._currentStep;
1367
+ this._estimatedTime = u / this._currentStep * h;
1368
+ }
1369
+ } : e.stepIncrement ? o = (l) => {
1370
+ l ? this._currentStep += l : this._currentStep += e.stepIncrement;
1371
+ } : o = (l) => {
1372
+ l && (this._currentStep += l);
1373
+ }, e.ignoreErrors ? r = async (l) => {
1374
+ const u = t();
1375
+ for (this._startTime = Date.now(); ; ) {
1376
+ try {
1377
+ const { done: h, value: _ } = await u.next();
1378
+ if (h)
1379
+ return l(_);
1380
+ o(_);
1381
+ } catch (h) {
1382
+ console.error(h);
1383
+ }
1384
+ this._publisher.publish("progress"), await v();
1385
+ }
1386
+ } : r = async (l, u) => {
1387
+ try {
1388
+ const h = t();
1389
+ for (this._startTime = Date.now(); ; ) {
1390
+ const { done: _, value: I } = await h.next();
1391
+ if (_)
1392
+ return l(I);
1393
+ o(I), this._publisher.publish("progress"), await v();
1394
+ }
1395
+ } catch (h) {
1396
+ u(h);
1397
+ }
1398
+ };
1399
+ } else e.ignoreErrors ? r = async (o) => {
1400
+ const l = t();
1401
+ for (this._startTime = Date.now(); ; ) {
1402
+ try {
1403
+ const { done: u, value: h } = await l.next();
1404
+ if (u)
1405
+ return o(h);
1406
+ } catch (u) {
1407
+ console.error(u);
1408
+ }
1409
+ await v();
1410
+ }
1411
+ } : r = async (o, l) => {
1412
+ try {
1413
+ const u = t();
1414
+ for (this._startTime = Date.now(); ; ) {
1415
+ const { done: h, value: _ } = await u.next();
1416
+ if (h)
1417
+ return o(_);
1418
+ await v();
1419
+ }
1420
+ } catch (u) {
1421
+ l(u);
1422
+ }
1423
+ };
1424
+ this._promise = new Promise(r).then(n, s);
1425
+ }
1426
+ static get _DefaultOptions() {
1427
+ return {
1428
+ ignoreErrors: !1,
1429
+ stepIncrement: 1,
1430
+ totalSteps: null,
1431
+ trackProgress: !1
1432
+ };
1433
+ }
1434
+ get startTime() {
1435
+ return this._startTime;
1436
+ }
1437
+ get elapsedTime() {
1438
+ return this._isRunning ? Date.now() - this._startTime : this._endTime - this._startTime;
1075
1439
  }
1076
- get [Symbol.toStringTag]() {
1077
- return "TimedPromise";
1440
+ get estimatedTime() {
1441
+ return this._estimatedTime;
1078
1442
  }
1079
- }
1080
- class P {
1443
+ get endTime() {
1444
+ if (this._isRunning)
1445
+ throw new m("The task is still running and has no end time yet.");
1446
+ return this._endTime;
1447
+ }
1448
+ get currentStep() {
1449
+ return this._currentStep;
1450
+ }
1451
+ get percentage() {
1452
+ return this._percentage;
1453
+ }
1454
+ get isRunning() {
1455
+ return this._isRunning;
1456
+ }
1457
+ get hasCompleted() {
1458
+ return this._hasCompleted;
1459
+ }
1460
+ get hasFailed() {
1461
+ return this._hasFailed;
1462
+ }
1463
+ then(t, e) {
1464
+ return this._promise.then(t, e);
1465
+ }
1466
+ catch(t) {
1467
+ return this._promise.catch(t);
1468
+ }
1469
+ finally(t) {
1470
+ return this._promise.finally(t);
1471
+ }
1472
+ onProgress(t) {
1473
+ if (!this._publisher)
1474
+ throw new m(
1475
+ "You cannot subscribe to progress events without enabling progress tracking. Did you forget to set the `trackProgress` option to `true` when creating the task?"
1476
+ );
1477
+ return this._publisher.subscribe("progress", t);
1478
+ }
1479
+ };
1480
+ let C = P;
1481
+ var Me;
1482
+ Me = Symbol.toStringTag;
1483
+ class at {
1081
1484
  constructor() {
1082
- u(this, "_subscribers");
1083
- this._subscribers = [];
1084
- }
1085
- subscribe(e) {
1086
- return this._subscribers.push(e), () => {
1087
- const t = this._subscribers.indexOf(e);
1088
- if (t < 0)
1089
- throw new q("Unable to unsubscribe the required subscriber. The subscription was already unsubscribed.");
1090
- this._subscribers.splice(t, 1);
1091
- };
1485
+ a(this, "_onFulfilled");
1486
+ a(this, Me, "Thenable");
1487
+ this._onFulfilled = (t) => t;
1488
+ }
1489
+ _resolve(t) {
1490
+ return this._onFulfilled(t);
1491
+ }
1492
+ then(t, e) {
1493
+ if (e) {
1494
+ const n = this._onFulfilled;
1495
+ this._onFulfilled = (s) => {
1496
+ try {
1497
+ return s = n(s), t(s);
1498
+ } catch (r) {
1499
+ return e(r);
1500
+ }
1501
+ };
1502
+ } else if (t) {
1503
+ const n = this._onFulfilled;
1504
+ this._onFulfilled = (s) => (s = n(s), t(s));
1505
+ }
1506
+ return this;
1092
1507
  }
1093
- publish(...e) {
1094
- return this._subscribers.slice().map((t) => t(...e));
1508
+ catch(t) {
1509
+ if (t) {
1510
+ const e = this._onFulfilled;
1511
+ this._onFulfilled = (n) => {
1512
+ try {
1513
+ return e(n);
1514
+ } catch (s) {
1515
+ return t(s);
1516
+ }
1517
+ };
1518
+ }
1519
+ return this;
1520
+ }
1521
+ finally(t) {
1522
+ if (t) {
1523
+ const e = this._onFulfilled;
1524
+ this._onFulfilled = (n) => {
1525
+ try {
1526
+ return e(n);
1527
+ } finally {
1528
+ t();
1529
+ }
1530
+ };
1531
+ }
1532
+ return this;
1095
1533
  }
1096
- get [Symbol.toStringTag]() {
1097
- return "Publisher";
1534
+ }
1535
+ var Fe, Re;
1536
+ class lt extends (Re = T, Fe = Symbol.toStringTag, Re) {
1537
+ constructor(e, n) {
1538
+ super((s, r) => {
1539
+ const o = (_) => {
1540
+ clearTimeout(h), s(_);
1541
+ }, l = (_) => {
1542
+ clearTimeout(h), r(_);
1543
+ }, h = setTimeout(() => l(new We("The operation has timed out.")), n);
1544
+ e(o, l);
1545
+ });
1546
+ a(this, Fe, "TimedPromise");
1098
1547
  }
1099
1548
  }
1100
- class ee extends R {
1101
- constructor(t = x.Second) {
1102
- super((n) => this._publisher.publish(n), t);
1103
- u(this, "_publisher");
1104
- this._publisher = new P();
1549
+ var F = /* @__PURE__ */ ((i) => (i[i.Millisecond = 1] = "Millisecond", i[i.Second = 1e3] = "Second", i[i.Minute = 6e4] = "Minute", i[i.Hour = 36e5] = "Hour", i[i.Day = 864e5] = "Day", i[i.Week = 6048e5] = "Week", i[i.Month = 2592e6] = "Month", i[i.Year = 31536e6] = "Year", i))(F || {});
1550
+ function ut(i, t, e = 864e5) {
1551
+ return i = new Date(i), t = new Date(t), Math.floor((t.getTime() - i.getTime()) / e);
1552
+ }
1553
+ function ct(i, t, e = 864e5) {
1554
+ return i = new Date(i), t = new Date(t), new c(function* () {
1555
+ const n = t.getTime();
1556
+ let s = i.getTime();
1557
+ for (; s < n; )
1558
+ yield new Date(s), s += e;
1559
+ });
1560
+ }
1561
+ function ht(i, t = 864e5) {
1562
+ return i = new Date(i), new Date(Math.floor(i.getTime() / t) * t);
1563
+ }
1564
+ var Pe, De;
1565
+ class ft extends (De = qe, Pe = Symbol.toStringTag, De) {
1566
+ constructor(e = F.Second) {
1567
+ super((n) => this._publisher.publish("tick", n), e);
1568
+ a(this, "_publisher");
1569
+ a(this, Pe, "Clock");
1570
+ this._publisher = new M();
1105
1571
  }
1106
- start(t = 0) {
1572
+ start(e = 0) {
1107
1573
  if (this._isRunning)
1108
1574
  throw new m("The clock has already been started.");
1109
- super.start(t);
1575
+ super.start(e), this._publisher.publish("start");
1110
1576
  }
1111
1577
  stop() {
1112
1578
  if (!this._isRunning)
1113
1579
  throw new m("The clock hadn't yet started.");
1114
- super.stop();
1580
+ super.stop(), this._publisher.publish("stop");
1581
+ }
1582
+ onStart(e) {
1583
+ return this._publisher.subscribe("start", e);
1115
1584
  }
1116
- onTick(t, n = 0) {
1585
+ onStop(e) {
1586
+ return this._publisher.subscribe("stop", e);
1587
+ }
1588
+ onTick(e, n = 0) {
1117
1589
  if (n < 0)
1118
- throw new M("The tick step must be a non-negative number.");
1590
+ throw new $e("The tick step must be a non-negative number.");
1119
1591
  if (n === 0)
1120
- return this._publisher.subscribe(t);
1121
- let r = 0;
1122
- return this._publisher.subscribe((i) => {
1123
- i - r < n || (t(i), r = i);
1592
+ return this._publisher.subscribe("tick", e);
1593
+ let s = 0;
1594
+ return this._publisher.subscribe("tick", (r) => {
1595
+ r - s < n || (e(r), s = r);
1124
1596
  });
1125
1597
  }
1126
1598
  }
1127
- class te extends R {
1128
- constructor(t, n = x.Second) {
1129
- super((i) => {
1130
- this._duration -= i;
1131
- const o = this.remainingTime;
1132
- this._publisher.publish(o), o <= 0 && this.stop();
1599
+ var Ie, Ce;
1600
+ class dt extends (Ce = qe, Ie = Symbol.toStringTag, Ce) {
1601
+ constructor(e, n = F.Second) {
1602
+ super(() => {
1603
+ const r = this.remainingTime;
1604
+ this._publisher.publish("tick", r), r <= 0 && (this._deferrerStop(), this._publisher.publish("expire"));
1133
1605
  }, n);
1134
- u(this, "_deferrer");
1135
- u(this, "_publisher");
1136
- u(this, "_duration");
1137
- this._publisher = new P(), this._duration = t;
1606
+ a(this, "_deferrer");
1607
+ a(this, "_publisher");
1608
+ a(this, "_duration");
1609
+ a(this, Ie, "Countdown");
1610
+ this._publisher = new M(), this._duration = e;
1138
1611
  }
1139
1612
  get duration() {
1140
1613
  return this._duration;
@@ -1142,212 +1615,224 @@ class te extends R {
1142
1615
  get remainingTime() {
1143
1616
  return this._duration - this.elapsedTime;
1144
1617
  }
1145
- start(t = this.duration) {
1618
+ _deferrerStop(e) {
1619
+ if (!this._isRunning)
1620
+ throw new m("The countdown hadn't yet started.");
1621
+ if (!this._deferrer)
1622
+ throw new k();
1623
+ super.stop(), e !== void 0 ? this._deferrer.reject(e) : this._deferrer.resolve(), this._deferrer = void 0;
1624
+ }
1625
+ start(e = this.duration) {
1146
1626
  if (this._isRunning)
1147
1627
  throw new m("The countdown has already been started.");
1148
1628
  if (this._deferrer)
1149
- throw new g();
1150
- return this._deferrer = new O(() => this.stop()), super.start(this.duration - t), this._deferrer;
1629
+ throw new k();
1630
+ return this._deferrer = new Ke(), super.start(this.duration - e), this._publisher.publish("start"), this._deferrer;
1151
1631
  }
1152
- stop(t) {
1153
- if (!this._isRunning)
1154
- throw new m("The countdown hadn't yet started.");
1155
- if (!this._deferrer)
1156
- throw new g();
1157
- super.stop(), t !== void 0 ? this._deferrer.reject(t) : this._deferrer.resolve(), this._deferrer = void 0;
1632
+ stop(e) {
1633
+ this._deferrerStop(e), this._publisher.publish("stop", e);
1634
+ }
1635
+ onExpire(e) {
1636
+ return this._publisher.subscribe("expire", e);
1158
1637
  }
1159
- onTick(t, n = 0) {
1638
+ onStart(e) {
1639
+ return this._publisher.subscribe("start", e);
1640
+ }
1641
+ onStop(e) {
1642
+ return this._publisher.subscribe("stop", e);
1643
+ }
1644
+ onTick(e, n = 0) {
1160
1645
  if (n < 0)
1161
- throw new M("The tick step must be a non-negative number.");
1646
+ throw new $e("The tick step must be a non-negative number.");
1162
1647
  if (n === 0)
1163
- return this._publisher.subscribe(t);
1164
- let r = 0;
1165
- return this._publisher.subscribe((i) => {
1166
- r - i < n || (t(i), r = i);
1648
+ return this._publisher.subscribe("tick", e);
1649
+ let s = 0;
1650
+ return this._publisher.subscribe("tick", (r) => {
1651
+ s - r < n || (e(r), s = r);
1167
1652
  });
1168
1653
  }
1169
1654
  }
1170
- class I {
1171
- static Boolean(e = 0.5) {
1172
- return Math.random() < e;
1655
+ var je;
1656
+ je = Symbol.toStringTag;
1657
+ const D = class D {
1658
+ constructor() {
1659
+ a(this, je, "Random");
1173
1660
  }
1174
- static Integer(e, t) {
1175
- return Math.floor(t === void 0 ? Math.random() * e : Math.random() * (t - e) + e);
1661
+ static Boolean(t = 0.5) {
1662
+ return Math.random() < t;
1176
1663
  }
1177
- static Decimal(e, t) {
1178
- return e === void 0 ? Math.random() : t === void 0 ? Math.random() * e : Math.random() * (t - e) + e;
1664
+ static Integer(t, e) {
1665
+ return Math.floor(e === void 0 ? Math.random() * t : Math.random() * (e - t) + t);
1179
1666
  }
1180
- static Index(e) {
1181
- if (e.length === 0)
1182
- throw new f("You must provide at least one element.");
1183
- return this.Integer(e.length);
1667
+ static Decimal(t, e) {
1668
+ return t === void 0 ? Math.random() : e === void 0 ? Math.random() * t : Math.random() * (e - t) + t;
1184
1669
  }
1185
- static Choice(e) {
1186
- return e[I.Index(e)];
1670
+ static Index(t) {
1671
+ if (t.length === 0)
1672
+ throw new p("You must provide at least one element.");
1673
+ return this.Integer(t.length);
1187
1674
  }
1188
- // eslint-disable-next-line no-useless-constructor
1189
- constructor() {
1675
+ static Choice(t) {
1676
+ return t[D.Index(t)];
1190
1677
  }
1191
- }
1192
- async function ne(s) {
1193
- return new Promise((e, t) => setTimeout(e, s));
1194
- }
1195
- async function re() {
1196
- return new Promise((s, e) => requestAnimationFrame(() => s()));
1197
- }
1198
- function se(s, e = "text/javascript") {
1199
- return new Promise((t, n) => {
1200
- const r = document.createElement("script");
1201
- r.async = !0, r.defer = !0, r.src = s, r.type = e, r.onload = () => t(), r.onerror = () => n(), document.body.appendChild(r);
1678
+ };
1679
+ let j = D;
1680
+ function mt(i, t = "text/javascript") {
1681
+ return new Promise((e, n) => {
1682
+ const s = document.createElement("script");
1683
+ s.async = !0, s.defer = !0, s.src = i, s.type = t, s.onload = () => e(), s.onerror = () => n(), document.body.appendChild(s);
1202
1684
  });
1203
1685
  }
1204
- function ie(...s) {
1205
- return new a(function* () {
1206
- for (const e of s)
1207
- for (const t of e)
1208
- yield t;
1686
+ function _t(...i) {
1687
+ return new c(function* () {
1688
+ for (const t of i)
1689
+ for (const e of t)
1690
+ yield e;
1209
1691
  });
1210
1692
  }
1211
- function oe(s) {
1212
- if (Array.isArray(s))
1213
- return s.length;
1214
- let e = 0;
1215
- for (const t of s)
1216
- e += 1;
1217
- return e;
1693
+ function wt(i) {
1694
+ if (Array.isArray(i))
1695
+ return i.length;
1696
+ let t = 0;
1697
+ for (const e of i)
1698
+ t += 1;
1699
+ return t;
1218
1700
  }
1219
- function ue(s) {
1220
- return new a(function* () {
1221
- let e = 0;
1222
- for (const t of s)
1223
- yield [e, t], e += 1;
1701
+ function pt(i) {
1702
+ return new c(function* () {
1703
+ let t = 0;
1704
+ for (const e of i)
1705
+ yield [t, e], t += 1;
1224
1706
  });
1225
1707
  }
1226
- function ae(s, e, t = 1) {
1227
- return new a(function* () {
1228
- e === void 0 && (e = s, s = 0), s > e && (t = t ?? -1);
1229
- for (let n = s; n < e; n += t)
1708
+ function yt(i, t, e = 1) {
1709
+ return new c(function* () {
1710
+ t === void 0 && (t = i, i = 0), i > t && (e = e ?? -1);
1711
+ for (let n = i; n < t; n += e)
1230
1712
  yield n;
1231
1713
  });
1232
1714
  }
1233
- function ce(s) {
1234
- const e = Array.from(s);
1235
- for (let t = e.length - 1; t > 0; t -= 1) {
1236
- const n = Math.floor(Math.random() * (t + 1));
1237
- [e[t], e[n]] = [e[n], e[t]];
1715
+ function gt(i) {
1716
+ const t = Array.from(i);
1717
+ for (let e = t.length - 1; e > 0; e -= 1) {
1718
+ const n = Math.floor(Math.random() * (e + 1));
1719
+ [t[e], t[n]] = [t[n], t[e]];
1238
1720
  }
1239
- return e;
1721
+ return t;
1240
1722
  }
1241
- function le(s) {
1242
- return new a(function* () {
1243
- const e = /* @__PURE__ */ new Set();
1244
- for (const t of s)
1245
- e.has(t) || (e.add(t), yield t);
1723
+ function bt(i) {
1724
+ return new c(function* () {
1725
+ const t = /* @__PURE__ */ new Set();
1726
+ for (const e of i)
1727
+ t.has(e) || (t.add(e), yield e);
1246
1728
  });
1247
1729
  }
1248
- function N(s, e) {
1249
- return new a(function* () {
1250
- const t = s[Symbol.iterator](), n = e[Symbol.iterator]();
1730
+ function Le(i, t) {
1731
+ return new c(function* () {
1732
+ const e = i[Symbol.iterator](), n = t[Symbol.iterator]();
1251
1733
  for (; ; ) {
1252
- const r = t.next(), i = n.next();
1253
- if (r.done || i.done)
1734
+ const s = e.next(), r = n.next();
1735
+ if (s.done || r.done)
1254
1736
  break;
1255
- yield [r.value, i.value];
1737
+ yield [s.value, r.value];
1256
1738
  }
1257
1739
  });
1258
1740
  }
1259
- function he(s, e) {
1260
- if (e === void 0) {
1261
- let i = 0, o = 0;
1262
- for (const c of s)
1263
- i += c, o += 1;
1741
+ function xt(i, t) {
1742
+ if (t === void 0) {
1743
+ let r = 0, o = 0;
1744
+ for (const l of i)
1745
+ r += l, o += 1;
1264
1746
  if (o === 0)
1265
- throw new f("You must provide at least one value.");
1266
- return i / o;
1747
+ throw new p("You must provide at least one value.");
1748
+ return r / o;
1267
1749
  }
1268
- let t = 0, n = 0, r = 0;
1269
- for (const [i, o] of N(s, e)) {
1750
+ let e = 0, n = 0, s = 0;
1751
+ for (const [r, o] of Le(i, t)) {
1270
1752
  if (o <= 0)
1271
- throw new f(`The weight for the value #${r} must be greater than zero.`);
1272
- t += i * o, n += o, r += 1;
1753
+ throw new p(`The weight for the value #${s} must be greater than zero.`);
1754
+ e += r * o, n += o, s += 1;
1273
1755
  }
1274
- if (r === 0)
1275
- throw new f("You must provide at least one value and weight.");
1756
+ if (s === 0)
1757
+ throw new p("You must provide at least one value and weight.");
1276
1758
  if (n > 0)
1277
- throw new f("The sum of weights must be greater than zero.");
1278
- return t / n;
1759
+ throw new p("The sum of weights must be greater than zero.");
1760
+ return e / n;
1279
1761
  }
1280
- function fe(s) {
1281
- let e = 0;
1282
- for (let t = 0; t < s.length; t += 1) {
1283
- const n = s.charCodeAt(t);
1284
- e = (e << 5) - e + n, e |= 0;
1762
+ function vt(i) {
1763
+ let t = 0;
1764
+ for (let e = 0; e < i.length; e += 1) {
1765
+ const n = i.charCodeAt(e);
1766
+ t = (t << 5) - t + n, t |= 0;
1285
1767
  }
1286
- return e;
1768
+ return t;
1287
1769
  }
1288
- function de(s) {
1289
- let e = 0;
1290
- for (const t of s)
1291
- e += t;
1292
- return e;
1770
+ function kt(i) {
1771
+ let t = 0;
1772
+ for (const e of i)
1773
+ t += e;
1774
+ return t;
1293
1775
  }
1294
- function me(s) {
1295
- return `${s.charAt(0).toUpperCase()}${s.slice(1)}`;
1776
+ function St(i) {
1777
+ return `${i.charAt(0).toUpperCase()}${i.slice(1)}`;
1296
1778
  }
1297
- const we = "2.0.0-rc.1";
1779
+ const Tt = "2.0.0-rc.10";
1298
1780
  export {
1299
- y as AggregatedAsyncIterator,
1300
- w as AggregatedIterator,
1301
- _ as Aggregator,
1302
- p as AsyncAggregator,
1303
- ee as Clock,
1304
- te as Countdown,
1305
- O as DeferredPromise,
1306
- h as Exception,
1307
- g as FatalErrorException,
1308
- T as FileException,
1309
- z as FileExistsException,
1310
- V as FileNotFoundException,
1311
- R as GameLoop,
1312
- Z as JSONStorage,
1313
- B as KeyException,
1314
- K as NetworkException,
1315
- Y as NotImplementedException,
1316
- G as PermissionException,
1317
- P as Publisher,
1318
- I as Random,
1319
- M as RangeException,
1320
- l as ReducedIterator,
1321
- q as ReferenceException,
1781
+ E as AggregatedAsyncIterator,
1782
+ S as AggregatedIterator,
1783
+ Ge as CallableObject,
1784
+ ft as Clock,
1785
+ dt as Countdown,
1786
+ Ke as DeferredPromise,
1787
+ f as Exception,
1788
+ k as FatalErrorException,
1789
+ Ae as FileException,
1790
+ Ze as FileExistsException,
1791
+ Ue as FileNotFoundException,
1792
+ qe as GameLoop,
1793
+ rt as JSONStorage,
1794
+ x as KeyException,
1795
+ C as LongRunningTask,
1796
+ et as NetworkException,
1797
+ ze as NotImplementedException,
1798
+ tt as PermissionException,
1799
+ M as Publisher,
1800
+ j as Random,
1801
+ $e as RangeException,
1802
+ d as ReducedIterator,
1803
+ Je as ReferenceException,
1322
1804
  m as RuntimeException,
1323
- d as SmartAsyncIterator,
1324
- a as SmartIterator,
1325
- F as SmartPromise,
1326
- x as TimeUnit,
1327
- U as TimedPromise,
1328
- C as TimeoutException,
1329
- H as TypeException,
1330
- we as VERSION,
1331
- f as ValueException,
1332
- he as average,
1333
- me as capitalize,
1334
- ie as chain,
1335
- oe as count,
1336
- L as dateDifference,
1337
- Q as dateRange,
1338
- X as dateRound,
1339
- ne as delay,
1340
- ue as enumerate,
1341
- fe as hash,
1342
- E as isBrowser,
1343
- J as isNode,
1344
- W as isWebWorker,
1345
- se as loadScript,
1346
- re as nextAnimationFrame,
1347
- ae as range,
1348
- ce as shuffle,
1349
- de as sum,
1350
- le as unique,
1351
- N as zip
1805
+ w as SmartAsyncIterator,
1806
+ c as SmartIterator,
1807
+ T as SmartPromise,
1808
+ st as SwitchableCallback,
1809
+ at as Thenable,
1810
+ F as TimeUnit,
1811
+ lt as TimedPromise,
1812
+ We as TimeoutException,
1813
+ nt as TypeException,
1814
+ Tt as VERSION,
1815
+ p as ValueException,
1816
+ xt as average,
1817
+ St as capitalize,
1818
+ _t as chain,
1819
+ wt as count,
1820
+ ut as dateDifference,
1821
+ ct as dateRange,
1822
+ ht as dateRound,
1823
+ it as delay,
1824
+ pt as enumerate,
1825
+ vt as hash,
1826
+ Oe as isBrowser,
1827
+ Qe as isNode,
1828
+ Xe as isWebWorker,
1829
+ mt as loadScript,
1830
+ ot as nextAnimationFrame,
1831
+ yt as range,
1832
+ gt as shuffle,
1833
+ kt as sum,
1834
+ bt as unique,
1835
+ v as yieldToEventLoop,
1836
+ Le as zip
1352
1837
  };
1353
1838
  //# sourceMappingURL=core.js.map