@ndriadev/futurable 1.0.7 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -25
- package/dist/futurable.cjs.js +1 -1
- package/dist/futurable.mjs.js +108 -116
- package/dist/index.d.ts +26 -23
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,42 +1,21 @@
|
|
|
1
|
-
<style>
|
|
2
|
-
h1 {
|
|
3
|
-
border-bottom: unset;
|
|
4
|
-
}
|
|
5
|
-
h3 {
|
|
6
|
-
margin-bottom: 3rem;
|
|
7
|
-
}
|
|
8
|
-
#badge-div-1 {
|
|
9
|
-
margin-top: 3rem;
|
|
10
|
-
display: flex;
|
|
11
|
-
justify-content: center;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
#badge-div-2 {
|
|
15
|
-
display: flex;
|
|
16
|
-
justify-content: center;
|
|
17
|
-
}
|
|
18
|
-
</style>
|
|
19
1
|
<h1 align="center">Futurable</h1>
|
|
20
|
-
<
|
|
2
|
+
<h3 align="center">Javascript's Promise API with super powers!</h3>
|
|
21
3
|
|
|
22
|
-
<div
|
|
4
|
+
<div align="center">
|
|
23
5
|
|
|
24
6
|
[](https://www.npmjs.org/package/%40ndriadev/futurable)
|
|
25
7
|

|
|
26
8
|

|
|
27
9
|

|
|
28
10
|
</div>
|
|
29
|
-
<div
|
|
11
|
+
<div align="center">
|
|
30
12
|
|
|
31
13
|

|
|
32
|
-

|
|
33
15
|

|
|
34
16
|

|
|
35
17
|
</div>
|
|
36
18
|
|
|
37
|
-
<h3 align="center">
|
|
38
|
-
Power up for Javascript's Promise API with cancellation support and more.
|
|
39
|
-
</h3>
|
|
40
19
|
|
|
41
20
|
# Summary
|
|
42
21
|
- [ToDo](#TODO)
|
package/dist/futurable.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var T=Object.defineProperty;var v=(g,f,e)=>f in g?T(g,f,{enumerable:!0,configurable:!0,writable:!0,value:e}):g[f]=e;var S=(g,f,e)=>(v(g,typeof f!="symbol"?f+"":f,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class i extends Promise{constructor(e,t){const r=t?null:new AbortController,n=t||r.signal,o=[],c=()=>{for(const l of o)clearTimeout(l)};let s;const d={signal:n,cancel:()=>{var l;return(l=this.controller)==null?void 0:l.abort()},onCancel:l=>{s=l},delay:(l,a)=>new i(h=>{o.push(setTimeout(()=>{h(l())},a))},n),sleep:l=>d.delay(()=>{},l),fetch:(l,a)=>new i((h,w)=>{fetch(l,{...a||{},signal:n}).then(y=>h(y)).catch(y=>{y.name!=="AbortError"&&w(y)})},n),futurizable:l=>new i((a,h)=>{l.then(a).catch(h)},n)};let m="pending";const p=new Promise((l,a)=>{if(n.aborted){c(),m==="pending"&&s&&s();return}else{const h=typeof n.onabort=="function"?n.onabort:()=>{};n.onabort=()=>{h(),c(),m==="pending"&&s&&s()},e(j=>{m="fulfilled",l(j)},j=>{m="rejected",a(j)},d)}});super((l,a)=>{p.then(h=>l(h)).catch(a)});S(this,"controller");S(this,"internalSignal");S(this,"idsTimeout");this.controller=r,this.internalSignal=n,this.idsTimeout=o}static get[Symbol.species](){return this}get[Symbol.toStringTag](){return"Futurable"}get signal(){return this.internalSignal}clearTimeout(){for(const e of this.idsTimeout)clearTimeout(e)}then(e,t){let r,n;const o=new i((c,s)=>{r=c,n=s},this.internalSignal);return o.controller=this.controller,super.then(c=>{var s;if((s=this.internalSignal)!=null&&s.aborted){this.clearTimeout();return}try{r(e?e(c):c)}catch(u){n(u)}},c=>{var s;if((s=this.internalSignal)!=null&&s.aborted){this.clearTimeout();return}try{t?r(t(c)):n(c)}catch(u){n(u)}}),o}catch(e){return this.then(null,e)}finally(e){return this.then(()=>{e()},()=>{e()})}cancel(){var e,t;!((e=this.internalSignal)!=null&&e.aborted)&&((t=this.controller)==null||t.abort())}delay(e,t){let r,n;const o=new i((c,s)=>{r=c,n=s},this.internalSignal);return o.controller=this.controller,this.then(c=>{this.idsTimeout.push(setTimeout(()=>r(e(c)),t))},c=>{n(c)}),o}sleep(e){return this.delay(t=>t,e)}fetch(e,t){let r,n;const o=new i((c,s)=>{r=c,n=s},this.internalSignal);return o.controller=this.controller,this.then(c=>{const s=typeof e=="function"?e(c):e,u={...typeof t=="function"?t(c):t,signal:this.internalSignal};fetch(s,u).then(d=>r(d)).catch(d=>{d.name!=="AbortError"&&n(d)})}),o}onCancel(e){let t,r;const n=new i((o,c,s)=>{s.onCancel(e),t=o,r=c},this.internalSignal);return n.controller=this.controller,this.then(o=>t(o),o=>r(o)),n}futurizable(e){let t,r;const n=new i((o,c)=>{t=o,r=c},this.internalSignal);return n.controller=this.controller,this.then(o=>{(typeof e=="function"?e(o):e).then(t).catch(r)}),n}static resolve(e,t){return new i(r=>r(e),t)}static reject(e,t){return new i((r,n)=>n(e),t)}static onCancel({cb:e,signal:t}){return new i((r,n,o)=>{o.onCancel(()=>r(e()))},t)}static delay({cb:e,timer:t,signal:r}){return new i((n,o,c)=>{c.delay(e,t).then(n)},r)}static sleep({timer:e,signal:t}){return i.delay({cb:()=>{},timer:e,signal:t})}static fetch(e,t){const r=(t==null?void 0:t.signal)||void 0;return t!=null&&t.signal&&delete t.signal,new i((n,o,c)=>{c.fetch(e,t).then(n)},r)}static futurizable({promise:e,signal:t}){return new i((r,n)=>{e.then(r).catch(n)},t)}static handleIterables(e,t){const r={array:[]};r.f=new i((n,o,c)=>{r.resolve=n,r.reject=o,c.onCancel(()=>{for(const s of r.array)s.cancel()})},t),t||(t=r.f.internalSignal);for(const n in e)e[n]instanceof i?r.array.push(e[n]):e[n]instanceof Promise?r.array.push(new i((o,c)=>{e[n].then(u=>o(u)).catch(c)},t)):r.array.push(i.resolve(e[n],t));return r}static all(e,t){const{f:r,resolve:n,reject:o,array:c}=i.handleIterables(e,t);return super.all(c).then(n).catch(o),r}static allSettled(e,t){const{f:r,resolve:n,reject:o,array:c}=i.handleIterables(e,t);return super.allSettled(c).then(n).catch(o),r}static race(e,t){const{f:r,resolve:n,reject:o,array:c}=i.handleIterables(e,t);return super.race(c).then(n).catch(o),r}static any(e,t){const{f:r,resolve:n,reject:o,array:c}=i.handleIterables(e,t);return super.any(c).then(n).catch(o),r}}exports.Futurable=i;
|
package/dist/futurable.mjs.js
CHANGED
|
@@ -1,73 +1,62 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
throw TypeError("Cannot " + e);
|
|
6
|
-
};
|
|
7
|
-
var C = (i, h, e) => {
|
|
8
|
-
if (h.has(i))
|
|
9
|
-
throw TypeError("Cannot add the same private member more than once");
|
|
10
|
-
h instanceof WeakSet ? h.add(i) : h.set(i, e);
|
|
11
|
-
};
|
|
12
|
-
var j = (i, h, e) => (z(i, h, "access private method"), e);
|
|
13
|
-
var D = /* @__PURE__ */ ((i) => (i.PENDING = "pending", i.FULFILLED = "fulfilled", i.REJECTED = "rejected", i))(D || {}), m, v;
|
|
14
|
-
const s = class extends Promise {
|
|
1
|
+
var T = Object.defineProperty;
|
|
2
|
+
var v = (g, f, e) => f in g ? T(g, f, { enumerable: !0, configurable: !0, writable: !0, value: e }) : g[f] = e;
|
|
3
|
+
var w = (g, f, e) => (v(g, typeof f != "symbol" ? f + "" : f, e), e);
|
|
4
|
+
class s extends Promise {
|
|
15
5
|
constructor(e, t) {
|
|
16
|
-
const r = t ? null : new AbortController(), n = t || r.signal,
|
|
17
|
-
for (const
|
|
18
|
-
clearTimeout(
|
|
6
|
+
const r = t ? null : new AbortController(), n = t || r.signal, o = [], c = () => {
|
|
7
|
+
for (const l of o)
|
|
8
|
+
clearTimeout(l);
|
|
19
9
|
};
|
|
20
|
-
let
|
|
21
|
-
const
|
|
10
|
+
let i;
|
|
11
|
+
const d = {
|
|
22
12
|
signal: n,
|
|
23
13
|
cancel: () => {
|
|
24
|
-
var
|
|
25
|
-
return (
|
|
14
|
+
var l;
|
|
15
|
+
return (l = this.controller) == null ? void 0 : l.abort();
|
|
26
16
|
},
|
|
27
|
-
onCancel: (
|
|
28
|
-
|
|
17
|
+
onCancel: (l) => {
|
|
18
|
+
i = l;
|
|
29
19
|
},
|
|
30
|
-
delay: (
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
},
|
|
20
|
+
delay: (l, a) => new s((h) => {
|
|
21
|
+
o.push(setTimeout(() => {
|
|
22
|
+
h(l());
|
|
23
|
+
}, a));
|
|
34
24
|
}, n),
|
|
35
|
-
sleep: (
|
|
36
|
-
},
|
|
37
|
-
fetch: (
|
|
38
|
-
fetch(
|
|
39
|
-
|
|
25
|
+
sleep: (l) => d.delay(() => {
|
|
26
|
+
}, l),
|
|
27
|
+
fetch: (l, a) => new s((h, j) => {
|
|
28
|
+
fetch(l, { ...a || {}, signal: n }).then((y) => h(y)).catch((y) => {
|
|
29
|
+
y.name !== "AbortError" && j(y);
|
|
40
30
|
});
|
|
41
31
|
}, n),
|
|
42
|
-
futurizable: (
|
|
43
|
-
|
|
32
|
+
futurizable: (l) => new s((a, h) => {
|
|
33
|
+
l.then(a).catch(h);
|
|
44
34
|
}, n)
|
|
45
35
|
};
|
|
46
|
-
let
|
|
47
|
-
const
|
|
36
|
+
let m = "pending";
|
|
37
|
+
const p = new Promise((l, a) => {
|
|
48
38
|
if (n.aborted) {
|
|
49
|
-
c(),
|
|
39
|
+
c(), m === "pending" && i && i();
|
|
50
40
|
return;
|
|
51
41
|
} else {
|
|
52
|
-
const
|
|
42
|
+
const h = typeof n.onabort == "function" ? n.onabort : () => {
|
|
53
43
|
};
|
|
54
44
|
n.onabort = () => {
|
|
55
|
-
|
|
56
|
-
}, e((
|
|
57
|
-
|
|
58
|
-
}, (
|
|
59
|
-
|
|
60
|
-
},
|
|
45
|
+
h(), c(), m === "pending" && i && i();
|
|
46
|
+
}, e((S) => {
|
|
47
|
+
m = "fulfilled", l(S);
|
|
48
|
+
}, (S) => {
|
|
49
|
+
m = "rejected", a(S);
|
|
50
|
+
}, d);
|
|
61
51
|
}
|
|
62
52
|
});
|
|
63
|
-
super((
|
|
64
|
-
|
|
53
|
+
super((l, a) => {
|
|
54
|
+
p.then((h) => l(h)).catch(a);
|
|
65
55
|
});
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
this.controller = r, this.internalSignal = n, this.idsTimeout = l;
|
|
56
|
+
w(this, "controller");
|
|
57
|
+
w(this, "internalSignal");
|
|
58
|
+
w(this, "idsTimeout");
|
|
59
|
+
this.controller = r, this.internalSignal = n, this.idsTimeout = o;
|
|
71
60
|
}
|
|
72
61
|
static get [Symbol.species]() {
|
|
73
62
|
return this;
|
|
@@ -81,37 +70,41 @@ const s = class extends Promise {
|
|
|
81
70
|
get signal() {
|
|
82
71
|
return this.internalSignal;
|
|
83
72
|
}
|
|
73
|
+
clearTimeout() {
|
|
74
|
+
for (const e of this.idsTimeout)
|
|
75
|
+
clearTimeout(e);
|
|
76
|
+
}
|
|
84
77
|
/**
|
|
85
78
|
* Attaches callbacks for the resolution and/or rejection of the Futurable.
|
|
86
79
|
*/
|
|
87
80
|
then(e, t) {
|
|
88
81
|
let r, n;
|
|
89
|
-
const
|
|
90
|
-
r = c, n =
|
|
82
|
+
const o = new s((c, i) => {
|
|
83
|
+
r = c, n = i;
|
|
91
84
|
}, this.internalSignal);
|
|
92
|
-
return
|
|
93
|
-
var
|
|
94
|
-
if ((
|
|
95
|
-
|
|
85
|
+
return o.controller = this.controller, super.then((c) => {
|
|
86
|
+
var i;
|
|
87
|
+
if ((i = this.internalSignal) != null && i.aborted) {
|
|
88
|
+
this.clearTimeout();
|
|
96
89
|
return;
|
|
97
90
|
}
|
|
98
91
|
try {
|
|
99
92
|
r(e ? e(c) : c);
|
|
100
|
-
} catch (
|
|
101
|
-
n(
|
|
93
|
+
} catch (u) {
|
|
94
|
+
n(u);
|
|
102
95
|
}
|
|
103
96
|
}, (c) => {
|
|
104
|
-
var
|
|
105
|
-
if ((
|
|
106
|
-
|
|
97
|
+
var i;
|
|
98
|
+
if ((i = this.internalSignal) != null && i.aborted) {
|
|
99
|
+
this.clearTimeout();
|
|
107
100
|
return;
|
|
108
101
|
}
|
|
109
102
|
try {
|
|
110
103
|
t ? r(t(c)) : n(c);
|
|
111
|
-
} catch (
|
|
112
|
-
n(
|
|
104
|
+
} catch (u) {
|
|
105
|
+
n(u);
|
|
113
106
|
}
|
|
114
|
-
}),
|
|
107
|
+
}), o;
|
|
115
108
|
}
|
|
116
109
|
/**
|
|
117
110
|
* Attaches a callback for only the rejection of the Futurable.
|
|
@@ -146,17 +139,17 @@ const s = class extends Promise {
|
|
|
146
139
|
*/
|
|
147
140
|
delay(e, t) {
|
|
148
141
|
let r, n;
|
|
149
|
-
const
|
|
150
|
-
r = c, n =
|
|
142
|
+
const o = new s((c, i) => {
|
|
143
|
+
r = c, n = i;
|
|
151
144
|
}, this.internalSignal);
|
|
152
|
-
return
|
|
145
|
+
return o.controller = this.controller, this.then(
|
|
153
146
|
(c) => {
|
|
154
147
|
this.idsTimeout.push(setTimeout(() => r(e(c)), t));
|
|
155
148
|
},
|
|
156
149
|
(c) => {
|
|
157
150
|
n(c);
|
|
158
151
|
}
|
|
159
|
-
),
|
|
152
|
+
), o;
|
|
160
153
|
}
|
|
161
154
|
/**
|
|
162
155
|
* Waits for timer parameter (in milliseconds) before returning the value.
|
|
@@ -172,15 +165,15 @@ const s = class extends Promise {
|
|
|
172
165
|
*/
|
|
173
166
|
fetch(e, t) {
|
|
174
167
|
let r, n;
|
|
175
|
-
const
|
|
176
|
-
r = c, n =
|
|
168
|
+
const o = new s((c, i) => {
|
|
169
|
+
r = c, n = i;
|
|
177
170
|
}, this.internalSignal);
|
|
178
|
-
return
|
|
179
|
-
const
|
|
180
|
-
fetch(
|
|
181
|
-
|
|
171
|
+
return o.controller = this.controller, this.then((c) => {
|
|
172
|
+
const i = typeof e == "function" ? e(c) : e, u = { ...typeof t == "function" ? t(c) : t, signal: this.internalSignal };
|
|
173
|
+
fetch(i, u).then((d) => r(d)).catch((d) => {
|
|
174
|
+
d.name !== "AbortError" && n(d);
|
|
182
175
|
});
|
|
183
|
-
}),
|
|
176
|
+
}), o;
|
|
184
177
|
}
|
|
185
178
|
/**
|
|
186
179
|
* Executes the callback passed as a parameter when the futurable is cancelled.
|
|
@@ -188,12 +181,12 @@ const s = class extends Promise {
|
|
|
188
181
|
*/
|
|
189
182
|
onCancel(e) {
|
|
190
183
|
let t, r;
|
|
191
|
-
const n = new s((
|
|
192
|
-
|
|
184
|
+
const n = new s((o, c, i) => {
|
|
185
|
+
i.onCancel(e), t = o, r = c;
|
|
193
186
|
}, this.internalSignal);
|
|
194
187
|
return n.controller = this.controller, this.then(
|
|
195
|
-
(
|
|
196
|
-
(
|
|
188
|
+
(o) => t(o),
|
|
189
|
+
(o) => r(o)
|
|
197
190
|
), n;
|
|
198
191
|
}
|
|
199
192
|
// promisify<TResult1 = T, TResult2 = never>(): Promise<TResult1 | TResult2> {
|
|
@@ -215,11 +208,11 @@ const s = class extends Promise {
|
|
|
215
208
|
*/
|
|
216
209
|
futurizable(e) {
|
|
217
210
|
let t, r;
|
|
218
|
-
const n = new s((
|
|
219
|
-
t =
|
|
211
|
+
const n = new s((o, c) => {
|
|
212
|
+
t = o, r = c;
|
|
220
213
|
}, this.internalSignal);
|
|
221
|
-
return n.controller = this.controller, this.then((
|
|
222
|
-
(typeof e == "function" ? e(
|
|
214
|
+
return n.controller = this.controller, this.then((o) => {
|
|
215
|
+
(typeof e == "function" ? e(o) : e).then(t).catch(r);
|
|
223
216
|
}), n;
|
|
224
217
|
}
|
|
225
218
|
static resolve(e, t) {
|
|
@@ -232,15 +225,17 @@ const s = class extends Promise {
|
|
|
232
225
|
* OnCancel static method. It accepts a callback or a object with cb property and an optional signal.
|
|
233
226
|
*/
|
|
234
227
|
static onCancel({ cb: e, signal: t }) {
|
|
235
|
-
return new s((r, n,
|
|
236
|
-
|
|
228
|
+
return new s((r, n, o) => {
|
|
229
|
+
o.onCancel(() => r(e()));
|
|
237
230
|
}, t);
|
|
238
231
|
}
|
|
239
232
|
/**
|
|
240
233
|
* Delay static method. It accepts a object with timer and cb properties and an optional signal property.
|
|
241
234
|
*/
|
|
242
235
|
static delay({ cb: e, timer: t, signal: r }) {
|
|
243
|
-
return s
|
|
236
|
+
return new s((n, o, c) => {
|
|
237
|
+
c.delay(e, t).then(n);
|
|
238
|
+
}, r);
|
|
244
239
|
}
|
|
245
240
|
/**
|
|
246
241
|
* Sleep static method. It accepts a timer or a object with timer property and an optional signal.
|
|
@@ -258,7 +253,9 @@ const s = class extends Promise {
|
|
|
258
253
|
*/
|
|
259
254
|
static fetch(e, t) {
|
|
260
255
|
const r = (t == null ? void 0 : t.signal) || void 0;
|
|
261
|
-
return t != null && t.signal && delete t.signal, s
|
|
256
|
+
return t != null && t.signal && delete t.signal, new s((n, o, c) => {
|
|
257
|
+
c.fetch(e, t).then(n);
|
|
258
|
+
}, r);
|
|
262
259
|
}
|
|
263
260
|
/**
|
|
264
261
|
* Futurizable static method.
|
|
@@ -269,40 +266,41 @@ const s = class extends Promise {
|
|
|
269
266
|
}, t);
|
|
270
267
|
}
|
|
271
268
|
static handleIterables(e, t) {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
269
|
+
const r = {
|
|
270
|
+
array: []
|
|
271
|
+
};
|
|
272
|
+
r.f = new s((n, o, c) => {
|
|
273
|
+
r.resolve = n, r.reject = o, c.onCancel(() => {
|
|
274
|
+
for (const i of r.array)
|
|
275
|
+
i.cancel();
|
|
277
276
|
});
|
|
278
|
-
}, t);
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
return { f: c, resolve: r, reject: n, array: l };
|
|
277
|
+
}, t), t || (t = r.f.internalSignal);
|
|
278
|
+
for (const n in e)
|
|
279
|
+
e[n] instanceof s ? r.array.push(e[n]) : e[n] instanceof Promise ? r.array.push(new s((o, c) => {
|
|
280
|
+
e[n].then((u) => o(u)).catch(c);
|
|
281
|
+
}, t)) : r.array.push(s.resolve(e[n], t));
|
|
282
|
+
return r;
|
|
285
283
|
}
|
|
286
284
|
/**
|
|
287
285
|
* Creates a Futurable with cancellation support that is resolved with an array of results when all of the provided Futurables resolve, or rejected when any Futurable is rejected.
|
|
288
286
|
*/
|
|
289
287
|
static all(e, t) {
|
|
290
|
-
const { f: r, resolve: n, reject:
|
|
291
|
-
return super.all(c).then(n).catch(
|
|
288
|
+
const { f: r, resolve: n, reject: o, array: c } = s.handleIterables(e, t);
|
|
289
|
+
return super.all(c).then(n).catch(o), r;
|
|
292
290
|
}
|
|
293
291
|
/**
|
|
294
292
|
* Creates a Futurable with cancellation support that is resolved with an array of results when all of the provided Futurables resolve or reject.
|
|
295
293
|
*/
|
|
296
294
|
static allSettled(e, t) {
|
|
297
|
-
const { f: r, resolve: n, reject:
|
|
298
|
-
return super.allSettled(c).then(n).catch(
|
|
295
|
+
const { f: r, resolve: n, reject: o, array: c } = s.handleIterables(e, t);
|
|
296
|
+
return super.allSettled(c).then(n).catch(o), r;
|
|
299
297
|
}
|
|
300
298
|
/**
|
|
301
299
|
* Creates a Futurable with cancellation support that is resolved or rejected when any of the provided Futurables are resolved or rejected.
|
|
302
300
|
*/
|
|
303
301
|
static race(e, t) {
|
|
304
|
-
const { f: r, resolve: n, reject:
|
|
305
|
-
return super.race(c).then(n).catch(
|
|
302
|
+
const { f: r, resolve: n, reject: o, array: c } = s.handleIterables(e, t);
|
|
303
|
+
return super.race(c).then(n).catch(o), r;
|
|
306
304
|
}
|
|
307
305
|
/**
|
|
308
306
|
* The any function returns a futurable with cancellation support that is fulfilled by the first given futurable to be fulfilled,
|
|
@@ -311,16 +309,10 @@ const s = class extends Promise {
|
|
|
311
309
|
* it runs this algorithm.
|
|
312
310
|
*/
|
|
313
311
|
static any(e, t) {
|
|
314
|
-
const { f: r, resolve: n, reject:
|
|
315
|
-
return super.any(c).then(n).catch(
|
|
312
|
+
const { f: r, resolve: n, reject: o, array: c } = s.handleIterables(e, t);
|
|
313
|
+
return super.any(c).then(n).catch(o), r;
|
|
316
314
|
}
|
|
317
|
-
}
|
|
318
|
-
let I = s;
|
|
319
|
-
m = new WeakSet(), v = function() {
|
|
320
|
-
for (const e of this.idsTimeout)
|
|
321
|
-
clearTimeout(e);
|
|
322
|
-
};
|
|
315
|
+
}
|
|
323
316
|
export {
|
|
324
|
-
|
|
325
|
-
I as Futurable
|
|
317
|
+
s as Futurable
|
|
326
318
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -49,17 +49,11 @@ export type FuturableExecutor<T> = (resolve: FuturableResolve<T>, reject: Futura
|
|
|
49
49
|
* Object containing implemented functionalities.
|
|
50
50
|
*/
|
|
51
51
|
utils: FuturableUtils<T>) => void;
|
|
52
|
-
export type FuturableIterable = Futurable<
|
|
52
|
+
export type FuturableIterable<T = any> = Futurable<T> | Promise<T> | T;
|
|
53
53
|
export interface FuturableLike<T> {
|
|
54
54
|
then<TResult1 = T, TResult2 = never>(onfulfilled?: FuturableOnfulfilled<TResult1, TResult2>, onrejected?: FuturableOnrejected<TResult2>): FuturableLike<TResult1 | TResult2>;
|
|
55
55
|
}
|
|
56
|
-
export declare enum FUTURABLE_STATUS {
|
|
57
|
-
PENDING = "pending",
|
|
58
|
-
FULFILLED = "fulfilled",
|
|
59
|
-
REJECTED = "rejected"
|
|
60
|
-
}
|
|
61
56
|
export declare class Futurable<T> extends Promise<T> {
|
|
62
|
-
#private;
|
|
63
57
|
private controller;
|
|
64
58
|
private internalSignal;
|
|
65
59
|
private idsTimeout;
|
|
@@ -70,6 +64,7 @@ export declare class Futurable<T> extends Promise<T> {
|
|
|
70
64
|
* Return internal futurable signal
|
|
71
65
|
*/
|
|
72
66
|
get signal(): AbortSignal;
|
|
67
|
+
private clearTimeout;
|
|
73
68
|
/**
|
|
74
69
|
* Attaches callbacks for the resolution and/or rejection of the Futurable.
|
|
75
70
|
*/
|
|
@@ -107,40 +102,40 @@ export declare class Futurable<T> extends Promise<T> {
|
|
|
107
102
|
* Executes the callback passed as a parameter when the futurable is cancelled.
|
|
108
103
|
* @param cb: callback
|
|
109
104
|
*/
|
|
110
|
-
onCancel<TResult1 =
|
|
105
|
+
onCancel<TResult1 = void, TResult2 = never>(cb: () => void): Futurable<TResult1 | TResult2>;
|
|
111
106
|
/**
|
|
112
107
|
* Takes a promise and transforms it into a futurizable. Promise can be also a function that receives value from futurable chaining as parameter.
|
|
113
108
|
* @param promise: Promise to futurize or function that return promise with futurable chaining value as parameter
|
|
114
109
|
*/
|
|
115
|
-
futurizable<TResult1 =
|
|
116
|
-
static resolve(value?:
|
|
117
|
-
static reject(reason?:
|
|
110
|
+
futurizable<TResult1 = any, TResult2 = never>(promise: Promise<TResult1> | ((val?: TResult1) => Promise<TResult1>)): Futurable<TResult1 | TResult2>;
|
|
111
|
+
static resolve<T = any, TResult2 = never>(value?: T, signal?: AbortSignal): Futurable<T | TResult2>;
|
|
112
|
+
static reject<T = any, TResult2 = never>(reason?: T, signal?: AbortSignal): Futurable<T | TResult2>;
|
|
118
113
|
/**
|
|
119
114
|
* OnCancel static method. It accepts a callback or a object with cb property and an optional signal.
|
|
120
115
|
*/
|
|
121
|
-
static onCancel({ cb, signal }: {
|
|
122
|
-
cb: () =>
|
|
116
|
+
static onCancel<T = void>({ cb, signal }: {
|
|
117
|
+
cb: () => T;
|
|
123
118
|
signal?: AbortSignal;
|
|
124
|
-
}): Futurable<
|
|
119
|
+
}): Futurable<T>;
|
|
125
120
|
/**
|
|
126
121
|
* Delay static method. It accepts a object with timer and cb properties and an optional signal property.
|
|
127
122
|
*/
|
|
128
|
-
static delay({ cb, timer, signal }: {
|
|
123
|
+
static delay<T = any, TResult2 = never>({ cb, timer, signal }: {
|
|
129
124
|
cb: () => any;
|
|
130
125
|
timer: number;
|
|
131
126
|
signal?: AbortSignal;
|
|
132
|
-
}): Futurable<
|
|
127
|
+
}): Futurable<T | TResult2>;
|
|
133
128
|
/**
|
|
134
129
|
* Sleep static method. It accepts a timer or a object with timer property and an optional signal.
|
|
135
130
|
*/
|
|
136
|
-
static sleep({ timer, signal }: {
|
|
131
|
+
static sleep<T = any, TResult2 = never>({ timer, signal }: {
|
|
137
132
|
timer: number;
|
|
138
133
|
signal?: AbortSignal;
|
|
139
|
-
}): Futurable<
|
|
134
|
+
}): Futurable<T | TResult2>;
|
|
140
135
|
/**
|
|
141
136
|
* Fetch static method.
|
|
142
137
|
*/
|
|
143
|
-
static fetch(url: string, opts?: RequestInit): Futurable<
|
|
138
|
+
static fetch<T = any, TResult2 = never>(url: string, opts?: RequestInit): Futurable<T | TResult2>;
|
|
144
139
|
/**
|
|
145
140
|
* Futurizable static method.
|
|
146
141
|
*/
|
|
@@ -152,21 +147,29 @@ export declare class Futurable<T> extends Promise<T> {
|
|
|
152
147
|
/**
|
|
153
148
|
* Creates a Futurable with cancellation support that is resolved with an array of results when all of the provided Futurables resolve, or rejected when any Futurable is rejected.
|
|
154
149
|
*/
|
|
155
|
-
static all(iterables: FuturableIterable[], signal?: AbortSignal): Futurable<
|
|
150
|
+
static all<T extends readonly unknown[] | []>(iterables: FuturableIterable[], signal?: AbortSignal): Futurable<{
|
|
151
|
+
-readonly [P in keyof T]: Awaited<T[P]>;
|
|
152
|
+
}>;
|
|
156
153
|
/**
|
|
157
154
|
* Creates a Futurable with cancellation support that is resolved with an array of results when all of the provided Futurables resolve or reject.
|
|
158
155
|
*/
|
|
159
|
-
static allSettled(iterables: FuturableIterable[], signal?: AbortSignal): Futurable<
|
|
156
|
+
static allSettled<T extends readonly unknown[] | []>(iterables: FuturableIterable[], signal?: AbortSignal): Futurable<{
|
|
157
|
+
-readonly [P in keyof T]: Awaited<T[P]>;
|
|
158
|
+
}>;
|
|
160
159
|
/**
|
|
161
160
|
* Creates a Futurable with cancellation support that is resolved or rejected when any of the provided Futurables are resolved or rejected.
|
|
162
161
|
*/
|
|
163
|
-
static race(iterables: FuturableIterable[], signal?: AbortSignal): Futurable<
|
|
162
|
+
static race<T extends readonly unknown[] | []>(iterables: FuturableIterable[], signal?: AbortSignal): Futurable<{
|
|
163
|
+
-readonly [P in keyof T]: Awaited<T[P]>;
|
|
164
|
+
}>;
|
|
164
165
|
/**
|
|
165
166
|
* The any function returns a futurable with cancellation support that is fulfilled by the first given futurable to be fulfilled,
|
|
166
167
|
* or rejected with an AggregateError containing an array of rejection reasons if all of the
|
|
167
168
|
* given futurables are rejected. It resolves all elements of the passed iterable to futurables as
|
|
168
169
|
* it runs this algorithm.
|
|
169
170
|
*/
|
|
170
|
-
static any(iterables: FuturableIterable[], signal?: AbortSignal): Futurable<
|
|
171
|
+
static any<T extends readonly unknown[] | []>(iterables: FuturableIterable[], signal?: AbortSignal): Futurable<{
|
|
172
|
+
-readonly [P in keyof T]: Awaited<T[P]>;
|
|
173
|
+
}>;
|
|
171
174
|
}
|
|
172
175
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,QAAQ,GAAG,aAAa,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEpK,MAAM,MAAM,mBAAmB,CAAC,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEjJ,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE5E,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAClC,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC/B,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB;;;OAGG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;IACtD;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;IACvC;;;;OAIG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;IACzD;;;OAGG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAClC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC5B,MAAM,EAAE,eAAe;AACvB;;GAEG;AACH,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,KACpB,IAAI,CAAC;AAEV,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,QAAQ,GAAG,aAAa,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEpK,MAAM,MAAM,mBAAmB,CAAC,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEjJ,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE5E,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAClC,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC/B,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB;;;OAGG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;IACtD;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;IACvC;;;;OAIG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;IACzD;;;OAGG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAClC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC5B,MAAM,EAAE,eAAe;AACvB;;GAEG;AACH,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,KACpB,IAAI,CAAC;AAEV,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAErE,MAAM,WAAW,aAAa,CAAC,CAAC;IAC/B,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,WAAW,CAAC,EAAE,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;CAC7K;AAQD,qBAAa,SAAS,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,UAAU,CAAC;gBAEP,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW;IA4FhE,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,qBAE1B;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAED;;OAEG;IACH,IAAI,MAAM,gBAET;IAED,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,WAAW,EAAE,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAuCvK;;OAEG;IACH,KAAK,CAAC,OAAO,GAAG,KAAK,EAAE,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC;IAIxF;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAW/C;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;;;OAIG;IACH,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAkBjH;;;OAGG;IACH,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAIpF;;;;OAIG;IACH,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,KAAK,WAAW,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAsBlL;;;OAGG;IACH,QAAQ,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IA8B3F;;;OAGG;IACH,WAAW,CAAC,QAAQ,GAAG,GAAG,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAgBnJ,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,GAAG,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAC;IAInG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAC;IAInG;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAM1F;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAC;IAM/I;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAC;IAQ5H;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAC;IAQ/F;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,GAAC,GAAG,EAAE,QAAQ,GAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAQ3J,OAAO,CAAC,MAAM,CAAC,eAAe;IAkC9B;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;QAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAQ3J;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;QAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAQlK;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;QAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAQ5J;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;QAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;CAO3J"}
|